Правила в отношении согласия пользователей из ЕС

Настройки персонализации рекламы с помощью тегов объявлений для издателей Google

Согласно обновленным Правилам Google в отношении согласия пользователей из ЕС, издатели в предусмотренных законодательством случаях должны сообщать пользователям из стран Европейской экономической зоны (ЕЭЗ) о факте использования файлов cookie или других средств сбора, хранения и передачи данных для персонализации рекламы, а также получать согласие пользователей на использование таких средств. Эти правила отражают требования, изложенные в Директиве ЕС о конфиденциальности и электронных средствах связи и Генеральном регламенте ЕС о защите персональных данных (GDPR).

Настройки персонализации рекламы для страниц с тегами GPT и AdSense

Отправка запросов объявлений

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

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

Если вы хотите показывать персонализированную рекламу некоторым пользователям, настройте для остальных показ неперсонализированной рекламы на каждой странице сайта с помощью тегов GPT и асинхронных тегов объявлений AdSense и Менеджера рекламы. Такой подход удобен, если вы хотите предоставить всем или некоторым пользователям возможность выбора между двумя видами рекламы.

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

Для тега GPT:

Воспользуйтесь методом googletag.pubads().setRequestNonPersonalizedAds(1).

Для асинхронного тега объявления AdSense или Менеджера рекламы:

Задайте значение (adsbygoogle=window.adsbygoogle||[]).requestNonPersonalizedAds=1.

Эти методы запускают запросы на показ неперсонализированных объявлений по запросам, отправленным в Google следующими поддерживаемыми тегами объявлений: GPT, GPT Light, AdSense, асинхронными тегами объявлений Менеджера рекламы (adsbygoogle.js), старыми синхронными тегами AdSense (show_ads.js) и IMA SDK. Чтобы убедиться, что тег объявления запрашивает неперсонализированную рекламу, найдите параметр &npa=1 в запросе объявления с помощью встроенных в браузер инструментов разработчика.

Чтобы снова включить персонализацию, вызовите метод setRequestNonPersonalizedAds(0) или присвойте нулевое значение атрибуту requestNonPersonalizedAds=0. Если на страницу добавлены теги объявлений Google разных типов (например, GPT и асинхронные теги AdSense или Менеджера рекламы), не всегда можно предсказать, какой из них сработает первым. Поэтому лучше настроить запрос неперсонализированной рекламы для всех тегов.

Приостановка отправки запросов объявлений

Теги GPT, а также асинхронные теги AdSense и Менеджера рекламы поддерживают сценарии, при которых запросы объявлений не отправляются с загруженной страницы до получения определенного сигнала. Это удобно, когда вам необходимо предварительно получить согласие пользователя.

Если вы работаете с тегами Google Publisher Tag: задержка запросов объявлений возможна в асинхронном режиме.

  • Используйте функцию disableInitialLoad(), чтобы тег не отправлял запросы объявлений при первоначальной загрузке страницы. Она должна срабатывать до отправки запросов объявлений с помощью метода display().
  • Настройте рекламные места как обычно, с помощью вызовов к googletag.cmd.push(...).
  • После того как пользователь даст согласие или отказ, вы можете вызвать метод setRequestNonPersonalizedAds(1).
  • Чтобы возобновить отправку запросов объявлений, используйте функцию refresh().
  • Если не вызвать функцию refresh(), объявления показываться не будут. При использовании метода enableSyncRendering() задержка запросов объявлений будет невозможна.

Если вы работаете с асинхронными тегами AdSense или Менеджера рекламы:

  • Используйте функцию (adsbygoogle=window.adsbygoogle||[]).pauseAdRequests=1. Она должна срабатывать до отправки запросов объявлений с помощью метода adsbygoogle.push(...).
  • Настройте рекламные места как обычно, с помощью вызовов к adsbygoogle.push(...).
  • После того как пользователь даст согласие или отказ, вы можете изменить значение переменной для запроса неперсонализированных объявлений: requestNonPersonalizedAds=1.
  • Чтобы возобновить отправку запросов объявлений, используйте метод (adsbygoogle=window.adsbygoogle||[]).pauseAdRequests=0.
  • Чтобы объявления показывались, переменной нужно присвоить нулевое значение: pauseAdRequests=0.

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

Если в инструменте для получения согласия пользователя реализована возможность отложить загрузку скриптов, пока пользователь не даст ответ, достаточно просто задержать загрузку скриптов gpt.js и adsbygoogle.js. В других типах тегов объявлений Google приостановка отправки запросов не поддерживается. Поэтому вам не следует загружать их, пока вы не определите, какую рекламу будете запрашивать: персонализированную или неперсонализированную.

Подробнее о тегах AdSense можно узнать в статье Примеры кода объявлений для настроек персонализации рекламы.

Настройки персонализации рекламы для AMP-страниц

Для запросов объявлений с AMP-страниц доступны те же настройки персонализации рекламы, что и для запросов с описанных выше обычных страниц: издатели могут показывать или неперсонализированную рекламу всей аудитории из ЕЭЗ, или любую рекламу отдельным пользователям при их согласии. Ниже приведены инструкции по настройке каждого варианта для AMP-страниц, с которых отправляются запросы объявлений, с помощью тега <amp-ad type="doubleclick"> или <amp-ad type="adsense">.

Показ неперсонализированной рекламы всем пользователям из ЕЭЗ

Если в ваших тегах AMP-объявлений не используется конфигурация RTC, достаточно включить показ неперсонализированной рекламы в Google Менеджере рекламы или AdSense. Другие изменения на AMP-страницах вносить не нужно.

Если в тегах AMP-объявлений используется конфигурация RTC, на странице можно задать настройки так, чтобы запросы RTC не отправлялись пользователям из ЕЭЗ, которым будет показываться неперсонализированная реклама. Для этого вам понадобятся компоненты и конфигурации (amp-geo и amp-consent), которые приводятся ниже. 


<!-- First we need to set up the amp-geo extension. We define a group: `eea` which includes all European Economic Area countries. You will need to keep this list up-to-date as membership in the EEA may change over time. -->
amp-geo layout="nodisplay"
  <script type="application/json"
    {
      "ISOCountryGroups": {
        "eea": [ "at", "be", "bg", "cy", "cz", "de", "dk", "ee", "es", "fi", "fr",
        "gb", "gr", "hr", "hu", "ie", "is", "it", "li", "lt", "lu", "lv", "mt", "nl",
        "no", "pl", "pt", "ro", "se", "si", "sk"]
      }
    }
  </script>
</amp-geo>

<!-- Next we need to setup the consent with 0 timeout (i.e. it doesn’t show a consent UI  at all) and default “rejected” consent state. This halts RTC callouts and signals DFP/AdSense to serve non-personalized ads. -->
<amp-consent layout="nodisplay" id="consent-element">
  <script type="application/json">
    {
      "consents": {
        "my_consent": {
          "promptIfUnknownForGeoGroup": "eea"
        }
      }
      "policy": {
        "default": {
          "waitFor": {
            "my_consent": []
          }
          "timeout": {
            "seconds": 0,
            "fallbackAction": "reject"
          }
        }
      }
    }
  </script>
</amp-consent>

Во все компоненты amp-ad на странице необходимо добавить атрибут data-block-on-consent, как показано ниже:

<!-- Finally we set up the ad tag, directing it block on consent -->
<amp-ad data-block-on-consent
    width=320 height=50
    type="doubleclick"
    data-slot="/4119129/mobile_ad_banner">
</amp-ad>

Показ персонализированной и неперсонализированной рекламы с учетом согласия

На AMP-страницах нельзя размещать собственный код JavaScript, поэтому то, какие объявления будут запрашиваться (персонализированные или неперсонализированные), определяется настройками компонента amp-consent, а также атрибутами data-block-on-consent и data-npa-on-unknown-consent. Если вы настроили компонент amp-consent и связали его со всеми тегами <amp-ad> на странице с помощью атрибута data-block-on-consent, учитывайте следующее:

  • Если пользователь ответил на компонент amp-consent утвердительно (то есть принял запрос согласия), запросы объявлений будут отправляться в обычном режиме.
  • Если пользователь ответил на компонент amp-consent отрицательно (то есть отклонил запрос согласия), то будут отправляться запросы неперсонализированных объявлений.
  • Если пользователь не ответил на компонент amp-consent (то есть закрыл запрос согласия):
    • По умолчанию не отправляются никакие запросы объявлений.
    • Если для атрибута data-npa-on-unknown-consent установлено значение true, будут отправляться запросы неперсонализированных объявлений.
  • Если компонент amp-geo настроен на страны или регионы, для которых согласие пользователей не требуется, запросы объявлений будут отправляться в обычном режиме.

Если в тегах <amp-ad> не используется атрибут data-block-on-consent или если компонент amp-consent настроен неправильно, запросы объявлений отправляются в обычном режиме.

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

<!-- First we need to set up the amp-geo extension. We define a group: `eea` which includes all European Economic Area countries. You will need to keep this list up-to-date as membership in the EEA may change over time. -->
<amp-geo layout="nodisplay">
  <script type="application/json">
    {
      "ISOCountryGroups": {
        "eea": [ "at", "be", "bg", "cy", "cz", "de", "dk", "ee", "es", "fi", "fr",
        "gb", "gr", "hr", "hu", "ie", "is", "it", "li", "lt", "lu", "lv", "mt", "nl",
        "no", "pl", "pt", "ro", "se", "si", "sk"]
      }
    }
  </script>
</amp-geo>
 
<!-- Next we need to setup the consent for users in the “eea” country group -->
<amp-consent layout="nodisplay" id="consent-element">
  <script type="application/json">
    {
      "consents": {
        "my_consent": {
          "promptIfUnknownForGeoGroup": "eea",
          "promptUI": "myConsentFlow"
        }
      }
    }
  </script> 
</amp-consent>
 

<!-- Finally we set up the ad tag, directing it to wait for consent when necessary -->
<amp-ad data-block-on-consent
    width=320 height=50
    type="doubleclick"
    data-slot="/4119129/mobile_ad_banner">
</amp-ad>
 

Существуют и другие способы запрашивать согласие отдельных пользователей. Например, можно настроить страницу так, чтобы с нее отправлялся запрос CORS POST в конечную точку, заданную с помощью атрибута checkConsentHrefПодробнее…

Настройки персонализации рекламы для других тегов

Теги возврата GPT

Если вы работаете с тегами возврата GPT, то можете пометить запрос объявления как неперсонализированный, включив в вызов API следующую строку:

googletag.pubads().setRequestNonPersonalizedAds(int options);

Для запроса неперсонализированной рекламы присвойте параметру options значение 1. В остальных случаях используйте значение 0.

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

Пример:

<script src="https://www.googletagservices.com/tag/js/gpt.js">
googletag.pubads().setRequestNonPersonalizedAds(1);
googletag.pubads().definePassback("123456/ad/unit", [100,200])
    .display();
</script>

Простые URL

Вы можете помечать запросы объявлений как неперсонализированные, добавляя параметр npa=[int] непосредственно в URL запроса тега. Рекомендуем добавлять этот параметр в начало тега, иначе он может остаться неучтенным из-за усечения URL. Чтобы запросить неперсонализированные объявления, присвойте параметру значение 1: npa=1. Если параметр не указан, будут возвращаться персонализированные объявления. Пример:

http://pubads.g.doubleclick.net/gampad/ad?iu=/12345/adunit&sz=728x90&npa=1&c=12345

AdSense для поиска

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

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

Для веб-тега объявлений пользовательского поиска добавьте в раздел pageOptions следующую строку:
personalizedAds: false,


Для тега Рекламы в приложении: 
builder.setAdvancedOptionValue("personalizedAds", "false");


Для тега iOS: 
[request setAdvancedOptionValue:@"false" forKey:@"personalizedAds"];

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

Google Mobile Ads SDK

Подробную информацию о Google Mobile Ads SDK можно найти на сайте для разработчиков приложений (iOS GMA SDK, Android GMA SDK).

Google Interactive Media Ads SDK (для видео)

Чтобы сообщить Google, что для вашего видеоконтента нужна неперсонализированная реклама, добавьте в конец тега объявления параметр npa=1. Это можно сделать при создании основного тега видео вручную или с помощью IMA SDK (HTML5 IMA SDK, iOS IMA SDK, Android IMA SDK или Google Cast IMA SDK).

Если ваш видеопроигрыватель поддерживает функцию динамической вставки объявлений Google Менеджера рекламы, параметр npa=1 можно добавить в любой запрос объявления для видео по запросу или прямой трансляции (с помощью DAI HTML5 SDK, DAI Cast SDK, DAI iOS SDK, DAI Android SDK, DAI Roku SDK или DAI tvOS SDK).

Эта информация оказалась полезной?
Как можно улучшить эту статью?