Перейти к содержимому
ГлавнаяСкрипты/first-party-cookie-keeper

Восстановление кук _ga и _fbp в Safari ITP через GTM

Защита от 7-дневного сброса кук в Safari (ITP). Копирует _ga и _fbp в localStorage и возвращает их, когда посетитель Safari приходит снова.

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>

Как это работает

  1. Сохраняет значения кук _ga и _fbp в localStorage.
  2. При возврате пользователя на 8+ день восстанавливает куки до инициализации аналитических скриптов.
  3. Обеспечивает корректную склейку сессий для продуктов с циклом сделки длиннее 7 дней.

Инструкция по установке

  1. Создайте Custom HTML тег в GTM.
  2. Назначьте триггер «Consent Initialization - All Pages» с приоритетом 100.
  3. Опубликуйте контейнер.

Частые вопросы

Как это соотносится с согласием пользователя?

Тег лишь дублирует идентификаторы, которые аналитика уже установила, поэтому наследует то состояние согласия, при котором они появились: запускайте его после триггера согласия, а не до. Соответствует ли это конкретному регулятору — вопрос к вашим юристам, а не к этой странице.

Нужен скрипт под вашу задачу?

Пишем скрипты Google Ads, настраиваем server-side GA4 и собираем отчётность под конкретные вопросы бизнеса.