Архитектура

Изучите архитектуру аукциона в рамках сервисов торгов и аукционов.

Обзор

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

Определения

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

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

Компания B&A Services предоставляет покупателям и продавцам четыре вида услуг:

  • Для покупателей доступны услуги по проведению торгов и аутсорсингу для покупателей (Buyer Front-End, BFE) .
  • Продавцам доступны для использования аукционный сервис и сервис для продавцов (SFE) .
Участник Услуга Описание
Покупатель Сервис для покупателей на переднем плане (BFE) Сервис обрабатывает запрос GetBids от SFE продавца. Он отвечает за расшифровку полезной нагрузки, получение сигналов ключ-значение и вызов 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 для веб-сайта

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

Код 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. Сервис Seller Ad Service обращается к RTB-сервису DSP для запроса контекстной ставки на аукционе и любых сигналов покупателя, чтобы передать их в последующий аукцион PA.
    • На этом этапе покупатель может заявить о своем намерении участвовать в аукционе PA.
  4. После завершения контекстного аукциона SAS отправляет запрос SelectAd в службу SFE.
    • В полезную нагрузку запроса SelectAd добавляются контекстные сигналы о выигрышной ставке на аукционе и данные о покупателе.
  5. Сервис SFE компании SSP отправляет запрос GetBids сервису BFE компании DSP.
  6. BFE от DSP обращается к службе торгов с запросом GenerateBids .
  7. После получения заявки компанией SFE, ScoreAd отправляет запрос в аукционную службу.
    • Предложение с наивысшим рейтингом привлекательности возвращается в SAS, а затем перенаправляется в JavaScript-код на странице.
  8. Аукцион завершается в браузере путем передачи зашифрованного результата аукциона B&A в вызов функции navigator.runAdAuction() .

Настройки аукциона

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

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

Участники

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

Участник Описание
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 участвуют как в аукционах на устройствах, так и в аукционах «покупка-продажа».

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

  • SSP-OD проводит аукцион, доступный только на самом устройстве.
  • SSP-BA проводит аукцион, на котором продаются только товары и услуги.
  • SSP-MIX проводит аукцион в смешанном режиме.
  • SSP-TOP проводит аукцион с участием нескольких продавцов:
    • SSP-OD/BA/MIX участвуют в качестве продавцов компонентов на многостороннем аукционе SSP-TOP .

Аукцион "Сделка купли-продажи" с одним продавцом

В конфигурации с одним продавцом один продавец проводит аукцион, в котором участвуют несколько покупателей. Если продавец проводит аукцион «Купи и продай», покупатели должны использовать пакет услуг 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.
( Полноразмерная диаграмма )

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

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

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

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.

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

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

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

Подробнее о распараллеливании в смешанном режиме см. в пояснительной статье .

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

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

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

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

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

Диаграмма, иллюстрирующая, как несколько продавцов, использующих различные конфигурации аукциона, могут отправлять результаты своих аукционов продавцу верхнего уровня.
( Полноразмерная диаграмма )
В этой конфигурации `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: [ // Аукцион B&A только для SSP-BA { seller: 'https://ssp-ba.example', requestId: 'g8312cb2-da2d-4e9b-80e6-e13dec2a581c', serverResponse: Uint8Array(560) [193, 120, 4, …] // Результат зашифрованного аукциона B&A }, // Аукцион B&A смешанного режима для SSP-MIX { seller: 'https://ssp-mix.example', requestId: 'f5135cb2-da2d-4e9b-80e6-e13dec2a581c', serverResponse: Uint8Array(560) [133, 20, 4, …] // Зашифрованный результат аукциона B&A }. // Аукцион SSP-MIX на устройстве в смешанном режиме { seller: 'https://ssp-mix.example', interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'], decisionLogicURL: 'https://ssp-mix.example/score-ad.js', } // Аукцион SSP-OD на устройстве { 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() и предоставляя зашифрованные данные результатов аукциона на сервере.

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

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

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

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