Отслеживание параметров yclid/gclid с помощью Google Tag Manager
Хотели бы вы отслеживать данные по каждому рекламному клику Яндекс.Директа и Google Ads в Google Analytics отдельно? Знать какой пользователь с каким Client ID его совершил? Связать клик с заявкой в CRM-системе? Офлайн-конверсии с рекламой? Тогда вы можете передавать дополнительным параметром yclid и gclid рекламных систем в аналитику.
Если рассматривать принципы работы счетчиков веб-аналитики (Google Analytics, Яндекс.Метрика) и рекламных инструментов (Google Реклама, Яндекс.Директ), то между ними есть существенные различия. Ключевыми являются следующие:
- аналитика фиксирует визиты/сеансы на сайт, а рекламные сервисы — клики по объявлениям;
- рекламные и аналитические инструменты имеют разный подход к отслеживанию данных и приписыванию конверсий.
Про отличия подходов между Яндекс.Метрикой и Яндекс.Директом подробно написано в двух материалах:
- Почему в Директе и Метрике отличаются данные?
- Сравнение моделей атрибуции Директа и Метрики с помощью R
В этой статье я буду больше приводить примеров для Яндекса, но они также применимы и для продуктов Google. Итак, по умолчанию Яндекс.Метрика привязывает достижение цели к тому визиту, во время которого произошла конверсия.
Например, пользователь перешел на ваш сайт по рекламе из Яндекс.Директа, но не совершил никаких действий. Затем он зашел на сайт из органической выдачи (результатов поиска) и совершил конверсию. Яндекс.Метрика отнесет конверсию к переходу из поиска.
Почему так? Яндекс.Директ записывает конверсии по той дате, когда был совершен значимый переход по рекламе, то есть привязывается к фактическому клику, а Яндекс.Метрика записывает конверсии в тот день, когда и была совершена конверсия, день в день, то есть привязывается к визиту, который сгенерировал данный клик. Из-за этого происходит расхождение данных по дням, а точность рекламы снижается, особенно когда между совершением клика по рекламе и фактической конверсией проходит много времени.
Возможен и другой случай (не менее распространенный), когда пользователь кликнул по рекламному объявлению, перешел на сайт, оформил заказ, но не оплатил его. Затем он вызвал курьера, который через 3 дня доставил ему посылку на дом. По факту получения заказа пользователь совершил оплату. При такой цепочке касаний мы не можем точно учитывать итоговое количество продаж и конверсию из заявки в оплаченный заказ в Яндекс.Метрике без дополнительных действий с нашей стороны. А данный недостаток данных может сильно повлиять на результаты рекламных кампаний.
Чтобы избежать таких случаев, а также иметь возможность загружать данные по офлайн-конверсиям в аналитику и рекламные кабинеты, необходимо отслеживать конверсии по параметру yclid и gclid.
Метка yclid
yclid (Yandex Click Identifier, Yandex Click ID) - специальная метка с уникальным номером клика в Яндекс.Директе, которая добавляется в конец ссылки рекламного объявления и позволяет связывать визиты в Метрике с кликами по объявлению.
При настройке рекламной кампании данная опция по умолчанию включена. Когда пользователь совершает клик по рекламному объявлению из поисковой выдачи Яндекса и переходит на сайт, в адресной строки браузера вы можете заметить, как к текущему URL-адресу добавляется параметр yclid с автоматически сгенерированным уникальным значением (после utm_меток или сразу же):
Ссылка может имеет простой вид: https://osipenkov.ru/?yclid=2780136507770954362
Примечание: если в URL уже добавлен какой-либо параметр, обозначенный знаком ? (например, utm_метки), то параметру yclid будет предшествовать знак & (см. скриншот выше).
Значение параметра yclid для каждого рекламного клика уникально. В него "зашита" информация о переходе пользователя: времени клика, стоимости клика, рекламной кампании, ключевому слову, площадке и всех его последующих действиях на сайте. Таким образом, yclid из Яндекс.Директа позволяет Яндекс.Метрике собрать данные о параметре перехода и отследить действия пользователя на сайте после клика на объявление, в том числе и офлайн-конверсии.
Метка gclid
gclid (Google Click Identifier, Google Click ID) - схожая по функционалу с Яндексом метка с уникальным номером клика в Google Рекламе, которая также добавляется в конец ссылки рекламного объявления и позволяет связывать сеансы в Google Analytics с кликами по объявлению. При использовании параметра gclid можно также импортировать сложные конверсии (онлайн и офлайн) в Google Ads.
Аналогично Директу и Метрике, когда пользователь совершает клик по рекламному объявлению из поисковой выдачи Google и переходит на сайт, в адресной строки браузера вы можете заметить, как к текущему URL-адресу добавляется параметр gclid с автоматически сгенерированным уникальным значением (после utm_меток или сразу же):
Ссылка может имеет простой вид: https://osipenkov.ru/?gclid=Cj0KCQjw16KFBhCgARIsALB0g8Ju2-h4FL94jbEG16C_SI6dkDjurf0lVnfkyLM9paC8eqpLc0u1QeMaAqJMEALw_wcB
Примечание: если в URL уже добавлен какой-либо параметр, обозначенный знаком ? (например, utm_метки), то параметру gclid будет предшествовать знак & (см. скриншот выше).
Активировать данную настройку можно с помощью простановки галочки в пункте Автоматическая пометка тегами в настройке аккаунта Google Ads:
При использовании связки Google Analytics - Google Реклама разработчики Google рекомендуют использовать именно способ автоматической пометки тегами, а не промечать рекламные кампании utm_метками вручную, поскольку из-за последних точность сбора данных может снизиться. Используйте либо автоматическую пометку тегами, либо utm_метки.
Однако на практике иногда встречается гибридный, третий вариант, при котором автоматическая пометками тегами с gclid нужна для Google Ads и передачи офлайн-конверсий, а utm_метки - для разметки трафика для других аналитических систем. В этом случае интернет-маркетолог использует в рекламных объявлениях и то, и то. Тогда в самом Universal Analytics в настройках на уровне ресурса следует поставить галочку Разрешить пометку вручную (значения UTM), замещающую автоматическую пометку (значения GCLID). О том, какие еще проблемы могут возникнуть при переадресации URL и отслеживании параметра gclid, читайте в справке Google.
Если на вашем сайте настроена переадресация, важно, чтобы параметр yclid/gclid сохранялся в URL страницы, на которую переадресовывается пользователь. Если при переходе он теряется, то обратитесь к своему разработчику с просьбой внести корректировки в работу сайта.
Сохранение параметров yclid и gclid в cookie
Перед тем, как начать настройку отслеживания параметров yclid и gclid с помощью Google Tag Manager, хотелось бы напомнить, что привязка офлайн-конверсий, как правило, идет на стороне CRM-системы, куда поступают данные по фактическим продажам и итоговой сумме покупки, а оттуда уже данные выгружаются и передаются по определенному шаблону в инструменты аналитики и рекламы. Таким образом, соответствующие параметры yclid и gclid у вас должны также фиксироваться вне счетчиков веб-аналитики, например, на стороне CRM-системы. А это еще одна дополнительная задача для разработчиков - передать данные по параметру yclid/gclid в отдельное поле карточки сделки в CRM-системе!
Итоговый алгоритм того, что нужно сделать для отслеживания параметров yclid и gclid, следующий:
- включить разметку ссылок для Метрики в Яндекс.Директе и автоматическую пометку тегами в Google Рекламе;
- добавить на сайт код, который сохраняет значение параметра yclid/gclid из URL в cookie;
- извлечь значение параметров yclid/gclid из cookie и отправить его в CRM-систему после того, как пользователь на сайте совершит конверсию (обращение);
- закрыть сделку, переведя ее в соотвествующий статус в CRM;
- выгрузить данные из CRM по успешным сделкам с привязкой к параметру yclid/gclid, и загрузить эту информацию в Яндекс.Метрику и Google Рекламу.
Также дополнительно с достигнутой конверсией мы можем передавать значения yclid/gclid в аналитику в качестве параметра визита для Яндекс.Метрики и специального параметра в Universal Analytics.
Осталось теперь настроить сами отслеживания данных парамеров. Для этого будем использовать Google Tag Manager. Создайте тег типа Пользовательский HTML и вставьте в него следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<script type="text/javascript"> function setCookie(name, value, days){ var date = new Date(); date.setTime(date.getTime() + (days*24*60*60*1000)); var expires = "; expires=" + date.toGMTString(); document.cookie = name + "=" + value + expires + ";path=/"; } function getParam(p){ var match = RegExp('[?&]' + p + '=([^&]*)').exec(window.location.search); return match && decodeURIComponent(match[1].replace(/\+/g, ' ')); } var yclid = getParam('yclid'); if(yclid){ setCookie('yclid', yclid, 90); } </script> |
В Google Tag Manager это выглядит так:
Триггер активации - Все страницы (All Pages).
Этот тег сохраняет значение параметра yclid в cookie. В этом легко убедиться: просто перейдите в режим предварительного просмотра GTM, и в адресной строке браузера в URL добавьте параметр yclid с любым значением, например: https://osipenkov.ru/?yclid=2780136507770954362
Затем перейдите в консоль разработчика на вкладку Application и откройте раздел с куками Cookies. В перечне всех файлов cookie найдите yclid. В параметре должно отобразиться ваше значение:
Если yclid изменить, то изменится и значение в куке yclid, оно перезапишется:
Примечание: способы получения yclid на сайте и их извлечения для отслеживания конверсий подробно описаны в официальной документации Яндекса.
Аналогичный код нужно добавить для сохранения параметра gclid в куки. В диспетчере тегов Google создайте тег типа Пользовательский HTML и вставьте в него следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<script type="text/javascript"> function setCookie(name, value, days){ var date = new Date(); date.setTime(date.getTime() + (days*24*60*60*1000)); var expires = "; expires=" + date.toGMTString(); document.cookie = name + "=" + value + expires; } function getParam(p){ var match = RegExp('[?&]' + p + '=([^&]*)').exec(window.location.search); return match && decodeURIComponent(match[1].replace(/\+/g, ' ')); } var gclid = getParam('gclid'); if(gclid){ var gclsrc = getParam('gclsrc'); if(!gclsrc || gclsrc.indexOf('aw') !== -1){ setCookie('gclid', gclid, 90); } } </script> |
В Google Tag Manager это выглядит так:
Триггер активации - Все страницы (All Pages).
Сохранив изменения, проверим корректность сохранения gclid в файле cookie таким же способом, что и yclid. Например: https://osipenkov.ru/?gclid=EAIaIQobChMI7pLCy_Pd8AIVh0eRBR0SZwFzEAAYASAAEgI23PD_BwE
Консоль разработчика - Application - Cookies:
Из любопытства в адресную строку браузера можно добавить два параметра подряд:
Отлично! Мы научились сохранять значения параметров yclid и yclid в куки с помощью специального кода JavaScript и Google Tag Manager. Теперь необходимо эти данные извлечь.
Извлечение параметров yclid и gclid из cookie
Самый простой способ - в GTM создать 2 переменные типа Основной файл cookie с соответствующими названиями yclid и gclid:
Перейдя в режим отладки Google Tag Manager, на вкладке Variables напротив соответствующей переменной вы должны увидеть сохраненные значения каждого из параметров:
Примечание: значения yclid и gclid в Google Tag Manager можно также извлекать из пользовательской переменной URL с типом компоненты Запрос:
Однако, если пользователь перейдет на вторую страницу, параметр gclid исчезнет, поэтому сохранение значения параметра в cookie является наиболее правильным и точным решением.
Теперь вы можете передавать значения yclid и gclid пользователей вместе с достижением конверсии (конкретной цели), отправляя их при выполнении какого-либо триггера/тега (отправки формы, клика по кнопке и т.д.) в параметры визита Яндекс.Метрики и как специальный параметр Universal Analytics. А для связывания этой информации со статусами сделок параметры yclid и gclid следует передавать еще и в CRM-систему. То, как программно получать эти данные, мы разобрали. А вот как эти данные передать в CRM-систему в отдельные поля, уточните у своего разработчика или команды интеграторов (специалистов по внедрению CRM-систем).
После этого вы можете воспользоваться нижеприведенными инструкциями, чтобы передать данные офлайн-конверсий в Метрику и Google Рекламу:
- Отслеживание офлайн-данных в Яндекс.Метрике
- Как настроить импорт офлайн-конверсий в Google Рекламу
- Как импортировать в Google Рекламу данные о конверсиях, полученных благодаря кликам по объявлениям
Пример специального отчета в Universal Analytics со специальными параметрами Client ID (область действия - Пользователь) и gclid (область действия - Сеанс):
Если вы используете функцию User ID, вы также можете связать офлайн-конверсии с данными Google Analytics и Google Рекламы. Главное - настройте передачу данных по параметрам yclid/gclid в отдельные поля вашей CRM-системы.
Добавив в отчет параметры кампании, ключевого слова и gclid, вы получите отчет примерно такого вида:
Чтобы передавать данные по yclid в Яндекс.Метрику как параметр визита, добавьте одну строчку в итоговый код счетчика, как показано ниже:
Конструкция:
1 |
ym(XXXXXX, 'params', parameters); |
позволяет передавать в Яндек.Метрику один объект или массив данных как параметр визита. В моем примере: yclid - параметр визита 1 уровня, а переменная {{Variable - yclid }}, на которую мы ссылаемся в коде и в которую будет подставляться значение уникального клика из Яндекс.Директа - параметр визита 2 уровня.
Примечание: вы можете объединить коды для сохранения параметра yclid в cookie и Яндекс.Метрики в один Пользовательский HTML тег. В результате в консоли разработчика (проверка во вкладке Console и с меткой _ym_debug=1) при инициализации счетчика Метрики параметр yclid будет передаваться как параметр визита (Params):
Через некоторое время в отчете Параметры визитов Яндекс.Метрики отобразиться данное значение:
Мы также, как и в Universal Analytics, можем сопоставить его со значением уникального идентификатора пользователя (Client ID):