GTM Custom HTML Tag (JavaScript)
<script>
(function() {
var COOKIES = ['_ga', '_fbp', '_gcl_au'];
var PREFIX = 'gl_first_party_';
function getCookie(name) {
var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
return match ? match[2] : null;
}
function setCookie(name, val, days) {
var d = new Date();
d.setTime(d.getTime() + (days * 24 * 60 * 60 * 1000));
document.cookie = name + '=' + val + ';path=/;expires=' + d.toUTCString() + ';SameSite=Lax';
}
COOKIES.forEach(function(c) {
var current = getCookie(c);
var saved = null;
try { saved = localStorage.getItem(PREFIX + c); } catch(e) {}
if (current) {
try { localStorage.setItem(PREFIX + c, current); } catch(e) {}
} else if (saved) {
setCookie(c, saved, 365);
}
});
})();
</script>Как это работает
- Сохраняет значения кук
_gaи_fbpвlocalStorage. - При возврате пользователя на 8+ день восстанавливает куки до инициализации аналитических скриптов.
- Обеспечивает корректную склейку сессий для продуктов с циклом сделки длиннее 7 дней.
Инструкция по установке
- Создайте Custom HTML тег в GTM.
- Назначьте триггер «Consent Initialization - All Pages» с приоритетом 100.
- Опубликуйте контейнер.
Частые вопросы
Как это соотносится с согласием пользователя?
Тег лишь дублирует идентификаторы, которые аналитика уже установила, поэтому наследует то состояние согласия, при котором они появились: запускайте его после триггера согласия, а не до. Соответствует ли это конкретному регулятору — вопрос к вашим юристам, а не к этой странице.