Поиск

Как добавить 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 522

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

PHP функции для перевода текста, ЧПУ, ссылок и имен файлов в транслит.
24.03.2019 1953
Если требуется сделать импорт или обновление товаров по XML файлу Яндекс Маркета, можно применить расширении PHP...
01.06.2018 4443
Несколько примеров как в PHP получить информацию о домене и IP-адресе.
10.04.2019 962
cURL PHP – это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS....
14.11.2017 27923
В статье представлены все самые встречающеюся мета-теги с примерами и пояснениями их использования.
17.01.2018 3144
API Яндекс метрики позволяет получить информацию о посещаемости сайта и формировать отчеты, но с ограничением в 30...
12.11.2019 241