Благодарим за интерес к предварительной версии документации о тегах Google. Этот сайт проходит публичное бета-тестирование. Оставить отзыв

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

Механизмы, используемые тегами Google для сбора статистики, отслеживания конверсий и ремаркетинга, зависят от того, какие сервисы и функции вы настроили. Такими механизмами, например, являются чтение и запись файлов cookie, а также отправка HTTP-запросов.

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

Настроить алгоритм работы тегов с учетом согласия пользователя можно в следующих решениях:

  • Google Реклама;
  • Floodlight;
  • Google Аналитика;
  • тег связывания конверсий.

Подготовка

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

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

Как настроить алгоритм работы тега

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

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

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

Как задать настройки по умолчанию для механизмов отслеживания

gtag.js

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

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

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

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

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

Вы также можете выполнить перечисленные ниже действия до активации тегов на каждой странице вашего сайта.

  • Убедитесь, что определен объект dataLayer.
  • Убедитесь, что определена функция gtag().
  • С помощью команды gtag('consent', ...) задайте настройки механизмов отслеживания.
  • Отправьте событие default_consent с помощью dataLayer.push().

Например, чтобы запретить работу тегов для ad_storage и analytics_storage по умолчанию, вызовите следующую команду:

window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

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

dataLayer.push({
  'event': 'default_consent'
});

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

Как настроить изменение алгоритма работы тегов

Когда пользователь предоставит согласие в соответствующем диалоговом окне (или если статус согласия сохранился с предыдущей загрузки страницы), с помощью команды gtag('consent', 'update', ...) измените алгоритм работы тегов. Например, для пользователя, который дал согласие на применение файлов cookie рекламных предпочтений, команда будет выглядеть так:

gtag('consent', 'update', {
  'ad_storage': 'granted'
});

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

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

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

В приведенном ниже примере для параметра ad_storage по умолчанию устанавливается значение denied. Когда пользователь дает согласие на применение функций ad_storage, значение этого параметра меняется на granted.

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

  1. Загрузите глобальный тег. Это фрагмент кода по умолчанию. В него нужно добавить вызов функции gtag('consent', 'default', ...) (см. пример ниже). Если вы не установите значения по умолчанию, будут активированы все функции тегов.
  2. Загрузите решение для получения согласия. Если это решение загружается асинхронно, ознакомьтесь с разделом "Асинхронные инструменты", чтобы узнать, как выполнить загрузку в нужном порядке.
  3. Когда пользователь даст согласие или отказ, вызовите функцию gtag('consent', 'update', ...) (если она не была вызвана решением для получения согласия).

gtag.js

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  // Default ad_storage to 'denied'.
  gtag('consent', 'default', {
    'ad_storage': 'denied'
  });

  gtag('js', new Date());
  gtag('config', 'G-XXXXXX');
</script>

<!-- Update this section based on your business requirements. -->
<script>
  function consentGranted() {
    gtag('consent', 'update', {
      'ad_storage': 'granted'
    });
  }
</script>

<body>
  ...
  <button onclick="consentGranted">Yes</button>
  ...
</body>

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

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

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

Вы также можете изменить код на своих страницах следующим образом:

 <script>
   // Define dataLayer and the gtag function.
   window.dataLayer = window.dataLayer || [];
   function gtag(){dataLayer.push(arguments);}

   // Default ad_storage to 'denied'.
   gtag('consent', 'default', {
     'ad_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 -->

 <!-- Update this section based on your business requirements -->
 <script>
   function consentGranted() {
     gtag('consent', 'update', {
       'ad_storage': 'granted'
     });
   }
 </script>

 <body>
   ...
   <button onclick="consentGranted">Yes</button>
   ...
 </body>
 ```

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

Чтобы изменить алгоритм работы тегов для посетителей из определенных регионов, укажите эти регионы в команде установки режима согласия. Это позволит вам настраивать параметры по умолчанию в зависимости от географического местоположения пользователей. Например, вот как указать denied для ad_storage для посетителей из Испании и с Аляски и denied для analytics_storage для остальных посетителей:

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). В этом примере для пользователя из региона US-CA для ad_storage будет установлено значение denied.

Регион ad_storage Алгоритм работы
US 'granted' Применяется ко всем пользователям США, кроме тех, что находятся в Калифорнии.
US-CA 'denied' Применяется к пользователям из Калифорнии.
Не указано 'granted' Используется значение по умолчанию: 'granted'. Применяется к пользователям, не находящимся в США и Калифорнии.

Информация о клике по объявлению

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

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

gtag.js

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

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

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

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

К URL страниц вашего сайта будут добавляться следующие параметры:

  • gclid
  • dclid
  • gclsrc
  • _gl

Убедитесь, что выполняются следующие требования:

  1. При переходе на ваш сайт передаются все указанные параметры.
  2. В ваших инструментах отслеживания настроено игнорирование этих параметров в URL страниц.
  3. Наличие этих параметров в URL не нарушает нормальную работу сайта.

Удаление данных рекламы

Если для ad_storage задано значение denied, при показе рекламы не будут создаваться новые файлы cookie, а сторонние файлы cookie, ранее установленные для google.com и doubleclick.net, будут использоваться только для предотвращения спама и мошенничества. Данные, отправляемые в Google, будут по-прежнему содержать полный URL страницы, включая информацию о клике по объявлению в параметрах URL.

Чтобы удалять данные рекламы, когда для ad_storage задано значение denied, присвойте параметру ads_data_redaction значение true:

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

Если параметр ads_data_redaction имеет значение true и для ad_storage задано значение denied, то идентификаторы клика по объявлению, переданные в сетевом запросе соответствующим тегом Google Рекламы или Floodlight, удаляются. Сетевые запросы также будут отправляться через домен, не использующий файлы cookie.

Асинхронные инструменты

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

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

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

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

Как управлять устаревшими тегами

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

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