Google analytics

Consent Mode v2 в GA4: как настроить

Что такое Consent Mode v2, обязательное требование Google для EEA, basic vs advanced режимы, настройка через GTM и CMP-баннер, проверка и влияние на моделирование конверсий в GA4.

Автор: Андрій Коваленко 10 мин чтения
Содержание

Consent Mode v2 — обновлённая система сигналов Google, обязательная для всех сайтов с EEA-трафиком. С марта 2024 она является требованием Google для сохранения доступа к персонализированной рекламе и моделированию конверсий в GA4 и Google Ads. Без неё — полная слепота для сеансов, где пользователь отказал в cookie.

Эта статья объясняет, как работает Consent Mode v2, чем basic отличается от advanced, и как настроить всё через GTM за 30–40 минут даже без разработчика.

До 2020 года аналитика и реклама Google на сайтах ЕС работали просто: либо пользователь соглашается на cookie — и GA4 записывает полный сеанс, либо отказывает — и вы ничего не знаете об этом посетителе.

Consent Mode меняет эту логику. Вместо бинарного «all or nothing» он позволяет тегам Google работать в ограниченном режиме: без идентификационных данных, без cookie, но с анонимными сигналами. GA4 и Google Ads получают статистическую «тень» от отказавших — и на её основе строят модель.

Consent Mode v2 — второе поколение системы, которое Google анонсировал в ноябре 2023 и сделал обязательным для EEA-трафика с марта 2024. Главное нововведение: два дополнительных сигнала для функций, появившихся после v1.

Всего шесть параметров. Для большинства сайтов критичны четыре:

ПараметрЧто контролирует
analytics_storageGA4-куки, сеансы, pageview
ad_storageрекламные куки Google Ads
ad_user_dataпередача данных пользователей в Google Ads
ad_personalizationремаркетинг и персонализация рекламы
functionality_storageкуки функциональности (язык, настройки)
security_storageзащитные куки (защита от фрода)

Первые два были в v1. ad_user_data и ad_personalization — новые в v2. Именно их отсутствие приводит к отключению персонализированной рекламы для EEA.

Basic vs Advanced: какую реализацию выбрать

Это самый важный выбор, и он напрямую влияет на качество данных в GA4.

Принцип: теги Google не загружаются до получения согласия.

Страница загрузилась → Баннер появился → Пользователь отказал → Теги не запустились
                                         → Пользователь согласился → Теги запустились

Результат для отказавших: ноль данных. GA4 не получает даже анонимных пингов. Modeling не работает. Вы просто не знаете, переходил ли этот человек на другие страницы, совершил ли покупку.

Basic проще реализовать — никакого риска «утечки» данных до согласия. Подходит, если EU-трафик минимален или если юридическая команда настаивает на максимально консервативном подходе.

Принцип: теги Google загружаются сразу со статусом denied, но без идентификационных данных.

Страница загрузилась → Теги GA4/Ads запустились с consent='denied'
                       → Анонимный пинг отправлен (без IP, без cookie, без параметров)
                       → Баннер появился → Отказ: статус остаётся denied
                                          → Согласие: gtag('consent','update') → полные данные

Что попадает в анонимный пинг при denied: только тип события (page_view, session_start), приблизительное местоположение (страна) и тип устройства. Без User ID, без cookie, без URL-параметров.

На основе этих анонимных пингов Google строит conversion modeling — статистическую аппроксимацию конверсий от «отказников». По данным Google, advanced режим восстанавливает от 15% до 40% конверсий, которые были бы полностью невидимы в basic.

Рекомендация: если у вас есть EU-аудитория и вы используете Google Ads — только advanced. Basic — это выбор отказаться от моделирования.

Архитектура реализации через GTM

Настройка Consent Mode v2 через Google Tag Manager состоит из трёх уровней:

  1. CMP (баннер) — получает решение пользователя и пушит его в GTM
  2. GTM Consent Initialization — устанавливает состояние по умолчанию (denied) до любых тегов
  3. GTM Update trigger — обновляет состояние после решения (granted/denied)

Шаг 1. Установить CMP

Выберите сертифицированную CMP из официального реестра Google. Простые варианты для малого и среднего бизнеса:

  • Cookiebot (by Usercentrics) — наиболее распространённый, есть GTM-шаблон, GDPR + ePrivacy
  • CookieYes — бесплатный план до 100 страниц, WordPress-плагин есть
  • Axeptio — хороший UX баннера, французская разработка, есть бесплатный тир

Для WordPress есть отдельный маршрут: плагин Borlabs Cookie или Complianz — они сами интегрируются с GTM и передают consent signals без написания кода вручную.

В GTM есть отдельный тип триггера: Consent Initialization — All Pages. Он срабатывает первым — до любого другого триггера, включая All Pages. Именно здесь нужно установить дефолтное состояние.

Если CMP имеет собственный GTM-шаблон (Cookiebot, OneTrust, CookieYes):

  1. Откройте GTM → Templates → Search Gallery
  2. Найдите шаблон своей CMP (например, «Cookiebot CMP»)
  3. Добавьте тег этого типа, триггер — Consent Initialization — All Pages
  4. Настройте параметры (region, default states) — обычно достаточно дефолтов

Шаблон автоматически: устанавливает denied для всех четырёх параметров до решения, и обновляет на granted после.

Если CMP без GTM-шаблона (или самописный баннер):

Добавьте Custom HTML тег с триггером Consent Initialization:

<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  // Установить дефолтное состояние ДО загрузки любых тегов
  gtag('consent', 'default', {
    'analytics_storage': 'denied',
    'ad_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied',
    'wait_for_update': 500  // мс, ждать обновления от CMP
  });

  // Для non-EEA регионов можно сразу granted
  // gtag('consent', 'default', { ... 'region': ['US', 'CA'] });
</script>

Параметр wait_for_update: 500 указывает GA4 подождать 500 мс на обновление от CMP — это предотвращает отправку пинга с denied для пользователей, которые ещё не успели увидеть баннер, но уже давали согласие (возвращающиеся посетители).

Шаг 3. Обновление после решения пользователя

CMP после получения решения должна пушить в dataLayer событие и состояния. Большинство CMP делают это автоматически. Если ваша CMP поддерживает это нативно — GTM-шаблон от CMP уже обрабатывает обновление.

Если используете собственный баннер — добавьте вызов в callback после принятия согласия:

// После того как пользователь нажал «Принять всё»
function onUserAccept() {
  gtag('consent', 'update', {
    'analytics_storage': 'granted',
    'ad_storage': 'granted',
    'ad_user_data': 'granted',
    'ad_personalization': 'granted'
  });
}

// После «Отклонить всё»
function onUserDeny() {
  gtag('consent', 'update', {
    'analytics_storage': 'denied',
    'ad_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied'
  });
}

Тег gtag('consent', 'update') — это не новый тег GTM, это вызов JS API. CMP-библиотека сама должна его выполнить после решения.

Шаг 4. Проверить теги GA4 и Google Ads

После настройки consent defaults убедитесь, что ваш GA4 Configuration Tag и теги Google Ads в GTM не имеют явных настроек, блокирующих consent. В частности:

  • В GA4 Configuration Tag: «Consent Settings» → «No additional consent checks required» НЕ установлен. GA4 автоматически уважает глобальное состояние consent.
  • В Google Ads Conversion Tag: аналогично, не переопределяйте consent.

Для advanced режима в настройках GA4 Configuration Tag включите:

Advanced Settings → Google Signals Data Collection: Enabled

Это лишь включает функцию Google Signals на уровне тега. Сбор демографических данных от авторизованных Google-пользователей всё равно происходит только для сеансов с analytics_storage='granted' — при denied Signals не активируется (подробнее — в разделе «Google Signals и Consent Mode» ниже).

Настройка региональных правил

Если ваш сайт ориентирован не только на ЕС — имеет смысл установить состояние granted по умолчанию для не-EEA регионов и denied для EEA:

<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  // Глобальный дефолт — разрешено
  gtag('consent', 'default', {
    'analytics_storage': 'granted',
    'ad_storage': 'granted',
    'ad_user_data': 'granted',
    'ad_personalization': 'granted'
  });

  // EEA — запрещено до согласия
  gtag('consent', 'default', {
    'analytics_storage': 'denied',
    'ad_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied',
    'region': [
      'AT','BE','BG','HR','CY','CZ','DK','EE','FI','FR',
      'DE','GR','HU','IE','IT','LV','LT','LU','MT','NL',
      'PL','PT','RO','SK','SI','ES','SE',
      'IS','LI','NO'  // + EEA non-EU
    ],
    'wait_for_update': 500
  });
</script>

Таким образом для украинского, американского или азиатского трафика GA4 продолжает получать полные данные без баннера. Для EEA — стандартная процедура.

Проверка настроек

Способ 1: Google Tag Assistant

  1. Установите расширение Tag Assistant или откройте tagassistant.google.com
  2. Откройте ваш сайт в новой вкладке
  3. В Tag Assistant перейдите в раздел Consent
  4. Должна появиться таблица со статусами всех шести параметров

До принятия решения по баннеру: все четыре параметра — denied. После «Принять всё» — granted.

Способ 2: Chrome DevTools → Network

  1. Откройте DevTools (F12) → вкладка Network
  2. В фильтре введите collect или gtm.js
  3. Перезагрузите страницу до взаимодействия с баннером
  4. Найдите запрос к https://www.google-analytics.com/g/collect
  5. В параметрах запроса найдите gcs= — значение кодирует состояние consent

Значения gcs:

  • G111 — analytics: denied, ads: denied
  • G100 — analytics: denied, ads: denied (без обновления)
  • G1** после согласия — granted состояния

GA4 → Admin (шестерня) → Property → Data collection and modification → Consent settings (раздел Consent Overview, появился в 2024 году).

Показывает по каждому сайту (property): процент сеансов с analytics_storage=granted, ad_storage=granted и т.д. Если видите 0% granted — что-то пошло не так.

В GTM Preview mode consent API может вести себя иначе. Для корректного тестирования:

  1. Откройте сайт через GTM Preview
  2. В Tag Assistant переключитесь на вкладку Consent Overview
  3. Проверьте, что состояние denied фиксируется до баннера и меняется после

Если в Preview не видите consent-теги — возможно, триггер Consent Initialization не настроен или шаблон CMP не опубликован.

Влияние на данные GA4 и моделирование конверсий

После правильного внедрения advanced Consent Mode v2 вы увидите в GA4 несколько изменений.

Что меняется в GA4 Reports

Sessions и Users: реальные числа для EEA уменьшатся, но появятся смоделированные оценки. GA4 не показывает «оригинал + модель» отдельно — итоговые числа уже включают modeling.

Conversions: в GA4 → Reports → Conversions — числа включают смоделированные конверсии. Это может выглядеть как рост относительно предыдущего состояния (где их не было вообще), но на самом деле это возврат к более реалистичной оценке.

Attribution: Google Ads показывает «Modeled conversions» отдельной колонкой в Campaign Reports. Разбивка: реальные конверсии (со согласием) + смоделированные (от anonymous pings).

Реалистичные ожидания от modeling

  • При 20% отказов в баннере: modeling возвращает ~12–18% «потерянных» конверсий
  • При 40% отказов (типично для EU-сайтов): modeling возвращает ~25–35%
  • При 70%+ отказов (консервативный баннер): modeling даёт лишь грубую оценку, точность ниже

Моделирование не заменяет реальные данные. Если конверсия — это покупка на 500 евро, а GA4 «видит» её через модель — это статистическая оценка, не факт транзакции. Для e-commerce всегда сверяйте GA4 конверсии с реальными заказами в CRM/кассовой системе.

Google Signals — функция GA4, позволяющая видеть демографические данные (возраст, пол) и кросс-девайс поведение для авторизованных Google-пользователей.

С Consent Mode v2: Google Signals активируется только для сеансов с analytics_storage=granted. Для сеансов с denied — даже авторизованные Google-пользователи не трекируются через Signals.

Для использования Signals в GA4: Admin → Property Settings → Google Signals → Activate. Плюс убедитесь, что в GA4 Data Settings → Data Collection → «Google signals data collection» — включено.

Типичные ошибки при внедрении

  1. Тег Consent Initialization не первый. Если GA4 Configuration Tag срабатывает до Consent Initialization — он отправляет хит без учёта consent. Убедитесь, что триггер — «Consent Initialization — All Pages», не «All Pages».

  2. Отсутствует wait_for_update. Без него GA4 отправляет анонимный пинг мгновенно, ещё до того как CMP-библиотека успела проверить сохранённое согласие возвращающегося посетителя. Результат: лишние denied пинги от людей, уже давших согласие.

  3. Basic режим принят за advanced. Проверьте: если в Network не видите запросов к google-analytics.com/g/collect до нажатия в баннере — у вас basic.

  4. CMP не синхронизирован с GTM. Некоторые CMP пушат в dataLayer собственные события (например, CookiebotOnAccept), но если GTM-шаблон не установлен или не опубликован — эти события никуда не ведут. Тег обновления consent не срабатывает.

  5. Неправильные коды регионов. Параметр region в gtag('consent','default') принимает ISO 3166-1 alpha-2 коды стран. Частая ошибка: 'EU' вместо перечня стран. Кода 'EU' не существует — нужно перечислить все 30 стран EEA.

  6. Отсутствуют ad_user_data и ad_personalization. Если вы реализовывали Consent Mode v1 ранее, эти два новых параметра v2 могли не попасть в код. Без них Google Ads не получает сигнала и не может персонализировать рекламу для EEA.

  7. Тест только в GTM Preview, не в продакшне. Preview-режим может маскировать проблемы с порядком загрузки скриптов. Всегда проверяйте на live-версии через Tag Assistant.

  8. Баннер отсутствует на некоторых страницах. Если CMP-скрипт загружается только через GTM (не напрямую в <head>), и GTM не срабатывает на определённых страницах (404, AMP, отдельные шаблоны) — на них consent не инициализируется корректно.

Чек-лист внедрения

  • Выбрана и установлена сертифицированная CMP
  • GTM: тег Consent Initialization настроен с триггером «Consent Initialization — All Pages»
  • Дефолтное состояние: analytics_storage, ad_storage, ad_user_data, ad_personalization = denied для EEA
  • Параметр wait_for_update: 500 присутствует
  • CMP обновляет состояние через gtag('consent','update') после решения
  • Tag Assistant показывает denied до баннера и granted после «Принять всё»
  • В GA4 Consent Overview виден ненулевой % granted сеансов
  • Advanced режим подтверждён: анонимные пинги отправляются до взаимодействия с баннером
  • Региональные правила настроены (если есть non-EEA трафик)
  • Google Signals активирован в GA4 (если нужна демография)

Связанные материалы

Pillar:

Настройка GA4:

GTM:

Похожие статьи

Смотрите также

Эту статью пишет и обновляет Андрій Коваленко — без AI-воды и партнёрских ссылок. Заметил устаревший факт или неточность — напиши, перепишу в ту же неделю.

Кто ведёт сайт и почему без AI