- Как получить utm метки в PHP?
- Как добавить UTM-метки в заявки с сайта
- Вставка скрытых полей в форму
- Применение:
- Результат:
- UTM-метки в cookies
- Результат:
- UTM-метки в сессию
- В обработчике формы:
- Результат:
- Собираем UTM метки в заявку и отправляем на почту при помощи PHP
- Получить UTM метки на PHP
- Как установить UTM метки на сайте через PHP. Часть 1.
- Генератор UTM меток
- Пример заполнения генератора UTM-меток
- Комментарии ( 0 ):
- Меняем заголовки h1 по UTM метке через PHP
- Как считать данные из файла CSV
- Как менять заголовки по UTM меткам
Как получить utm метки в PHP?
@ gussie.jones Обычно, utm метки передаются в url как get параметры и Вы можете получить их из глобального массива $_GET в PHP, посмотрите пример ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13
php $url = 'http://domain.ru?utm_source=yandex&utm_campaign=campaign_name'; $utmSource = $_GET['utm_source']; // Вывод: yandex echo $utmSource; $utmCampaign = $_GET['utm_campaign']; // Вывод: campaign_name echo $utmCampaign;
Как добавить 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); >>
$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
Всем привет. Сейчас вы узнаете, как работать с UTM метками при помощи PHP, а именно мы будем собирать их в заявку. То есть при отправке формы на сайте все необходимые метки будут от оправлены на почту или куда-то еще вместе с основными данными. Как правило это номер телефона, Email адрес и имя клиента. Зачем вообще собирать UTM метки с сайта? В большинстве случаем это нужно маркетологам для того, чтобы отслеживать эффективность различных источников трафика. Так выглядит пример на реально работающем сайте:
Получить UTM метки на PHP
Первое, что необходимо сделать — добавить в имеющуюся форму на сайте скрытое поле, input с типом hidden. Каждая UTM метка — это одно скрытое поле, поэтому нужно добавить именно cтолько, сколько будет меток в URL. Покажу на примере метки utm_sourse. И в value скрытого инпута необходимо поместить небольшой кусок PHP кода, в котором сделаем проверку на наличие GET-параметров в ссылке.
echo isset($_GET['utm_sourse']) ? $_GET['utm_sourse'] : '' ;?/>">
И если метка utm_sourse существует, то ее значение будет внесено в input с name=»utm_sourse». Осталось принять эти UTM метки в файле, который будет отправлять Email. Для этого напишем следующее:
$utm_sourse = $_POST['utm_sourse'] // Принимаем метку
$utm_sourse = $_POST[‘utm_sourse’] // Принимаем метку
И в самом теле сообщения, где будут данные о заявке сделаем проверку. Если переменная не пустая, то она будет включена в заявку. Обычно я делаю небольшую HTML таблицу для данных, поэтому мой код выглядит следующим образом:
if (!empty($utm_sourse)) { $message .= ''; } Рекламная система '.$utm_sourse.'
if (!empty($utm_sourse)) < $message .= '
‘; >
Проверку нужно делать под каждую UTM метку. Более наглядно смотрите в видео, которое я подготовил специально для этого урока. Сложностей возникнуть не должно, но если что — пишите свои комментарии, постараюсь помочь разобраться.
Как установить 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 Русаков Михаил Юрьевич. Все права защищены.
Меняем заголовки h1 по UTM метке через PHP
Давайте представим, что у Вас есть общая посадочная страница, на которую Вы ведёте пользователей с рекламы в Яндекс.Директ или Google Adwords. И Вы хотите, чтобы для пользователей, пришедших на сайт с разных объявлений показывались разные заголовки. Например, клиент перешёл к Вам по объявлению: «Купить такой-то товар в Москве«. При заходе на Ваш сайт клиенту будет показан заголовок: «Лучший товар такой-то в Москве«. А если клиент переходит по объявлению «Купить такой-то товар в Люберцах«, то его заголовок на этой же странице будет «Лучший товар такой-то в Люберцах«. В общем, вариантов применения этой опции — уйма.
Как считать данные из файла CSV
Для начала нам нужно сформировать файл, в котором будет список меток и заголовков. Формируем обычный документ в программе Exel или любой аналогичной, сохраняем его в формате CSV. В документе должно быть 2 столбца:
tovar_v_moskve | Лучший товар такой-то в Москве |
tovar_v_lyubertsah | Лучший товар такой-то в Люберцах |
Важно учитывать разделитель, который будет стоять при сохранении в формат CSV. Некоторые программы (например Open Office) спросят Вас, какой Вы хотите использовать разделитель. Можете указать, к примеру этот ;
Если Вы работаете в Exel, то Вас не будут ничего спрашивать и просто поставят пробел или табуляцию. Этот момент мы учтём позже, при написании скрипта.
Теперь нам нужно убедиться, что данные в нашем файле находятся в кодировке UTF-8. Если мы имеем данные в другой кодировке, то при выводе на сайт будут кракозябры вместо русских букв. Чтобы сменить кодировку — открываем файл CSV через Notepad++. В меню программы, в разделе «Кодировки», выбираем «Преобразовать в UTF-8». Сохраняем документ.
Теперь будем разбирать PHP скрипт, который может считать данные из CSV файла и исходя из конкретной UTM-метки поменять заголовок на нашем сайте.
Как менять заголовки по UTM меткам
Представим, что в объявлении у нас следующий URL:
https://адрес_сайта/?utm_source=YandexDirect&utm_replace=tovar_v_moskve
Ниже привожу скрипт, он небольшой. Подробно разберём, что в нём происходит.
$utmReplace = $_GET['utm_replace'] ?? false; // получаем из URL параметр utm_replace $utmStringRow = 1; $utmArray = []; if(($handle = fopen("имя_файла.csv", "r")) !== FALSE) < // Указываем корректное имя файла и открываем файл while(($utmData = fgetcsv($handle)) !== FALSE) < // Получаем данные из файла, в цикле $utmStringNum = count($utmData); $utmStringRow++; for($c = 0; $c < $utmStringNum; $c++) < $elementArr = explode(';', $utmData[$c]); // Здесь между одинарными кавычками должен // стоять корректный разделитель! В примере выше стоит точка с запятой, но у Вас это может быть // как запятая, так и точка с запятой, так и пробел, так и табуляция. Поэтому, // рекомендую открыть файл CSV через Notepad++ и скопировать разделитель между меткой и заголовком // и в ставить его выше. Вручную с клавиатуры его лучше не вводить, т.к. визуально Вы можете просто // не отличить пробел от табуляции. Поэтому, просто копируем и вставляем его выше. $utmArray []= $elementArr; > > fclose($handle); > function correctsEncoding($world) < // Функция для проверки корректности кодировки. Без неё может не работать! // В цикле проверяем, что каждый символ в нашей метке корректный. // Когда я запускал этот пример для себя, у некоторых слов из-за особенностей формирования CSV-файла // в качестве первых символов стояли знаки вопросов for($i = 0; $i < strlen($world); $i++) < if(mb_detect_encoding($world[$i]) == 'ASCII') $worldArr []= $world[$i]; > return implode($worldArr); > // в цикле перебираем все метки из файла и если метка совпадает с меткой в URL - берём заголовок, идущий в паре с меткой for($utm = 0; $utm < count($utmArray); $utm++) < if(correctsEncoding($utmArray[$utm][0]) == $utmReplace) < $utm_source = true; $h1 = $utmArray[$utm][1]; > > echo $h1; // выводим для проверки полученный заголовок ?>
Надеюсь, Вам пригодится данный скрипт и Вы сможете решить с его помощью поставленные задачи!
Подписывайтесь на группу в ВКонтакте, вступайте в сообщество на Facebook, чтобы всегда быть в курсе актуальных выпусков
W e b d e v e l o p m e n t b l o g !