Как добавить UTM-метки в заявки с сайта

UTM метки – это дополнительные данные, которые добавляются в URL с помощью GET-параметров при клике на баннер в рекламной компании Яндекса или Гугл.

Основные метки:

utm_source Источник перехода
utm_medium Тип трафика
utm_campaign Название рекламной кампании
utm_content Дополнительная информация, которая помогает различать объявления
utm_term Ключевая фраза

Если к сайту подключена какая либо CRM и требуется фиксация UTM-меток вместе с формой заказа, то есть три варианта:

Рассмотрим на примере ссылки:
https://site.ru/test.php?utm_source=yandex&utm_medium=cpc&utm_campaign={campaign_id}

Вставка скрытых полей в форму

Вариант не очень хороший т.к. если клиент перейдет на другую страницу, то метки будут потеряны.

Функция отчистит и выведет поля в форме:

function get_utm() 
{
	$out = array();
	$keys = array('utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term');
	foreach ($keys as $row) {
		if (!empty($_GET[$row])) {
			$value = strval($_GET[$row]);
			$value = stripslashes($value);
			$value = htmlspecialchars_decode($value, ENT_QUOTES);	
			$value = strip_tags($value); 		
			$value = htmlspecialchars($value, ENT_QUOTES);	
			$out[] = '<input type="hidden" name="' . $row . '" value="' . $value . '">';
		}
	}

	return implode("\r\n", $out);
}
PHP

Применение

<form action="" method="post">
	<label>Ваше имя</label>
	<input type="text" name="name">
	
	<label>Телефон</label>
	<input type="text" name="phone">
	
	<?php echo get_utm(); ?>
</form>
HTML

Результат

<form action="" method="post">
	<label>Ваше имя</label>
	<input type="text" name="name">
	
	<label>Телефон</label>
	<input type="text" name="phone">
	
	<input type="hidden" name="utm_source" value="yandex">
	<input type="hidden" name="utm_medium" value="cpc">
	<input type="hidden" name="utm_campaign" value="{campaign_id}">
</form>

UTM-метки в cookies

Куки будут установлены до закрытия браузера.

$keys = array('utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term');
foreach ($keys as $row) {
	if (!empty($_GET[$row])) {
		$value = strval($_GET[$row]);
		$value = stripslashes($value);
		$value = htmlspecialchars_decode($value, ENT_QUOTES);	
		$value = strip_tags($value); 		
		$value = htmlspecialchars($value, ENT_QUOTES);	
		setcookie('utm[' . $row . ']', $value);
	}
}
PHP

В обработчике формы работать с $_COOKIE['utm'].

$order = '';
if (!empty($_COOKIE['utm'])) {
	foreach ($_COOKIE['utm'] as $i => $row) {
		$order .= $i . ': ' . $row . "\r\n";
	}
}

echo $order;
PHP

Результат

utm_source: yandex
utm_medium: cpc
utm_campaign: {campaign_id}

UTM-метки в сессию

session_start();

$keys = array('utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term');
foreach ($keys as $row) {
	if (!empty($_GET[$row])) {
		$value = strval($_GET[$row]);
		$value = stripslashes($value);
		$value = htmlspecialchars_decode($value, ENT_QUOTES);	
		$value = strip_tags($value); 		
		$value = htmlspecialchars($value, ENT_QUOTES);	
		$_SESSEION['utm'][$row] = $value;
	}
}
PHP

В обработчике формы:

$order = '';
if (!empty($_SESSEION['utm'])) {
	foreach ($_SESSEION['utm'] as $i => $row) {
		$order .= $i . ': ' . $row . "\r\n";
	}
}

echo $order;
PHP

Результат

utm_source: yandex
utm_medium: cpc
utm_campaign: {campaign_id}
14.08.2019, обновлено 29.08.2019 90

Поделится

Другие публикации

Для начала вы должны быть авторизированы в VK и являться администратором группы или страницы. Далее нужно создать...
Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
Данный вопрос возникает при верстке писем т.к. стили прописанные в head в почтовых сервисах и программах не работают, а...
В статье приведен пример формы и php скрипта для безопасной загрузки файлов на сервер, метод отправки файлов через...
Пример создания файла карты сайта (sitemap.xml) на PHP. Интеграция его на сайт и подключение его в robots.txt
В статье описана регистрация клиента, получения access token, примеры использования методов API Instagram на PHP.