Рассмотрим, как получить 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 счётчика от Метрики.

