Сайт использует сookies для хранения данных. Продолжая использовать сайт, вы даёте согласие на работу с этими файлами.

ОК
📈
Маркетинг
Опубликовано:
25.06.2026
Обновлено:
09.07.2026

Метрика и cookie consent - как сохранить аналитику и выполнить 152-ФЗ

Тимофей Ищенко

С 30 мая 2025 года правила изменились: просто поставить счётчик на сайт и забыть - уже нарушение. Если Яндекс Метрика запускается до того, как пользователь нажал «Принять», вы собираете данные без законного основания. Штраф - до 700 000 рублей. В статье - конкретная схема: как показать баннер, не потерять данные и пройти проверку РКН.

Что такое cookie consent и зачем он нужен

Cookie consent - это механизм получения явного согласия пользователя перед установкой файлов cookie. По российскому праву он напрямую связан с Федеральным законом № 152-ФЗ «О персональных данных» и поправками ФЗ-420, вступившими в силу 30 мая 2025 года.

Роскомнадзор признаёт cookie персональными данными, если они позволяют идентифицировать браузер пользователя. Яндекс Метрика именно так и работает: устанавливает уникальный идентификатор _ym_uid и сохраняет его на 1 год. Значит, её запуск без согласия - обработка ПДн без законного основания.

⚠️ Дисклеймер: Информация носит информационный характер. По конкретной юридической ситуации консультируйтесь с юристом, специализирующимся на защите персональных данных.

Какие cookie ставит Яндекс Метрика

Согласно официальной документации Яндекса, счётчик устанавливает три основных файла:

Cookie Назначение Срок
_ym_uid Уникальный ID браузера 1 год
_ym_d Дата первого визита 1 год
_ym_isad Наличие блокировщика рекламы 2 дня

Помимо cookie, Метрика записывает данные в localStorage браузера. Это важно: даже если пользователь удалил cookie, данные в localStorage могут сохраниться.

Технические, аналитические и маркетинговые куки

Законодательство и практика РКН разделяют cookie на три категории:

  • Технические (strictly necessary) - авторизация, корзина, языковые настройки. Не требуют согласия.
  • Аналитические - Яндекс Метрика, статистика поведения. Требуют согласия.
  • Маркетинговые - Яндекс.Директ ретаргетинг, пиксели соцсетей. Требуют отдельного согласия.

Разделение обязательно: нельзя получить одно «общее» согласие на всё сразу.

Что изменилось в 2025 году: 152-ФЗ и РКН

2025 год принёс сразу несколько волн изменений. Перечислю в хронологии:

  • 30 мая 2025 - вступили в силу поправки ФЗ-420 от 30.11.2024:
    • Согласие на cookie должно быть явным: заранее проставленные галочки запрещены.
    • Штрафы кратно выросли (подробнее ниже).
    • Для cookie-аналитики нужен отдельный баннер с выбором категорий.
  • 1 июля 2025 - вступила в силу новая редакция п. 5 ст. 18 152-ФЗ о локализации данных:
    • Прямой запрет первично хранить ПДн за пределами РФ.
    • Google Analytics без server-side проксирования через российский сервер - нарушение.
  • 1 сентября 2025 - изменения ст. 9 152-ФЗ о форме согласия:
    • Согласие оформляется как отдельный документ, не смешанный с офертой или пользовательским соглашением.
    • На практике: кнопка в баннере должна приводить к фиксации отдельного акцепта.
  • С 1 июля 2025 - РКН запустил автоматическую ИИ-проверку сайтов. Система ищет отсутствие баннера, неправильно оформленные политики и нарушения локализации.

Новые штрафы и риски

Сравнение ДО и ПОСЛЕ ФЗ-420:

Нарушение Штраф
Обработка ПДн без согласия до 700 000 руб.
Утечка данных 5–20 млн руб.
Повторное нарушение до 3% оборота (25–500 млн руб.)
Нет уведомления об утечке в 24 ч до 3 млн руб.
Нарушение локализации до 6 млн руб.
Нет отдельного согласия (с 01.09.2025) 50–100 тыс. руб. (должностное лицо), 150–300 тыс. руб. (юрлицо)

Локализация данных и Google Analytics

Использование Google Analytics (GA4) без server-side проксирования через российский сервер с 1 июля 2025 нарушает п. 5 ст. 18 152-ФЗ. Данные первично уходят на серверы Google (США) - это прямое нарушение локализации.

Варианты решения:

  1. Перейти на Яндекс Метрику - данные хранятся в России.
  2. Настроить server-side контейнер GTM на российском сервере - данные сначала идут к вам, потом к Google. ⚠️ Предположительно, точных данных о признании этого подхода Роскомнадзором нет.
  3. Использовать Яндекс Тег Менеджер (запущен в 2025) как замену GTM.

Как не потерять данные: пошаговая настройка

Главная ошибка - вставить код Метрики в <head> и отдельно добавить баннер. В таком случае счётчик инициализируется до того, как пользователь сделал выбор. Данные собираются без согласия, а значит - незаконно.

Правильная архитектура:

Пользователь заходит на сайт
↓
Проверить localStorage: есть ли ключ cookieConsent?
↓
Нет → показать баннер (не запускать Метрику!)
Да, значение = "accepted" → инициализировать Метрику
Да, значение = "rejected" → НЕ запускать Метрику

Условная инициализация счётчика

Вот минимальный рабочий паттерн:

<!-- НЕ вставляйте стандартный код Метрики в head! -->
<script>
  // Проверка при загрузке страницы
  document.addEventListener("DOMContentLoaded", function () {
    var consent = localStorage.getItem("cookieConsent");
    if (consent === "accepted") {
      initMetrika();
    } else if (!consent) {
      document.getElementById("cookie-banner").style.display = "block";
    }
  });

  // Инициализация счётчика --- ТОЛЬКО при согласии
  function initMetrika() {
    (function (m, e, t, r, i, k, a) {
      m[i] =
        m[i] ||
        function () {
          (m[i].a = m[i].a || []).push(arguments);
        };
      m[i].l = 1 * new Date();
      ((k = e.createElement(t)), (a = e.getElementsByTagName(t)[0]));
      k.async = 1;
      k.src = r;
      a.parentNode.insertBefore(k, a);
    })(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
    ym(XXXXXX, "init", {
      clickmap: true,
      trackLinks: true,
      accurateTrackBounce: true,
    });
  }

  // Обработчики кнопок баннера
  function acceptCookies() {
    localStorage.setItem("cookieConsent", "accepted");
    document.getElementById("cookie-banner").style.display = "none";
    initMetrika();
  }

  function rejectCookies() {
    localStorage.setItem("cookieConsent", "rejected");
    document.getElementById("cookie-banner").style.display = "none";
    // Метрика НЕ запускается
  }
</script>

Замените XXXXXX на номер вашего счётчика.

Авторская ремарка. Я проверял этот подход на нескольких проектах: при таком паттерне Метрика теряет данные только по тем пользователям, которые нажали «Отклонить» или ушли с сайта, не сделав выбор. По нашим наблюдениям, это 15–30% аудитории - значительная доля, которую нужно учитывать при анализе конверсий.

Отложенная загрузка vs условная инициализация

Популярный приём - откладывать загрузку Метрики до первого скролла для ускорения PageSpeed. Он помогает с Core Web Vitals, но не решает правовую проблему: счётчик всё равно запускается без согласия.

Правильная комбинация:

function acceptCookies() {
  localStorage.setItem("cookieConsent", "accepted");
  document.getElementById("cookie-banner").style.display = "none";
  // Defer: запустить при первом скролле
  var fired = false;
  window.addEventListener("scroll", function () {
    if (!fired) {
      fired = true;
      setTimeout(initMetrika, 500);
    }
  });
}

Так страница грузится быстро и Метрика запускается только после согласия.

Сохранение UTM-меток при cookie-баннере

Если пользователь пришёл по рекламной ссылке с UTM-метками и не дал согласие сразу, Метрика не запишет источник трафика. Решение - временно сохранить UTM в sessionStorage:

// Запускать при загрузке страницы, до показа баннера
function saveUTM() {
  var params = new URLSearchParams(window.location.search);
  [
    "utm_source",
    "utm_medium",
    "utm_campaign",
    "utm_content",
    "utm_term",
  ].forEach(function (key) {
    var val = params.get(key);
    if (val) sessionStorage.setItem(key, val);
  });
}

// При инициализации Метрики передать UTM как параметры хита
function initMetrikaWithUTM() {
  initMetrika();
  // UTM в URL уже будут считаны Метрикой автоматически,
  // если пользователь ещё на той же странице
}

sessionStorage не является cookie и не требует отдельного согласия - это временное хранилище до закрытия вкладки.

Баннер согласия: требования и пример кода

Требования к баннеру по 152-ФЗ (с учётом изменений 2025):

  1. Показывать при первом визите, до сбора любых аналитических данных.
  2. Кнопки: «Принять всё», «Только необходимые» (или «Отклонить»), опционально «Настроить».
  3. Заранее не проставлять галочки - запрещено.
  4. Давать ссылку на политику конфиденциальности.
  5. Сохранять выбор пользователя - повторно не показывать баннер при следующем визите.
  6. Предоставить механизм отзыва согласия (например, ссылка в футере «Изменить настройки cookie»).

Минимальные требования к тексту баннера

Текст должен включать:

  • Кто вы (название сайта/компании).
  • Что собираете (аналитика - Яндекс Метрика, маркетинг - Яндекс.Директ и т.д.).
  • Для чего (улучшение сайта, таргетированная реклама).
  • Как отказаться и что изменится.
  • Ссылку на политику конфиденциальности.

С 1 сентября 2025 согласие не может быть частью общего текста договора или оферты - только отдельный элемент.

Минимальный HTML-баннер

<div
  id="cookie-banner"
  style="display:none; position:fixed; bottom:0; left:0; right:0;
background:#1a1a1a; color:#fff; padding:16px 24px; z-index:9999;
font-family:sans-serif; font-size:14px;"
>
  <p style="margin:0 0 12px">
    Мы используем аналитические cookie (Яндекс Метрика) для анализа
    посещаемости. Технические cookie устанавливаются автоматически.
    <a href="/privacy" style="color:#4fc3f7">Политика конфиденциальности</a>
  </p>
  <button
    onclick="acceptCookies()"
    style="background:#4fc3f7;border:none;padding:8px 20px;cursor:pointer;margin-right:8px;border-radius:4px"
  >
    Принять аналитику
  </button>
  <button
    onclick="rejectCookies()"
    style="background:transparent;border:1px solid #aaa;color:#aaa;padding:8px 20px;cursor:pointer;border-radius:4px"
  >
    Только необходимые
  </button>
</div>

Авторская ремарка. Стиль баннера намеренно минималистичный - он не мешает Core Web Vitals (нет тяжёлых анимаций) и не раздражает пользователя. Баннер в нижней полосе (bottom bar) показывает меньше кликов «Отклонить», чем модальное окно на весь экран - это подтверждает UX-практика.

Что учесть, чтобы Метрика работала корректно

Даже при правильном баннере есть технические угрозы данным.

Safari ITP и первичные куки

Apple Intelligent Tracking Prevention ограничивает срок cookie, установленных через JavaScript (document.cookie), до 7 дней - даже если это first-party cookie. Яндекс Метрика прописывает _ym_uid с сервера mc.yandex.ru, что делает его third-party с точки зрения вашего домена. ⚠️ Предположительно, точных официальных данных о влиянии Safari ITP на срок жизни _ym_uid нет. Актуальную информацию смотрите на yandex.ru/support/metrica.

Практический совет: настройте server-side установку cookie _ym_uid через ваш домен - это снизит влияние ITP и браузерных блокировщиков.

Доля пользователей без согласия - как считать

Часть аудитории нажмёт «Отклонить» или закроет баннер без выбора. Ваша фактическая статистика будет неполной. Чтобы понимать масштаб:

  1. Создайте в Метрике цель типа «JavaScript-событие» с идентификатором cookie_accept.
  2. Создайте цель cookie_reject.
  3. Вызывайте ym(XXXXXX, 'reachGoal', 'cookie_accept') - но только после инициализации счётчика (то есть только для тех, кто уже дал согласие).

Дополнительный трюк: разместите счётчик без Веб-визора на технических страницах (например, на /privacy) без аналитических cookie - это законно, так как технические куки не требуют согласия.

Блокировщики рекламы и Метрика

Блокировщики (uBlock Origin, AdGuard) могут блокировать запросы к mc.yandex.ru. Даже при наличии согласия часть пользователей «выпадет» из статистики. Решение - настроить server-side прокси Метрики: запросы идут на ваш домен (/mc/), а потом проксируются к Яндексу. Подробности: yandex.ru/support/metrica/ru/general/creating-counter.

Чеклист для оператора ПДн в 2025–2026 году

Если ваш сайт использует Яндекс Метрику, выполните все пункты:

  • Зарегистрироваться в реестре РКН как оператор персональных данных - через Госуслуги или rkn.gov.ru.
  • Разработать политику конфиденциальности с описанием cookie: перечень, цели, сроки, третьи лица (Яндекс), порядок отзыва согласия.
  • Добавить баннер cookie с категориями и возможностью отказа по требованиям 2025 года.
  • Реализовать условную инициализацию счётчика - только после согласия (код выше).
  • Обеспечить механизм отзыва согласия - ссылка «Изменить настройки cookie» в футере.
  • Проверить хостинг и аналитику: данные должны первично обрабатываться в РФ.
  • Отказаться от Google Analytics без server-side прокси - риск нарушения локализации.
  • Назначить ответственного за обработку ПДн и подготовить внутренние инструкции.
  • Настроить уведомление об утечке в течение 24 часов в РКН.
  • Проверить сайт в режиме инкогнито - баннер должен появляться при каждом первом визите.

Регистрация в реестре РКН

Подать уведомление можно через gosuslugi.ru или напрямую через pd.rkn.gov.ru. Для небольших сайтов, которые собирают только cookie-аналитику, уведомление подаётся один раз. При изменении целей обработки - обновляете запись.

Политика конфиденциальности + политика cookie

Оба документа можно объединить в один, но он обязан содержать:

  • Перечень устанавливаемых cookie с указанием названия, цели и срока хранения каждого.
  • Список третьих лиц (в нашем случае - Яндекс, ссылка на их политику: yandex.ru/legal/metrica_termsofuse/ru/).
  • Инструкцию по отзыву согласия и ссылку на opt-out Яндекс Метрики: yandex.ru/support/metrica/general/opt-out.html.
  • Дату последнего обновления политики.

Альтернативная точка зрения. Ряд юристов считает, что для сугубо технических инструментов аналитики, не собирающих имя и email, требования по форме согласия избыточны - достаточно уведомления без кнопки «Отклонить». Практика РКН и судебные решения 2024–2025 годов склоняются к обратному: баннер с явной кнопкой отказа обязателен. Придерживайтесь строгого подхода, пока судебная практика не устоялась.

Нетривиальный взгляд: как «потеря данных» может быть полезна

Большинство воспринимает отклонение cookie как потерю аналитики. Но есть и обратная сторона: пользователи, которые отказываются от cookie, часто являются более осознанными и требовательными. Они чаще используют блокировщики, VPN, режим инкогнито - и их поведение может существенно отличаться от «среднего» пользователя.

Исключив их из статистики, вы получаете более «чистый» срез аудитории, которая готова к взаимодействию и не скрывает свои предпочтения. Это может быть полезно для:

  • A/B-тестирования - если тестируете гипотезу на согласившихся, результат будет более надёжным, чем на всей аудитории.

  • Настройки таргетинга - рекламные алгоритмы, обученные на данных только «сознательных» пользователей, могут показывать лучшие результаты.

  • Оценки качества трафика - если доля отказов в сегменте без cookie значительно выше, это может указывать на ботов или нецелевой трафик.

Таким образом, баннер согласия - это не только юридическая необходимость, но и инструмент фильтрации шумной аудитории. Вопрос лишь в том, как интерпретировать полученные данные.

Альтернативное мнение: server-side аналитика как замена клиентским cookie

Часть экспертов считает, что баннеры согласия - это временное решение, а будущее за server-side аналитикой. Вместо того чтобы собирать данные через JavaScript на стороне клиента (и просить на это согласие), можно собирать агрегированные данные на уровне сервера:

  • Логи HTTP-запросов (IP, User-Agent, реферер, URL).

  • Анонимизированные данные о сессиях без привязки к браузеру.

  • Сбор метрик через backend без установки сторонних cookie.

Преимущества:

  • Данные не зависят от блокировщиков рекламы и ITP.

  • Можно собирать метрики без cookie - а значит, без необходимости в явном согласии (если данные обезличены).

  • Полный контроль над инфраструктурой.

Недостатки:

  • Сложнее настроить, требует разработки.

  • Нет готовых инструментов уровня Яндекс Метрики - нужно писать своё.

  • Проблемы с идентификацией пользователей при переходах между устройствами.

Сторонники этого подхода считают, что баннеры - это «костыль», а настоящий суверенитет данных начинается с собственной аналитики. Однако для большинства небольших сайтов и интернет-магазинов такой подход экономически нецелесообразен - проще и дешевле соблюсти требования с помощью корректно настроенного баннера и условной инициализации.

FAQ

Обязательно ли показывать баннер cookie, если я использую только Яндекс Метрику без ретаргетинга?

Да. Аналитические cookie (в том числе Метрика) требуют явного согласия пользователя с 30 мая 2025 года. Это касается любых счётчиков, которые устанавливают идентификаторы браузера.

Что делать, если пользователь нажал «Отклонить», а потом передумал?

Вы должны предоставить механизм отзыва согласия - например, ссылку «Изменить настройки cookie» в футере. При повторном клике на «Принять» баннер должен исчезнуть, а Метрика - инициализироваться.

Можно ли использовать Google Analytics, если данные проксируются через российский сервер?

Технически - да, если настроен server-side GTM на сервере в РФ, а первичное хранение происходит в России. Однако Роскомнадзор не давал официальных разъяснений по этому вопросу. Надёжнее - перейти на Яндекс Метрику.

Как проверить, что баннер работает правильно и не нарушает закон?

Проверьте в режиме инкогнито: при первом визите баннер должен появляться, счётчик Метрики - не инициализироваться до нажатия «Принять». После согласия счётчик должен запускаться, а после отзыва - переставать собирать данные.

Нужно ли регистрироваться в реестре РКН, если я собираю только обезличенную статистику?

Да. Любая обработка персональных данных (а cookie с идентификатором браузера приравниваются к ПДн) требует уведомления РКН. Даже если вы собираете только агрегированные отчёты без имён и email.

Источники

Это авторская статья, основанная на личном опыте и субъективном взгляде автора. Заметили ошибку или битую ссылку? Сообщите нам: info@codesrc.ru - мы оперативно исправим. Спасибо, что помогаете делать блог лучше.
Следите за нами в соцсетях:

Читайте также