GDPR: управление согласием пользователей
1) Цель и область
Создать единый, проверяемый и удобный для пользователя процесс управления согласием и коммуникационными предпочтениями, совместимый с GDPR и ePrivacy, применимый ко всем поверхностям: веб, мобильные приложения/SDK, e-mail/SMS/push, аффилиатные лендинги, стримы/соцсети, вендорские теги.
2) Базовые принципы
Свободное, конкретное, информированное и однозначное выражение воли (без пресса/условности доступа).
Раздельность целей: аналитика, персонализация, маркетинг, геолокация, A/B-тесты, сторонние теги — отдельные тумблеры.
Отзыв так же прост, как согласие. Никаких «квестов» для отказа.
Отсутствие темных паттернов. Никаких визуальных перекосов/локеров.
Доказуемость. Логи, версии текстов, скриншоты UI-варианта, хэши политик.
Минимизация и приватность по умолчанию.
3) Правовые основания (короткий справочник)
Art. 6(1)(a) Согласие: маркетинг, персонализация, аналитика с идентификаторами, небезусловные cookies/SDK.
Art. 6(1)(b) Договор: операции, необходимые для предоставления услуги (строго необходимые cookies).
Art. 6(1)(f) Законный интерес (LIA): ограниченные измерения производительности при сильных гарантиях и праве возражения.
Art. 8 Дети: возраст для согласия ребенка — порог по стране; при несовершеннолетних — запрет маркетинга.
Art. 9 Особые категории: биометрия/здоровье — вне маркетинга; отдельные правовые основания/запреты.
ePrivacy: хранение/доступ к устройству (cookies/local storage/SDK) — только «строго необходимые» без согласия; остальные — по согласию.
4) Роли и RACI
DPO/Head of Compliance — политика, DPIA, контроль жалоб/рисков. (A)
Legal — тексты, локализация требований, матрица оснований. (R)
Product/UX — баннеры/преференс-центр, анти-dark-patterns. (R)
Engineering/CMP Owner — интеграции CMP/SDK, API, версии, GPC/DNT. (R)
CRM/Marketing — сегментация по флагам согласий, suppression. (R)
Data/Analytics — режимы де-идентификации, ограничения трекинга. (C)
InfoSec — шифрование, ключи, RBAC/ABAC к логам согласий. (C)
Internal Audit — выборки доказательств, CAPA. (C)
5) Таксономия согласий и предпочтений
Функциональные (без согласия): строго необходимые (аутентификация, корзина, баланс, защита от фрода).
По согласию (раздельные тумблеры):1. Аналитика (идентификаторы/кросс-девайс)
2. Персонализация контента/игр
3. Маркетинг (e-mail/SMS/push/in-app/телематика) — каналы раздельно
4. Ремаркетинг/Ads (включая пиксели/SDK третьих лиц)
5. Геолокация нестрогая (город/регион)
6. A/B-тестирование (если использует идентификаторы)
7. Аффилиатные теги/партнерские пиксели
6) UX-паттерны CMP (веб/мобайл)
Первый слой (баннер): краткая цель + «Принять все», «Отклонить все», «Настроить» — одинаковая заметность.
Второй слой (панель): тумблеры по категориям и разворот «Подробнее» (вендоры, цели, сроки).
Преференс-центр (в аккаунте): каналы маркетинга (e-mail/SMS/push/телефон) — раздельно; ссылка «Отписаться от всего».
Отзыв/изменение: в 1–2 клика с любого экрана; не меняет доступ к обязательным функциям.
Доступность: контраст, клавиатура, screen-reader, локали.
GPC/“Do Not Track”: глобальный сигнал трактуется как отклонить все, кроме строго необходимых.
Мобильный SDK: in-app CMP + системные разрешения (OS prompts) → синхронизация с серверным профилем.
7) IAB TCF 2.2 (каркас внедрения)
Поддержка стека целей/особенностей, списка вендоров, string TC на стороне клиента.
Сохранение TC-строки, версии, вендор-листа; маппинг в наши флаги.
Блокировка тэгов/SDK до получения TC (prior consent).
Уважение статуса “Deny All” и пермиссий по вендорам.
Для non-TCF рынков — «кастомная» CMP с тем же UX и журналированием.
8) Несовершеннолетние и уязвимые
Если возраст < порога рынка — отсутствуют маркетинговые каналы и персонализация; аналитика — только строго необходимая/PII-free.
Проверка возраста до загрузки маркетинговых SDK/пикселей.
SE/RG-флаги: при самоисключении — принудительный marketing suppression независимо от согласия.
9) Приватность, хранение и ретенция
Модель минимизации: хранить факты действий (accept/deny/withdraw), версии текстов, TC-строку/хэши, а не «сырые» cookie-ид.
Ретенция: пока действует цель/отношения + сроки по рынку (обычно ≤ 24 мес без активности для маркетинга).
Доступ: RBAC, неизменяемые журналы (WORM), время — в UTC.
Удаление: отзыв → немедленный stop-processing; cron чистит неиспользуемые id/SDK-кэши.
10) Данные и доказательства (минимальная модель)
consent_id, user_id/device_id, market, locale,
ui_variant_id, policy_version, tcf_string, vendors[],
purpose_id, lawful_basis{consent contract legit_interest},
status{accept deny withdraw}, source{web app email sdk api},
captured_at_utc, ip_hash, ua_hash, gpc{true false},
evidence{banner_screenshot_id, copy_hash}, expires_at
Артефакты: хэш текста политики и баннера, скриншот варианта, список активных тэгов/SDK в момент согласия.
Связи: `consent_id` ↔ события CRM/Ads для трассируемости suppression.
11) API/SDK и блокировка тэгов
Edge/CMP-SDK: до выбора — грузим только строго необходимые скрипты.
Server-Side API:- `GET /consents?user_id=...`
- `POST /consents` (create/withdraw)
- `POST /marketing/preferences` (канальные флаги)
- `POST /gpc/signal`
- Tag Manager Guards: правила «fire if consent.purpose.marketing == true».
- E-mail/SMS: рассылки только по `marketing.email == true` и «double opt-in» (при необходимости рынка).
12) Совместимость с CRM/Ads/Аффилиатами
Suppression-потоки: отзыв → обновление suppression в CRM, Ads, аффилиат-фидах (batch + near-real-time).
UTM/постбеки: передавать только техпараметры; согласие не «перекидывается» партнерам без отдельной правовой базы.
Аффилиаты: обязаны отображать тот же CMP/дисклеймер; без этого лиды не квалифицируются.
13) Процессы и кейсы
Отзыв через письмо: в каждом e-mail «Unsubscribe all» и «Настроить». Отписка — мгновенно, подтверждение на странице/в письме.
DSAR/обращения: показать текущие флаги согласий, журнал действий; экспорт без PII третьих лиц.
Изменение целей: новая цель → новый запрос согласия (не «ретроактивно»).
A/B-тест: изменение UI CMP — версия/скрин в артефакты, аудит на отсутствие темных паттернов.
Инциденты: неправильная загрузка тега без согласия → немедленный takedown, аудит логов, CAPA.
14) KPI/KRI и дашборд
Opt-in Rate по целям/рынкам/устройствам
Withdraw/Change Rate и медиана «Time-to-Withdraw-Apply»
GPC Honor Rate (доля корректно обработанных GPC-сигналов)
Tag Firing Violations (запуски при отсутствии согласия)
Suppression Integrity (маркетинг при отзыве = 0)
Complaint Rate и Regulatory Findings
Auditability Score (% записей с полным пакетом артефактов)
15) Чек-листы
Перед запуском
- Матрица оснований и целей согласована (Legal/DPO).
- CMP поддерживает «Отклонить все», GPC, локали.
- Tag Manager блокирует все не-необходимые теги до согласия.
- Преференс-центр с каналами (e-mail/SMS/push/телефон).
- Связь с CRM/Ads/аффилиатами для suppression.
- Версии текстов/скриншоты в WORM.
В операциях
- Мониторинг нарушений firing-правил и GPC.
- DSAR отвечает текущими флагами и журналом.
- Жалобы и инциденты — SLA и CAPA.
Аудит/улучшения
- Квартальные выборки записей на полноту доказательств.
- A/B-ревью CMP на темные паттерны.
- Обновление локалей/правовых текстов.
16) Шаблоны (быстрые вставки)
A) Текст первого слоя (баннер):[Отклонить все] [Настроить] [Принять все]
17) Технический каркас и события
События: `consent_banner_shown`, `consent_given/denied/withdrawn`, `gpc_detected`, `tag_fired_blocked`, `marketing_unsubscribed`, `dsar_fulfilled`.
Фичи: автоматическое чтение GPC; SDK-гейты; server-side consent cache; integrity-проверки Tag Manager; экспорт «PII-free» для аналитики.
Тесты в CI/CD: линтер блокировки тегов, миграции схем версий, скрин-тесты CMP.
18) Риски и профилактика
Неполное блокирование тегов. → Правила в Tag Manager «deny by default».
Зависимость от вендоров. → Список вендоров/целей/юрисдикций, DPA и аудит.
Темные паттерны. → Дизайн-ревью и контроль равноценности кнопок.
Отсутствие доказательств. → Скриншоты, хэши текстов, WORM-журналы.
Несовпадение статусов в CRM/Ads. → Единый сервис suppression + ежедневные сверки.
19) 30-дневный план внедрения
Неделя 1
1. Утвердить матрицу целей/оснований и тексты (локали).
2. Выбрать/настроить CMP (TCF 2.2 + кастомные цели).
3. Специфицировать модель данных и артефактов, включить WORM.
Неделя 2
4. Интегрировать CMP/SDK, Tag Manager «deny by default», GPC.
5. Построить преференс-центр и API suppression для CRM/Ads.
6. Подготовить A/B-варианты баннера, скрин-фиксацию.
Неделя 3
7. Пилот 10–20% трафика: замер Opt-in/Withdraw/GPC Honor.
8. Ретро по жалобам/инцидентам; правки UX/текстов.
9. Подключить аффилиатов к обязательному CMP-слою.
Неделя 4
10. Полный релиз; включить дашборд KPI/KRI и алерты.
11. Квартальный план аудитов и CAPA.
12. План v1.1: серверный consent cache, автоматические отчеты по рынкам.
20) Связанные разделы
Проверка возраста и возрастные фильтры
Рекламные стандарты и запреты / Дисклеймеры и правдивость рекламы
Прозрачность бонусных условий
Комплаенс аффилиатов и партнеров
Локализация данных по юрисдикциям
Ответственная игра и лимиты / Самоисключение / Reality Checks
Регуляторные отчеты и форматы данных / Внутренний и внешний аудит