Проверка сайта на соответствие 152-ФЗ
Практика 152-ФЗ

Cookie-баннер не работает задним числом

Если Яндекс Метрика, рекламный пиксель или другой внешний сервис загрузился вместе со страницей, данные могли уйти до того, как посетитель увидел баннер и сделал выбор.

На сайте появляется уведомление: «Мы используем cookie». Рядом стоят кнопки «Принять» и «Отклонить». Кажется, вопрос закрыт.

Но внешний вид баннера ничего не говорит о том, что происходит в браузере. Если аналитический код уже выполнился, согласие не действует задним числом. Проверять нужно не только текст и кнопки, но и фактическую последовательность загрузки скриптов.

Что происходит при первом открытии страницы

Обычный код аналитики запускается сразу после загрузки сайта. Браузер обращается к внешнему серверу, получает или отправляет идентификаторы и передаёт технические сведения о посещении.

Например, Яндекс объясняет, что код Метрики передаёт сведения о странице и событиях на ней. Из сетевого запроса сервису доступны IP-адрес, адрес страницы, информация о браузере и операционной системе, а также данные из cookie. Это описано в документации «Как работает Метрика».

Cookie в браузере — только один из признаков обработки. Даже если новый файл ещё не появился, сетевой запрос уже может передать сведения внешнему сервису.

Почему последующий клик не исправляет ситуацию

В российском законодательстве нет отдельного закона о cookie-баннерах. Применяются общие правила обработки персональных данных.

Статья 6 закона № 152-ФЗ требует, чтобы у оператора было правовое основание для обработки. Одним из таких оснований является согласие пользователя.

По статье 9 закона № 152-ФЗ согласие должно быть конкретным, предметным, информированным, сознательным и однозначным. Доказывать факт его получения обязан оператор.

Если владелец сайта выбрал согласие как основание для аналитики, логика должна быть последовательной: сначала выбор пользователя, затем загрузка разрешённых скриптов. Иначе возникает вопрос, на каком основании данные обрабатывались между открытием страницы и нажатием кнопки.

Отказ после загрузки тоже не исправляет уже произошедшее. Удаление cookie не отменяет уже отправленные запросы и не отзывает переданные данные с сервера аналитики.

Не каждую cookie нужно блокировать

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

К технически необходимым могут относиться:

  • идентификатор авторизованной сессии;
  • защита от подделки запросов;
  • сохранение корзины;
  • балансировка нагрузки и защита сайта;
  • запись выбора, сделанного в cookie-баннере.

Аналитический идентификатор нельзя считать техническим только потому, что он устанавливается автоматически. Метрика, рекламные пиксели, поведенческая аналитика и необязательные внешние виджеты должны оставаться выключенными, пока пользователь не разрешил соответствующую категорию.

Как должна работать корректная схема

  1. При первом посещении загружаются только необходимые компоненты.
  2. Сайт показывает баннер и объясняет цели обработки.
  3. После согласия подключаются только выбранные категории скриптов.
  4. После отказа аналитика и реклама остаются заблокированными.
  5. Сайт сохраняет решение и позволяет изменить его позднее.

Ссылку «Настройки аналитики» или «Настройки cookie» можно разместить в подвале рядом с политикой обработки персональных данных.

Почему режим denied не всегда означает полную блокировку

Особенно внимательно нужно проверять Google Consent Mode. В базовом режиме теги Google не загружаются до согласия и до выбора пользователя данные не отправляются.

В расширенном режиме теги могут загружаться заранее и передавать сигналы без cookie даже при состоянии denied. Различие между режимами описано в документации Google.

Поэтому одного значения analytics_storage: "denied" недостаточно, если задача состоит в полном отсутствии обращений к аналитическому сервису до согласия. Для этого нужна фактическая блокировка загрузки тега.

Частые ошибки в cookie-баннерах

  • Метрика стоит в <head>, а баннер появляется после запуска счётчика.
  • Продолжение просмотра сайта считается согласием.
  • В баннере есть только кнопка «Принять».
  • Кнопка «Отклонить» меняет интерфейс, но не останавливает скрипты.
  • Отказ удаляет cookie, однако следующие страницы снова запускают аналитику.
  • Политика перечисляет не те сервисы, которые реально работают на сайте.
  • После отзыва согласия аналитика продолжает загружаться.

Как самостоятельно проверить сайт

Проверку лучше проводить в приватном окне браузера, чтобы старое решение не влияло на результат.

  1. Откройте инструменты разработчика и вкладку Network.
  2. Включите сохранение журнала запросов.
  3. Загрузите сайт и ничего не нажимайте в баннере.
  4. Проверьте обращения к доменам аналитики и рекламы.
  5. Во вкладке Application или Storage посмотрите появившиеся cookie.
  6. Нажмите «Отклонить» и повторите проверку в новой чистой сессии.
  7. Отдельно проверьте сценарий согласия.

Для Яндекс Метрики стоит искать запросы к mc.yandex.ru. Для Google — обращения к googletagmanager.com, google-analytics.com и doubleclick.net.

Главный критерий простой: до согласия и после отказа не должно быть запросов к необязательным аналитическим и рекламным сервисам.

Баннер должен управлять сайтом

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

Если баннер только исчезает после клика, а Метрика работает независимо от него, такой интерфейс остаётся декоративным.

Материал носит информационный характер и не заменяет правовое заключение по конкретной схеме обработки персональных данных.