Типовой алгоритм установки цели на успешную отправку формы.

Последние изменения: 11.06.2019

Для работы необходимы навыки HTML, JavaScript, PHP

1. На первом этапе нужно корректно заполнить форму и сформировать ее тестовую отправку. Непосредственно перед отправкой нужно открыть консоль разработчика в браузере CHROME и войти в режим Network. Здесь нужно установить галку напротив Preserve log чтобы не потерять запрос в случае перезагрузки страницы.

2. Выполнить отправку формы. Найти запрос, который был сформирован, и изучить его. Как правило по самому запросу будет понятно как происходит обработка формы и какой результат возвращается (вкладка Response)


3. В случае если страница не перезагрузилась, то форма отправилась посредством AJAX запроса. В этом случае нужно найти javascript код отправки формы. Искать можно по различным критериям:

- по привязке события к форме
- по урлу ajax запроса

- по данным которые пришли в ответе AJAX запроса (вкладка Response)
- по контексту выводимого после успешной отправки сообщения.

Искать можно как в исходных кодах сайта, так и непосредственно просматривая скрипты сайта в браузере.

Определив место где происходит обработка ajax запроса, нужно найти файл на сервере, в который можно добавить код достижения целей.
QUON_reach_goal(XXX);

4. В случае если страница перезагрузилась, то во вкладке Response будет находиться полный HTML код страницы. В этом случае форма отправляется посредством HTML POST запроса. Для этого нужно определить серверный обработчик формы. Как правило, он соответствует Request URL из 2 пункта. URL обработчика может быть как физическим файлом, так и ЧПУ, который обрабатывает система сайта. Во втором случае нужно изучить исходные коды сайта и определить где происходит обработка формы.
Согласно алгоритму обработки формы добавить в вывод об успешной отправке HTML код достижения целей.

<script> QUON_reach_goal(XXX);</script>

5. В случае если после успешной отправки происходит переход на страницу успеха, нужно добавить HTML код вызова целей в контент этой страницы.

<script> QUON_reach_goal(XXX);</script>

Однако если страница успеха общая для различных форм сайта, при этом формы должны отрабатывать различные цели – в таком случае ищется код, отвечающий за переход на страницу успеха, и цели добавляются непосредственно перед данным перенаправлением.
Также нужно учитывать, для того чтобы цели успели отработать до того как страница будет перенаправлена на страницу успеха, нужно после отправки ввести задержку.

QUON_reach_goal(XXX);
setTimeout(function(){

            window.location.href = ‘/success’;
}, 1000); //задержка 1 секунда


Либо передать на страницу успеха информацию посредством GET запроса и уже на странице успеха сформировать цель согласно этим данным.

<?php header('Location: /success?from=1'); ?>
или
<script>window.location.href = ‘/success?from=1’;</script>

Первый вариант удобней применять если перенаправление на страницу успеха происходит на фронтенде. А второй если на стороне сервера.

6. При добавлении кода достижения целей, нужно учитывать, что в случае возникновения любой ошибки добавляемого кода, текущее исполнение скрипта будет приостановлено.
Таки ошибки могут возникать например если удалить код счетчика со страницы, либо сервис целей временно недоступен.
В таких случаях форма с сайта может быть не отправлена.

Поэтому рекомендуем оборачивать вызов целей в конструкцию try..catch

try{yaCounterXXXXXX.reachGoal('ORDER');}catch(ex){};
try{QUON_reach_goal(XXX);}catch(ex){};
try{ga('send', 'event', 'form', 'ddd', 'step1'); }catch(ex){};

7. В случае если реализация форм происходит посредством API системы управления сайтом, либо код обработчиков зашифрован, то как правило данный код изменять не рекомендуется. В случае обновления системы все изменения могут затереться.
В такой ситуации нужно обращаться в службу поддержки CMS либо искать обходные пути.

8.
Так как происходит изменение кода, отвечающего за обработку форму, необходимо обязательно проверить работоспособность формы, добавив себя временно в получатели уведомления.

    Помогла ли вам статья?