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

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

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

Вы указываете логику генерации ставок в функции 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 и metadata.

wasmHelper

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

dataVersion

Значение Data-Version из ответа покупателя на запрос Key/Value.

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

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


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