GDPR и аналогичные законы о защите персональных данных требуют получать согласие пользователя перед установкой необязательных cookies. Отсутствие корректного механизма согласия грозит штрафами и блокировками со стороны регуляторов.
Проверить cookies вашего сайта можно с помощью Cookie Analyzer на rechecker.ru.
Какие cookies требуют согласия
Строго необходимые (без согласия)
Cookies, без которых сайт не может выполнять основные функции:
- Сессия авторизации
- Корзина в интернет-магазине
- Настройки языка/региона
- Защита от CSRF
- Балансировка нагрузки
Требующие согласия
- Аналитика (Google Analytics, Яндекс.Метрика)
- Рекламные и ретаргетинговые cookies
- Социальные виджеты (кнопки «Поделиться»)
- Чат-виджеты с трекингом
- Любые cookies для профилирования и таргетинга
Элементы согласия по GDPR
Согласие должно быть:
- Свободным — без давления и скрытых условий
- Информированным — пользователь понимает, на что даёт согласие
- Конкретным — по категориям (аналитика, маркетинг, предпочтения)
- Недвусмысленным — явное действие (клик, галочка), не предзаполненное
- Легко отзываемым — возможность отказаться так же просто, как согласиться
Баннер согласия: что должно быть
Минимальный набор
- Краткое описание использования cookies
- Ссылка на политику конфиденциальности
- Кнопки «Принять» и «Отклонить» (или «Настроить»)
- Возможность изменить выбор позже (в футере, настройках)
Расширенный вариант
- Разделение по категориям: необходимые, аналитика, маркетинг, предпочтения
- Переключатели для каждой категории
- Сохранение выбора в cookie с разумным сроком (например, 12 месяцев)
Consent Mode (Google)
Google Consent Mode v2 позволяет запускать теги (Analytics, Ads) с учётом согласия:
gtag('consent', 'default', {
'analytics_storage': 'denied',
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied'
});
// После согласия пользователя
gtag('consent', 'update', {
'analytics_storage': 'granted',
'ad_storage': 'granted',
'ad_user_data': 'granted',
'ad_personalization': 'granted'
});
До обновления consent скрипты аналитики и рекламы не должны загружаться или должны работать в анонимном режиме.
Хранение доказательств согласия
Рекомендуется фиксировать:
- Время согласия
- Версию текста/политики
- IP (если допустимо по политике)
- Идентификатор сессии
Это может понадобиться при проверках. Реализация — в логах, БД или через CMP (Consent Management Platform).
Пример простого баннера (HTML/JS)
<div id="cookie-banner" class="cookie-banner">
<p>Мы используем cookies для аналитики и улучшения сайта.
<a href="/privacy">Политика конфиденциальности</a></p>
<button onclick="acceptCookies()">Принять все</button>
<button onclick="rejectCookies()">Только необходимые</button>
<button onclick="showSettings()">Настроить</button>
</div>
<script>
function acceptCookies() {
setConsent({ analytics: true, marketing: true });
document.getElementById('cookie-banner').style.display = 'none';
// Загрузить аналитику
}
function rejectCookies() {
setConsent({ analytics: false, marketing: false });
document.getElementById('cookie-banner').style.display = 'none';
}
function setConsent(prefs) {
localStorage.setItem('cookie_consent', JSON.stringify({
...prefs,
timestamp: Date.now()
}));
}
</script>
Интеграция с Google Tag Manager
- Создайте переменные на основе cookie или localStorage с согласием
- Настройте триггеры: загрузка тегов только при
analytics_storage = granted - Используйте Consent Mode или кастомные триггеры
Политика конфиденциальности
В политике должны быть:
- Список используемых cookies по категориям
- Цели использования
- Срок хранения
- Способы отзыва согласия
- Ссылки на политики третьих сторон (Google, Facebook и т.д.)
Регулярная проверка
Cookies меняются при обновлении сайта и интеграций. Периодически проверяйте:
- Cookie Analyzer — список cookies, атрибуты, соответствие GDPR
- Security Headers — заголовки, влияющие на безопасность
Связь с безопасностью cookies
Техническая настройка атрибутов (Secure, HttpOnly, SameSite) описана в Безопасность cookie: Secure, HttpOnly, SameSite атрибуты.