Архитектура

Изучите архитектуру аукционов в сфере услуг по проведению торгов и аукционов

Обзор

Сервисы торгов и аукционов (B&A) предоставляют набор сервисов для покупателей и продавцов рекламы, работающих в среде доверенного исполнения (TEE) для проведения аукциона с защищённой аудиторией (PA). На этой странице описаны различные конфигурации аукциона, которые B&A может использовать в аукционе PA.

Определения

Срок Описание
Аукцион защищенной аудитории Аукцион рекламы, включающий межсайтовые данные
Контекстный аукцион Аукцион рекламы, не использующий межсайтовые данные. Этот аукцион следует существующему алгоритму аукциона Real-Time Bidding (RTB).
Единый запрос на аукцион Запрос, отправляемый кодом JavaScript продавца из браузера, который включает полезную нагрузку как для аукциона защищенной аудитории, так и для контекстного аукциона.
Служба рекламы продавцов (SAS) Служба, отвечающая за обработку единого запроса на аукцион из браузера. Это может быть существующий сервер RTB-рекламы продавца. SAS отвечает за организацию как контекстных аукционов, так и аукционов с защищённой аудиторией.
Служба рекламы покупателя Служба, ответственная за подачу ставки на контекстном аукционе. Это может быть существующий сервер объявлений ORTB покупателя.

Услуги для покупателей и продавцов

B&A Services состоит из четырех услуг для покупателей и продавцов:

  • Покупателям доступны услуги по приему заявок и обслуживания клиентов (BFE) .
  • Продавцам доступны услуги аукциона и интерфейса продавца (SFE) .
Участник Услуга Описание
Покупатель Служба взаимодействия с покупателем (BFE) Сервис обрабатывает запрос GetBids от SFE продавца. Он отвечает за расшифровку полезной нагрузки, получение сигналов K/V и вызов GenerateBids сервиса торгов .
Служба торгов Служба обрабатывает запрос GenerateBids от BFE . Она отвечает за реализацию логики торгов покупателя и генерацию ставки.
Продавец Служба взаимодействия с продавцом (SFE) Служба обрабатывает запрос SelectAd от сервиса Seller Ad Service . Она отвечает за расшифровку полезной нагрузки, вызов операции GetBids в BFE , получение сигналов K/V, вызов операции ScoreAd в Auction Service и последующий возврат зашифрованного результата аукциона B&A в SAS.

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

Аукционный сервис Сервис обрабатывает запрос ScoreAd от SFE . Он отвечает за реализацию логики оценки продавца и предоставление оценки привлекательности заявки.

Архитектура аукциона PA B&A для Интернета

На следующей диаграмме показан базовый аукцион защищенной аудитории с B&A Services с одним продавцом и одним покупателем. Толстые красные прямоугольники обозначают сервисы, работающие в TEE:

Клиентский JavaScript-код отправляет единый запрос на аукцион в SSP. SAS отправляет запрос в SFE, а SFE отправляет запрос в BFE на ставку.
( Полноразмерная диаграмма )
  1. JavaScript-код SSP на странице издателя генерирует зашифрованные данные аукциона объявлений B&A путем вызова navigator.getInterestGroupAdAuctionData() .
    • Эта зашифрованная полезная нагрузка содержит данные покупателя и может быть расшифрована только внутри SFE в TEE.
  2. Код JavaScript SSP отправляет унифицированный запрос аукциона в Seller Ad Service.
    • Унифицированный запрос на аукцион содержит как открытую текстовую полезную нагрузку контекстного аукциона ORTB, так и зашифрованную полезную нагрузку аукциона B&A.
    • Служба рекламы продавца — это ваш существующий сервер объявлений, который не работает в TEE.
  3. Служба объявлений продавца обращается к службе RTB DSP, чтобы запросить ставку контекстного аукциона и любые сигналы покупателя для передачи на последующий аукцион PA.
    • Это может быть шагом, на котором покупатель сигнализирует о своем намерении участвовать в аукционе PA.
  4. После завершения контекстного аукциона SAS отправляет запрос SelectAd в службу SFE.
    • Контекстные сигналы выигрышной ставки аукциона и покупателя добавляются в полезную нагрузку запроса SelectAd .
  5. Служба SFE SSP обращается к службе BFE DSP с запросом GetBids .
  6. BFE DSP обращается к службе торгов с запросом GenerateBids .
  7. После получения заявки SFE отправляет вызов ScoreAd в службу аукционов.
    • Заявка с наивысшей оценкой привлекательности возвращается в SAS, а затем пересылается в код JavaScript на странице.
  8. Аукцион завершается в браузере путем передачи зашифрованного результата аукциона B&A в вызов navigator.runAdAuction() .

Конфигурации аукциона

Аукцион защищенной аудитории с помощью B&A Services можно настроить следующими способами:

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

Участники

Для описания каждой конфигурации аукциона в данном руководстве используются следующие участники:

Участник Описание
DSP-A Покупатель на устройстве
DSP-B Покупатель на устройстве
DSP-X Покупатель B&A
DSP-Y Покупатель B&A
SSP-TOP Продавец высшего уровня
SSP-OD Продавец, работающий только на устройстве
SSP-BA Продавец, работающий только с B&A
SSP-MIX Продавец смешанного типа

Существует четыре DSP:

  • DSP-A и DSP-B участвуют только в аукционах на устройстве.
  • DSP-X и DSP-Y участвуют как в аукционах на устройствах, так и в аукционах B&A.

Существует четыре поставщика общих услуг (SSP), и каждый продавец использует собственную конфигурацию аукциона:

  • SSP-OD проводит аукцион только на устройстве
  • SSP-BA проводит аукцион только по принципу «B&A»
  • SSP-MIX проводит аукцион смешанного режима
  • SSP-TOP проводит аукцион с участием нескольких продавцов:
    • SSP-OD/BA/MIX участвуют в качестве продавцов компонентов многостороннего аукциона SSP-TOP

Аукцион B&A с единственным продавцом

В конфигурации с одним продавцом один продавец проводит аукцион, в котором участвуют несколько покупателей. Если продавец проводит аукцион B&A, покупатели должны использовать стек B&A Services для подачи заявки на аукцион. Покупателям и продавцам не обязательно использовать одного и того же облачного провайдера.

Архитектура с одним продавцом, в которой один SFE взаимодействует с несколькими BFE для получения заявок.
( Полноразмерная диаграмма )

В предыдущей настройке SSP-BA проводит аукцион B&A, в котором участвуют DSP-X и DSP-Y , используя стек покупателей сервисов B&A. Рекламная служба продавца сначала проводит контекстный аукцион для DSP-X и DSP-Y , а затем аукцион защищённой аудитории, отправляя запрос SelectAd в службу SFE продавца. Выигрышная ставка контекстного аукциона и сигналы для каждого покупателя передаются в вызов SelectAd . Затем служба SFE отправляет запросы GetBids в BFE DSP-X и DSP-Y , которые вызывают службу ставок для формирования ставки.

Зашифрованный результат аукциона B&A возвращается клиенту и передаётся в вызов runAdAuction() . Конфигурация аукциона с одним продавцом выглядит следующим образом:

await navigator.runAdAuction({
  seller: 'https://ssp-ba.example',
  requestId: 'g8312cb2-da2d-4e9b-80e6-e13dec2a581c',
  serverResponse: Uint8Array(560) [193, 120, 4, ] // Encrypted B&A auction result
})

Значение requestId поступает из вызова getInterestGroupAdAuctionData() на клиенте, а данные serverResponse поступают из аукциона B&A на стороне сервера.

Аукцион смешанного режима

В конфигурации смешанного режима покупатели могут участвовать в аукционе продавца как на устройстве, так и через B&A. Синие стрелки обозначают путь аукциона на устройстве, а красные стрелки — путь аукциона B&A:

Смешанная архитектура продавца, в которой покупатели могут подавать свои заявки с устройства или через B&A.
( Полноразмерная диаграмма )

В этой конфигурации DSP-A и DSP-B — покупатели, размещающие ставки на устройстве, а DSP-X и DSP-Y — покупатели, размещающие ставки через B&A. Покупатели, размещающие ставки на устройстве, участвуют в аукционе PA на устройстве в браузере, а покупатели, размещающие ставки через B&A, — в аукционе B&A, описанном в разделе об аукционе с одним продавцом .

Контекстный аукцион сначала проводится для всех покупателей, чтобы собрать выигрышную ставку и сигналы покупателя. Затем запускается аукцион B&A, и сигналы покупателя с контекстного аукциона передаются в запрос SelectAd к SFE. Зашифрованный результат аукциона B&A, возвращаемый SFE, пересылается в браузер. После аукциона B&A его результат передается в аукцион на устройстве, в котором участвуют покупатели на устройстве.

Конфигурация аукциона смешанного режима с одним продавцом для части аукциона на устройстве выглядит примерно следующим образом:

await navigator.runAdAuction({
  seller: 'https://ssp-mix.example',
  decisionLogicURL: 'https://ssp-ba.example/score-ad.js',
  componentAuctions: [
    // B&A auction
    {
      seller: 'https://ssp-mix.example',
      requestId: 'f5135cb2-da2d-4e9b-80e6-e13dec2a581c',
      serverResponse: Uint8Array(560) [133, 20, 14, ]
    },
    // On-device auction
    {
      seller: 'https://ssp-mix.example',
      interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'],
      decisionLogicURL: 'https://ssp-mix.example/on-device-score-ad.js',
    }
  ]
})

Распараллеливание аукционов на устройстве и B&A

Без распараллеливания аукционы выполняются последовательно: сначала идёт контекстный аукцион, затем аукцион B&A и, наконец, аукцион на устройстве. При распараллеливании контекстный аукцион снова запускается первым, но его результат и сигналы передаются обратно клиенту для параллельного запуска аукциона на устройстве до завершения аукциона B&A.

Диаграмма, описывающая, как ставка и сигналы контекстного аукциона, а также результат SelectAd передаются обратно в код JavaScript браузера.
( Полноразмерная диаграмма )

JavaScript-код в клиенте отправляет единый запрос на аукцион в SAS, и SAS запускает контекстный аукцион и аукцион PA B&A. Когда SAS получает ответ от RTB-сервера покупателя, сигналы покупателя для аукциона на устройстве могут быть переданы обратно в браузер вместе с победителем контекстного аукциона после получения всех ставок. Передаваемые сигналы покупателя используются для формирования ставки на устройстве, а победитель контекстного аукциона используется в качестве минимального значения ставки при оценке ставок.

В SAS продавец генерирует одноразовый код UUID , который устанавливается в заголовке ответа Ad-Auction-Result-Nonce при потоковой передаче данных контекстного аукциона в браузер. Тот же одноразовый код используется в вызове SelectAd к SFE для аукциона B&A, и этот одноразовый код включается в возвращаемый ответ SelectAd от SFE. Во время фазы аукциона на стороне клиента браузер проверяет, совпадает ли одноразовый код в заголовке ответа Ad-Auction-Result-Nonce с одноразовым кодом в зашифрованной полезной нагрузке с результатами аукциона.

Дополнительную информацию о распараллеливании в смешанном режиме см . в пояснительной записке .

Аукцион с несколькими продавцами

Существует два способа проведения аукциона PA с участием нескольких продавцов с B&A:

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

Аукцион с несколькими продавцами, организованный с помощью устройств

В аукционе с участием нескольких продавцов, организованном на базе устройств, каждый продавец компонентов может проводить свой аукцион в любой конфигурации по своему усмотрению. В аукционе верхнего уровня могут участвовать продавцы, работающие на устройствах, продавцы B&A и продавцы смешанного типа.

Диаграмма, описывающая, как несколько продавцов, использующих различные конфигурации аукциона, могут отправить результаты своего аукциона продавцу верхнего уровня.
( Полноразмерная диаграмма )
В этой настройке `SSP-TOP`, являющийся продавцом верхнего уровня, проводит многопродавцовый аукцион, в котором участвуют `SSP-OD`, `SSP-BA` и `SSP-MIX`: * `SSP-OD`, проводящий аукцион PA только на устройстве, отправляет свою конфигурацию аукциона компонентов на устройстве продавцу верхнего уровня. * `SSP-BA`, проводящий аукцион B&A, отправляет единый запрос на аукцион в свою службу объявлений продавца и проводит собственные контекстные и B&A аукционы. Результаты отправляются продавцу верхнего уровня. * `SSP-MIX`, проводящий аукцион смешанного режима, сначала проводит аукцион B&A на сервере, а затем отправляет как результат аукциона B&A, так и конфигурацию аукциона на устройстве. Продавец верхнего уровня собирает конфигурации аукциона компонентов от каждого продавца и создает конфигурацию аукциона, которая выглядит примерно так: ```js await navigator.runAdAuction({ seller: 'https://ssp-top.example', decisionLogicURL: 'https://ssp-top.example/score-ad.js', componentAuctions: [ // Аукцион SSP-BA, работающий только в режиме B&A { seller: 'https://ssp-ba.example', requestId: 'g8312cb2-da2d-4e9b-80e6-e13dec2a581c', serverResponse: Uint8Array(560) [193, 120, 4, …] // Зашифрованный результат аукциона B&A }, // Аукцион SSP-MIX B&A смешанного режима { seller: 'https://ssp-mix.example', requestId: 'f5135cb2-da2d-4e9b-80e6-e13dec2a581c', serverResponse: Uint8Array(560) [133, 20, 4, …] // Зашифрованный результат аукциона B&A }. // Аукцион SSP-MIX на устройстве в смешанном режиме { продавец: 'https://ssp-mix.example', interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'], decisionLogicURL: 'https://ssp-mix.example/score-ad.js', } // Аукцион SSP-OD на устройстве { продавец: 'https://ssp-od.example', interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'], decisionLogicURL: 'https://ssp-od.example/score-ad.js', } ] }) ``` ### Многопродавцовый аукцион, организованный сервером. В многопродавцовом аукционе, организованном сервером, вызовы рекламных сервисов продавца компонентов осуществляются из рекламного сервиса продавца верхнего уровня. В этой конфигурации продавцы компонентов не могут проводить аукционы на устройствах или в смешанном режиме; все продавцы должны использовать B&A, а все покупатели должны подавать свои ставки, используя B&A.
SSP верхнего уровня отправляет унифицированный запрос на аукцион в свою службу объявлений продавца. Служба объявлений продавца вызывает SFE для выполнения операции GetComponentAuctionCipherTexts. Возвращенные шифртексты затем отправляются в службу объявлений каждого продавца компонентов, которая проводит собственные аукционы B&A.
( Полноразмерная диаграмма )

На этой диаграмме SSP-TOP управляет организованным сервером аукционом с участием нескольких продавцов, в котором участвуют SSP-BA-X и SSP-BA-Y .

Единый запрос на аукцион, содержащий полезную нагрузку контекстных и PA-аукционов для всех участников, отправляется из браузера в рекламный сервис продавца верхнего уровня. Затем SAS выполняет вызов GetComponentAuctionCiphertexts к SFE с этой полезной нагрузкой. SFE расшифрует полезную нагрузку, разделит её по каждому продавцу компонентов и вернет повторно зашифрованную полезную нагрузку в SAS продавца верхнего уровня.

Определения proto для запроса и ответа GetComponentAuctionCiphertexts следующие:

// Request sent from the top-level seller's ad service to SFE
message GetComponentAuctionCiphertextsRequest {
  bytes protected_auction_ciphertext = 1; // Generated in the browser
  repeated string component_sellers = 2; // The list of all component sellers
}

// Response returned from SFE to the top-level seller's ad service
message GetComponentAuctionCiphertextsResponse {
  // A map of component sellers and their re-encrypted payloads
  map<string, bytes> seller_component_ciphertexts = 1;
}

С помощью полезной нагрузки каждого продавца компонентов система SAS продавца верхнего уровня вызывает систему SAS продавцов компонентов, и каждая система SAS компонента проводит свой аукцион компонентов B&A. Затем результаты аукционов компонентов возвращаются в систему SFE продавца верхнего уровня, а ставки на аукционе компонентов оцениваются службой аукционов продавца верхнего уровня. Ставка с наивысшим рейтингом привлекательности возвращается в систему SFE, и эта зашифрованная полезная нагрузка отправляется в систему SAS для возврата клиенту. В браузере продавец верхнего уровня завершает аукцион, вызывая navigator.runAdAuction() и предоставляя зашифрованную полезную нагрузку с результатами аукциона на сервере.

Следующие шаги

После прочтения этого руководства вы можете предпринять следующие шаги:

Узнать больше

Есть вопросы?