Эта страница предназначена для разработчиков, которые используют собственное решение для управления согласием на своем веб-сайте и хотят интегрировать режим согласия. Для ознакомления с режимом согласия прочитайте раздел «Обзор режима согласия» . Если вы используете платформу управления согласием (CMP) для получения согласия пользователя, узнайте больше о том, как настроить режим согласия с помощью CMP .
Вы можете реализовать режим согласия в базовом или расширенном режиме. Ознакомьтесь с рекомендациями вашей компании, чтобы выбрать метод реализации и установить параметры по умолчанию. Узнайте больше о базовом и расширенном режимах согласия .
Прежде чем начать
Перед внедрением режима согласия следует учитывать следующее:
Если вы используете Tag Manager и хотите управлять собственным баннером, рекомендуемый подход — загрузка баннера через контейнер Tag Manager. Для этого необходимо создать шаблон режима согласия . В качестве альтернативы можно использовать шаблон режима согласия из галереи шаблонов сообщества .
Если вы используете gtag.js, убедитесь, что вы установили тег Google на каждой странице вашего сайта. Код режима согласия добавляется на каждую страницу вашего сайта.
Настройте режим согласия
Для настройки режима согласия необходимо:- Перед тем как пользователь даст согласие: установите состояние согласия по умолчанию .
- Обновляйте состояние согласия в зависимости от взаимодействия пользователя с вашими настройками согласия.
Установить состояние согласия по умолчанию
Установите значение по умолчанию для каждого используемого типа согласия . По умолчанию значения режима согласия не заданы.
Рекомендуется ограничить настройки согласия по умолчанию только теми регионами, где вы показываете баннеры согласия посетителям. Это помогает сохранить данные измерений в регионах, где баннеры согласия обязательны, и Google Tag Manager корректирует свое поведение соответствующим образом. Вы также предотвратите потерю данных измерений в регионах, где баннеры согласия отсутствуют или не применяются. См. раздел «Поведение в зависимости от региона» .
gtag.js
Чтобы настроить параметры измерения по умолчанию, вызовите команду gtag('consent', 'default', ...) на каждой странице вашего сайта перед любыми командами, отправляющими данные измерения (например, config или event ).
Например, чтобы установить параметр «Запретить согласие» по умолчанию для всех параметров:
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied'
});
Дополнительно: Интеграция с асинхронными CMP.
Если ваш баннер загружается асинхронно, он может отображаться не всегда до ваших тегов Google. Для обработки таких ситуаций укажите wait_for_update вместе со значением в миллисекундах, чтобы контролировать время ожидания перед отправкой данных.
Например, чтобы по умолчанию запретить использование ad_storage на определенной странице, но разрешить вашей CMP обновлять статус согласия, используйте wait_for_update . В следующем коде значение ad_storage по умолчанию установлено на denied , а инструменту согласия дается 500 миллисекунд на вызов gtag('consent', 'update', ...) до срабатывания тегов:
gtag('consent', 'default', {
'ad_storage': 'denied',
'wait_for_update': 500
});
Менеджер тегов
При использовании Google Tag Manager создайте собственный шаблон, используя API согласия Tag Manager. В качестве отправной точки можно использовать следующий пример .
Для управления состояниями согласия используйте API, специфичные для Tag Manager: setDefaultConsentState и updateConsentState . API gtagSet можно использовать для дополнительной установки параметров ads_data_redaction и URL passthrough.
Обновить состояние согласия
gtag.js
Для отправки статуса согласия пользователя используйте команду update . Поскольку режим согласия не сохраняет выбранные пользователем параметры, обновляйте статус согласия сразу после взаимодействия пользователя с вашим решением для управления согласием. После того, как пользователь даст согласие, сохраните его выбор и вызывайте команду обновления на последующих страницах.
Вы должны убедиться, что для всех типов согласия заданы правильные значения. Для получения полной информации о поддерживаемых типах ознакомьтесь со справочником API .
В следующем примере кода показано, как изменить статус согласия на granted , когда пользователь соглашается со всеми вариантами:
<script>
function allConsentGranted() {
gtag('consent', 'update', {
'ad_user_data': 'granted',
'ad_personalization': 'granted',
'ad_storage': 'granted',
'analytics_storage': 'granted'
});
}
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
...
<button onclick="allConsentGranted()">Yes</button>
...
</body>
Менеджер тегов
При использовании шаблона режима согласия пользовательское согласие должно автоматически обновляться при взаимодействии пользователя с баннером.
Если вы самостоятельно создаете шаблон режима согласия, используйте API-интерфейсы Tag Manager для управления состояниями согласия: setDefaultConsentState и updateConsentState . API gtagSet можно использовать для дополнительной установки параметров ads_data_redaction и URL passthrough.
Пример реализации
В следующем примере по умолчанию для нескольких параметров режима согласия установлено denied . После того, как пользователь укажет свой выбор согласия, соответствующие параметры обновляются до granted .
gtag.js
Порядок выполнения кода здесь имеет решающее значение. Если код обработки согласия вызывается не по порядку, настройки согласия по умолчанию работать не будут . В зависимости от бизнес-требований, конкретные шаги могут различаться, но в целом код должен выполняться в следующем порядке:
Загрузите тег Google. Это ваш код сниппета по умолчанию. Сниппет по умолчанию следует обновить (см. ниже), добавив вызов функции
gtag('consent', 'default', ...).Загрузите ваше решение для управления согласием. Если ваше решение загружается асинхронно, см. раздел «Интеграция с асинхронными платформами управления согласием», чтобы убедиться, что это происходит в правильном порядке.
Если ваше решение для обработки согласия не обрабатывает это, вызовите
gtag('consent', 'update', ...)после того, как пользователь подтвердит свое согласие.
<script>
// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// Set default consent to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied'
});
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID">
</script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'TAG_ID');
</script>
<!-- Create one update function for each consent parameter -->
<script>
function consentGrantedAdStorage() {
gtag('consent', 'update', {
'ad_storage': 'granted'
});
}
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
...
<button onclick="consentGrantedAdStorage">Yes</button>
...
</body>
Менеджер тегов
Для сайтов, использующих Tag Manager, мы рекомендуем использовать CMP (Community Management Plan) для обработки обновлений выбора согласия посетителей. CMP предоставляют шаблоны в галерее шаблонов сообщества для создания тега, управляющего режимом согласия.
Если использование шаблона невозможно, вы можете обновить код на своей странице следующим образом. Порядок кода здесь имеет решающее значение. Если код согласия вызывается не по порядку, настройки согласия по умолчанию работать не будут.
<script>
// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// Set default consent to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied'
});
</script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->
<!-- Create one update function for each consent parameter -->
<script>
function consentGrantedAdStorage() {
gtag('consent', 'update', {
'ad_storage': 'granted'
});
}
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
...
<button onclick="consentGrantedAdStorage()">Yes</button>
...
</body>
Перейти в режим согласия версии 2
В рамках постоянного стремления Google к созданию ориентированной на конфиденциальность экосистемы цифровой рекламы мы усиливаем контроль за соблюдением нашей политики согласия пользователей в ЕС .
Узнайте больше об обновлениях Google, касающихся режима согласия на обработку трафика в Европейской экономической зоне (ЕЭЗ) .
Пользователям в режиме согласия необходимо отправлять два новых параметра в дополнение к ad_storage и analytics_storage :
| Название поля | Допустимые значения | Описание |
|---|---|---|
ad_user_data | 'granted' | 'denied' | Устанавливает согласие на отправку пользовательских данных, связанных с рекламой, в Google. |
ad_personalization | 'granted' | 'denied' | Устанавливает согласие на персонализированную рекламу. |
Дополнительные функции режима согласия
Расширенные функции управления согласием включают в себя возможность:
- С помощью интерфейса тегов Google вы можете указать, с какими сервисами Google вы будете обмениваться данными .
- Задать поведение для географического региона.
- Передавайте информацию о кликах по рекламе, идентификатор клиента и идентификатор сессии в URL-адресах, если пользователи не дали согласия на использование файлов cookie.
- Полностью удалять (редактировать) рекламную информацию, когда пользователи отказываются от согласия на использование рекламных файлов cookie.
Регионально-специфическое поведение
Чтобы установить состояния согласия по умолчанию, применяемые к посетителям из определенных регионов, укажите регион (в соответствии с ISO 3166-2 ) в команде gtag consent default. Использование значений региона позволяет соблюдать региональные правила.
Вы можете установить значения по умолчанию для определенных регионов, а затем установить другое значение по умолчанию для всех остальных регионов. Команда gtag consent default без параметра region устанавливает значение по умолчанию для всех посетителей, не охваченных другой командой, специфичной для региона.
gtag.js
В следующем примере параметр analytics_storage устанавливается в denied для пользователей из Испании и Аляски, а параметр ad_storage — в denied для всех пользователей.
gtag('consent', 'default', { 'analytics_storage': 'denied', 'region': ['ES', 'US-AK'] }); gtag('consent', 'default', { 'ad_storage': 'denied' });
Менеджер тегов
Если вы используете шаблон для создания тега, в нем могут быть элементы управления для настройки поведения в зависимости от региона. Если вы создаете шаблон тега самостоятельно, см. раздел «Создание шаблона режима согласия» для получения дополнительной информации о настройке поведения в зависимости от региона .
Приоритет отдается наиболее специфичному параметру.
Если на одной странице встречаются две команды согласия по умолчанию со значениями для региона и подрегиона, будет действовать та, которая содержит более конкретную информацию о регионе. Например, если для региона US установлено значение ad_storage ad_storage granted , а для региона US-CA - " denied ", то для посетителя из Калифорнии будет действовать более конкретная настройка US-CA. В этом примере это будет означать, что для посетителя из US-CA значение ad_storage будет установлено на denied .
| Область | ad_storage | Поведение |
|---|---|---|
| НАС | 'granted' | Применяется к пользователям в США, которые не находятся в Калифорнии. |
| США-Канада | 'denied' | Применимо к пользователям из США и Канады. |
| Не указано | 'granted' | Используется значение по умолчанию 'granted' . В примере это относится к посетителям, которые находятся за пределами США или в регионе США-Канада. |
Передача информации о кликах по объявлениям, идентификаторах клиентов и идентификаторах сессий в URL-адресах.
Когда пользователь переходит на ваш сайт после клика по рекламе, информация о рекламе может быть добавлена к URL-адресам ваших целевых страниц в качестве параметра запроса. Для повышения точности ключевых событий эта информация обычно хранится в собственных файлах cookie на вашем домене.
Однако, если ad_storage установлен в denied , эта информация не будет сохраняться локально. Для повышения качества измерения кликов по рекламе при denied параметре ad_storage можно дополнительно выбрать передачу информации о кликах по рекламе через параметры URL между страницами с помощью сквозной передачи URL.
Аналогично, если для analytics_storage установлено значение denied , можно использовать сквозную передачу URL-адресов для отправки аналитики на основе событий и сессий (включая ключевые события) без использования файлов cookie между страницами.
Для использования сквозной передачи URL-адреса должны быть соблюдены следующие условия:
- Ваш тег Google учитывает согласие пользователей и присутствует на странице.
- Рекламодатель включил функцию сквозной передачи URL-адреса.
- На странице активирован режим согласия.
- Исходящая ссылка ведет на тот же домен, что и домен текущей страницы.
В URL-адресе присутствует GCLID или DCLID (только для тегов Google Ads и Floodlight).
gtag.js
Чтобы включить эту возможность, установите параметр url_passthrough в true . Добавьте следующую команду в фрагмент кода по умолчанию перед любыми командами config :
gtag('set', 'url_passthrough', true);
Менеджер тегов
Если вы используете шаблон для создания тега, в нем могут быть элементы управления для настройки сквозной передачи URL-адресов. Если вы создаете шаблон тега самостоятельно, см. раздел «Создание шаблона режима согласия» для получения дополнительной информации о настройке сквозной передачи URL-адресов с помощью API пользовательских шаблонов gtagSet .
Или же вы можете использовать следующие параметры для настройки этого параметра в тегах Conversion Linker и analytics.
Для тегов Google Ads и Floodlight :
Для включения этой функции создайте (или используйте существующий) тег конверсионной ссылки и убедитесь, что установлен флажок «Включить ссылки для всех URL-адресов страниц» . Инструкции по созданию тега конверсионной ссылки см. в разделе «Базовая настройка» .
Для тегов Google Analytics :
В Диспетчере тегов перейдите в раздел «Поля для настройки» и выберите **Конфигурация тегов**.
Поля для настройки**.
- Когда раздел «Поля для настройки» будет развернут, нажмите «Добавить строку» .
- В поле "Имя поля" введите
url_passthrough. - В поле " Значение " введите "true".
- Сохраните тег и опубликуйте.
В качестве альтернативы вы можете установить параметр
url_passthroughвtrueна каждой странице вашего сайта перед выполнением команды установки GTM.window.dataLayer = window.dataLayer || []; function gtag(){window.dataLayer.push(arguments);} gtag('set', 'url_passthrough', true);При использовании сквозной передачи URL-адресов к ссылкам могут добавляться некоторые параметры запроса по мере того, как пользователи перемещаются по страницам вашего веб-сайта:
-
gclid -
dclid -
gclsrc -
_gl -
wbraid
Для достижения наилучших результатов убедитесь в следующем:
- Перенаправления на вашем сайте передают все указанные выше параметры запроса.
- Ваши аналитические инструменты игнорируют эти параметры в URL-адресах страниц.
- Эти параметры не влияют на работу вашего сайта.
Редактировать данные рекламы
Если ad_storage denied , новые файлы cookie для рекламных целей устанавливаться не будут. Кроме того, файлы cookie сторонних разработчиков, ранее установленные на google.com и doubleclick.net, не будут использоваться, за исключением случаев борьбы со спамом и мошенничеством. Данные, отправляемые в Google, по-прежнему будут включать полный URL страницы, включая информацию о кликах по рекламе в параметрах URL.
gtag.js
Чтобы дополнительно скрыть данные вашей рекламы, если ad_storage denied , установите ads_data_redaction в true .
gtag('set', 'ads_data_redaction', true);
Если ads_data_redaction имеет true , а ad_storage denied , идентификаторы кликов по объявлениям, отправляемые в сетевых запросах тегами Google Ads и Floodlight, будут удалены. Сетевые запросы также будут отправляться через домен без сторонних файлов cookie, например, pagead2.googlesyndication.com.
Менеджер тегов
Если вы используете шаблон для создания тега, в нем могут быть элементы управления для дальнейшего редактирования данных о рекламе. Если вы создаете шаблон тега самостоятельно, см. раздел «Создание шаблона режима согласия» для получения дополнительной информации о редактировании данных о рекламе .
Общие проблемы
Ознакомьтесь с разделами, содержащими информацию о распространенных проблемах при внедрении режима согласия.
Согласие не обновляется на странице перехода.
При использовании расширенного режима согласия необходимо вызвать команду обновления на странице, где пользователь дает согласие.
Когда страница загружается с сообщением об отказе в согласии, а затем перезагружается с сообщением о предоставлении согласия после изменения согласия, теги Google могут потерять ключевые данные с исходной страницы. Любые последующие отчеты могут быть неполными.
Например, в Google Analytics во многих сессиях с подтверждением согласия может отсутствовать событие session_start.
Чтобы избежать этой проблемы, вызывайте команду обновления всякий раз, когда изменяется состояние согласия пользователя.
Согласие обновляется непосредственно перед перезагрузкой страницы.
В некоторых случаях, когда тип согласия изменяется с «отказано» на «предоставлено», Google Tag Manager может отправлять данные измерений на основе этого изменения. Если команда обновления вызывается при загрузке страницы, браузер может отменить этот сетевой трафик до его завершения. В результате последующие отчеты могут быть неполными.
По возможности убедитесь, что команды обновления регистрируются в журнале задолго до загрузки страницы.
Следующие шаги
Устаревшие элементы управления тегами
Если вы используете устаревшие теги, такие как ga.js, analytics.js или conversion.js, обновите их до gtag.js или Google Tag Manager.
Чтобы узнать больше о других параметрах конфиденциальности устаревших тегов, см. следующую документацию: