Analytics
Сейчас в сети: 590
Сейчас в сети: 590
Вопросы настройки тегов, правила и макросы, администрирование GTM
Подсказки
star_border
Ответить

Отслеживание отправки форм ajax GTM

Студент ✭

Задача: отслеживать 3 разные формы, для каждой формы отдельная цель в аналитиксе

сайт: dom.ekaville.ru

 

Есть 3 php обработчика

form.php

form1.php

form2.php

 

Для каждого из них есть ajax код который выполняет отправку и валидацию

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

Вот действия которые прописаны у меня

 

dataLayer.push({'event': 'consult-proekt'});

dataLayer.push({'event': '60-proektov-i-consult'});

dataLayer.push({'event': 'skachat-60-proekt'});

 

но у меня выполняется всегда одно и тоже действие вот это dataLayer.push({'event': 'skachat-60-proekt'});

Помогите понять что неправильно

 

Пример аякса для одной из форм

 

function AjaxFormRequest(result_id,formMain1,url) {
jQuery.ajax({
url: url,
type: "POST",
dataType: "html",
data: jQuery("#"+formMain1).serialize(),
success: function(response) {
dataLayer.push({'event': '60-proektov-i-consult'});
document.getElementById(result_id).innerHTML = response;

1 Ответ экспертаverified_user
2 УТВЕРЖДЕН. РЕШЕН.

Утвержденные решения
Лучший ответ.
Решение
Утвердил автор темы Юрий Б
сентября 2015

Re: Отслеживание отправки форм ajax GTM

Ведущий участник

Нашла, где у вас определены функции для обработки форм.

 

screenshot56.png


Но проблема в том, что они одинаково названы - AjaxFormRequest. Если функции выполняют различные действия, то они должны по-разному называться, а Вы трижды переопределили одну и ту же функцию, поэтому вызывался последний ее вариант, и все время отправлялось "skachat-60-proekt".
Решение: переименуйте функции, к примеру так: AjaxFormRequest_1, AjaxFormRequest_2, AjaxFormRequest_3 и вызывайте их в соответствующих местах.

Просмотреть решение в исходном сообщении

Лучший ответ.
Решение
Утвердил автор темы Юрий Б
сентября 2015

Re: Отслеживание отправки форм ajax GTM

Ведущий участник

Переменная response возвращает и текст об ошибках, и текст об успешной отправке формы заявки. Вне зависимости от того, что возвращает response, срабатывает dataLayer.push(). Поэтому, как вариант, можно проверять переменную response на вхождение фразы "Мы получили вашу заявку" и при положительном результате отправлять dataLayer.push().

Попробуйте вместо dataLayer.push({'event': '60-proektov-i-consult'}); вставить:

if (response.indexOf('Мы получили вашу заявку') != -1) {dataLayer.push({'event': '60-proektov-i-consult'});}

Просмотреть решение в исходном сообщении

Re: Отслеживание отправки форм ajax GTM

Ведущий участник
Добрый день!

Это Вы где видите, что выполняется всегда одно и тоже действие вот это dataLayer.push({'event': 'skachat-60-proekt'}); ?

С уважением, Анастасия

Re: Отслеживание отправки форм ajax GTM

Студент ✭
В отладчике тег менеджера, когда отправляю любую из 3 форм, происходит dataLayer.push({'event': 'skachat-60-proekt'}); или я что-то не понимаю? Только вчера начал работать с GTM еще плохо понимаю что и как.

Re: Отслеживание отправки форм ajax GTM

Студент ✭
Я по вашей статье все настраивал http://odesseo.com.ua/uchimsya-rabotat-v-gtm-v2/ спасибо что откликнулись. Надеюсь поможете решить проблему)
Лучший ответ.
Решение
Утвердил автор темы Юрий Б
сентября 2015

Re: Отслеживание отправки форм ajax GTM

Ведущий участник

Нашла, где у вас определены функции для обработки форм.

 

screenshot56.png


Но проблема в том, что они одинаково названы - AjaxFormRequest. Если функции выполняют различные действия, то они должны по-разному называться, а Вы трижды переопределили одну и ту же функцию, поэтому вызывался последний ее вариант, и все время отправлялось "skachat-60-proekt".
Решение: переименуйте функции, к примеру так: AjaxFormRequest_1, AjaxFormRequest_2, AjaxFormRequest_3 и вызывайте их в соответствующих местах.

Re: Отслеживание отправки форм ajax GTM

Студент ✭
Спасибо, все работает как нужно. Вчера 8 часов убил пытался настроить. А тут дел на 5 минут. А вся проблема в том что я js не знаю, нужно учить)

Re: Отслеживание отправки форм ajax GTM

Ведущий участник

Рада, что все получилось! УдачиПодмигивающий

Re: Отслеживание отправки форм ajax GTM

Студент ✭
Только сейчас заметил, что цели срабатывают при нажатии на кнопку, хотя должны срабатывать только при отправке заполненной формы, посмотрите пожалуйста в чем причина?

Re: Отслеживание отправки форм ajax GTM

Ведущий участник
Вы отправляете событие на сервер внутри функции параметра success, но в вашем случае валидация ошибок происходит на сервере и ответ response возвращает либо уведомление об ошибке, которые выводится вверху формы, либо "Мы получили вашу заявку и скоро свяжемся с Вами". Вам необходимо отправлять событие только тогда, когда response вернет информацию об успешной обработке. http://prntscr.com/86ccg7

Re: Отслеживание отправки форм ajax GTM

Студент ✭

Пожалуйста напишите более подробно что и как сделать. Я не понимаю как это реализовать в коде