Эта страница предназначена для разработчиков, которые используют собственное решение для получения согласия на своих сайтах и хотят интегрировать режим согласия. Введение в режим согласия см. в разделе «Обзор режима согласия ». Если вы используете платформу управления согласием (CMP) для получения согласия пользователей, узнайте больше о настройке режима согласия с помощью CMP .
Вы можете реализовать режим согласия базовым или расширенным способом. Ознакомьтесь с рекомендациями вашей компании, чтобы выбрать способ реализации и значения по умолчанию. Узнайте больше о базовом и расширенном режимах согласия .
Прежде чем начать
Перед внедрением режима согласия примите во внимание следующее:
Если вы используете Менеджер тегов и хотите сохранить собственный баннер, рекомендуем загрузить его через контейнер Менеджера тегов. Для этого необходимо создать шаблон режима согласия . Вы также можете использовать шаблон режима согласия из Галереи шаблонов сообщества .
Если вы используете gtag.js, убедитесь, что тег Google установлен на каждой странице вашего сайта. Код режима согласия будет добавлен на каждую страницу вашего сайта.
Настроить режим согласия
Чтобы настроить режим согласия, вам необходимо:- Прежде чем пользователь предоставит согласие: установите состояние согласия по умолчанию .
- Обновляйте состояние согласия на основе взаимодействия пользователя с вашими настройками согласия.
Установить состояние согласия по умолчанию
Задайте значение по умолчанию для каждого используемого типа согласия . По умолчанию значения режима согласия не заданы.
Рекомендуется применять настройки согласия по умолчанию к регионам, в которых вы показываете посетителям баннеры с просьбой о согласии. Это помогает сохранять статистику в регионах, где баннеры с просьбой о согласии обязательны, и теги Google соответствующим образом корректируют свое поведение. Вы также предотвращаете потерю данных там, где баннеры с просьбой о согласии отсутствуют или не применяются. См. раздел «Поведение, зависящее от региона» .
gtag.js
Чтобы настроить возможности измерений по умолчанию, вызовите команду gtag('consent', 'default', ...) на каждой странице вашего сайта перед любыми командами, отправляющими данные измерений (например, config или event ).
Например, чтобы запретить согласие для всех параметров по умолчанию:
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied'
});
Дополнительно: интеграция с асинхронными платформами управления согласием
Если ваш баннер загружается асинхронно, он может не всегда запускаться до отправки тегов 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 Менеджера тегов создайте собственный шаблон, используя API-интерфейсы Согласия Менеджера тегов. Следующий пример можно использовать в качестве отправной точки.
Используйте API-интерфейсы Менеджера тегов для управления состояниями согласия setDefaultConsentState и updateConsentState . API gtagSet можно использовать для дополнительной настройки параметров ads_data_redaction и URL-передачи по мере необходимости.
Обновить состояние согласия
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-интерфейсы Менеджера тегов для управления состояниями согласия setDefaultConsentState и updateConsentState . API gtagSet можно использовать для дополнительной настройки параметров ads_data_redaction и URL-передачи по мере необходимости.
Пример реализации
В следующем примере для нескольких параметров режима согласия установлено значение 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>
Менеджер тегов
Для сайтов, использующих Менеджер тегов, мы рекомендуем использовать CMP для обработки обновлений вариантов согласия посетителей. 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>
Обновление до режима согласия v2
В рамках постоянной приверженности 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' });
Менеджер тегов
Если вы используете шаблон для создания тега, он может содержать элементы управления для настройки поведения, специфичного для региона. Если вы создаёте шаблон тега самостоятельно, см. статью Создание шаблона режима согласия для получения дополнительной информации о настройке поведения, специфичного для региона .
Наиболее конкретный параметр имеет приоритет
Если на одной странице встречаются две команды согласия по умолчанию со значениями для региона и подрегиона, вступит в силу та, которая соответствует более конкретному региону. Например, если для ad_storage задано значение granted для региона США и ad_storage denied для региона США-Канада, для посетителя из Калифорнии будет действовать более конкретная настройка US-CA. В данном примере это означает, что для посетителя из США-Канада будет задано ad_storage denied .
| Область | ad_storage | Поведение |
|---|---|---|
| НАС | 'granted' | Применимо к пользователям в США, не находящимся в Калифорнии. |
| США-КА | 'denied' | Применимо к пользователям US-CA |
| Не указано | 'granted' | Используется значение по умолчанию 'granted' . В данном примере применяется к посетителям, не находящимся в США или в регионе США-Канада. |
Передача информации о клике по рекламе, идентификаторе клиента и идентификаторе сеанса в URL-адресах
Когда пользователь переходит на ваш сайт после нажатия на объявление, информация о нём может быть добавлена к URL-адресам ваших целевых страниц в качестве параметра запроса. Для повышения точности ключевых событий эта информация обычно хранится в основных файлах cookie на вашем домене.
Однако, если ad_storage задано значение denied , эта информация не будет храниться локально. Чтобы улучшить качество отслеживания кликов по рекламе при ad_storage denied , вы можете при желании передать информацию о кликах по рекламе через параметры 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 и/или тегах аналитики.
Для тегов Google Ads и Floodlight :
Чтобы включить эту возможность, создайте (или используйте существующий) тег ссылки на конверсию и убедитесь, что установлен флажок «Включить ссылки на все URL-адреса страниц» . Инструкции по созданию тега ссылки на конверсию см. в разделе «Базовая настройка» .
Для тегов Google Analytics :
В диспетчере тегов перейдите в раздел «Поля для установки» и выберите «Конфигурация тега».
Поля для установки**.
- Когда раздел «Поля для установки» развернутся, нажмите кнопку «Добавить строку» .
- В поле Имя поля введите
url_passthrough. - В поле Значение введите «истина».
- Сохраните тег и опубликуйте.
В качестве альтернативы вы можете установить параметр
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-адресах страниц.
- Эти параметры не влияют на работу вашего сайта.
Редактировать данные рекламы
При denied ad_storage новые файлы cookie для рекламных целей не будут устанавливаться. Кроме того, сторонние файлы cookie, ранее установленные на google.com и doubleclick.net, не будут использоваться, за исключением случаев спама и мошенничества. Данные, отправляемые в Google, по-прежнему будут включать полный URL-адрес страницы, включая информацию о кликах по рекламным объявлениям в параметрах URL.
gtag.js
Для дальнейшего редактирования данных о рекламе при denied ad_storage установите для ads_data_redaction значение true .
gtag('set', 'ads_data_redaction', true);
Если ads_data_redaction задано значение true , а ad_storage — значение denied , идентификаторы кликов по рекламе, отправляемые в сетевых запросах тегами Google Ads и Floodlight, будут редактироваться. Сетевые запросы также будут отправляться через домен без cookie-файлов.
Менеджер тегов
Если вы используете шаблон для создания тега, он может содержать элементы управления для дальнейшего редактирования рекламных данных. Если вы создаёте шаблон тега самостоятельно, см. статью Создание шаблона режима согласия для получения дополнительной информации о редактировании рекламных данных .
Распространенные проблемы
Согласие не обновляется на странице перехода
При реализации режима расширенного согласия необходимо вызвать команду обновления на странице, где пользователь дает согласие.
Когда страница загружается с отказом в согласии, а затем перезагружается с предоставленным согласием после изменения согласия, теги Google могут потерять ключевые данные с исходной страницы. Любые последующие отчёты могут быть неполными.
Например, в Google Analytics во многих сеансах с согласием может отсутствовать событие session_start.
Чтобы избежать этой проблемы, вызывайте команду обновления всякий раз, когда изменяется состояние согласия пользователя.
Согласие обновлено непосредственно перед перезагрузкой страницы.
В некоторых случаях при изменении типа согласия с «отказано» на «предоставлено» теги Google могут отправлять данные, основанные на этом обновлении. Если команда обновления вызывается во время загрузки страницы, браузер может отменить этот сетевой трафик до его завершения. Любые последующие отчёты могут быть неполными.
Если возможно, убедитесь, что команды обновления регистрируются задолго до выгрузки страницы.
Следующие шаги
Устаревшие элементы управления тегами
Если вы используете устаревшие теги, такие как ga.js, analytics.js или conversion.js, обновите их до gtag.js или Google Tag Manager.
Дополнительную информацию о других элементах управления конфиденциальностью устаревших тегов см. в следующей документации: