Архитектура

Изучите аукционную архитектуру служб назначения ставок и аукционов.

Обзор

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

Определения

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

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

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

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

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

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

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

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

Клиентский код JavaScript отправляет единый запрос аукциона в SSP. SAS отправляет запрос в SFE, а SFE отправляет запрос в BFE на предложение.

( Полноразмерная схема )

  1. Код JavaScript SSP на странице издателя генерирует зашифрованные данные аукциона объявлений B&A путем вызова navigator.getInterestGroupAdAuctionData() .
    • Эта зашифрованная полезная нагрузка содержит данные покупателя и может быть расшифрована только внутри SFE в TEE.
  2. Код JavaScript SSP отправляет единый запрос аукциона в службу объявлений продавца.
    • Единый запрос аукциона содержит как открытые текстовые полезные данные контекстного аукциона 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 для покупателей, чтобы подать заявку на аукцион. Покупателям и продавцам не обязательно использовать одного и того же облачного провайдера.

Архитектура с одним продавцом, при которой одно 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, так и конфигурацию аукциона на устройстве.

Продавец верхнего уровня собирает конфигурации аукциона компонентов от каждого продавца и создает конфигурацию аукциона, которая выглядит примерно так:

await navigator.runAdAuction({
  seller: 'https://ssp-top.example',
  decisionLogicURL: 'https://ssp-top.example/score-ad.js',
  componentAuctions: [
    // SSP-BA's B&A-only auction
    {
      seller: 'https://ssp-ba.example',
      requestId: 'g8312cb2-da2d-4e9b-80e6-e13dec2a581c',
      serverResponse: Uint8Array(560) [193, 120, 4, ] // Encrypted B&A auction result
    },
    // SSP-MIX's B&A auction of mixed-mode
    {
      seller: 'https://ssp-mix.example',
      requestId: 'f5135cb2-da2d-4e9b-80e6-e13dec2a581c',
      serverResponse: Uint8Array(560) [133, 20, 4, ] // Encrypted B&A auction result
    }.
    // SSP-MIX's on-device auction of mixed-mode
    {
      seller: 'https://ssp-mix.example',
      interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'],
      decisionLogicURL: 'https://ssp-mix.example/score-ad.js',
    }
    // SSP-OD's on-device auction
    {
      seller: '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 продавца верхнего уровня.

Протоопределения для запроса и ответа 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() и передавая зашифрованную полезную нагрузку результата аукциона сервера.

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

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

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

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