Сделайте ставку на аукционе, чтобы купить рекламное место

Как покупатель рекламы (DSP и рекламодатели), вы можете быть заинтересованы в участии в аукционе рекламы Protected Audience на сайте издателя, чтобы нацелить рекламу на группу интересов, которую вы определили на сайте рекламодателя. Участвуя в аукционе Protected Audience, вы можете охватить своих идентифицированных клиентов на других сайтах, сохраняя конфиденциальность.

В аукционе Protected Audience вы предоставляете логику для генерации ставки, а браузер вычисляет ставку, используя эту логику. Это отличается от других архитектур аукциона, где вы отправляете ставку напрямую, а не предоставляете логику.

Вы предоставляете свою логику генерации ставок в функции JavaScript generateBid() , и файл размещается на вашем сервере. Когда вы добавляете пользователя в группу интересов , местоположение этого файла передается в конфигурацию группы интересов как biddingLogicUrl .

Во время аукциона браузер извлекает вашу логику ставок, указанную в поле biddingLogicUrl , и выполняет вашу функцию generateBid() для каждой группы интересов в безопасной изолированной среде, которая ограничена в своей коммуникации с внешним контекстом. Когда выполняется generateBid() , браузер передает сигналы в функцию в качестве аргументов. Эти сигналы содержат различную информацию из разных источников, например, данные первой стороны издателя, данные продавца, данные в реальном времени и многое другое. Вы можете использовать эти сигналы для расчета ставки, а значение возвращается из вызова generateBid() . После отправки ставок браузер выполнит логику оценки продавца для каждой ставки, чтобы вычислить оценку желательности продавца.

generateBid()

Ниже описаны аргументы функции generateBid() и структура ставки, возвращаемой функцией:


generateBid(interestGroup, auctionSignals, perBuyerSignals,
    trustedBiddingSignals, browserSignals, directFromSellerSignals) {
  return {
    ad: adObject,
    adCost: optionalAdCost,
    bid: bidValue,
    bidCurrency: 'USD',
    render: {
      url: renderURL,
      width: renderWidth,
      height: renderHeight
    },
    adComponents: [
      {url: adComponent1, width: componentWidth1, height: componentHeight1},
      {url: adComponent2, width: componentWidth2, height: componentHeight2},
      // ...
    ],
    allowComponentAuction: false,
    modelingSignals: 123 // 0-4095 integer (12-bits)
  };
}

Аргументы

generateBid() принимает следующие аргументы:

Аргумент Роль

interestGroup

Объект, переданный покупателем рекламы. Группа интересов может быть обновлена ​​с помощью dailyUpdateUrl .

auctionSignals

Свойство аргумента конфигурации аукциона, переданного navigator.runAdAuction() продавцом. Это предоставляет информацию о контексте страницы (такую ​​как размер объявления и идентификатор издателя), тип аукциона (первая цена или вторая цена) и другие метаданные.

perBuyerSignals

Свойство аргумента конфигурации аукциона, переданного продавцом. Это может предоставить контекстные сигналы с сервера покупателя о странице, если продавец является SSP , который выполняет вызов торгов в реальном времени на серверы покупателя и передает ответ обратно, или если страница издателя напрямую связывается с сервером покупателя. Если это так, покупатель может захотеть проверить криптографическую подпись этих сигналов внутри generateBid() в качестве защиты от подделки.

trustedBiddingSignals

Объект, ключами которого являются trustedBiddingSignalsKeys для группы интересов, и значения которого возвращаются в запросе trustedBiddingSignals .

browserSignals

Объект, созданный браузером, который может включать информацию о контексте страницы (например, hostname текущей страницы, которое продавец в противном случае мог бы подделать) и данные для самой группы интересов (например, запись о том, когда группа ранее выигрывала аукцион, чтобы разрешить ограничение частоты показов на устройстве).

directFromSellerSignals

Сигналы, поступающие от конкретного продавца, в отличие от auctionSignals и sellerSignals , которые могут поступать от любого участника, присутствующего в контексте выполнения runAdAuction .

Сигналы браузера

Объект browserSignals имеет следующие свойства:

{
  topWindowHostname: 'publisher.example',
  seller: 'https://ssp.example',
  topLevelSeller: 'https://www.top-level-ssp.com',
  requestedSize: {width: 100, height: 200},  /* if specified in auction config */
  joinCount: 3,
  recency: 3600000,
  bidCount: 17,
  prevWinsMs: [[timeDeltaMs1,ad1],[timeDeltaMs2,ad2],...],
  wasmHelper: ...
  dataVersion: 1,
  adComponentsLimit: 40
}
Свойство Описание

topWindowHostname

Имя хоста, на котором был выполнен вызов runAdAuction() .

seller

Продавец, которому подается ставка. На аукционе компонентов это значение — продавец компонента.

topLevelSeller

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

requestedSize

Свойство requestedSize рекомендует размер фрейма для аукциона. Продавец устанавливает запрошенный размер в конфигурации аукциона, и значение становится доступным для участников торгов в generateBid() . Участники торгов внутри аукциона могут выбрать другой размер контента для объявления, и этот полученный размер будет визуально масштабирован, чтобы вписаться в размер контейнера элемента.

joinCount

Поле joinCount — это количество раз, когда данное устройство присоединялось к данной группе интересов за последние 30 дней, при этом группа интересов непрерывно сохранялась (т. е. в хранении группы интересов на устройстве не было пробелов из-за выхода или истечения срока членства).

recency

Поле recency — это продолжительность времени (в минутах) с момента присоединения устройства к этой группе интересов до настоящего момента.

bidCount

Количество раз, когда данная группа интересов подавала заявку.

prevWinsMs

Поле prevWinMs содержит выигрышные объявления группы интересов и время с момента их предыдущих побед в миллисекундах. Обратите внимание, что объект объявления здесь содержит только поля renderURL и метаданных.

wasmHelper

Объект WebAssembly.Module на основе biddingWasmHelperURL группы интересов.

dataVersion

Значение версии данных из ответа(ов) службы «Ключ/Значение» покупателя.

adComponentsLimit

Максимальное количество компонентов рекламы, которые может вернуть generateBid()

Рассчитать ставку

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

Например:

function generateBid(interestGroup, auctionSignals, perBuyerSignals,
    trustedBiddingSignals, browserSignals) {
  return {
   //  ...
    bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
    // ...
  }
}

Вернуть ставку

generateBid() возвращает объект со следующими свойствами:

Свойство Роль
ad Произвольные метаданные об объявлении, например, информация, которую продавец ожидает узнать об этой ставке или креативе объявления. Продавец использует эту информацию в своей логике аукциона и принятия решений.
adCost Числовое значение, используемое для передачи отчета рекламодателя о клике или стоимости конверсии из generateBid в reportWin. Точность этого числа ограничена 8-битной мантиссой и 8-битной экспонентой, при этом округление выполняется стохастически.
adComponents Необязательный список из 20 компонентов для объявлений, состоящих из нескольких частей , взятых из свойства adComponents аргумента группы интересов, переданного в navigator.joinAdInterestGroup() .
allowComponentAuction Логическое значение, указывающее, может ли эта ставка использоваться в аукционе компонентов. По умолчанию "false", если не указано иное.
bid Числовая ставка, которая будет участвовать в аукционе. Продавец должен иметь возможность сравнивать ставки от разных покупателей, поэтому ставки должны быть в какой-то выбранной продавцом единице (например, «USD за тысячу»). Если ставка равна нулю или отрицательна, то эта группа интересов вообще не будет участвовать в аукционе продавца. С помощью этого механизма покупатель может реализовать любые правила рекламодателя относительно того, где его реклама может или не может появляться.
bidCurrency Валюта ставки, используемая для проверки валюты .
render Словарь, описывающий креатив, который должен быть отображен, если эта ставка выиграет аукцион. Сюда входит:
  • url : URL-адрес креатива.
  • width : Ширина креатива. Этот размер будет сопоставлен с декларацией в группе интересов и подставлен в любые макросы размера рекламы, присутствующие в URL креатива рекламы. Когда реклама загружается в огражденный фрейм, внутренний фрейм огражденного фрейма (т. е. размер, видимый креативу рекламы) будет заморожен до этого размера, и он не сможет видеть изменения размера фрейма, внесенные встраивателем.
  • height : Высота креатива. Смотрите детализацию в width .

modelingSignals

Целое число 0-4095 (12 бит) передается в reportWin() с шумоподавлением, как описано в схеме шумоподавления и сегментирования . Недопустимые значения, такие как отрицательные, бесконечные и NaN значения, будут игнорироваться и не передаваться. Будут передаваться только самые младшие 12 бит.


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