Управление настройками согласия для сайтов

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

Включение и использование режима согласия зависят от того, каким способом вы запрашиваете согласие и как добавляете теги (с помощью Менеджера тегов или тега Google).

  • На платформах для запросов согласия (CMP), поддерживающих режим согласия Google, доступны:
    • Шаблоны для Менеджера тегов в галерее общедоступных шаблонов – на их основе можно создавать теги для управления согласием.
    • Код JavaScript для управления согласием на сайтах, где используется gtag.js.
  • Для нестандартных реализаций и CMP, которые не поддерживают режим согласия:
    • Если вы используете Менеджер тегов, создайте собственный шаблон с помощью API Менеджера тегов для управления согласием. Посмотрите пример, который может послужить в качестве отправной точки.
    • Если вы используете gtag.js, вам потребуется вручную добавить код для управления согласием на каждую страницу сайта – в виде прямых команд или собственного фрагмента HTML.

Ниже приведены общие рекомендации и примеры API. Дополнительную информацию вы можете найти в статьях по теме.

Подготовка

Перед тем как реализовать режим согласия, обратите внимание на следующие рекомендации:

  • Настройте параметры согласия по умолчанию для посетителей из регионов, в которых будут показываться баннеры с запросом. Таким образом вы сохраните возможность отслеживать данные в регионах, где эти баннеры обязательны. Теги Google будут корректировать их поведение соответствующим образом. Кроме того, вы предотвратите потерю данных в тех случаях, когда баннеры с запросом согласия отсутствуют или неприменимы. Подробнее об алгоритме работы тегов в зависимости от региона

  • Если вы используете CMP, настройте в командах обновления для режима согласия таргетинг на посетителей из тех же регионов, которые указаны в команде установки режима согласия по умолчанию. Так пользователи смогут изменять статус согласия, если по умолчанию установлено значение "denied".

  • При создании собственных шаблонов и пользовательских тегов HTML следует учитывать, что все команды, выполняемые в обратных вызовах, а также команды с использованием gtag() не обязательно будут доступны перед срабатыванием следующего триггера. Чтобы информация о согласии оказалась доступна как можно раньше, настройте (или создайте) шаблон тега, в котором используются API Менеджера тегов для управления согласием.

Статус согласия по умолчанию должен быть задан сразу при загрузке страницы в соответствии с тем, какие параметры по умолчанию требуются для вашей организации. Затем CMP или собственное решение для управления согласием должны предложить посетителю разрешить или запретить сбор всех применимых типов данных. Поскольку режим согласия не сохраняет информацию о выборе посетителя, необходимо, чтобы решение для управления согласием выполняло команду обновления статуса согласия на каждой странице как можно раньше после того, как этот выбор сделан.

gtag.js

В разделах ниже приведены примеры использования gtag.js для решения следующих задач:

Мы рекомендуем задать значение по умолчанию для каждого типа данных. Статусы согласия в этой статье приведены только для примера. Вам необходимо задать для каждого сервиса отслеживания такое значение по умолчанию, которое соответствует правилам вашей организации.

Чтобы задать параметры отслеживания по умолчанию, настройте вызов команды gtag('consent', 'default', ...) на каждой странице сайта раньше всех команд, передающих данные отслеживания (таких, как config и event). Например, чтобы запретить использование нескольких типов согласия по умолчанию, задайте настройки в параметрах consent:

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied'
});

Если пользователь ответил на запрос согласия или изменил ранее выбранные настройки, необходимо обновить статус согласия с помощью команды update. Поскольку режим согласия не сохраняет настройки, обновите статус как можно скорее после взаимодействия пользователя с вашим решением для управления запросами согласия. После того как пользователь разрешит или запретит сбор данных, сохраните его выбор и вызывайте команду обновления на всех последующих страницах.

В приведенном ниже примере изменилось только значение ad_storage. Если для параметра analytics_storage было задано значение denied, после вызова этой команды оно останется прежним. Вы должны самостоятельно проверять корректность значений для всех типов согласия. Подробную информацию о поддерживаемых типах можно найти в документации по API.

В примере ниже показано, как изменить статус согласия на granted, если пользователь включил файлы cookie рекламных предпочтений.

<script>
function consentGrantedAdStorage() {
  gtag('consent', 'update', {
    'ad_storage': 'granted'
  });
  }
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
  ...
  <button onclick="consentGrantedAdStorage()">Yes</button>
  ...
</body>

Интеграция с асинхронными платформами для запросов согласия

Если ваша платформа для запросов согласия загружается асинхронно, она может не всегда запускаться раньше тегов Google. Чтобы указать, сколько времени необходимо подождать, прежде чем отправить данные, установите параметр wait_for_update со значением в миллисекундах.

Например, чтобы по умолчанию запретить ad_storage на определенной странице, но при этом позволить платформе для запросов согласия изменять состояния согласия, используйте wait_for_update. В приведенном ниже примере кода для ad_storage в качестве значения по умолчанию задано denied, а инструменту согласия дается 500 миллисекунд на вызов команды gtag('consent', 'update', ...) до активации тегов.

gtag('consent', 'default', {
'ad_storage': 'denied',
'wait_for_update': 500
});

Менеджер тегов

Если вы работаете с Менеджером тегов, мы рекомендуем использовать шаблон режима согласия из галереи общедоступных шаблонов. Вы также можете создать его самостоятельно с помощью API Менеджера тегов для управления согласием.

Примечания:

  • При реализации режима согласия на сайтах, использующих Менеджер тегов, управление статусами согласия должно осуществляться с помощью подходящих API: setDefaultConsentState и updateConsentState. Также вам доступен gtagSet API, с помощью которого можно настроить ads_data_redaction и сквозную передачу URL.

  • Метод gtag('consent','update',...) нельзя использовать вместо updateConsentState, поскольку он помещается в очередь после всех остальных ожидающих сообщений и не обрабатывается до начала следующего события. Подробная информация приведена в статье Обработка информации на уровне данных.

Пример реализации

В примере ниже для нескольких параметров режима согласия по умолчанию используется значение denied. Когда пользователь сообщает о своем решении, нужные параметры меняются на granted.

gtag.js

Порядок вызова команд в данном случае очень важен. Если код получения согласия будет вызываться в неправильном порядке, значения по умолчанию не будут работать. В зависимости от требований вашей компании реализация может различаться, но в любом случае рекомендуется следующий порядок выполнения кода:

  1. Загрузите тег Google. Это стандартный фрагмент кода. В него нужно добавить вызов функции gtag('consent', 'default', ...), как показано в примере ниже.

  2. Загрузите решение для управления согласием. Если оно загружается асинхронно, прочитайте раздел Интеграция с асинхронными платформами для запросов согласия. Там рассказывается, как организовать загрузку в нужном порядке.

  3. Когда пользователь разрешит или запретит сбор данных, вызовите функцию 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. Такая платформа предоставляет шаблоны из галереи общедоступных шаблонов, с помощью которых можно создать тег для управления режимом согласия.

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

<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>

Google стремится построить безопасную экосистему цифровой рекламы, где конфиденциальность пользователей будет защищена. Поэтому мы совершенствуем правила в отношении согласия пользователей из ЕС. Если вы используете режим согласия, вам необходимо отправлять не только ad_storage и analytics_storage, но и два новых параметра.

Название поля Допустимые значения Описание
ad_user_data 'granted' | 'denied' Устанавливает статус согласия на отправку в Google пользовательских данных, связанных с рекламой.
ad_personalization 'granted' | 'denied' Устанавливает статус согласия на персонализированную рекламу.

С помощью расширенных функций режима согласия вы можете:

  • задавать алгоритм работы для определенного региона;
  • передавать данные о клике по объявлению, а также идентификаторы клиента и сеанса в URL, если пользователь не дал согласие на использование файлов cookie;
  • полностью удалять информацию об объявлении, если пользователь запретил использование рекламных файлов cookie.

Алгоритм работы тегов в зависимости от региона

Чтобы изменить алгоритм работы тегов для посетителей из определенных регионов, укажите эти регионы в команде установки режима согласия. Это позволит вам настраивать параметры по умолчанию в зависимости от географического местоположения пользователей. О том, как определить регион пользователя, читайте в статье Географические идентификаторы.

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 для региона "US" (США) задано значение granted, а в другой – для ad_storage для региона "US-CA" (США, Калифорния) задано значение denied, то для посетителей из Калифорнии будет использоваться команда с более узким регионом. В этом примере для пользователя из региона "US-CA" (США, Калифорния) для ad_storage будет установлено значение denied.

Регион ad_storage Алгоритм работы
US 'granted' Применяется ко всем пользователям США, кроме тех, что находятся в Калифорнии.
US-CA 'denied' Применяется к пользователям из Калифорнии.
Не указано '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 Рекламы и Floodlight).

gtag.js

Чтобы включить эту функцию, установите для параметра url_passthrough значение true с помощью следующей команды:

gtag('set', 'url_passthrough', true);

Менеджер тегов

Если вы используете шаблон тега из галереи, в нем могут быть предусмотрены настройки сквозной передачи URL. Если же вы создаете его самостоятельно, ознакомьтесь с информацией о сквозной передаче URL с помощью API пользовательских шаблонов gtagSet в статье Как создать шаблон режима согласия.

Также можно настроить эту функцию в теге связывания конверсий и/или теге Google Аналитики.

Для тегов Google Рекламы и Floodlight

Чтобы включить эту функцию, создайте новый или используйте имеющийся тег связывания конверсий и установите флажок Включить связывание URL на всех страницах. Вы можете ознакомиться с общими инструкциями по созданию тега связывания конверсий.

Для тегов Google Аналитики

  1. В Менеджере тегов перейдите в раздел Поля, которые необходимо задать.
  2. В разделе "Поля, которые необходимо задать" нажмите Добавить строку.
  3. Введите верное значение в строку Название поля:
    • Для тегов Google Аналитика: конфигурация GA4 введите url_passthrough.
    • Для тегов Google Аналитика: Universal Analytics, использующих переменные параметров Google Аналитики, введите значение urlPassthrough.
  4. В поле Значение введите "true".
  5. Сохраните и опубликуйте тег.

Также можно задать для параметра url_passthrough значение true на каждой странице сайта перед фрагментом установки Менеджера тегов.

window.dataLayer = window.dataLayer || [];
function gtag(){window.dataLayer.push(arguments);}
gtag('set', 'url_passthrough', true);

При использовании сквозной передачи URL к ссылкам переходов между страницами на вашем сайте могут добавляться некоторые параметры запроса:

  • gclid
  • dclid
  • gclsrc
  • _gl
  • wbraid

Чтобы достичь наилучших результатов, убедитесь в следующем:

  1. При переходе на ваш сайт передаются все указанные параметры.
  2. В ваших инструментах отслеживания настроено игнорирование этих параметров в URL страниц.
  3. Наличие этих параметров в 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 Рекламы или Floodlight, удаляются. Сетевые запросы также будут отправляться через домен, не использующий файлы cookie.

Менеджер тегов

Если вы используете шаблон тега из галереи, в нем могут быть предусмотрены настройки удаления данных рекламы. Если же вы создаете его самостоятельно, ознакомьтесь с информацией об удалении данных рекламы в статье Как создать шаблон режима согласия.

Менеджер тегов предоставляет несколько функций для управления тегами с учетом настроек, связанных с согласием, а именно: триггер инициализации согласия, настройки тегов для управления запросами согласия и страницу "Обзор настроек режима согласия". Некоторые сторонние поставщики встроили поддержку режима согласия в свои продукты по управлению запросами. Подробнее о функциях, связанных с согласием, в Менеджере тегов

Для проверки и отладки конфигурации режима согласия рекомендуется использовать Tag Assistant. С помощью этого инструмента можно посмотреть, как устанавливается и обновляется статус согласия. В Tag Assistant поддерживается следующее:

Подробнее о том, как выполнить отладку режима согласия с помощью Tag Assistant

Если вы не используете шаблон режима согласия, то можете проанализировать настройки согласия с помощью инструментов разработчика в браузере.

Чтобы проанализировать настройки согласия, выполните следующие действия:

  1. На вкладке Элементы укажите в строке поиска dataLayer и убедитесь, что соблюдены следующие условия:

    • Команда default запускается раньше всех других событий Google.
    • Статусы согласия задаются в соответствии с действиями пользователя и обновляются с помощью команды update.
    • Теги активируются только тогда, когда выполнены условия, заданные в настройках согласия.
    • Параметры ads_data_redaction и url_passthrough заданы в соответствии с настройками, указанными пользователем.
    1. На вкладке Сеть выполните следующие действия:
    • Посмотрите статус согласия, указанный в параметре gcs= в URL. Параметр gcs имеет следующий формат: gcs=G1 [ad_storage][analytics_storage].
    • Проверьте, соответствуют ли значения параметра gcs= выбранным настройкам согласия. Для ad_storage и analytics_storage может быть указано одно из следующих значений:
    Значение Описание
    G100 Согласие не предоставлено ни для ad_storage, ни для analytics_storage.
    G110 Согласие предоставлено для ad_storage и не предоставлено для analytics_storage.
    G101 Согласие не предоставлено для ad_storage и предоставлено для analytics_storage.
    G111 Согласие предоставлено и для ad_storage, и для analytics_storage.
    G1-- На сайте не требуется согласие ни для ad_storage, ни для analytics_storage.
    • Убедитесь, что, когда для ads_data_redaction задано значение true, запросы отправляются через домен, не использующий файлы cookie (например, googlesyndication.com).
    • Убедитесь, что, когда для url_passthrough задано значение true, к исходящему URL добавляется gclid/dclid и что параметр связывания _gl присутствует (например, https://www.example.com/?_gl=1*abcde5*).

Устаревшие теги

Если вы используете устаревшие версии тегов, например ga.js, analytics.js или conversion.js, перейдите на gtag.js или Google Менеджер тегов.

Ознакомьтесь с подробной информацией о настройках конфиденциальности для устаревших тегов в следующих сервисах: