Перейти к содержимому

ГайдыСогласие9 мин чтения

Consent Mode v2 в Shopify: что базовый и расширенный режимы отправляют до согласия

Что отправляют базовый и расширенный Consent Mode v2 до выбора посетителя магазина на Shopify, как Customer Privacy API передаёт выбор и что затем моделирует Google.

Опубликовано
Проверено
Выбор согласия определяет, какие сигналы можно отправлять.

Daniil MaximkinРазработка продуктов и интеграций

Короткий ответ

Базовый Consent Mode v2 не загружает тег Google, пока посетитель не сделал выбор: до согласия Google ничего не получает и использует общую модель конверсий. Расширенный Consent Mode v2 загружает тег с запрещёнными значениями по умолчанию и продолжает отправлять пинги без cookie, пока согласие отклонено: и до выбора, и после отказа. Эти сигналы дают возможность моделировать конверсии для конкретного рекламодателя. Оба режима подключаются через Customer Privacy API Shopify. Ни один из них не обход согласия и не юридическая консультация.

Даниил

Главное

  • Базовый режим блокирует тег Google, пока не дан ответ на баннер: до выбора в Google не уходит ничего, даже состояние согласия. После согласия тег загружается и отправляет состояния согласия: сначала по умолчанию, затем обновлённые.
  • Расширенный режим загружает тег при открытии страницы с запрещённым согласием по умолчанию и продолжает отправлять пинги без cookie, пока согласие остаётся отклонённым (и до выбора, и после отказа). В пингах есть `gcs` (`ad_storage`, `analytics_storage`) и всегда `gcd`; полное измерение и cookie начинаются после согласия.
  • Google описывает, что расширенный режим даёт моделирование конверсий Google Ads для конкретного рекламодателя, а базовый переходит на общую. Поведенческое моделирование GA4 работает отдельно от моделирования конверсий в Ads: для него тоже нужны теги, загружаемые по правилам расширенного режима, и достаточный объём данных.
  • В Shopify решение записывается через Customer Privacy API, а пиксели его читают. Поэтому сопоставление в CMP, заявленные цели пикселя и значения по умолчанию тега Google должны совпадать, иначе выбор не учитывается.
  • Модельные данные рассчитаны, а не получены прямым наблюдением. Они появляются, только когда выполнены пороги и проверки качества Google, а часть функций GA4 их не включает вообще.
В этом гайде

Этот гайд для продавцов Shopify, которые выбирают между базовым и расширенным Consent Mode v2, и для тех, у кого баннер блокирует теги, но сигнал не отправляется. В гайде я сравниваю работу трёх вариантов: что уходит из браузера до выбора, как Customer Privacy API Shopify передаёт решение и что потом показывают GA4 и Google Ads.

Гайд не ранжирует режимы и инструменты и не определяет ваши юридические обязательства: этим занимается юрист по защите данных. Речь о технической реализации, это не юридическая консультация. Цен вендоров здесь нет; цены на CMP смотрите на страницах цен самих вендоров.

В базовом режиме тег Google не загружается, пока посетитель не ответит на баннер, поэтому до этого момента Google не получает ничего, даже состояния согласия по умолчанию, а при отказе не получает ничего вообще. После согласия тег загружается и отправляет состояния согласия по умолчанию и обновлённые.

В Shopify нужно согласовать работу двух механизмов: баннер или CMP записывает решение через Customer Privacy API, а загрузчик тегов читает его до загрузки тега Google. Они независимы, и сбой появляется, когда они расходятся: CMP записывает выбор, а тег Google при этом загружает сниппет темы, тег приложения или web pixel.

Ограничение заложено в сам режим: Google указывает, что в базовом режиме моделирование конверсий в Google Ads переходит на общую модель.

Расширенный режим загружает тег 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 не поддерживаются как способ внедрения.

Баннер, который блокирует теги 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.

Как я проверяю это на реальных внедрениях

Проверка охватывает то, что страница задаёт до любого тега, что меняется после согласия, что сообщает каждая платформа и сходятся ли покупки с заказами.

  1. Прочитайте значения по умолчанию в Tag Assistant. Убедитесь, что все четыре параметра (ad_storage, ad_user_data, ad_personalization, analytics_storage) отклонены до запуска тегов.
  2. Дайте согласие и прочитайте обновление. Убедитесь, что все четыре предоставлены, затем посмотрите, какие теги сработали, а какие были заблокированы. Если обновления нет, ищите причину в подключении CMP.
  3. Изучите запросы. Убедитесь, что состояние согласия есть в параметрах запроса, что расширенный режим отправляет запрос с отклонённым состоянием до выбора, а базовый не отправляет ничего. Повторите с имитацией местоположения в ЕЭЗ.
  4. Прочитайте, что сообщают платформы. В диагностике конверсий Google Ads различайте «Consent mode is implemented» и «Consent mode is implemented and modeling is active», учитывая задержку до двух недель, которую называет документация. GA4 DebugView показывает поступающие события в реальном времени.
  5. Проверьте настройку Shopify. Определите, в каком контексте выполнения работает каждый тег: Customer Privacy API и тег Google относятся к документу витрины, а web pixel находится в собственной песочнице, читает init.customerPrivacy и подписывается на visitorConsentCollected. Пиксель, который Shopify ещё не запустил, не может быть источником пинга до согласия. Если работают и события Meta, Test Events в Events Manager должен показать, что пиксель подчиняется той же блокировке.
  6. Сверьте с заказами. Сравните покупки 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 ₽: письменный вывод через два рабочих дня после старта.

Вопросы

Вопросы, на которые отвечает этот гайд

Отправляет ли базовый consent mode что-нибудь в Google, пока посетитель не сделал выбор?

Нет. В документации Google сказано, что в базовом режиме теги не загружаются, пока посетитель не ответит на баннер, и до этого ничего не передаётся, даже статус согласия по умолчанию. Если посетитель отказывается, теги остаются заблокированными, и Google по-прежнему ничего не получает. Если посетитель соглашается, теги загружаются и отправляют состояния согласия по умолчанию, а затем обновлённые.

Расширенный consent mode нужен, чтобы отслеживать людей, которые отказались от cookie?

Нет. В расширенном режиме теги загружаются и продолжают отправлять пинги без cookie, пока согласие остаётся отклонённым, в том числе после отказа. Это не значит, что в запросах нет никаких идентификаторов: по описанию Google, в пингах есть функциональные данные (временная метка, user agent, referrer) и агрегированные или неидентифицирующие: признак того, была ли на текущей или предыдущей странице информация о клике по рекламе, булево значение состояния согласия и случайное число, которое генерируется при каждой загрузке страницы. Google также указывает, что при отклонённом `ad_storage` новые рекламные cookie и идентификаторы устройства не записываются, а существующие не читаются, и что продукты Ads усекают IP-адреса при сборе. Но полный URL страницы вместе с параметрами клика по рекламе всё равно собирается, если не включён `ads_data_redaction`. Полное измерение и запись cookie начинаются только после согласия. Речь о технической реализации, это не юридическая консультация.

Почему GA4 показывает больше пользователей, чем сессий с согласием?

Не обязательно из-за моделирования. Разница между пользователями и сессиями может объясняться тем, как считается каждая метрика, а Google указывает, что в отчётах с оценочными данными число пользователей может быть выше, чем в отчётах только с наблюдаемыми данными. Поведенческое моделирование оценивает поведение пользователей, которые отказались от хранилища аналитики, по поведению похожих пользователей, которые согласились, и работает, только когда ресурс соответствует документированным требованиям и проверкам качества Google. Прежде чем списывать разницу на моделирование, проверьте настройку Blended reporting identity и индикатор качества данных в отчёте: вместе они показывают, включены ли оценочные данные о пользователях. Часть функций, в том числе аудитории и экспорт в BigQuery, никогда не включает оценочные данные.

Можно оставить мой CMP и добавить consent mode позже?

Часто да, но порядок важен. CMP должен отправить состояние согласия по умолчанию до того, как сработает любой тег Google, а затем отправить обновление, когда посетитель сделает выбор. Если баннер записывает решение, которое ни один тег не читает, или значение по умолчанию задано после срабатывания тега, выбор не отражается в том, что получает Google. Прежде чем делать выводы о настройке, проверьте значения по умолчанию и обновление в Tag Assistant.

Daniil Maximkin

Здравствуйте, я Даниил.

Я сам разбираюсь в задаче, выполняю работу и передаю результат. Все вопросы вы обсуждаете напрямую со мной. Общаюсь на русском и английском. На испанском могу переписываться с помощью переводчика.

Попробовали и всё равно не выходит?

Опишите задачу

Отвечу в течение одного рабочего дня. Первый ответ бесплатный. Или напишите напрямую: next@taskfordaniel.com

Обсудить задачу

Расскажите, что нужно разработать, исправить или подключить.

Описать задачу next@taskfordaniel.com