Запустите аукцион на основе браузера с одним продавцом

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

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

Шесть этапов аукциона рекламы с использованием API защищенной аудитории

Шесть этапов аукциона рекламы с использованием API защищенной аудитории
На этой диаграмме показан каждый этап аукциона рекламы с использованием API защищенной аудитории.
  1. Пользователь посещает сайт, на котором отображается реклама.
  2. Код продавца выполняет функцию navigator.runAdAuction() . Она определяет, какое рекламное место выставлено на продажу и кто может делать ставки. Продавцы также должны включить скрипт, который оценивает каждую ставку, scoreAd() .
  3. Код приглашенного покупателя выполняется для генерации ставки, URL-адреса соответствующего рекламного креатива и других данных. Скрипт для формирования ставок может запрашивать данные в режиме реального времени, такие как оставшийся бюджет рекламной кампании, из сервиса «Ключ/Значение» покупателя.
  4. Код продавца оценивает каждую ставку и выбирает победителя. Эта логика использует значение ставки и другие данные для определения привлекательности ставки. Объявления, которые не могут превзойти контекстного победителя, отклоняются. Продавец может использовать собственный сервис «ключ/значение» для получения данных в реальном времени.
  5. Победившее объявление возвращается в виде непрозрачного значения, которое отображается в рамке . Ни продавец, ни издатель не смогут увидеть это значение.
  6. Информация об аукционе доводится до сведения продавца и покупателей, выигравших его.

Аукцион может проводиться, когда пользователь переходит на страницу, на которой отображается реклама. Аукционы могут проводиться заранее, чтобы рекламный материал был готов к моменту появления рекламного места.

Продавцы инициируют аукцион объявлений, оценивают подходящие объявления, используя пользовательскую логику, предоставляемую в виде функции 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-код, упомянутый ранее в этом руководстве.

  1. Настройка аукциона. На этом этапе создается объект auctionConfig . Это позволяет продавцу указать, какие покупатели должны участвовать в аукционе, а также предоставить любые сигналы, которые могут быть важны при генерации ставок или оценке объявлений.
  2. Для запуска аукциона вызовите метод navigator.runAdAuction() , передав в качестве параметра конфигурацию, созданную на предыдущем шаге. Это запустит цепочку покупателей, генерирующих ставки и затем оценивающих их. В результате этого шага будет получен рекламный кандидат, который можно отобразить в виде объявления.
  3. Разместите победившее объявление в рамке или iframe.
  4. Сообщите о результатах аукциона. Существует функция navigator.sendReportTo() , которая инициирует отправку отчета. Продавец всегда будет получать отчет о результатах аукциона. Отчет получит только покупатель, выигравший аукцион. Для отправки отчета на сервер используется reportResult() продавца, описанная ранее в этом руководстве.