Этот гайд для продавцов Shopify, которые выбирают между базовым и расширенным Consent Mode v2, и для тех, у кого баннер блокирует теги, но сигнал не отправляется. В гайде я сравниваю работу трёх вариантов: что уходит из браузера до выбора, как Customer Privacy API Shopify передаёт решение и что потом показывают GA4 и Google Ads.
Гайд не ранжирует режимы и инструменты и не определяет ваши юридические обязательства: этим занимается юрист по защите данных. Речь о технической реализации, это не юридическая консультация. Цен вендоров здесь нет; цены на CMP смотрите на страницах цен самих вендоров.
Что на самом деле отправляет базовый Consent Mode v2 до выбора?
В базовом режиме тег Google не загружается, пока посетитель не ответит на баннер, поэтому до этого момента Google не получает ничего, даже состояния согласия по умолчанию, а при отказе не получает ничего вообще. После согласия тег загружается и отправляет состояния согласия по умолчанию и обновлённые.
В Shopify нужно согласовать работу двух механизмов: баннер или CMP записывает решение через Customer Privacy API, а загрузчик тегов читает его до загрузки тега Google. Они независимы, и сбой появляется, когда они расходятся: CMP записывает выбор, а тег Google при этом загружает сниппет темы, тег приложения или web pixel.
Ограничение заложено в сам режим: Google указывает, что в базовом режиме моделирование конверсий в Google Ads переходит на общую модель.
Что отправляет расширенный Consent Mode v2 до выбора?
Расширенный режим загружает тег Google при открытии страницы с запрещёнными значениями согласия по умолчанию. Пока согласие отклонено, тег отправляет пинги без cookie, но не полное измерение, и переходит к полному измерению и cookie только после согласия.
Google описывает три вида пингов без cookie при отклонённом согласии: пинги состояния согласия с каждой страницы, где включён consent mode, пинги key events и пинги Google Analytics.
В этих пингах мало данных, но «без cookie» не значит «без идентификаторов». По описанию Google, в них есть функциональные данные (временная метка, user agent, referrer) и агрегированные или неидентифицирующие: признак наличия параметров рекламного клика на текущей или предыдущей странице (GCLID или DCLID), булево значение состояния согласия и случайное число, которое генерируется при каждой загрузке страницы. Google указывает, что при отклонённом ad_storage новые рекламные cookie и идентификаторы устройства не записываются и не читаются, а продукты Ads усекают IP-адреса при сборе. Однако полный URL страницы вместе с параметрами клика по рекламе всё равно собирается. ads_data_redaction скрывает эти идентификаторы в пингах согласия и key events и в URL страниц, где они есть.
Состояние согласия передаётся в параметрах запроса. Согласно документации Google, gcs содержит ad_storage и analytics_storage, а gcd отправляется всегда, независимо от того, активен ли consent mode.
Расширенный режим также включает моделирование конверсий Google Ads для конкретного рекламодателя. У поведенческого моделирования GA4 свои требования, это отдельный продукт: consent mode на каждой странице; теги, которые во всех случаях загружаются раньше диалога согласия; не менее 1000 событий в день при отклонённом analytics_storage в течение не менее 7 дней; не менее 1000 ежедневных пользователей, отправляющих события с предоставленным согласием, не менее 7 дней из предыдущих 28. Выполнение этих условий не гарантирует допуск: у модели есть собственные проверки качества. Диагностика конверсий Google Ads различает «Consent mode is implemented» и «Consent mode is implemented and modeling is active», а для Ads Google называет порог в 700 кликов за 7 дней.
В Shopify тот же Customer Privacy API доступен как JavaScript API витрины, а сопоставление делается иначе: CMP переводит свои цели в типы согласия Google и отправляет обновление, когда посетитель делает выбор. Web pixels работают в отдельном контексте выполнения (strict для пикселей приложений, lax для кастомных пикселей): пиксель читает init.customerPrivacy и подписывается на visitorConsentCollected. Менеджер пикселей Shopify запускает пиксель, только если разрешение посетителя покрывает все заявленные цели. Поэтому пиксель, который ждёт разрешения, не может отправить пинг Google до согласия. Такие пинги приходят от тега Google в документе витрины. Google указывает, что теги Google внутри кастомного пикселя Shopify не поддерживаются как способ внедрения.
Что будет, если не использовать consent mode вообще?
Баннер, который блокирует теги Google, но не вызывает API согласия, не даёт Google проверить выбор посетителя; в рекомендациях Google для ЕЭЗ сказано, что это может привести к потере данных. Оба режима consent mode как раз и нужны, чтобы это исправить.
В той же документации сказано, что рекламодатели должны собирать согласие конечных пользователей из ЕЭЗ и передавать сигналы в Google, чтобы и дальше использовать соответствующие теги для измерения, персонализации и ремаркетинга; без действующих сигналов эти функции для трафика из ЕЭЗ ограничены. В разделе Consent settings GA4 для каждого потока данных видно, приходят ли сигналы рекламы и поведенческой аналитики.
Поэтому отсутствие consent mode влияет на измерение: оба режима предназначены, чтобы передавать недостающие сигналы согласия.
Сравнение вариантов
Таблица сравнивает три состояния по критериям, от которых зависит работа большинства настроек в Shopify. Она описывает компромиссы, а не ранжирует варианты. Ни один вариант не чинит событие покупки, сломанное по другой причине.
Сравнительная таблица: прокрутите вбок, чтобы увидеть все столбцы
| Критерий | Базовый Consent Mode v2 | Расширенный Consent Mode v2 | Без consent mode (только блокировка через CMP) |
|---|---|---|---|
| Источник событий | Тег подставляется только после выбора посетителя | Тег загружается при открытии страницы, значения по умолчанию запрещены | Решает загрузчик или CMP; API согласия не вызывается |
| Покрытие покупок и возвратов | Ни один режим не настраивает отправку покупок и возвратов; покупку должна отправлять ваша тема, приложение или пиксель, а возвратам нужен свой путь через данные заказов | Отправка событий та же; consent mode лишь определяет, когда можно отправлять полные данные измерения | Отправка событий та же, но события доходят до Google без состояния согласия |
| Дедупликация | Наследуется от вашего пути покупки в Shopify; режим её не меняет | Так же | Так же |
| Обработка согласия | Теги удерживаются до согласия; состояния отправляются после согласия | Значения по умолчанию запрещены, обновление при выборе, пинги при отказе | Записывается в CMP, Google о нём не извещается |
| Управление и куда идут данные | Продавец управляет загрузкой тегов; до согласия в Google не попадает ничего | Продавец управляет значениями по умолчанию и обновлениями; пока согласие отклонено, в Google приходят запросы без cookie | Блокировкой управляет CMP; Google получает запросы без состояния согласия |
| Зависимость и привязка к вендору | Зависит от загрузчика CMP и вашей собственной блокировки | Зависит от того, как CMP сопоставляет цели с типами согласия Google | Целиком зависит от CMP |
| Нагрузка на сопровождение | Перепроверять блокировку при смене загрузчика или CMP | Перепроверять значения по умолчанию, обновления и региональную логику | Нужно построить только блокировку в CMP; функции для ЕЭЗ остаются ограниченными |
| Кому подходит | Магазинам, которые не станут загружать тег Google заранее | Магазинам, которым нужны допуск к моделированию и охват ЕЭЗ | Магазинам, готовым потерять измерение Google в ЕЭЗ |
Таблица решений
Найдите свою ситуацию и начните с соответствующего варианта. Это отправные точки для типичных случаев, а не правила.
Сравнительная таблица: прокрутите вбок, чтобы увидеть все столбцы
| Если ваша ситуация … | Выбирайте … |
|---|---|
| Посетители из ЕЭЗ составляют заметную долю трафика, и вам нужно моделирование конверсий Google Ads для конкретного рекламодателя | Расширенный: базовый не отправляет сигнал до согласия и моделирует по общей модели Google |
| Вы хотите, чтобы поведенческое моделирование GA4 было доступно | Расширенный: Google требует, чтобы теги во всех случаях загружались раньше баннера |
| Ни один запрос к Google не должен уходить до выбора | Базовый Consent Mode v2 |
| Вы используете базовый режим и хотите знать, какое моделирование остаётся | Общая модель конверсий Google Ads; расширенный нужен, только если требуется модель для конкретного рекламодателя |
| CMP записывает согласие, а Google не получает сигнала | Внедрить consent mode; базовый режим годится как первый шаг |
| Событие покупки уже сломано или считается дважды | Ни один: сначала исправьте путь покупки |
| Вы не знаете, что Google получает сейчас | Проверьте значения по умолчанию и обновление, прежде чем выбирать режим |
Когда какой вариант не подходит
Базовый режим теряет глубину моделирования, расширенный отправляет пинги без cookie до выбора, а отказ от consent mode ставит под угрозу доступность функций в ЕЭЗ.
Не выбирайте базовый режим, если вам нужно поведенческое моделирование GA4 (по его требованиям теги во всех случаях должны загружаться раньше диалога) или если общей модели Ads не хватает для ваших ставок в ЕЭЗ. Базовый режим поддерживает общую модель конверсий Google Ads.
Не выбирайте расширенный режим, если ваша юридическая позиция запрещает любые запросы к Google до выбора; если ваш CMP не умеет сопоставлять цели со всеми четырьмя типами согласия Google; или если никто не может проверить значения по умолчанию и обновление: ошибка расширенного режима может остаться незаметной, когда обновление так и не срабатывает.
Не оставайтесь без consent mode, если вы рекламируетесь пользователям из ЕЭЗ, нуждаетесь там в аудиториях или ремаркетинге или считаете, что «баннер блокирует теги» равносильно consent mode.
Как я проверяю это на реальных внедрениях
Проверка охватывает то, что страница задаёт до любого тега, что меняется после согласия, что сообщает каждая платформа и сходятся ли покупки с заказами.
- Прочитайте значения по умолчанию в Tag Assistant. Убедитесь, что все четыре параметра (
ad_storage,ad_user_data,ad_personalization,analytics_storage) отклонены до запуска тегов. - Дайте согласие и прочитайте обновление. Убедитесь, что все четыре предоставлены, затем посмотрите, какие теги сработали, а какие были заблокированы. Если обновления нет, ищите причину в подключении CMP.
- Изучите запросы. Убедитесь, что состояние согласия есть в параметрах запроса, что расширенный режим отправляет запрос с отклонённым состоянием до выбора, а базовый не отправляет ничего. Повторите с имитацией местоположения в ЕЭЗ.
- Прочитайте, что сообщают платформы. В диагностике конверсий Google Ads различайте «Consent mode is implemented» и «Consent mode is implemented and modeling is active», учитывая задержку до двух недель, которую называет документация. GA4 DebugView показывает поступающие события в реальном времени.
- Проверьте настройку Shopify. Определите, в каком контексте выполнения работает каждый тег: Customer Privacy API и тег Google относятся к документу витрины, а web pixel находится в собственной песочнице, читает
init.customerPrivacyи подписывается наvisitorConsentCollected. Пиксель, который Shopify ещё не запустил, не может быть источником пинга до согласия. Если работают и события Meta, Test Events в Events Manager должен показать, что пиксель подчиняется той же блокировке. - Сверьте с заказами. Сравните покупки GA4 с выгрузкой заказов Shopify за закрытый период стандартным методом сверки по каждому заказу. Consent mode меняет качество сигнала, но не способ сверки: реальный разрыв виден в сверке заказов.
Типичные сбои
Consent mode может сломаться в подключении, даже когда сама модель в порядке: значение по умолчанию задано слишком поздно, обновление не срабатывает, региональное значение по умолчанию противоречит баннеру или CMP записывает выбор, который не читает ни один тег.
- Значение по умолчанию задано после того, как тег уже сработал, поэтому consent mode не влияет на уже отправленный запрос.
- Обновление вызвано в момент выгрузки страницы, поэтому браузер отменяет запрос и предоставленное согласие не доходит до Google.
- Выбор не сохраняется, поэтому посетитель, давший согласие, на следующей странице снова попадает в запрещённое значение по умолчанию.
- Обновления нет вообще: баннер записывает решение, а тег сохраняет состояние по умолчанию независимо от выбора.
- Региональной логики нет или она противоречива, поэтому значения по умолчанию для ЕЭЗ распространяются на остальной трафик или противоречат баннеру.
- Неполное сопоставление целей либо два пути загрузки тега Google работают одновременно и загружают теги с разными значениями по умолчанию.
Ограничения
Consent mode меняет то, что получает Google и что он может смоделировать. Он не подтверждает показатель без сверки, не возвращает трафик, от которого посетитель отказался, и не заменяет юридическую консультацию; каждый режим ограничен выбором посетителя и защитой в браузере.
Модельные данные рассчитаны, а не получены прямым наблюдением. Google указывает, что поведенческое моделирование включается, только когда уверенность в качестве модели высока, а если трафика с согласием недостаточно, чтобы обучить модель, события пользователей, отказавшихся от согласия, не попадают в отчёты вообще. Часть функций GA4 его не включает никогда, в том числе аудитории, user explorer, отчёты по удержанию, прогнозные метрики и экспорт в BigQuery. В отчётах моделирование применяется к метрикам пользователей, сессий и новых пользователей, но не к подсчёту событий, таких как page_view.
Песочница пикселей Shopify и документ витрины работают как разные контексты выполнения: пиксель, который видит согласие, и тег Google, который на него реагирует, не одно и то же. Поэтому они могут разойтись, если заявленные цели, сопоставление в CMP и значения по умолчанию тега перестали совпадать. Ни один consent mode не устраняет расхождения атрибуции между GA4, Google Ads и заказами Shopify: они по-разному считают показатели и относят их к датам.
Альтернативы
Если причина не в выборе режима, выбирайте решение по задаче: серверная доставка при потерях при передаче, сверка при расхождении платформ и аудит, когда вы не знаете, что отправляется.
Саму работу с согласием покрывает услуга по Consent Mode v2 (интеграция CMP, блокировка с учётом региона, серверная передача согласия), а статья базы знаний о Consent Mode v2 определяет сигналы и типы согласия. Если запросы теряются после согласия, а не до него, это проблема передачи данных. В этом случае нужен серверный трекинг.
Если платформы просто расходятся между собой, начните с гайда почему выручка GA4 не совпадает с Shopify. Если блокировка по согласию относит обычные сессии не к той группе, смотрите трафик Unassigned и проверку трафика Unassigned в GA4. Если вы вообще не понимаете, что отправляется, это аудит трекинга.
Если гайд не решил вопрос25 000 ₽
Я провожу эту сверку на вашем магазине в режиме только чтения, за 25 000 ₽: письменный вывод через два рабочих дня после старта.
Источники
- Google: Set up consent mode on websitesdevelopers.google.com
- Google: Consent mode overview (basic vs advanced)developers.google.com
- Google: About consent modesupport.google.com
- Google: Verify consent mode implementationsupport.google.com
- Google: Updates to consent mode for traffic in the EEAsupport.google.com
- GA4: Behavioral modeling for consent modesupport.google.com
- GA4: Verify and update consent settingssupport.google.com
- Google: Troubleshoot consent mode with Tag Assistantdevelopers.google.com
- Shopify: Customer Privacy APIshopify.dev
- Shopify: Web Pixels API: pixel privacyshopify.dev
- Shopify: Web Pixels APIshopify.dev
- Google: Migrate your Google tags with the Google & YouTube app on Shopifysupport.google.com