Настройте аукцион объявлений на странице издателя.

Узнайте, как настроить аукцион с использованием API для защищенной аудитории.

Аукционы, проводимые продавцами непосредственно на устройстве.

Аукцион защищенной аудитории на устройстве запускается на сайте, продающем рекламные места, и мы называем сторону, проводящую аукцион, продавцом. Продавцами могут выступать многие стороны: сайт может проводить собственный рекламный аукцион, или использовать сторонний скрипт для проведения аукциона, или использовать SSP, который объединяет проведение аукциона на устройстве с другими серверными операциями по проведению рекламных аукционов. У продавцов в аукционе рекламы на устройстве три основные задачи:

  1. Продавцы решают (а) какие покупатели могут участвовать и (б) какие из заявок от групп интересов этих покупателей имеют право на участие в аукционе. Это позволяет продавцу обеспечивать соблюдение правил сайта относительно того, какие объявления разрешено показывать на странице.
  2. Продавцы отвечают за бизнес-логику аукциона: код JavaScript, который учитывает цену и метаданные каждой ставки и вычисляет показатель «привлекательности». Ставка с наивысшим показателем привлекательности выигрывает аукцион.
  3. Продавцы составляют отчеты о результатах аукциона, включая информацию о цене закрытия и любых других выплатах. Победившие и проигравшие покупатели также составляют свои собственные отчеты.

В этом документе объясняется, как настроить и запустить аукцион на устройстве.

Настройте аукцион рекламы с использованием API для защищенной аудитории.

Для запуска аукциона рекламы через API защищенной аудитории первым шагом является его настройка. Это делается путем создания объекта auctionConfig . Вот пример такой настройки:

const auctionConfig = {
  seller: 'https://seller.example',
  decisionLogicUrl: ...,
  trustedScoringSignalsUrl: ...,
  interestGroupBuyers: ['https://buyer-1.example', 'https://buyer-2.example', ...],
  auctionSignals: {...},
  sellerSignals: {...},
  sellerTimeout: 100,
  perBuyerSignals: {
    'https://buyer-1.example': {...},
    'https://buyer-2.example': {...},
    ...
  },
  perBuyerTimeouts: {
    'https://buyer-1.example': 50,
    'https://buyer-2.example': 200,
    '*': 150,
    ...
  },
  componentAuctions: [
    {
      'seller': 'https://component-seller.example',
      'decisionLogicUrl': ...,
      ...
    },
    ...
  ],
  resolveToConfig: [true|false],
};

Свойства AuctionConfig

Необходимые свойства

Единственными обязательными свойствами для auctionConfigs являются seller , decisionLogicUrl и interestGroupBuyers .

Свойство Пример Роль
продавец https://seller.example Происхождение продавца.
decisionLogicUrl https://seller.example/decision-logic.js URL для JavaScript-функции принятия решений по аукциону. Это поле должно иметь тот же источник, что и поле продавца.
interestGroupBuyers [https://buyer-1.example,
https://buyer-2.example,
...]
Происхождение всех владельцев заинтересованных групп, которым было предложено принять участие в аукционе.

Дополнительные свойства

Остальные параметры в auctionConfigs являются необязательными.

Свойство Пример Роль
trustedScoringSignalsUrl https://seller.example/scoring-signals URL-адрес сервера «ключ/значение» продавца. Этот адрес будет запрашиваться в процессе оценки эффективности объявления с использованием URL-адреса рендеринга креатива в качестве ключа. Это поле должно иметь тот же источник, что и поле продавца.
auctionSignals {"category":"news"} JSON-сериализуемый объект, представляющий сигналы, доступные всем покупателям и продавцам, участвующим в аукционе.
sellerSignals {...} JSON-сериализуемый объект, представляющий сигналы, доступные только продавцам.
perBuyerSignals {https://dsp.example: {...},
https://another-buyer.example: {...},
... }
Сигналы, доступные конкретному покупателю. Сигналы могут поступать как от продавцов, так и от самих покупателей.
perBuyerTimeouts {https://www.example-dsp.com: 50,
https://www.another-buyer.com: 200,
*: 150,
...},
Максимальное время выполнения скрипта generateBid() конкретного покупателя в миллисекундах. Символ подстановки будет применяться ко всем покупателям, для которых не задано конкретное время ожидания.
sellerTimeout 100 Максимальное время выполнения скрипта scoreAd() продавца в миллисекундах.
компонентАукционы [{seller: https://www.some-other-ssp.com, decisionLogicUrl: ..., ...}, ...] Дополнительные настройки для аукционов компонентов.
resolveToConfig истина|ложь Логическое значение, указывающее, будет ли промис, возвращаемый функцией runAdAuction(), разрешаться в FencedFrameConfig, если значение равно true (для использования в <fencedframe>), или в непрозрачный URL-адрес urn:uuid, если значение равно false (для использования в <iframe>). По умолчанию — false.

Передавайте сигналы асинхронно.

Значения некоторых сигналов (настраиваемых полями auctionSignals , sellerSignals , perBuyerSignals и perBuyerTimeouts ) могут быть опционально предоставлены не в виде конкретных значений, а в виде Promises . Это позволяет некоторым частям аукциона, таким как загрузка скриптов и доверенных сигналов, а также запуск изолированных процессов рабочих модулей, перекрывать вычисление (или сетевое получение) этих значений. Скрипты рабочих модулей будут видеть только разрешенные значения; если какой-либо такой Promise будет отклонен, аукцион будет прерван, если только он уже не завершился с ошибкой или не был прерван иным образом.

Настройте аукцион с участием нескольких продавцов.

В некоторых случаях несколько продавцов могут хотеть участвовать в аукционе, при этом победители отдельных аукционов передаются на другой аукцион, проводимый другим продавцом. Эти отдельные аукционы, которые передаются на следующий этап, называются компонентными аукционами. Для облегчения проведения таких компонентных аукционов объект componentAuctions может содержать дополнительные конфигурации аукциона для каждого компонентного аукциона продавца. Выигрышная ставка каждого из этих компонентных аукционов будет передана на аукцион «верхнего уровня», который принимает окончательное решение по аукциону. Объект auctionConfig компонентных аукционов может не иметь собственного объекта componentAuctions . Если componentAuctions не пуст, interestGroupBuyers должен быть пустым. То есть, для любого конкретного аукциона защищенной аудитории либо есть один продавец и нет компонентных аукционов, либо все ставки поступают из компонентных аукционов, и аукцион верхнего уровня может выбирать только среди победителей компонентных аукционов.

Провести аукцион

Продавец отправляет запрос в браузер пользователя для начала аукциона рекламы, вызывая метод navigator.runAdAuction() .

try {
  const auctionResultPromise = navigator.runAdAuction(auctionConfig);
} catch (error) {
  // Handle error.
}

Вызов runAdAuction() возвращает Promise, который разрешается в объявление. Никакой код на странице издателя не может проверить выигравшее объявление или иным образом узнать о его содержимом из результата runAdAuction() . Если флаг resolveToConfig установлен в true в AuctionConfig , возвращается объект FencedFrameConfig , который может быть отображен только в рамке с ограничением доступа. Если флаг установлен в false, возвращается непрозрачный URN, который может быть отображен в iframe. Возможно, runAdAuction вернет значение null, указывающее на то, что объявление не было выбрано. В этом случае продавец может выбрать показ контекстно-таргетированного объявления.