Рассмотрим, как получить client id из куки для Метрики и Analytics и передать их в пользовательскую переменную в Google Tag Manager:
- Для GA4 с помощью встроенной в GTM пользовательской переменной типа «Основной файл cookie»;
- Для Метрики с помощью той же переменной
- Для Яндекс Метрики с помощью метода getClientID
Есть и другие способы добыть интересующий нас параметр, но, как показывает моя практика, этих двух более чем достаточно. Рассмотрим их детально.
Вариант 1. С помощью переменной типа «Основной файл cookie»
В GTM в интересующем нас контейнере создадим пользовательскую переменную типа «Собственный файл cookie» и именем _ga.
Обзовем переменную cookie_ga.
Далее создадим еще одну пользовательскую переменную. На этот раз выберем тип переменной «Пользовательский JavaScript». Обзовем ее GA_CID, а в поле для вставки кода добавим следующее:
function() { try { var cookie = {{сookie_ga}}.split("."); return cookie[2] + "." + cookie[3]; } catch(e) { console.log("Файл cookie Universal Analytics не найден "); } }
где {{сookie_ga}} — это название переменной «Основной файл cookie», созданной нами ранее.
В GTM это выглядит так:
Все, теперь у нас есть переменная {{GA_CID}}, которую можно использовать в GTM для любых своих целей.
С помощью cookie для Метрики
Здесь все еще проще. Достаточно в GTM создать переменную типа «Собственный файл cookie» и записать в нее значение _ym_uid. В эту переменную и будет тянуться clientID Метрики.
В метрику с помощью метода getClientID
Это официальный способ, который описан в справке Яндекса. Аналогично с предыдущим методом, нужно создать пользовательскую переменную типа JS и поместить в нее следующий код:
Для новых счетчиков
function(){ var yaCID; ym('{{id-счетчика}}', 'getClientID', function(clientID) { yaCID = clientID; }); return yaCID; }
Для старых счётчиков
function(){ var clientid = yaCounter{{id-счетчика}}.getClientID(); return clientid; }
вместо {{id-счетчика}} надо вписать свой ID счётчика от Метрики.