Как покупатель рекламы (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()
принимает следующие аргументы:
Аргумент | Роль |
---|---|
| Объект, переданный покупателем рекламы. Группа интересов может быть обновлена с помощью dailyUpdateUrl . |
| Свойство аргумента конфигурации аукциона , передаваемое продавцом в navigator.runAdAuction() . Это предоставляет информацию о контексте страницы (например, размер объявления и идентификатор издателя), типе аукциона (первая цена или вторая цена) и другие метаданные. |
| Свойство аргумента конфигурации аукциона, переданное продавцом. Это может обеспечить контекстуальные сигналы от сервера покупателя о странице, если продавец является поставщиком общих служб , который выполняет вызов ставок в реальном времени на серверы покупателей и передает ответ обратно, или если страница издателя напрямую связывается с сервером покупателя. Если да, то покупатель может захотеть проверить криптографическую подпись этих сигналов внутри generateBid() для защиты от подделки. |
| Объект, ключами которого trustedBiddingSignalsKeys для группы интересов и чьи значения возвращаются в trustedBiddingSignals . |
| Объект, созданный браузером, который может включать в себя информацию о контексте страницы (например, hostname текущей страницы, которую в противном случае продавец мог бы подделать) и данные для самой группы интересов (например, запись о том, когда группа ранее выиграла аукцион, чтобы разрешить ограничение частоты показов на устройстве). |
| Сигналы, которые гарантированно поступают от конкретного продавца, в отличие от 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
}
Свойство | Описание |
---|---|
| Имя хоста, на котором был выполнен вызов runAdAuction() . |
| Продавец, которому подается предложение. На аукционе компонентов этой стоимостью является продавец компонента. |
| Продавец верхнего уровня на аукционе компонентов, присутствующий только на аукционе компонентов. |
| Свойство requestedSize рекомендует размер кадра для аукциона. Продавец устанавливает запрошенный размер в конфигурации аукциона, и это значение становится доступным участникам торгов в generateBid() . Участники аукциона могут выбрать другой размер контента для объявления, и полученный размер будет визуально масштабирован, чтобы соответствовать размеру контейнера элемента. |
| Поле joinCount — это количество раз, когда данное устройство присоединялось к данной группе по интересам за последние 30 дней, при этом группа по интересам постоянно сохранялась (т. е. в хранилище группы по интересам на устройстве не было пробелов из-за ухода или срок членства истекает). |
| Поле recency — это продолжительность времени (в минутах) с момента, когда это устройство присоединилось к этой группе по интересам, до настоящего момента. |
| Сколько раз данная группа интересов подавала заявки. |
| Поле prevWinMs содержит объявления-победители группы по интересам, а также время, прошедшее с момента их предыдущих побед в миллисекундах. Обратите внимание, что объект объявления здесь содержит только поля renderURL и метаданные. |
| объект WebAssembly.Module на основе biddingWasmHelperURL группы интересов. |
| Значение версии данных из ответов службы «ключ/значение» покупателя. |
| Максимальное количество рекламных компонентов, которые может вернуть 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 | Словарь, описывающий креатив, который должен быть отображен, если эта ставка выиграет аукцион. Это включает в себя:
|
| Целое число 0–4095 (12 бит), передаваемое в reportWin() , с шумированием, как описано в схеме шумообразования и группирования . Недопустимые значения, такие как отрицательные, бесконечные и значения NaN , будут игнорироваться и не передаваться. Будут переданы только младшие 12 бит.Покупатель может использовать сигналы, доступные внутри generateBid() , включая данные из собственных данных покупателя, собранных во время создания группы интересов в userBiddingSignals , чтобы получить некоторое значение, которое передается в функцию отчетности о победах покупателя для включения обучения модели ML. |