Skip to content
EN

Как отложить Яндекс.Метрику до согласия

Коротко:

Стандартный сниппет Метрики выполняется при загрузке страницы и сразу записывает идентификатор _ym_uid — до любого согласия. Исправление: вынести вызов ym(…, "init", …) из глобального кода в accept-callback баннера согласия. Посетителям, отклонившим баннер, счётчик не инициализируется вовсе. Данные за период «до согласия» при этом не теряются — Метрика начинает сессию с момента инициализации.

Проверить свой сайт →

Почему стандартная вставка — это проблема

Сниппет из кабинета Метрики кладётся в <head> и выполняется до отрисовки страницы: cookie _ym_uid и _ym_d записываются, а первый запрос к mc.yandex.ru уходит раньше, чем посетитель увидел баннер. Именно это фиксирует любая проверка обработки персональных данных: идентификатор передан до согласия.

Инициализация из callback баннера

Универсальный приём — обернуть инициализацию в функцию и вызывать её из обработчика согласия вашего CMP (Cookiebot, CookieYes, самописный баннер — неважно):

function initMetrika() {\n  if (window._metrikaInited) return;\n  window._metrikaInited = true;\n  (function(m,e,t,r,i,k,a){ /* стандартный загрузчик tag.js */ })\n    (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");\n  ym(XXXXXX, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true });\n}\n\n// вызов из вашего баннера:\nconsentBanner.on("accept", initMetrika);\n\n// возвращающийся посетитель, уже давший согласие:\nif (getCookie("analytics_consent") === "1") initMetrika();

Ключевые детали: гард от двойной инициализации; повторный вызов на каждой странице для посетителей с уже сохранённым согласием; и никакого вызова вовсе, если посетитель нажал «Отклонить».

GTM Consent Mode

Если теги управляются через Google Tag Manager, тот же результат даёт Consent Mode: тег Метрики получает условие срабатывания по событию согласия (trigger на custom event consent_analytics_granted, который баннер пушит в dataLayer). Логика та же — тег не срабатывает, пока согласия нет.

Как убедиться, что сработало

Откройте сайт в инкогнито: до нажатия «Принять» в Application → Cookies не должно быть _ym_uid, а в Network — запросов к mc.yandex.ru. После «Принять» — и cookie, и запросы появляются. Сканер соответствия проверяет ровно это автоматически на нескольких страницах и показывает контраст «до/после согласия» в отчёте.

Связанные материалы

Cookie до согласияЧто записывается без разрешения
Баннер согласияЕсть ли равнозначный отказ
Формы ПДнСогласие и политика у формы
ПроекцииОценки по 152-ФЗ и GDPR

Почему нам доверяют

A–F
оценка + 152-ФЗ/GDPR
3
браузерные сессии на страницу
PDF
отчёт с подписью целостности
Free
проверка без регистрации

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

1

Введите адрес сайта

2

Сканер открывает страницы в браузере

3

Получите оценку и список исправлений

Зачем проверять сайт на соответствие 152-ФЗ?

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

Реальный браузер

Три сессии на страницу: без действий, с принятием и с отклонением баннера.

Трекеры и юрисдикция

Каталог сервисов: кому уходят данные посетителей и в какую страну.

Политика в точке сбора

Ссылка на политику и элемент согласия ищутся рядом с формой, а не в футере.

PDF с подписью

Отчёт с HMAC-штампом целостности — можно передать юристу или подрядчику.

Кому это нужно

Бизнес

подготовка к проверке РКН

Юристы

технические факты для заключения

Веб-студии

сдача сайтов клиентам

DevOps

мониторинг регрессий согласия

Частые ошибки

Грузить Метрику до согласияСчётчик, вставленный в , пишет cookie раньше любого баннера. Именно это фиксирует проверка.
Баннер без кнопки «Отклонить»Согласие добровольно, только когда отказаться так же просто, как согласиться.
Политика только в футереПосетитель должен видеть, кому и зачем передаёт данные, в момент передачи — у самой формы.
Проверить один раз и забытьНовый виджет или тег-менеджер тихо добавляет трекеры. Регрессию ловит только повторная проверка.

Лучшие практики

Отложите трекеры до согласияИнициализируйте аналитику из accept-callback CMP, а не при загрузке страницы.
Дайте равнозначный отказКнопки «Принять» и «Отклонить» — одного размера и на одном уровне.
Чекбокс согласия у каждой формыНе отмеченный по умолчанию, со ссылкой на политику обработки рядом.
Включите мониторингСтоячая проверка алертит, когда оценка падает — до того, как это заметит проверяющий.

Следите за соответствием автоматически

Регулярная перепроверка с алертом, если на сайте появились трекеры до согласия.

Зарегистрироваться (FREE)

Больше по теме

Часто задаваемые вопросы

Потеряю ли я статистику?

Частично: визиты посетителей, отклонивших баннер, не попадут в Метрику. Это и есть смысл согласия. Доля отказов обычно 5–15% — остальная статистика сохраняется полностью.

А что с целями и e-commerce?

Все вызовы ym(…, "reachGoal", …) должны проверять, инициализирован ли счётчик. Удобно завести очередь: до инициализации складывать события в массив, после — проиграть их.

Нужно ли то же самое для Top.Mail.Ru и пикселей?

Да. Правило одно для любых счётчиков и пикселей: инициализация — только из accept-callback. Каждый из них пишет свой идентификатор посетителя.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.