Мне нужно на лендинге узнать client id из гугл.аналитики, чтобы подставить это значение в скрытое поле формы и передать потом в CRM.
И столкнулся с интересной проблемой. При первом заходе пользователя, кука не считывается и client_id возвращается пустым.
Гугл.аналитика подключается через GTM. Сам код скрипта для считывния куки размещаю в теле страницы. Пробовал его тоже помещать в GTM и запускать после того, как сработает скрипт аналитики. Но тоже не помогает особо...
Что я делаю не так? Где собака порылась?
<script>
//берем client_id из кукисов аналитики.
function Gcid(){
// функция для получения cookie по имени
function getCookie(name){
var matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
));
return matches ? decodeURIComponent(matches[1]) : undefined;
}
// исходное значение cookie с именем _ga
var cidLong = getCookie('_ga');
// делим на части используя .
var tmp = cidLong.split('.');
// берем 3 и 4 фрагмент и склеиваем
var cid = tmp[2] + '.' + tmp[3];
// возвращаем значение
return cid;
}
//конец кода client_id из аналитики
alert (Gcid());
</script>
Может надо какую-то задержку ставить на считывание? Или какой-то еще трюк использовать?
UPD. Сам код рабочий и считывает client_id. Но если очистить куки и обновить страничку, то тогда ничего не считывается, хотя аналитика записывае client_id уже при первом посещении.