Что подготовить до начала

  • Доступ к шаблону сайта, админке CMS или менеджеру тегов — туда, где подключены счётчики.
  • Список сервисов, которые использует маркетинг: Яндекс Метрика, VK Пиксель, Top.Mail.Ru, онлайн-чат, коллтрекинг.
  • Номер счётчика Метрики и коды пикселей — они понадобятся, чтобы перенести их под управление баннера.
  • Адрес страницы с политикой обработки персональных данных. Если политики нет, начните с генератора политики.
  • Человека, который будет обновлять баннер, когда маркетинг подключит новый сервис.

Результат работы — баннер, который показывается при первом визите, запоминает выбор, запускает необязательные скрипты только после согласия и даёт изменить решение по ссылке «Настройки cookie» в подвале. Зачем это нужно с точки зрения 152‑ФЗ, разобрано в статье Cookie и 152‑ФЗ.

Напишите тексты баннера и панели настроек

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

Короткий баннер для сайта с Метрикой

«Мы используем файлы cookie и Яндекс Метрику, чтобы понимать, как улучшить сайт. Аналитика включится только с вашего согласия. Подробнее — в политике обработки персональных данных».

Баннер с настройками для магазина

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

Описания категорий в панели

  • «Необходимые. Нужны для работы сайта: корзина, вход в личный кабинет, защита форм. Отключить нельзя».
  • «Аналитические. Помогают понять, какие страницы полезны посетителям. Сервис: Яндекс Метрика».
  • «Рекламные. Позволяют показывать вам наши предложения на других сайтах. Сервис: VK Пиксель».

Формулировки «для улучшения пользовательского опыта» без названия сервисов посетителю ничего не объясняют. Согласие по ст. 9 152‑ФЗ должно быть конкретным и информированным, поэтому называйте сервисы.

Продумайте кнопки и поведение

  • «Принять» и «Только необходимые» одного размера и сопоставимой заметности. Серая ссылка «отказаться» мелким шрифтом рядом с яркой кнопкой подталкивает к согласию.
  • «Настроить» открывает панель, где все необязательные категории по умолчанию выключены.
  • Закрытие крестиком не включает счётчики.
  • Баннер не закрывает весь экран и кнопки формы или корзины на телефоне.
  • В подвале есть ссылка «Настройки cookie», которая снова открывает баннер.
  • Выбор сохраняется вместе с датой и версией настроек. При добавлении нового сервиса версия растёт и баннер показывается снова.

Выберите способ внедрения

Способы сделать cookie-баннер
СпособКому подходитБлокирует ли счётчикиНа что обратить внимание
Свой кодСайтам на собственном движке, когда есть разработчикДа, если так написанПолный контроль; нужно самим поддерживать список сервисов
Генератор cookie-баннераСайтам на любом движке, куда можно вставить HTMLДа, Метрику загружает только после «Принять»Две кнопки без категорий; пиксели добавляют в ту же функцию загрузки
Встроенная функция конструктораСайтам на Тильде и других конструкторахСчётчики из настроек сайта — да; вставленные вручную — только после разметкиВ Тильде выбор по категориям даёт блок T972, блоки T657, T886, T887 только уведомляют
Плагин WordPress или модуль 1С-БитриксСайтам на CMS без своего разработчикаЗависит от плагина: часть управляет только Метрикой или только уведомляетПроверяйте блокировку в DevTools, дату обновления и откуда грузятся файлы плагина
Облачная платформа управления согласиямиКрупным сайтам с десятками теговОбычно да, с автоматическим сканированиемМногие платформы иностранные: скрипт и журнал согласий хранятся за рубежом

Как выбрать плагин или модуль

  • Блокирует ли он скрипты до согласия или только показывает плашку.
  • Какие скрипты контролирует: только Метрику, счётчики из своих настроек или любой код.
  • Есть ли категории и ссылка для изменения выбора.
  • Где хранится выбор посетителя и ведётся ли журнал согласий.
  • Не подгружает ли сам плагин шрифты и скрипты с иностранных серверов.
  • Когда плагин обновлялся в последний раз и совместим ли с вашей версией CMS.

Тильда: как подключить счётчик вручную

Счётчики, подключённые в настройках сайта Тильды, блок T972 включает сам после согласия. Если код Метрики или пикселя вставлен в HTML-блок или в раздел Head, его нужно разметить: у тега script поставить тип text/plain и атрибут data-tilda-cookie-type со значением analytics, advertising или custom. Иначе скрипт выполнится сразу.

Сделайте cookie-баннер, который работает

Метрика загрузится только после согласия, а отказаться так же просто, как согласиться.

Открыть генератор

Настройте загрузку скриптов после согласия

Главное правило: код аналитики и рекламы не выполняется до выбора посетителя. Стандартный код Метрики в разделе head срабатывает при загрузке страницы, ставит cookie _ym_uid и отправляет первый запрос раньше, чем посетитель увидит баннер.

  • Функция загрузки. Код счётчиков убирают из шаблона и оформляют функцией, которую вызывает кнопка «Принять». При повторном визите баннер читает сохранённый выбор и вызывает ту же функцию сразу. Флаг внутри функции не даёт загрузить счётчик дважды.
  • Отложенные теги. Необязательным скриптам ставят тип text/plain и пометку категории; браузер их не исполняет. После согласия баннер создаёт из них обычные скрипты.
  • Менеджер тегов. Баннер передаёт событие согласия, а теги срабатывают только по нему.
  • Заглушки для виджетов. Видео, карты и кнопки соцсетей заменяют картинкой с кнопкой «Загрузить», которая подгружает iframe по клику.
  • Цели и события. Вызовы reachGoal до загрузки счётчика складывают в очередь и отправляют после инициализации, иначе они теряются.

Генератор cookie-баннера собирает готовый HTML и JavaScript: баннер с двумя кнопками, сохранение выбора в локальном хранилище браузера, загрузку Метрики только после «Принять» и функцию openCookieSettings для ссылки в подвале. Если кроме Метрики есть пиксели, добавьте их код в ту же функцию загрузки.

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

Обновите политику

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

Проверьте в DevTools, что счётчики не грузятся до согласия

Перед проверкой отключите блокировщик рекламы: он сам режет запросы к счётчикам, и сломанный баннер будет выглядеть рабочим.

  1. Откройте сайт в новом окне инкогнито и нажмите F12. Во вкладке Network включите Preserve log и обновите страницу.
  2. Не трогая баннер, введите в фильтр mc.yandex, затем vk.com, mail.ru, google. Запросов к счётчикам быть не должно.
  3. Во вкладке Application → Cookies и Local storage проверьте, что нет _ym_uid, _ym_d и cookie рекламных сервисов.
  4. Нажмите «Только необходимые» и перейдите на две-три страницы. Запросы к счётчикам так и не появляются.
  5. Закройте окно, откройте новое инкогнито и нажмите «Принять». Появляются запросы к mc.yandex.ru и cookie Метрики, при переходе на другую страницу баннер не всплывает.
  6. Нажмите «Настройки cookie» в подвале, смените выбор на отказ, перезагрузите страницу: счётчики больше не загружаются.
  7. Повторите проверку на телефоне или в режиме эмуляции мобильного устройства: баннер не закрывает кнопки и форму.

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

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

  • Баннер только уведомляет: одна кнопка «Согласен», счётчики грузятся сразу. Такой баннер не меняет обработку данных — разбор в статье «Cookie-баннер без иллюзий».
  • Метрику убрали из шаблона, но она осталась в менеджере тегов или в модуле CMS и грузится оттуда.
  • Баннер блокирует Метрику, но пропускает VK Пиксель, видео и чат.
  • Выбор не сохраняется, и баннер всплывает на каждой странице.
  • Нет ссылки «Настройки cookie»: передумать посетитель не может.
  • Список сервисов в баннере и политике не совпадает с тем, что видно в Network.

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

Можно ли обойтись без баннера?

Да, если на сайте только технические cookie: сессия, корзина, авторизация. Их достаточно описать в политике. Как только появляются Метрика, пиксели или сторонние виджеты, нужен баннер с выбором.

Где хранить выбор посетителя: в cookie или в localStorage?

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

Можно ли использовать Google Tag Manager для управления согласием?

Технически да, но сам контейнер загружается с серверов Google, а через него часто подключают иностранные сервисы. Это добавляет вопрос трансграничной передачи. Сайтам с несколькими счётчиками проще управлять загрузкой из скрипта баннера.

Влияет ли cookie-баннер на SEO и конверсию?

Компактный баннер внизу экрана не мешает индексации и почти не влияет на заявки. Проблемы создают полноэкранные окна, которые закрывают контент и кнопки, и баннеры, которые сдвигают вёрстку при появлении.

Что делать с ботами Яндекса, если Метрика грузится после согласия?

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

← Все материалы