В этом документе представлен общий обзор проведения аукциона с использованием данных защищенной аудитории для одного продавца, как это используется в текущей версии API защищенной аудитории. Аукцион с одним продавцом может быть выполнен как часть более сложного аукциона с участием нескольких продавцов. В этом случае аукцион с одним продавцом называется «компонентным аукционом», который может предоставлять кандидатуры объявлений для «аукциона верхнего уровня», в котором участвуют несколько продавцов.
Ознакомьтесь с руководством для разработчиков, чтобы узнать о полном жизненном цикле API защищенной аудитории, а также обратитесь к пояснительной статье об API защищенной аудитории для более подробного обсуждения того, как продавцы проводят аукционы на своих устройствах.
Шесть этапов аукциона рекламы с использованием API защищенной аудитории

- Пользователь посещает сайт, на котором отображается реклама.
- Код продавца выполняет функцию
navigator.runAdAuction(). Она определяет, какое рекламное место выставлено на продажу и кто может делать ставки. Продавцы также должны включить скрипт, который оценивает каждую ставку,scoreAd(). - Код приглашенного покупателя выполняется для генерации ставки, URL-адреса соответствующего рекламного креатива и других данных. Скрипт для формирования ставок может запрашивать данные в режиме реального времени, такие как оставшийся бюджет рекламной кампании, из сервиса «Ключ/Значение» покупателя.
- Код продавца оценивает каждую ставку и выбирает победителя. Эта логика использует значение ставки и другие данные для определения привлекательности ставки. Объявления, которые не могут превзойти контекстного победителя, отклоняются. Продавец может использовать собственный сервис «ключ/значение» для получения данных в реальном времени.
- Победившее объявление возвращается в виде непрозрачного значения, которое отображается в рамке . Ни продавец, ни издатель не смогут увидеть это значение.
- Информация об аукционе доводится до сведения продавца и покупателей, выигравших его.
Аукцион может проводиться, когда пользователь переходит на страницу, на которой отображается реклама. Аукционы могут проводиться заранее, чтобы рекламный материал был готов к моменту появления рекламного места.
Продавцы инициируют аукцион объявлений, оценивают подходящие объявления, используя пользовательскую логику, предоставляемую в виде функции scoreAd() , и несут ответственность за предоставление результатов аукциона себе, а также победившему покупателю. Продавцы также могут применять правила издателя и фильтровать объявления по качеству, используя свою функцию scoreAd() .
Продавец может ссылаться на:
- Издатели контента, действующие от своего имени, размещают рекламный контент на своем веб-сайте.
- Платформы со стороны предложения (SSP), работающие с издателями рекламы и предоставляющие другие услуги.
- Скрипты сторонних разработчиков, действующие от имени издателей и позволяющие им участвовать в рекламных аукционах.
Предварительные условия для проведения аукциона
Для проведения аукциона продавцу необходимы две определенные функции JavaScript:
-
scoreAd(), которая оценивает потенциального кандидата на рекламное объявление. -
reportResult()отвечает за отправку отчета о результатах аукциона непосредственно продавцу.
Эти скрипты должны предоставляться с единственной конечной точки, принадлежащей продавцу.
scoreAd()
Продавцу необходимо определить функцию scoreAd() , которая будет обслуживаться с принадлежащей ему конечной точки. Конечная точка указывается в конфигурации аукциона как decisionLogicUrl . Функция scoreAd() имеет следующую сигнатуру:
scoreAd(
adMetadata,
bid,
auctionConfig,
trustedScoringSignals,
browserSignals,
directFromSellerSignals)
Параметры функции scoreAd() следующие:
-
adMetaData— это произвольные метаданные о рекламном креативе, предоставленные покупателем. Это сериализуемый в формате JSON объект, структуру которого должны определить и согласовать продавцы и покупатели. -
bid— это числовое значение, представляющее собой сумму ставки. -
auctionConfig— это конфигурация аукциона, используемая для его проведения. -
trustedScoringSignals— это сигналы, считываемые во время аукциона с сервера Key/Value продавца. Платформа будет использоватьrenderUrlобъявления-кандидата в качестве ключа для этого поиска. -
browserSignals— это объект, создаваемый браузером, содержащий информацию, известную браузеру и которую скрипт аукциона продавца может захотеть проверить. -
directFromSellerSignals— это объект, который может содержать следующие поля: **sellerSignals: АналогичноauctionConfig.sellerSignals, но передается с использованием механизмаdirectFromSellerSignals. **auctionSignals: АналогичноauctionConfig.auctionSignals, но передается с использованием механизмаdirectFromSellerSignals.
Ниже приведён пример использования browserSignals . Обратите внимание, что renderUrl рекламного объявления-кандидата доступен через эти сигналы:
{ 'topWindowHostname': 'www.example-publisher.com',
'interestGroupOwner': 'https://www.example-buyer.com',
'renderURL': 'https://cdn.com/render_url_of_bid',
'renderSize': {width: 100, height: 200}, /* if specified in the bid */
'adComponents': ['https://cdn.com/ad_component_of_bid',
'https://cdn.com/next_ad_component_of_bid',
...],
'biddingDurationMsec': 12,
'bidCurrency': 'USD', /* bidCurrency returned by generateBid, or '???' if none */
'dataVersion': 1, /* Data-Version value from the trusted scoring signals server's response */
}
reportResult()
Продавцу необходимо определить функцию reportResult() , которая будет обслуживаться с принадлежащей ему конечной точки. Конечная точка указывается в конфигурации аукциона как decisionLogicUrl . Функция reportResult() имеет следующую сигнатуру:
reportResult(auctionConfig, browserSignals) {
...
return signalsForWinner;
}
Параметры функции reportResult() :
-
auctionConfig— это конфигурация аукциона, используемая для его проведения. -
browserSignals— это объект, создаваемый браузером, содержащий информацию, известную браузеру и которую может захотеть проверить скрипт аукциона продавца. Это тот же самый объект, который передается в функциюscoreAds().
reportResult() возвращает signalsForWinner , произвольный JSON-объект, который передается в функцию формирования отчетов для покупателя, выигравшего аукцион. Этот объект должен содержать любую необходимую покупателю для составления отчета информацию об аукционе, которую продавец может предоставить.
Запустить аукцион с использованием API для защищенной аудитории
Для проведения аукциона продавцу необходимо выполнить четыре основных шага. Обратите внимание, что эти шаги предполагают наличие у продавца конечной точки, которая возвращает необходимый JavaScript-код, упомянутый ранее в этом руководстве.
- Настройка аукциона. На этом этапе создается объект
auctionConfig. Это позволяет продавцу указать, какие покупатели должны участвовать в аукционе, а также предоставить любые сигналы, которые могут быть важны при генерации ставок или оценке объявлений. - Для запуска аукциона вызовите метод
navigator.runAdAuction(), передав в качестве параметра конфигурацию, созданную на предыдущем шаге. Это запустит цепочку покупателей, генерирующих ставки и затем оценивающих их. В результате этого шага будет получен рекламный кандидат, который можно отобразить в виде объявления. - Разместите победившее объявление в рамке или iframe.
- Сообщите о результатах аукциона. Существует функция
navigator.sendReportTo(), которая инициирует отправку отчета. Продавец всегда будет получать отчет о результатах аукциона. Отчет получит только покупатель, выигравший аукцион. Для отправки отчета на сервер используетсяreportResult()продавца, описанная ранее в этом руководстве.