Как настроить GA4 с Google Consent Mode v2
С марта 2024 года Google требует Consent Mode v2 от рекламодателей, которые работают с пользователями в ЕЭЗ и Великобритании, а законы о конфиденциальности требуют, чтобы отслеживание ждало согласия. Сделанная правильно, аналитика продолжает работать с соблюдением конфиденциальности. Сделанная неправильно, она либо отслеживает незаконно, либо теряет данные. Вот правильный порядок действий.
Что делает Consent Mode v2
Consent Mode сообщает Google-тегам, на что посетитель дал согласие, через четыре сигнала: analytics_storage, ad_storage и два добавленных в v2 — ad_user_data и ad_personalization. Пока сигнал имеет значение denied, теги не устанавливают cookie для этой цели; в режиме advanced они всё равно отправляют запросы без cookie, которые Google использует для моделирования конверсий.
Шаг 1: задайте значение по умолчанию до загрузки любого тега
Значение по умолчанию должно выполниться до загрузки gtag.js или Google Tag Manager, в начале <head>:
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
analytics_storage: 'denied',
functionality_storage: 'granted',
security_storage: 'granted',
wait_for_update: 500
});
</script>
Создайте этот блок вместе с тегом GA4 в правильном порядке с помощью Google Tag Snippet Generator.
Шаг 2: обновите согласие из баннера
Когда посетитель делает выбор, отправьте обновление только с тем, что он принял, и запомните выбор для следующего визита:
function onConsent(choice) { // e.g. { analytics: true, marketing: false }
gtag('consent', 'update', {
analytics_storage: choice.analytics ? 'granted' : 'denied',
ad_storage: choice.marketing ? 'granted' : 'denied',
ad_user_data: choice.marketing ? 'granted' : 'denied',
ad_personalization: choice.marketing ? 'granted' : 'denied'
});
localStorage.setItem('consent', JSON.stringify(choice));
}
При последующих загрузках страницы вызовите то же обновление сразу после значения по умолчанию, до срабатывания тегов. Платформа управления согласием (Cookiebot, OneTrust, Usercentrics и другие) может сделать это за вас. Или создайте баннер с блокировкой скриптов с помощью Cookie Consent Banner Generator.
Шаг 3: регионы (необязательно)
Более строгие значения по умолчанию можно применять только там, где это требует закон. Для этого добавьте список region, например ЕЭЗ, Великобританию и Швейцарию, а для остальных стран задайте предоставление по умолчанию. Уточните у юридического консультанта, какие регионы относятся к вашему бизнесу.
Шаг 4: проверьте, что всё работает
- Откройте сайт в приватном окне и не нажимайте на баннер. Cookie
_gaне должно быть, а запросы к Google должны содержатьgcs=G100. - Примите всё. Запросы должны перейти на
gcs=G111, и появится cookie_ga. - Отклоните всё и перезагрузите страницу: ничего снова не должно устанавливаться.
Consent Mode Checker делает это автоматически: он загружает страницу в реальном браузере, читает состояние согласия и перечисляет каждый трекер, который срабатывает до и после согласия. Используйте Tracking Tag Checker, чтобы увидеть, какие теги страница вообще загружает.
Частые ошибки
- Задание значения по умолчанию после тега GA4: первый хит отправляется до того, как становится известно согласие.
- Пропуск
ad_user_dataиad_personalization: это всё ещё Consent Mode v1. - Жёстко прописанные пиксели Meta, TikTok или LinkedIn вне потока согласия. Consent Mode управляет только тегами Google, поэтому блокируйте остальные пиксели, пока не получено согласие на маркетинг.
- Отправка пользовательских событий до получения согласия. Создавайте их с помощью GA4 Event Generator и отправляйте через gtag, чтобы согласие применялось.