Как добавить 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=
Вставка скрытых полей в форму
Вариант не очень хороший т.к. если клиент перейдет на другую страницу, то метки будут потеряны. Функция отчистит и выведет поля в форме:
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[] = ''; > > return implode("\r\n", $out); >
Применение:
Результат:
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); >>
В обработчике формы работать с $_COOKIE[‘utm’] .
$order = ''; if (!empty($_COOKIE['utm'])) < foreach ($_COOKIE['utm'] as $i =>$row) < $order .= $i . ': ' . $row . "\r\n"; >> echo $order;
Результат:
utm_source: yandex utm_medium: cpc utm_campaign:
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); $_SESSION['utm'][$row] = $value; >>
В обработчике формы:
$order = ''; if (!empty($_SESSION['utm'])) < foreach ($_SESSION['utm'] as $i =>$row) < $order .= $i . ': ' . $row . "\r\n"; >> echo $order;
Результат:
utm_source: yandex utm_medium: cpc utm_campaign:
Как установить UTM метки на сайте через PHP. Часть 1.

На этом уроке вы узнаете, что такое UTM-метки, как установить их на сайте и как настроить получение данных из UTM-меток на ваш e-mail.
Что такое UTM-метки? Это длинные хвосты, состоящие из генерированных данных, которые добавляются к ссылке, с целью отслеживания, откуда человек пришел на ваш сайт. Таким образом можно оценивать успешность начатой промо-компании и корректировать.
Например Вы создали новую рекламную кампанию на Yandex.Direct и хотите отсортировать людей перешедших на ваш сайт, непосредственно с платного обьявления из яндекса и оставивших заявку через форму. Только для этих купленных с яндекс поиска людей мы и генерируем специальную ссылку с UTM-метками. Так мы можем контролировать, сколько реальных покупателей мы получили с Yandex.Direct и окупились ли наши расходы на рекламу.
Эта тема весьма популярна среди заказчиков на фриланс биржах и даже если вы начинающий верстальщик, то эти знания рано или поздно вам пригодятся.
Генератор UTM меток
Вам не нужно самостоятельно составлять UTM-метки, можно воспользоваться любым онлайн генератором, например вот этим: http://tools.yaroshenko.by/utm.php
UTM-метка состоит из адреса вашего сайта, к которому добавляется знак вопроса и вы указываете в форме генерации обязательные параметры:
- utm_source
Сайт-источник, где вы создали рекламную компанию, например Google, Yandex. - utm_medium
Здесь вы указываете какой будет идти трафик, с емайл рассылки, от аффилированных партнеров (cpc) или с баннера. - utm_campaign
Даёте произвольное название кампании, чтобы вам было понятно.
- utm_сontent
Укажите название баннера или реальный номер созданного объявления в Yandex.Direct. - utm_term
По какому ключевому слову человек попал к вам на сайт.
Пример заполнения генератора UTM-меток

Что дальше делать с этой ссылкой. Теперь вы можете прикрепить её к баннеру и люди кликнувшие по баннеру и открывшие ваш сайт окажутся помеченными. Вам останется только отследить, с какого источника трафика пришел посетитель и не забудьте разместить на ваш сайт код счётчика — Yandex.Метрики. Вы спросите, все это элементарно и не требует каких-то специфичных знаний. Что делать верстальщику?
Сгенерированная ссылка по сути является GET-запросом и она нам чётко говорит, что этот человек пришел на сайт заказчика из яндекса по рекламной компании с названием mobil_sale, созданной партнером, с конкретного объявления — M-234, введя в Яндекс поиск ключевое слово — buy phone. Это ценная информация для заказчика.
Часто ленивые заказчики не хотят отслеживать статистику в метрике, а им удобнее получать оперативную информацию о посетителях прямо на свой e-mail, в простом виде. Реализовать это можно через форму, создав в ней скрытые поля, ведь заказчика интересуют именно заинтересованные посетители, заполнившие форму заявки.
На этом уроке мы с вами уже делали форму заявки с отправкой на e-mail, воспользуемся уже рабочей формой для данного урока. Как прикрутить к этой форме UTM-метки? Между тегами form нужно вставить этот кусок кода, то есть мы добавляем пять скрытых полей к видимым полям формы. Визуально на странице с формой ничего не изменится. Обработчик формы тайно считывает информацию с GET-запроса.
Названия полей name мы скопировали с генератора UTM-меток, разметив поля. Дальше зададим значение поля value, куда пишем PHP код, между тегами php.
Мы создали переменную $utm_source, в неё поместили при помощи GET-запроса значение ‘utm_source’ и затем его вывели при помощи echo в значении — value, которое содержит скрытое поле.
Аналогично выводятся и остальные параметры. Но это ещё не все, надо внести изменения в обработчик формы. Настроить его на приём всех данных из формы.

![]()
Создано 27.07.2018 10:29:46
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.
Как правильно получить utm метки?
Но не работает
Подскажите как правильно это реализовать?
- Вопрос задан более трёх лет назад
- 2242 просмотра
Комментировать
Решения вопроса 1
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- PHP
- +2 ещё
Как вывести полное описание товара в категории Woocommerce?
- 1 подписчик
- 9 часов назад
- 17 просмотров

- PHP
Не получается сделать чтобы форма регистрации передавала данные в БД, как правильно это сделать и что заменить?
- 1 подписчик
- 10 часов назад
- 37 просмотров

- PHP
Не получается сделать чтобы форма регистрации передавала данные в БД, как правильно это сделать и что заменить?
- 1 подписчик
- 10 часов назад
- 60 просмотров

- PHP
- +2 ещё
Как отобразить дату как сегодня, вчера, а далее как обычно в системе указано?
- 1 подписчик
- вчера
- 127 просмотров

- PHP
Не работает feedback форма РНР?
- 1 подписчик
- вчера
- 68 просмотров

- PHP
Почему не работает скрипт?
- 1 подписчик
- вчера
- 78 просмотров

- PHP
Как сделать ссылки на запуск установленных приложениий в телефоне/планшете?
- 1 подписчик
- вчера
- 35 просмотров

- PHP
- +1 ещё
Не очищаются куки для подразделов сайта, что делать?
- 1 подписчик
- вчера
- 33 просмотра

- PHP
- +1 ещё
Почему MySQL не правильно сохраняет файл?
- 1 подписчик
- вчера
- 81 просмотр

- PHP
- +1 ещё
Вывод у определенного товара информации про активные группы пользователей из «Права доступа к элементу»?
- 1 подписчик
- вчера
- 33 просмотра
от 120 000 до 140 000 ₽
от 100 000 до 250 000 ₽
от 80 000 до 120 000 ₽
20 нояб. 2023, в 09:22
50000 руб./за проект
20 нояб. 2023, в 07:54
13000 руб./за проект
20 нояб. 2023, в 07:06
20000 руб./за проект
Минуточку внимания
Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями
- Как перенести описание вниз?
- 2 подписчика
- 0 ответов
- 2 подписчика
- 0 ответов
- 3 подписчика
- 2 ответа
- 2 подписчика
- 1 ответ
- 2 подписчика
- 2 ответа
- 2 подписчика
- 2 ответа
- 2 подписчика
- 4 ответа
- 2 подписчика
- 1 ответ
- 2 подписчика
- 2 ответа
- 2 подписчика
- 1 ответ
Захват utm меток
В вашем коде если не будет гет запросов — выбьет ошибку Undefined index utm_source и т.д.
Отслеживать
ответ дан 29 ноя 2013 в 20:36
mountpoint mountpoint
7,152 13 13 серебряных знаков 27 27 бронзовых знаков
спасибо большое, вроде не было ошибок, но поставлю как вы советуете
29 ноя 2013 в 20:54@Александр Дахно, не могло быть ошибок в 2 случаях. 1 — вы все время передавали гет параметры. 2 — у вас не был включен вывод ошибок error_reporting(E_ALL);
29 ноя 2013 в 21:06
понятно, спасибо большое.
29 ноя 2013 в 21:14вообще тут у вас готовый XSS — перед выводом экранировать надо всё, что приходит из $_GET (и вообще от пользователя)
27 фев 2017 в 1:40
Представь, что в utm_source окажется строка
1">
Это XSS-уязвимость, позволяющая выполнять любой код на твоём сайте.
Вероятно, следует использовать htmlspecialchars для экранирования.
1"><script>alert('Cracked!')</script><input value="и оно полностью попадёт в значение:
Отслеживать
ответ дан 13 дек 2017 в 8:42
122k 24 24 золотых знака 124 124 серебряных знака 299 299 бронзовых знаковЯ как то для одного проекта писал функцию, возможно она вам пригодиться
function get_utm()< // если мы не знаем реферала if (!isset($_COOKIE['referer'])) < // то запоминаем его setcookie('referer', $_SERVER['HTTP_REFERER'], time()+30); $utm_referer = $_SERVER['HTTP_REFERER']; // А это реферер, если знаем куки и реферер вообще в наличии >else < $utm_referer = $_COOKIE['referer']; >// запоминаем utm-метки if (isset($_GET['utm_source']) && !isset($_COOKIE['utm_source'])) < foreach ($_GET as $key =>$val) < if (0 === strpos($key, 'utm')) < setcookie($key, $val, time()+30); $utm .= "$key: $val\n"; >> >else < // Выводим все массивы в переменную $utm_result, если есть куки foreach ($_COOKIE as $key_utm =>$val_utm) < if (0 === strpos($key_utm, 'utm')) < $utm .= "$key_utm: $val_utm\n"; >> > // Добавляем рефера и проверяем если значение не пустое if($_SERVER['HTTP_REFERER'] != '') $utm .= "utm_referer: $utm_referer\n"; // фильтруем $utm_result = htmlspecialchars($utm, ENT_QUOTES, 'UTF-8'); // Выводим весь результат return $utm_result;Отслеживать
ответ дан 12 дек 2017 в 15:37
Isaev Dimka Isaev Dimka
1 1 1 бронзовый знак
Ошибка в коде - $_SERVER['gitHTTP_REFERER']
13 дек 2017 в 8:42- php
- javascript
- инспекция-кода
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
