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

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

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

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

Во время аукциона браузер извлекает вашу логику ставок, указанную в поле biddingLogicUrl , и выполняет generateBid() для каждой группы интересов в безопасной изолированной среде, которая ограничена в общении с внешним контекстом. При выполнении 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

Свойство аргумента конфигурации аукциона, переданное продавцом. Это может обеспечить контекстуальные сигналы от сервера покупателя о странице, если продавец является поставщиком общих служб , который выполняет вызов ставок в реальном времени на серверы покупателей и передает ответ обратно, или если страница издателя напрямую связывается с сервером покупателя. Если да, то покупатель может захотеть проверить криптографическую подпись этих сигналов внутри 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 Числовая ставка, которая будет участвовать в аукционе. Продавец должен иметь возможность сравнивать предложения разных покупателей, поэтому ставки должны быть в какой-либо выбранной продавцом единице измерения (например, «долларов США за тысячу»). Если ставка равна нулю или отрицательна, то эта группа интересов вообще не будет участвовать в аукционе продавца. С помощью этого механизма покупатель может реализовать любые правила рекламодателя относительно того, где может или не может появляться его реклама.
bidCurrency Валюта ставки, используемая для проверки валюты .
render Словарь, описывающий креатив, который должен быть отображен, если эта ставка выиграет аукцион. Это включает в себя:
  • url : URL-адрес объявления.
  • width : ширина объявления. Этот размер будет сопоставлен с объявлением в группе интересов и подставлен во все макросы размера объявления, присутствующие в URL-адресе объявления. Когда объявление загружается в изолированный фрейм, внутренний фрейм изолированного фрейма (т. е. размер, видимый рекламному объявлению) будет зафиксирован до этого размера, и он не сможет видеть изменения размера фрейма, внесенные устройством для внедрения.
  • height : высота объявления. См. детализацию по width .

modelingSignals

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


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