Изучите аукционную архитектуру служб назначения ставок и аукционов.
Обзор
Службы торгов и аукционов (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. Если служба является частью стека продавца верхнего уровня на аукционе с несколькими продавцами, организованном сервером , она также обрабатывает запрос |
Аукционный Сервис | Служба обрабатывает запрос ScoreAd от SFE . Он отвечает за выполнение логики оценки продавца и предоставление оценки желательности предложения. |
Архитектура аукциона PA B&A для Интернета
На следующей диаграмме описан базовый аукцион защищенной аудитории с услугами B&A с одним продавцом и одним покупателем. Толстые красные прямоугольники обозначают службы, работающие в TEE:
- Код JavaScript SSP на странице издателя генерирует зашифрованные данные аукциона объявлений B&A путем вызова
navigator.getInterestGroupAdAuctionData()
.- Эта зашифрованная полезная нагрузка содержит данные покупателя и может быть расшифрована только внутри SFE в TEE.
- Код JavaScript SSP отправляет единый запрос аукциона в службу объявлений продавца.
- Единый запрос аукциона содержит как открытые текстовые полезные данные контекстного аукциона ORTB, так и зашифрованные полезные данные аукциона B&A.
- Служба рекламы продавца — это ваш существующий рекламный сервер, который не работает в TEE.
- Служба рекламы продавца вызывает службу RTB DSP, чтобы запросить контекстную аукционную ставку и любые сигналы покупателя, которые будут переданы на последующий аукцион PA.
- Это может быть этап, на котором покупатель сигнализирует о своем намерении участвовать в аукционе PA.
- После завершения контекстного аукциона SAS отправляет запрос
SelectAd
в службу SFE.- Контекстная ставка, выигравшая аукцион, и сигналы покупателя добавляются в полезную нагрузку запроса
SelectAd
.
- Контекстная ставка, выигравшая аукцион, и сигналы покупателя добавляются в полезную нагрузку запроса
- Служба SFE SSP вызывает службу BFE DSP с запросом
GetBids
. - BFE DSP вызывает службу торгов с запросом
GenerateBids
. - Как только ставка получена SFE, в службу аукционов поступает вызов
ScoreAd
.- Ставка с наивысшим рейтингом желательности возвращается в SAS, а затем пересылается в код JavaScript на странице.
- Аукцион завершается в браузере путем передачи зашифрованного результата аукциона 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 для покупателей, чтобы подать заявку на аукцион. Покупателям и продавцам не обязательно использовать одного и того же облачного провайдера.
В предыдущей настройке 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:
В этой настройке 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.
Код 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:
- Аукцион, организованный устройством, при котором вызов рекламной службы каждого продавца компонентов происходит из браузера.
- Организуемый сервером аукцион, на котором вызов рекламной службы каждого продавца компонентов исходит из рекламной службы продавца верхнего уровня.
Аукцион с участием нескольких продавцов, организованный устройством
В аукционе с участием нескольких продавцов, организованном устройством, каждый продавец компонентов может проводить аукцион в конфигурации по своему выбору. В аукционе верхнего уровня могут участвовать продавцы на устройствах, продавцы 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-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()
и передавая зашифрованную полезную нагрузку результата аукциона сервера.
Следующие шаги
Прочитав это руководство, вы можете предпринять следующие шаги:
Узнать больше
- Для более глубокого понимания того, как работает B&A для защищенной аудитории, см. следующие пояснения на GitHub:
- Поэкспериментируйте с защищенной аудиторией с помощью B&A, следуя кодовой лаборатории «Сквозное локальное тестирование» .
- Подробнее об интеграции продавцов см. в разделе Интеграция с B&A в качестве продавца .
Есть вопросы?
- Задайте вопросы о службах ставок и аукционов, открыв вопрос в репозитории B&A Services .
- Задайте вопросы о Privacy Sandbox в целом, открыв вопрос в репозитории Privacy-Sandbox-dev-support.