Изучите архитектуру аукционов в сфере услуг по проведению торгов и аукционов
Обзор
Сервисы торгов и аукционов (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. Когда служба является частью стека продавца верхнего уровня в организованном сервером аукционе с участием нескольких продавцов , служба также обрабатывает запрос |
| Аукционный сервис | Сервис обрабатывает запрос ScoreAd от SFE . Он отвечает за реализацию логики оценки продавца и предоставление оценки привлекательности заявки. |
Архитектура аукциона PA B&A для Интернета
На следующей диаграмме показан базовый аукцион защищенной аудитории с B&A Services с одним продавцом и одним покупателем. Толстые красные прямоугольники обозначают сервисы, работающие в TEE:

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

В предыдущей настройке 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-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() и предоставляя зашифрованную полезную нагрузку с результатами аукциона на сервере.
Следующие шаги
После прочтения этого руководства вы можете предпринять следующие шаги:
Узнать больше
- Для более глубокого понимания того, как работает B&A для защищенной аудитории, ознакомьтесь со следующими пояснениями на GitHub:
- Поэкспериментируйте с защищенной аудиторией с помощью B&A, следуя кодовой лаборатории «Локальное сквозное тестирование» .
- Для интеграции продавца см. раздел Интеграция с B&A в качестве продавца .
Есть вопросы?
- Задайте вопросы об услугах по торгам и аукционам , открыв вопрос в репозитории B&A Services .