Analytics
Сейчас в сети: 342
Сейчас в сети: 342
Настройка целей, отслеживание электронной торговли, многоканальные последовательности и тд
Подсказки
star_border
Ответить

GTM2, ajax форма, все как обычно

Студент ✭

Добрый день!

 

Классическая (насколько я понимаю) проблема - не могу настроить отслеживание электронной торговли.

Сайт - ozonpro.by

Там формы добавлены каким-то плагином и с этим, собственно, и возникает проблема - я не знаю, куда именно нужно добавить код, чтобы срабатывала отправка data layer-а. На данный момент у меня два варианта, но оба не рабочие:

 

1. Успешная отправка в .php файле:

 

if (count($get_data) > 1) { // data to send
		$os = $_POST["os"];
		$cs = $_POST["cs"];
		$ip = $_SERVER["REMOTE_ADDR"];

		$title 	= "Ozonpro.by: обратный звонок";
		$title 	= "=?UTF-8?B?".base64_encode($title)."?=";
		$mess 	= "";

		$mess .= getOptions(1);
		$mess = $mess."<div style=\"background:#bfd4ac;border:1px solid #999;padding:10px;margin: 10px 0;\">IP: ".$ip." / <a href='http://dedushka.org/whois/#".$ip."'>Определить город</a></div>";

		$mess = $mess."Ozonpro.by";
		
		$headers	 = "Content-type: text/html; charset=utf-8\r\n"; 
		$headers	.= "From: http://ozonpro.by <".$from.">\r\n"; 

		$sms['msg'] = translit((getOptions(0)));
		$sms['msg'] = substr($sms['msg'], 0, 160);

		if ($to != 'yr@domain.net') { 
			MailSmtp ($to, $title, $mess, $headers); 
		}

		if ( ($sms['id'] != '') || ($sms['key'] != '') || ($sms['log'] != '') ) {
			@sendSMS($num, $sms['msg']);		
		}
		jsAnswer('success', 'c_success', '', 'Спасибо, сообщение отправлено');
dataLayer.push({'event':'form_sent',
								'transactionId': 'form',
								'transactionTotal': 1,
    
								'transactionProducts': [{
								'sku': '0001',
								'name': 'form_sent',
								'price': 1,
								'quantity': 1
								}]
});
	} else {
		jsAnswer('error', 'c_error', '', 'Ошибка');
	}

При этом варианте форма перестает работать и висит на "отправке формы".

 

2. Описание формы в .ajax

$.post(folder + 'lib/send.php', { 
			cs: cs,
			os: os,
			ctime: cnt,
		}, function(data, status) {
			data = JSON.parse(data);
			cmeMsg(form, data.cls, data.message);
			if (data.result == 'success') {
				setData('callme-sent', data.time);
				form.find('.cme-btn').attr('disabled', 'disabled');
				dl('cmeHide', 4);
				dl('cmeClr', 5);
				dataLayer.push({'event':'form_sent',
								'transactionId': 'form',
								'transactionTotal': 1,
    
								'transactionProducts': [{
								'sku': '0001',
								'name': 'form_sent',
								'price': 1,
								'quantity': 1
								}]
});

			}
		});

В этом случае все работает, но данных о транзакциях в аналитике я не вижу.

 

Настройки триггера:

trigger.jpg

Настройки тега:

 

 

1 Ответ экспертаverified_user

Re: GTM2, ajax форма, все как обычно

Студент ✭

Эммм... Куда-то пропал остаток сообщения, продолжу в ответе:

Настройки тега:

tag.jpg

 

В чем не прав?

 

Заранее спасибо!

Re: GTM2, ajax форма, все как обычно

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

Через первый способ будет сложней реализовать, в этот файл не стоит вставлять код.
По второму способу - какой код использовать хотите? Для расширенной или обычной торговли?

Re: GTM2, ajax форма, все как обычно

Студент ✭
Для обычной.

Re: GTM2, ajax форма, все как обычно

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

Тогда вначале передайте данные торговли, потом event:

dataLayer.push({
	'transactionId': 'form',
	'transactionTotal': 1,
    'transactionProducts': [{
		'sku': '0001',
		'name': 'form_sent',
		'price': 1,
		'quantity': 1
	}],
	'event':'form_sent'
});