Яндекс Метрика и 152-ФЗ: как запускать счётчик только после согласия
Счётчик Метрики стоит почти на каждом коммерческом сайте, и почти везде он запускается в первую же долю секунды — раньше, чем посетитель увидит cookie-баннер. Разберём, почему это проблема, как это проверить и как настроить запуск только после согласия.
Почему Метрика — это обработка персональных данных
Счётчик записывает в cookie идентификаторы посетителя (_ym_uid, _ym_d), получает IP-адрес, данные браузера и историю действий на сайте. По этим данным посетителя можно выделить среди других, поэтому такие сведения могут считаться персональными данными. Надёжное основание для их сбора — согласие. Согласие должно быть конкретным, предметным, информированным, сознательным и однозначным (ч. 1 ст. 9 152-ФЗ).
Отдельной статьи именно про cookie в законе нет — требование вытекает из общих правил о согласии, ст. 9 закона. Поэтому плашка «Продолжая пользоваться сайтом, вы соглашаетесь…» не решает задачу: к моменту, когда человек её прочитал, счётчик уже отправил данные.
Как проверить свой сайт за две минуты
- Откройте окно в режиме инкогнито — так у браузера нет сохранённых согласий.
- Нажмите
F12и откройте вкладку Network («Сеть»). - В поле фильтра введите
mc.yandex. - Откройте свой сайт и ничего не нажимайте, даже кнопки баннера.
- Если в списке появились запросы
tag.jsилиwatch— счётчик работает до согласия.
Повторите то же для googletagmanager, vk.com, top-fwz1.mail.ru и сервисов коллтрекинга.
Три способа запускать Метрику после согласия
1. Вручную: тег с type="text/plain"
Браузер не выполняет скрипт, у которого тип text/plain. Библиотека баннера после согласия заменяет тег на исполняемый:
<script type="text/plain" data-category="analytics">
(function(m,e,t,r,i,k,a){ … })(window, document, "script",
"https://mc.yandex.ru/metrika/tag.js", "ym");
ym(XXXXXXXX, "init", { webvisor: true });
</script>
Плюсы: бесплатно, полный контроль. Минусы: каждый новый счётчик и пиксель нужно переделывать руками; если тема или плагин сами вставляют Метрику, ручная правка не поможет.
2. Через Google Tag Manager с режимом согласия
Счётчики переносятся в GTM, а их запуск привязывается к событию согласия. Плюсы: гибкость. Минусы: сам контейнер GTM — это запрос к Google до согласия; нужен человек, который поддерживает контейнер; трекеры, вставленные мимо GTM, остаются без контроля.
3. Плагином, который переписывает HTML на сервере
Плагин находит теги трекеров в готовой странице и переводит их в text/plain до отдачи браузеру. Плюсы: ловит трекеры, вставленные темой, конструктором и другими плагинами, работает с кешем страниц. Минусы: плагин нужно проверить на совместимость с оптимизаторами JavaScript — они умеют склеивать скрипты и обходить блокировку.
Так работает «Согласно»: блокировка на сервере, журнал согласий в базе сайта, проверенная совместимость с кешем.
Что будет со статистикой
Метрика продолжит считать тех, кто согласился на аналитические cookie. Остальные посетители в отчёты не попадут — данные станут честнее, но объём визитов уменьшится. Долю согласившихся заранее предсказать нельзя: она зависит от аудитории и текста баннера. Если в коде темы есть вызовы целей ym(…, 'reachGoal', …), позаботьтесь, чтобы они не ломались у отказавшихся: нужна заглушка функции ym.
Чек-лист из 7 пунктов
- До клика по баннеру в Network нет запросов к
mc.yandex. - В баннере равнозначные кнопки «Принять» и «Только необходимые».
- После «Только необходимые» счётчик так и не запускается.
- После «Принять» счётчик запускается без перезагрузки страницы.
- Посетитель может изменить решение — ссылка или кнопка «Настройки cookie».
- При отказе удаляются cookie
_ym_*. - Каждое решение записывается в журнал на сервере с версией текста.
Не хочется проверять самому? Пришлите адрес сайта — бесплатно покажем, какие трекеры запускаются до согласия, и что исправить.
Проверить сайт бесплатноИсточник: Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных». Статья не является юридической консультацией.