[Видео] Передача Client ID через Google Tag Manager
В этой статье разберем несколько способов передачи уникального идентификатора пользователя (Client ID) в Google Analytics через Google Tag Manager.
Материалов на тему Client ID (что это такое и зачем он нужен) не только в интернете, но и в моем блоге предостаточно. Поэтому перейдем к практической части.
Рекомендую к прочтению:
- Cookie файлы в Google Analytics
- ClientID в Яндекс.Метрике
- Самый простой способ передачи Client ID в Google Analytics
- [Кейс] Настройка «сквозной аналитики»
Разберем 3 способа передачи cid через GTM:
- с помощью функции customTask;
- с помощью метода get() Google Analytics;
- из cookie _ga Google Analytics;
+ бонус: если вы добавляли тег Google Analytics через пользовательский HTML (gtag.js).
Способ №1 - customTask
Задания – расширенная функция, которая позволяет настраивать проверку, создание и отправку запросов Measurement Protocol с помощью analytics.js. По умолчанию сама ничего не делает. Получить доступ к заданиям или заменить их можно с помощью стандартных методов счетчика get и set. Подробнее про customTask читайте в официальной справке Google, в блоге Adventum перевод статьи или оригинал Симо Ахава (Simo Ahava).
Последовательность действий:
- создаем пользовательский параметр в Google Analytics с областью действий Пользователь
Запоминаем Индекс параметра. В этом примере 1.
- переходим в Google Tag Manager и создаем пользовательскую переменную типа Собственный код JavaScript. Вставляем следующий код (взят из статьи Симо) и заменяем цифру 5 в переменной customDimensionIndex на собственный индекс (см. выше). Название переменной GTM задаем произвольное:
1 2 3 4 5 6 |
function() { var customDimensionIndex = 5; return function(model) { model.set('dimension' + customDimensionIndex, model.get('clientId')); } } |
Код будет выглядеть так:
- в настройках существующего тега Universal Analytics в дополнительных настройках добавьте поле с именем customTask и значением вашей переменной, созданной на предыдущем шаге. Должно получиться так:
Опубликуйте контейнер с изменениями. Проверить корректность передачи Client ID можно с помощью консоли разработчика или специальных плагинов / расширений для GTM и Google Analytics.
Если все хорошо, то через некоторое время данные по Client ID начнут поступать в отчеты Google Analytics. Параметр Client ID в отчетах можно использовать в качестве основного и дополнительного. Он доступен и в собственных отчетах.
Этот способ настройки является наиболее распространенным, поскольку, по наблюдениям специалистов, имеет наибольший процент прометки трафика, а также наименьшую нагрузку. Client ID отправляется с начальным просмотром страницы Page View и не создает дополнительных хитов. Я рекомендую использовать именно этот вариант передачи Client ID.
Записал для вас видео именно этим способом со всеми шагами настройки:
Способ №2 - с помощью метода get()
Этот способ получения идентификатора клиента рекомендует Google в справке разработчика.
Что нужно сделать? Также создать пользовательский параметр Google Analytics (как и в способе 1), в Google Tag Manager создать пользовательскую переменную типа Собственный код JavaScript и вставить туда следующий код (взят из статьи Симо):
1 2 3 4 5 6 7 8 |
function() { try { var tracker = ga.getAll()[0]; return tracker.get('clientId'); } catch(e) { console.log("Ошибка получения Client ID"); } } |
В GTM это выглядит так:
С помощью него мы получаем трекер Google Analytics, а затем через него методом get() получаем из трекера нужное значение Client ID.
get() - доступный метод объекта Tracker, который получает значение поля, хранящегося в счетчике. Это и есть clientId.
Результат в режиме отладки:
Client ID отправляется с начальным просмотром страницы Page View. Однако из такого подхода есть вероятность получить некоторую часть трафика непомеченной.
В этом случае рекомендуется отправлять Client ID отдельным тегом Universal Analytics с типом отслеживания Событие и триггером активации Окно загружено (gtm.load).
Минус такого подхода – лишние обращения в Google Analytics:
Для крупных проектов с большим объемом данных это очень большая проблема.
Способ №3 - из cookie _ga Google Analytics
Для этого необходимо создать пользовательскую переменную типа Основной файл cookie (1st Party Cookie) со значением _ga.
Она возвращает значение cookie, которое доступно для текущего сайта. По умолчанию в Analytics – это _ga.
Как видно из скриншота выше, основной файл cookie выводит полное значение, включая номер GA версии и уровень домена. Нам же нужно только последнюю часть - 908514878.1563127955.
В Google Tag Manager создаем пользовательскую переменную типа Собственный код JavaScript и вставить туда следующий код (взят из статьи Симо):
1 2 3 4 5 6 7 8 |
function() { try { var cookie = {{ga_cookie}}.split("."); return cookie[2] + "." + cookie[3]; } catch(e) { console.log("Файл cookie Universal Analytics не найден "); } } |
где ga_cookie – название вашей переменной Основной файл cookie (см. шаг выше).
Этот код JavaScript анализирует строку и возвращает третий (идентификатор клиента) и четвертый (временная метка) элементы значения cookie (908514878.1563127955), которые создают полный Client ID пользователя.
Все дальнейшие действия аналогичны. Создаете пользовательский параметр, запоминаете индекс, и затем добавляете данные в тег Universal Analytics:
Бонус: если код Google Analytics установлен через пользовательский HTML
Не все веб-аналитики используются готовый тег Universal Analytics. Некоторые добавляют код через Пользовательский HTML, чтобы в работе использовать команды из библиотеки gtag.js.
Для этого используется параметр custom_map, а конечный код выглядит следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 |
<!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id='UA-XXXXXXXX-X"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-XXXXXXXX-X', { 'custom_map': { 'dimensionN': 'clientId' } }); </script> |
Пример в GTM:
, где вместо N – ваш индекс пользовательского параметра, а UA-XXXXXXXX-X – ваш № счетчика.
Таким образом, мы с вами познакомились с несколькими способами получения Client ID и с передачей его значения в Google Analytics с помощью Google Tag Manager.
P.S. Если происходящее событие имеет два и более различающихся решения, ведущих к одному ответу, то верным будет самое простое решение, которое требует меньше неизвестных.
Понравилась статья с видео? Ставь оценку 5.0 ->