Cookies и согласие (CMP)
CMP (Consent Management Platform) — это баннер согласия на cookies плюс механика, которая реально блокирует сторонние скрипты до того, как посетитель нажал «Принять». Одной «плашки внизу экрана» для GDPR недостаточно: до согласия аналитика и рекламные пиксели не должны выполняться вовсе.
Наш CMP работает и на нашей витрине, и на вашем собственном сайте — одним и тем же кодом.
Где настраивается:
- Маркетинг → «Мой сайт» → карточка «Cookies и согласие» (для внешнего сайта);
- либо Сайт → «Настроить сайт» → секция «Cookies и согласие (CMP)» (для нашей витрины).
Как включить#
- Вставьте на сайт код установки из раздела «Мой сайт» — cookie-баннер грузится первым из всех виджетов, чтобы остальные скрипты увидели уже принятое решение.
- Включите тумблер виджета.
- Запустите сканер — он соберёт список cookies вашего сайта.
- Опубликуйте страницу «Политика cookies» или укажите ссылку на свою.
Баннер сам определяет язык страницы и показывается на нём — переводы на 45 языков уже готовы.
Для WordPress есть отдельный плагин Cenaly Consent: ставите его в своей админке WP, нажимаете «Подключить», выбираете локацию в открывшемся окне — тег и настройки прилетают сами, вставлять код руками не нужно.
Сколько это стоит#
Сам баннер и блокировка трекеров бесплатны на любом тарифе — и на нашей витрине, и на вашем собственном сайте. Соответствие закону не продаётся кусками: 45 языков, автоблокировка, Consent Mode v2, центр предпочтений и hosted-страница «Политика cookies» входят в платформу.
Отдельно продаётся уровень «Cookies Pro» — карточка «Cookies и согласие» в Магазине приложений, 9 $ в месяц или 90 $ в год на локацию. Это не доступ к разделу, а масштаб сервиса: более глубокий и частый скан сайта (включая закрытые разделы), длинный журнал согласий с выгрузкой-доказательством, свои правила по странам, полная настройка дизайна и тексты-оверрайды по языкам, снятие бейджа «Работает на Cenaly». Актуальный состав уровня и цена — на самой карточке в магазине.
ИИ-разметка нераспознанных cookies в уровень не входит и отдельно не продаётся: она доступна на любом уровне, а каждый вызов оплачивается с ИИ-баланса аккаунта. На брендах в облаке Yandex (cenaly.ru) сканера и журнала согласий нет (см. ниже), поэтому их часть уровня там не работает.
Категории и что блокируется до согласия#
Четыре стандартные категории:
| Категория | Что в неё попадает | По умолчанию |
|---|---|---|
| Необходимые | Корзина, сессия, безопасность | Всегда включены, отключить нельзя |
| Предпочтения | Язык, валюта, ранее выбранная локация | По решению гостя |
| Статистика | Google Analytics, Яндекс.Метрика, Matomo, Clarity | По решению гостя |
| Маркетинг | Facebook Pixel, VK, TikTok, рекламные пиксели и ремаркетинг | По решению гостя |
Пока согласия нет, скрипты и iframe этих категорий не загружаются: их адреса сверяются со встроенным реестром трекеров, а вы можете добавить свои паттерны. Заблокированный iframe (например, видео с YouTube) показывает заглушку со ссылкой «разрешить».
Дополнительно передаются сигналы согласия рекламным системам: Google Consent Mode v2 (до согласия — режим без cookies), Microsoft UET, Meta (fbq), Clarity Consent API. Учитываются сигналы браузера GPC и Do Not Track.
Срок жизни согласия настраивается (по умолчанию 365 дней, допустимо 30–730), после чего баннер спросит заново. Отказ гостя запоминается — повторно спрашивать при каждом визите мы не будем. Можно включить общее согласие для всех поддоменов и указать ссылку на список сайтов, которые оно покрывает.
Режимы по странам#
Режим — это поведение баннера до того, как гость что-то нажал. Он выбирается так:
- ваше правило для страны гостя (если задано),
- ваш режим по умолчанию,
- встроенная карта стран,
- эвристика по таймзоне браузера.
Страна гостя определяется по IP. ⚠️ Это выбор поведения, которое настроили вы, а не вывод о том, какой закон к вам применим.
Пять режимов#
| Режим | Что происходит до решения гостя | Что видит гость |
|---|---|---|
| opt-in | всё, кроме необходимых, заблокировано | баннер «Принять / Отклонить / Настроить» |
| opt-out | разрешено до явного отказа | баннер + «Do Not Sell or Share»; сигнал браузера GPC или Do Not Track считается автоматическим отказом от маркетинга |
| мягкий | разрешено, ничего не блокируется | информационный баннер |
| уведомление | разрешено | одна строка-сообщение, согласия не спрашиваем |
| скрытый | разрешено | баннера нет вовсе; настройки открываются ссылкой #cenaly-consent на вашем сайте |
Отдельно от режимов есть надстройка «уведомление вместо запроса согласия»: вы её разрешаете, и если отчёт сканера доказал, что вне категории «необходимые» на сайте ничего нет, первый слой сообщает, а не спрашивает. Блокировку она не снимает: появится новый трекер — он всё равно будет заблокирован до разрешения гостя.
Встроенная карта стран#
Применяется, когда вы не задали ни правила для страны, ни своего режима по умолчанию:
- opt-in — 32 страны: 27 стран Евросоюза плюс Исландия, Лихтенштейн и Норвегия (вместе — ЕЭЗ), Великобритания и Швейцария;
- opt-out — США;
- все остальные страны — правила нет: сработает ваш режим по умолчанию, а если и он не задан — эвристика по таймзоне браузера (
Europe/*→ opt-in,America/*→ opt-out, в остальных случаях opt-in). Безопасный дефолт — opt-in.
⚠️ Карта — это наша настройка по умолчанию, а не юридическая классификация стран. Страны, где спрашивать согласие принято, но которых в карте нет (Турция, Россия, Бразилия и десятки других), попадут под ваш дефолт или под эвристику. Нужен конкретный режим в конкретной стране — задайте его правилом, а не полагайтесь на карту.
⚠️ Определение страны по IP есть не везде. На брендах в облаке Yandex (cenaly.ru) эндпоинта гео нет, и виджет сразу падает на эвристику по таймзоне — она грубее: гость из ЕС в поездке по США получит America/* → opt-out. Если для вас это важно, задайте режим по умолчанию явно. Страну семи часовых поясов виджет всё же узнаёт (Москва → RU, Стамбул → TR, Тбилиси → GE, Киев → UA, Лондон → GB, Ереван → AM, Тирана → AL): ваше правило для такой страны сработает и при заданном режиме по умолчанию.
Где настраивается: карточка «Cookies и согласие» → шестерёнка → «Режим согласия по умолчанию» и «Правила по странам» (страна в формате ISO-2 → режим).
Чего режим НЕ делает#
- не выбирает за вас юрисдикцию — какой режим включить в каждой стране, решаете вы (и ваш юрист);
- не меняет тексты документов: набор юридических страниц и их формулировки — отдельный инструмент со своими странами, см. Юридические документы;
- не покрывает мобильные приложения — это скрипт для веб-страниц;
- не выдаёт TCF-строку IAB Europe: если рекламный партнёр требует именно сертифицированный CMP из фреймворка TCF, наш баннер ему не подойдёт. Мы передаём сигналы согласия напрямую — Google Consent Mode v2, Microsoft UET, Meta, Clarity.
Откуда берутся привычные ожидания рынка#
⚖️ Это справочные ориентиры, а не юридическая консультация и не утверждение, что к вам применима та или иная норма. Мы приводим первоисточники, на которые опираемся сами; актуальность и применимость к вашему бизнесу проверяйте с юристом.
| Где | Норма | Что в ней про cookies | Первоисточник |
|---|---|---|---|
| ЕС / ЕЭЗ | Директива 2002/58/EC (ePrivacy), ст. 5(3), плюс национальные имплементации | доступ к устройству пользователя ради не строго необходимых cookies — только с предварительного согласия; строго необходимые — без согласия | eur-lex.europa.eu/eli/dir/2002/58 |
| Франция | рекомендации CNIL по cookies и трекерам | кнопки «Принять» и «Отказаться» должны быть равнозначны по заметности; продолжение навигации согласием не считается | cnil.fr |
| Великобритания | PECR 2003 (с изменениями Data (Use and Access) Act 2025) | необязательные cookies и аналогичные технологии — только по явному активному согласию; преднажатые галочки не годятся | legislation.gov.uk/uksi/2003/2426 |
| США, Калифорния | CCPA/CPRA и регламенты CPPA | модель отказа: opt-out из «продажи/шеринга» и обязательное распознавание сигнала Global Privacy Control. Действует выше порогов (в частности, по выручке) — типовой небольшой бизнес под них может не подпадать | cppa.ca.gov |
| Турция | руководство KVKK по cookies (2022) и решение Kurulu №2022/1358 | необязательные cookies — явное согласие; продолжение просмотра сайта согласием не считается | kvkk.gov.tr |
| Россия | отдельного закона о cookies нет — общие нормы 152-ФЗ, ст. 9 | согласие на обработку персональных данных — явное, отдельное, отзываемое | consultant.ru, 152-ФЗ |
| Грузия | отдельного закона о cookies нет — Закон о защите персональных данных | основание обработки — согласие; технические cookies — информирование | matsne.gov.ge |
Стран в мире больше, чем строк в этой таблице: список неполон намеренно — мы перечисляем только то, чем пользуемся сами при настройке продукта.
Внешний вид и тексты#
- Раскладка: полоса, карточка, модальное окно; позиция — любой из шести вариантов кромки/угла.
- Экран настроек: разворот в карточке или выезжающая боковая панель.
- Палитра по элементам отдельно для светлой и тёмной темы, свой логотип, свой CSS (до 10 КБ).
- Тумблеры кнопок: крестик, «Отклонить всё», «Настроить». Кнопку «Принять» скрыть нельзя, а в opt-in-режиме админка предупредит о рисках, если убрать «Отклонить».
- Категории можно вынести галками прямо на первый слой баннера.
- Любой текст баннера правится по языкам поверх наших переводов.
- Превью в кабинете переключается между desktop, планшетом и мобильным.
- Отдельно настраивается плавающая кнопка «Настройки cookies» (слева/справа/выключена) и список страниц, на которых баннер не показывается.
Сканер cookies и декларация#
⚠️ Сканера нет на брендах в облаке Yandex (cenaly.ru). Там список cookies для декларации ведётся вручную в той же таблице ниже — страница политики остаётся живой, — а уведомления вместо запроса согласия и ИИ-разметки, которые опираются на отчёт скана, нет.
Сканер открывает ваш сайт в браузере и собирает реальные cookies и сторонние сервисы. Каждая страница проходится дважды — без согласия (так видно нарушения prior consent) и с полным согласием (так собирается полная декларация):
- обход по
robots.txt,sitemap.xmlи ссылкам со стартовых страниц, ограничение по числу страниц; - расписание: ежемесячно или еженедельно, в кабинете видна дата следующего скана;
- история сканов — сколько страниц пройдено, сколько cookies найдено и сколько из них новых по сравнению с прошлым разом;
- скан за логином — для страниц личного кабинета;
- ИИ-классификатор: незнакомые cookies получают предложенную категорию с объяснением, вы подтверждаете или меняете. Вызов платный — списывается с ИИ-баланса аккаунта на любом уровне.
Декларация cookies — таблица всех cookies по категориям: имя, поставщик, срок хранения, назначение. Можно добавлять свои записи, править описания и переводы. Из этой же таблицы собирается список для баннера и для страницы политики.
Не путайте сканер с публичной страницей «Проверка сайта»: она доступна без входа в кабинет, но читает только исходный HTML одной страницы — покажет трекеры в коде, наличие баннера согласия и наш тег, а реальные cookies и то, что подгружают скрипты в браузере, не увидит. Это витрина-магнит «посмотреть, что у меня на сайте»; полную декларацию собирает именно сканер выше.
Страница «Политика cookies»#
Ссылка в баннере ведёт либо на вашу существующую страницу, либо на документ, который мы сгенерируем и разместим сами: он собирается из результатов скана, публикуется на 45 языках и обновляется вместе с декларацией — таблица cookies на нём всегда живая.
Если нужны и остальные юридические страницы (политика конфиденциальности, условия, возвраты, доставка) — см. Юридические документы.
Журнал согласий и отчёты#
⚠️ На брендах в облаке Yandex (cenaly.ru) журнал согласий пока не собирается: решения гостей не попадают ни в журнал, ни в тренды, ни в выгрузку CSV. Сам выбор гость по-прежнему делает, и баннер его соблюдает.
Журнал — это доказательство согласия (proof of consent) на случай проверки:
- дата, анонимный идентификатор, выбранные категории, версия политики, страна и язык;
- выгрузка CSV и отдельной записи;
- тренды: принято / отклонено / частично по дням и по странам;
- счётчик показов баннера.
Кнопка «Переспросить всех сейчас» поднимает версию политики — после существенных изменений баннер спросит всех заново.
Ограничения#
- Строгий «prior consent» требует отдельного тега. Через единый загрузчик cookie-баннер поднимается первым из наших виджетов, но чужую аналитику, прибитую в
<head>выше нашего кода, он не опередит. Если нужно, чтобы ни один сторонний скрипт не стартовал до ответа гостя, ставьте тег баннера первой строкой в<head>, до всех остальных. - Сломанный или недоступный конфиг снимает блокировку, а не включает её. Виджет выключен, страница в исключениях, конфиг не прочитался — трекеры на сайте работают как обычно. Держать чужой сайт заблокированным из-за нашего сбоя нельзя, поэтому проверяйте, что баннер действительно показывается.
- Блокируется то, что известно. Скрипты и iframe сверяются со встроенным реестром трекеров; нестандартный или самописный счётчик нужно добавить своим паттерном — иначе он загрузится до согласия.
- Возрастной гейт 18+ — отдельная секция и отдельные тексты. Он выключен по умолчанию, а его надписи есть на английском, русском, грузинском и турецком с падением на английский, тогда как сам баннер говорит на 45 языках: формулировку для своего рынка задавайте своими текстами.
- Покрытие регионов — это настройка, а не сертификация. Встроенная карта знает 32 страны с opt-in и США с opt-out, остальное задаёте вы правилами; проверить соответствие вашей юрисдикции баннер не может и не пытается — подробности и первоисточники в разделе «Режимы по странам».
- Фреймворка TCF (IAB Europe) у нас нет. Если рекламная сеть требует сертифицированный CMP с TCF-строкой, наш баннер ей не подойдёт: мы передаём согласие напрямую — Google Consent Mode v2, Microsoft UET, Meta, Clarity.
- Это веб-баннер. Для мобильных приложений (свои SDK, системные запросы отслеживания) он не предназначен.
- Баннер не заменяет политику. Ссылка на страницу «Политика cookies» (нашу опубликованную или вашу собственную) должна быть заполнена — без неё гостю некуда посмотреть, на что он соглашается.
Устранение неполадок#
Баннера на сайте нет. Тег не вставлен или стоит не на всех страницах шаблона (нажмите «Проверить установку»); в теге чужой data-domain; тумблер виджета выключен; изменения ещё не доехали — файлы виджетов раздаются через CDN с кэшем 5 минут. Тег, который вставляет уже в браузере Google Tag Manager, проверка установки не увидит — это не ошибка, смотрите сайт глазами; полный список таких случаев — «Что проверка установки не видит».
Баннер есть, но трекеры грузятся до согласия. Скорее всего, чужой скрипт стоит в <head> выше нашего тега — переставьте наш тег первым. Второй частый случай — счётчика нет во встроенном реестре: добавьте его адрес своим паттерном.
Баннер показывается снова и снова. Проверьте срок жизни согласия и не была ли переиздана политика: переиздание поднимает версию, и баннер спрашивает заново — так и задумано.
Инструменты диагностики:
- Проверить установку — читаем исходный HTML вашей страницы и говорим, найден ли код и стоит ли он внутри
<head>. - Отправить код разработчику — открывает готовое письмо со сниппетом в вашей почтовой программе.
- Гайд по Google Tag Manager — как поставить баннер тегом GTM.
- Режим отладки: откройте сайт с
?cenaly_consent_debug=1— в консоль пойдут события Consent Mode (default/update) и определённый режим региона, видно, что именно получают Google и другие системы.
Связанные разделы#
- Мой сайт — код установки и остальные виджеты
- Юридические документы — политика конфиденциальности, условия, возвраты
- Аналитика — что видно после согласия
Частые вопросы#
Баннер обязателен? Это вопрос к вашему юристу, а не к нам: обязанность зависит от того, где вы работаете, откуда к вам приходят посетители и какие скрипты стоят на сайте. Со стороны продукта ответ такой: наш баннер умеет пять режимов, по умолчанию в 32 странах ЕЭЗ, Великобритании и Швейцарии включается строгий opt-in, в США — opt-out с «Do Not Sell», в остальных странах поведение задаёте вы. Ориентиры и первоисточники собраны выше, в разделе «Режимы по странам».
Заблокирует ли CMP мою собственную аналитику? До согласия — да, это его работа. Платформенная аналитика при этом продолжает считать визиты в cookieless-режиме Consent Mode v2.
Что будет со старыми согласиями после правки политики? Ничего, пока вы не нажмёте «Переспросить всех сейчас» или не переиздадите политику — тогда версия поднимется и баннер спросит заново.
Работает ли это, если сайт не на нашей платформе? Да — это основной сценарий. Один тег на любом сайте, а для WordPress — плагин Cenaly Consent, который ставит тег за вас.