Регистрация источников атрибуции

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

Источник атрибуции — это событие, связанное с рекламой (клик или просмотр), к которому рекламный специалист может прикрепить следующие виды информации:

  • Контекстные отчетные данные, такие как идентификатор рекламного объявления, информация о кампании или география.
  • Место назначения конверсии, например, сайт, на котором вы ожидаете конверсии пользователя.

Выполнив шаги, описанные в этом документе, вы сможете регистрировать источники — показы рекламы или клики, — которым браузер затем приписывает конверсии.

Методы регистрации

Для регистрации источников атрибуции используйте элементы HTML или вызовы JavaScript:

  • тег <a>
  • тег <img>
  • тег <script>
  • fetch выбор
  • XMLHttpRequest
  • вызов window.open

Это генерирует сетевые запросы, на которые вы затем отвечаете заголовком ответа HTTP регистрации источника.

Регистрируйте источники для кликов или просмотров

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

  1. Инициируйте регистрацию источника . Используйте элемент HTML или вызов JavaScript для создания запроса. Этот шаг отличается для кликов и просмотров, как вы заметите в следующих разделах.
  2. Завершите регистрацию источника , ответив заголовком регистрации источника. Получив этот запрос, ответьте заголовком Attribution-Reporting-Register-Source . В этом заголовке укажите выбранную конфигурацию Attribution Reporting. Этот шаг одинаков как для кликов, так и для просмотров.

    Пример сводных отчетов:

    {
      "aggregation_keys": {
        "campaignCounts": "0x159",
        "geoValue": "0x5"
      },
      "aggregatable_report_window": "86400",
      "destination": "https://example.com"
    }
    

    Пример отчетов на уровне событий:

    {
      "source_event_id": "12340873456",
      "destination": "[eTLD+1]",
      "expiry": "[64-bit signed integer]",
      "priority": "[64-bit signed integer]",
      "event_report_window": "[64-bit signed integer]"
    }
    

Обязательные и необязательные атрибуты

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

Если attributionsrc необязателен , его использование указывает на то, что запрос имеет право на Attribution Reporting. Если вы используете attributionsrc , браузер отправляет заголовок Attribution-Reporting-Eligible . Это также полезно для измерения app-to-web: если attributionsrc присутствует, браузер отправляет заголовок Attribution-Reporting-Support .

Метод регистрации Источник
тег <a> (источник навигации)
attributionsrc обязателен .
тег <img> (источник события)
attributionsrc обязателен .
тег <script> (источник события)
attributionsrc обязателен .
fetch выбор Требуется опция attributionReporting .
XMLHttpRequest Требуется опция attributionReporting .
вызов window.open (источник навигации)
attributionsrc обязателен.

Шаг 1: Инициировать регистрацию источника

Шаг 1 отличается для кликов и просмотров.

Чтобы зарегистрировать источник атрибуции для клика, вы можете использовать тег <a> или JavaScript window.open() .

Использование якоря

Добавьте attributionsrc к существующим тегам <a> , для которых вы хотите измерить показы или клики:

<a href="https://shoes.example/..." attributionsrc>Click me</a>

Для получения дополнительной информации ознакомьтесь с примером кода .

Использование скрипта

Вызовите window.open() с attributionsrc :

window.open(
  "https://shoes.example/...",
  "_blank",
  "attributionsrc");

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

Вместо того чтобы добавлять attributionsrc отдельно, для изображения или скрипта можно указать одно значение URL:

<a href=... attributionsrc="https://a.example/register-source">Click me</a>

В случае JavaScript, если вы присваиваете attributionsrc значение, обязательно закодируйте этот URL на случай, если он содержит специальные символы, такие как = , которые могут привести к неправильному синтаксическому анализу параметра.

Кодировать следующим образом:

const encodedUrl = encodeURIComponent(
  "https://adtech.example/attribution_source?ad_id=...");
window.open(
  "https://shoes.example/landing",
   "_blank",
   `attributionsrc=${encodedUrl}`);

attributionsrc также может принимать список URL-адресов, разделенных пробелами, как показано здесь с тегом <a> :

<a href=... attributionsrc="https://a.example/register-source
  https://b.example/register-source">Click me</a>

или как здесь, используя window.open() .

window.open("...", "_blank", `attributionsrc=${encodedUrl1}
  attributionsrc=${encodedUrl2}`)

В таких случаях оба URL-адреса получают запросы attributionsrc , соответствующие источнику навигации (запросы, включающие заголовок Attribution-Reporting-Eligible ).

attributionsrc со значением или без него

Как вы видели ранее, вы можете указать attributionsrc без URL. Вы также можете указать один URL. Кроме того, вы можете использовать список URL, разделенных пробелами.

При использовании URL-адресов браузер инициирует отдельный запрос проверки активности (по одному для каждого URL-адреса), который включает заголовок запроса Attribution-Reporting-Eligible .

Это полезно, если вы хотите выполнить регистрацию источника, ответив на запрос, отдельный от основного запроса элемента.

Например, если вам нужно зарегистрировать источники для кликов по якорному элементу, вы можете фактически не контролировать пункт назначения; в этом случае вам понадобится конфигурация, в которой вы отправляете заголовок регистрации источника в качестве ответа на запрос, который отделен от навигации и который вы можете полностью контролировать. Указывая явное значение для attributionsrc , вы даете указание браузеру сделать этот дополнительный запрос и настроить его пункт назначения.

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

В качестве альтернативы вы можете использовать JavaScript fetch() или XMLHttpRequest() .

С изображением

<img attributionsrc
src="https://adtech.example/attribution_source?ad_id=...">

С помощью сценария

<script attributionsrc
  src="https://adtech.example/attribution_source?ad_id=..."></script>

При желании вы можете указать значение URL для attributionsrc таким же образом, как и для кликов; то есть для изображения или скрипта вы можете задать URL или URL attributionsrc следующим образом:

С помощью одного URL:

<img attributionsrc="https://adtech.example/attribution_source?ad_id=123">

Со списком URL-адресов:

<img attributionsrc="https://a.example/register-source
  https://b.example/register-source">

Использование fetch() или XMLHttpRequest()

Этот код эффективно имитирует то, что будет делать HTML-запрос с attributionsrc :

const attributionReporting = {
  eventSourceEligible: true,
  triggerEligible: false,
};

// Optionally set keepalive to make sure the request outlives the page.
window.fetch("https://adtech.example/attribution_source?my_ad_id=123",
  { keepalive: true, attributionReporting });
const attributionReporting = {
  eventSourceEligible: true,
  triggerEligible: false,
};

const req = new XMLHttpRequest();
req.open("GET", url);
req.setAttributionReporting(attributionReporting);
req.send();

Шаг 2: Ответьте заголовком (клики и просмотры)

Следующим шагом для кликов и просмотров является отправка ответа с заголовком Attribution-Reporting-Register-Source .

Для получения дополнительной информации ознакомьтесь с примером кода .

Получив запрос браузера на сервере, ответьте и включите в свой ответ заголовок Attribution-Reporting-Register-Source .

res.set(
  "Attribution-Reporting-Register-Source",
  JSON.stringify({
    // Use source_event_id to map it to any granular information
    // you need at ad-serving time
    source_event_id: "412444888111012",
    destination: "https://advertiser.example",
    // Optional fields
    expiry: "604800",
    priority: "100",
    debug_key: "122939999"
  })
);

После преобразования в строку ваш заголовок будет выглядеть так:

{"source_event_id":"412444888111012","destination":"https://advertiser.example","expiry":"604800","priority":"100","debug_key":"122939999"}

Следующие шаги

Узнайте, как регистрировать триггеры атрибуции .