Poznaj architekturę aukcji w usługach określania stawek i aukcji
Przegląd
Usługi określania stawek i aukcji to zestaw usług dla kupujących i sprzedających reklamy, które działają w zaufanym środowisku wykonawczym (TEE), aby ułatwić przeprowadzenie aukcji z użyciem Protected Audience (PA). Na tej stronie opisujemy różne konfiguracje aukcji, w których można używać funkcji B&A na aukcji PA.
Definicje
| Termin | Opis |
|---|---|
| aukcja z Protected Audience API, | Aukcja reklamowa, która obejmuje dane z różnych witryn |
| Aukcja kontekstowa | Aukcja reklam, która nie obejmuje danych z różnych witryn. Ta aukcja przebiega zgodnie z dotychczasową ścieżką aukcji określania stawek w czasie rzeczywistym (RTB). |
| Żądanie ujednoliconej aukcji | Żądanie wysłane przez kod JavaScript sprzedawcy z przeglądarki, które zawiera ładunek zarówno na potrzeby aukcji Protected Audience, jak i aukcji kontekstowej. |
| Usługa reklamowa sprzedawcy (SAS) | Usługa odpowiedzialna za obsługę żądania aukcji ujednoliconej z przeglądarki. Może to być dotychczasowy serwer reklam RTB sprzedawcy. SAS odpowiada za koordynowanie aukcji kontekstowych i aukcji Protected Audience. |
| Usługa reklamowa dla kupujących | Usługa odpowiedzialna za przesyłanie stawki w aukcji kontekstowej. Może to być dotychczasowy serwer reklam ORTB kupującego. |
Usługi dla kupujących i sprzedawców
Usługi B&A obejmują 4 usługi dla kupujących i sprzedających:
- Kupujący mogą korzystać z usługi ustalania stawek i usługi frontendu kupującego (BFE).
- Sprzedawcy mogą korzystać z usługi aukcyjnej i usługi interfejsu sprzedawcy.
| Uczestnik | Usługa | Opis |
|---|---|---|
| Osoba odpowiadająca za zakupy | Usługa interfejsu kupującego | Usługa obsługuje GetBids żądanie z SFE sprzedawcy. Odpowiada za odszyfrowanie ładunku, pobranie sygnałów K/V i wywołanie funkcji GenerateBids usługi licytacyjnej. |
| Usługa określania stawek | Usługa obsługuje żądanie GenerateBids z BFE. Odpowiada za uruchamianie logiki określania stawek kupującego i generowanie stawki. |
|
| Sprzedawca | Usługa interfejsu sprzedawcy (SFE) | Usługa obsługuje żądanie SelectAd z usługi reklam sprzedawcy. Jest odpowiedzialny za odszyfrowanie ładunku, wywołanie operacji GetBids BFE, pobranie sygnałów K/V, wywołanie operacji ScoreAd usługi aukcyjnej, a następnie zwrócenie zaszyfrowanego wyniku aukcji B&A do SAS.
Jeśli usługa jest częścią stosu sprzedawcy najwyższego poziomu w aukcji z udziałem wielu sprzedawców zarządzanej przez serwer, obsługuje też |
| Serwis aukcyjny | Usługa obsługuje żądanie ScoreAd z SFE. Jest ona odpowiedzialna za uruchamianie logiki oceny sprzedawcy i podawanie oceny atrakcyjności stawki. |
Architektura aukcji PA B&A w przypadku internetu
Poniższy diagram przedstawia podstawową aukcję Protected Audience z usługami B&A z 1 sprzedawcą i 1 kupującym. Grube czerwone ramki oznaczają usługi działające w TEE:
- Kod JavaScript platformy SSP na stronie wydawcy generuje zaszyfrowane dane aukcji reklam B&A, wywołując funkcję
navigator.getInterestGroupAdAuctionData().- Ten zaszyfrowany ładunek zawiera dane kupującego i może zostać odszyfrowany tylko w SFE w TEE.
- Kod JavaScript platformy SSP wysyła do usługi reklamowej sprzedawcy żądanie zunifikowanej aukcji.
- Żądanie aukcji ujednoliconej zawiera zarówno ładunek aukcji kontekstowej w formacie ORTB w postaci zwykłego tekstu, jak i zaszyfrowany ładunek aukcji B&A.
- Usługa reklamowa sprzedawcy to Twój dotychczasowy serwer reklam, który nie działa w środowisku TEE.
- Usługa reklam sprzedawcy wywołuje usługę RTB platformy DSP, aby poprosić o stawkę w aukcji kontekstowej i wszelkie sygnały kupującego, które mają zostać przekazane do kolejnej aukcji PA.
- Może to być krok, w którym kupujący sygnalizuje zamiar wzięcia udziału w aukcji prywatnej.
- Po zakończeniu aukcji kontekstowej SAS wysyła żądanie
SelectAddo usługi SFE.- Do ładunku żądania
SelectAddodawane są sygnały kupującego i stawka wygrywająca aukcję kontekstową.
- Do ładunku żądania
- Usługa SFE platformy SSP wywołuje usługę BFE platformy DSP z żądaniem
GetBids. - BFE platformy DSP wywołuje usługę ustalania stawek za pomocą żądania
GenerateBids. - Gdy SFE otrzyma stawkę, wywoła usługę aukcyjną za pomocą wywołania
ScoreAd.- Stawka z najwyższym wynikiem atrakcyjności jest zwracana do SAS, a następnie przekazywana do kodu JavaScript na stronie.
- Aukcja jest kończona w przeglądarce przez przekazanie zaszyfrowanego wyniku aukcji B&A do wywołania
navigator.runAdAuction().
Konfiguracje aukcji
Aukcję Protected Audience z usługami B&A można skonfigurować w ten sposób:
- Aukcja pojedynczego sprzedawcy z kupującymi z B&A
- Aukcja w trybie mieszanym z kupującymi na urządzeniach i kupującymi w usługach B&A
- Aukcja wielu sprzedawców, która może być koordynowana przez urządzenie lub serwer
Uczestnicy
Aby opisać każdą konfigurację aukcji, w tym przewodniku używamy tych uczestników:
| Uczestnik | Opis |
|---|---|
DSP-A |
Kupujący na urządzeniu |
DSP-B |
Kupujący na urządzeniu |
DSP-X |
Kupujący B&A |
DSP-Y |
Kupujący B&A |
SSP-TOP |
Sprzedawca najwyższego poziomu |
SSP-OD |
Sprzedawca oferujący tylko produkty na urządzeniu |
SSP-BA |
Sprzedawca korzystający tylko z usługi B&A |
SSP-MIX |
Sprzedawca w trybie mieszanym |
Dostępne są 4 platformy DSP:
DSP-AiDSP-Buczestniczą tylko w aukcjach na urządzeniuDSP-XiDSP-Yuczestniczą zarówno w aukcjach na urządzeniu, jak i w aukcjach typu „kupujący i sprzedający”.
Są 4 platformy SSP, a każdy sprzedawca stosuje inną konfigurację aukcji:
SSP-ODprzeprowadza aukcję tylko na urządzeniu.SSP-BAprzeprowadza aukcję tylko z licytowaniem ceny minimalnej.SSP-MIXprzeprowadza aukcję w trybie mieszanym.SSP-TOPprowadzi aukcję wielu sprzedawców:SSP-OD/BA/MIXuczestniczyć jako sprzedawcy komponentów w aukcji wielu sprzedawcówSSP-TOP;
Aukcja B&A pojedynczego sprzedawcy
W konfiguracji z jednym sprzedawcą aukcję prowadzi jeden sprzedawca, w której uczestniczy wielu kupujących. Jeśli sprzedawca prowadzi aukcję B&A, kupujący muszą korzystać z pakietu usług B&A dla kupujących, aby przesłać ofertę na aukcję. Kupujący i sprzedawcy nie muszą korzystać z tego samego dostawcy usług w chmurze.
W powyższej konfiguracji SSP-BA przeprowadza aukcję B&A, w której uczestniczą DSP-X i DSP-Y, korzystając ze stosu kupującego usług B&A. Usługa reklamowa sprzedawcy najpierw przeprowadza aukcję kontekstową dla DSP-X i DSP-Y, a potem przeprowadza aukcję z użyciem Protected Audience API, wysyłając żądanie SelectAd do usługi SFE sprzedawcy. Zwycięska stawka w aukcji kontekstowej i sygnały dla każdego kupującego są przekazywane do wywołania SelectAd. Następnie usługa SFE wysyła żądania GetBids do usług BFE dostawców DSP-X i DSP-Y, które wywołują usługę ustalania stawek, aby wygenerować stawkę.
Zaszyfrowany wynik aukcji B&A jest zwracany do klienta i przekazywany do wywołania runAdAuction(). Konfiguracja aukcji z 1 sprzedawcą wygląda tak:
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
})
Wartość requestId pochodzi z wywołania getInterestGroupAdAuctionData() po stronie klienta, a dane serverResponse pochodzą z aukcji B&A po stronie serwera.
Aukcja w trybie mieszanym
W konfiguracji w trybie mieszanym kupujący mogą brać udział w aukcji sprzedawcy na urządzeniu lub w ramach B&A. Niebieskie strzałki oznaczają ścieżkę aukcji na urządzeniu, a czerwone – ścieżkę aukcji B&A:
W tej konfiguracji kupujący DSP-A i DSP-B przesyłają stawki na urządzeniu, a kupujący DSP-X i DSP-Y przesyłają stawki za pomocą platformy B&A. Kupujący na urządzeniu biorą udział w aukcji PA na urządzeniu w przeglądarce, a kupujący B&A biorą udział w aukcji B&A opisanej w sekcji Aukcja z 1 sprzedawcą.
Aukcja kontekstowa jest przeprowadzana w pierwszej kolejności dla wszystkich kupujących, aby zebrać zwycięską stawkę aukcji kontekstowej i sygnały kupującego. Następnie przeprowadzana jest aukcja B&A, a sygnały kupującego z aukcji kontekstowej są przekazywane do żądania SelectAd wysyłanego do SFE. Zaszyfrowany wynik aukcji B&A zwrócony z SFE jest przekazywany do przeglądarki. Po aukcji B&A jej wynik jest przekazywany do aukcji na urządzeniu, w której biorą udział kupujący na urządzeniu.
Konfiguracja aukcji w trybie mieszanym dla jednego sprzedawcy na potrzeby części aukcji odbywającej się na urządzeniu wygląda podobnie do tej poniżej:
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',
}
]
})
Równoległe przeprowadzanie aukcji na urządzeniu i aukcji B&A
Bez równoległego przetwarzania aukcje są przeprowadzane kolejno: najpierw aukcja kontekstowa, potem aukcja B&A, a na końcu aukcja na urządzeniu. Po wdrożeniu równoległego przetwarzania najpierw ponownie przeprowadzana jest aukcja kontekstowa, ale jej wynik i sygnały są przesyłane z powrotem do klienta, aby równolegle rozpocząć aukcję na urządzeniu, zanim zakończy się aukcja B&A.
Kod JavaScript na urządzeniu klienta wysyła do SAS żądanie zunifikowanej aukcji, a SAS rozpoczyna aukcję kontekstową oraz aukcję B&A dotyczącą reklam spersonalizowanych. Gdy SAS otrzyma odpowiedź z serwera RTB kupującego, sygnały kupującego dotyczące aukcji na urządzeniu mogą być przesyłane z powrotem do przeglądarki wraz ze zwycięzcą aukcji kontekstowej po otrzymaniu wszystkich stawek. Sygnały kupujących przesyłane strumieniowo są używane do generowania stawki na urządzeniu, a zwycięzca aukcji kontekstowej jest używany jako wartość bazowa stawki podczas oceniania stawek.
W przypadku SAS sprzedawca generuje UUID nonce, który jest ustawiany w nagłówku odpowiedzi Ad-Auction-Result-Nonce podczas przesyłania strumieniowego danych aukcji kontekstowej do przeglądarki. Ta sama wartość jednorazowa jest używana w wywołaniu SelectAd do SFE na potrzeby aukcji B&A i jest uwzględniana w zwracanej odpowiedzi SelectAd z SFE. Podczas fazy aukcji po stronie klienta przeglądarka sprawdza, czy wartość nonce w nagłówku odpowiedzi Ad-Auction-Result-Nonce jest zgodna z wartością nonce w zaszyfrowanym ładunku wyniku aukcji.
Więcej informacji o równoległości w trybie mieszanym znajdziesz w tym wyjaśnieniu.
Aukcja wielu sprzedawców
Aukcję PA z wieloma sprzedawcami można przeprowadzić na 2 sposoby:
- Aukcja koordynowana przez urządzenie, w której wywołanie usługi reklamowej każdego sprzedawcy komponentów pochodzi z przeglądarki.
- Aukcja koordynowana przez serwer, w której wywołanie usługi reklamowej każdego sprzedawcy komponentów pochodzi z usługi reklamowej sprzedawcy najwyższego poziomu.
Aukcja na urządzeniu z udziałem wielu sprzedawców
W przypadku aukcji wielu sprzedawców koordynowanej przez urządzenie każdy sprzedawca komponentów może przeprowadzić aukcję w wybranej przez siebie konfiguracji. W aukcji najwyższego poziomu mogą brać udział sprzedawcy korzystający z urządzeń, sprzedawcy korzystający z B&A i sprzedawcy korzystający z trybu mieszanego.
Na tym schemacie SSP-TOP prowadzi aukcję wielu sprzedawców koordynowaną przez serwer, w której uczestniczą SSP-BA-X i SSP-BA-Y.
Z przeglądarki do usługi reklamowej sprzedawcy najwyższego poziomu jest wysyłane jedno żądanie ujednoliconej aukcji, które zawiera ładunek aukcji kontekstowych i aukcji PA dla wszystkich uczestników. Następnie SAS wykonuje wywołanie GetComponentAuctionCiphertexts do SFE z ładunkiem. SFE odszyfruje ładunek, rozdzieli go na poszczególnych sprzedawców komponentów i zwróci ponownie zaszyfrowane ładunki do SAS sprzedawcy najwyższego poziomu.
Definicje protokołu dla żądania i odpowiedzi GetComponentAuctionCiphertexts są następujące:
// 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;
}
W przypadku każdego ładunku sprzedawcy komponentu SAS sprzedawcy najwyższego poziomu wywołuje SAS sprzedawców komponentów, a każdy SAS komponentu przeprowadza aukcję B&A komponentu. Następnie wyniki aukcji komponentów są zwracane do SFE sprzedawcy najwyższego poziomu, a oferty z aukcji komponentów są oceniane przez usługę aukcyjną sprzedawcy najwyższego poziomu. Do SFE zwracana jest stawka z najwyższym wynikiem atrakcyjności, a zaszyfrowany ładunek jest wysyłany do SAS, aby został zwrócony do klienta. W przeglądarce sprzedawca najwyższego poziomu kończy aukcję, wywołując funkcję navigator.runAdAuction() i przekazując zaszyfrowany ładunek z wynikiem aukcji na serwerze.
Dalsze kroki
Po przeczytaniu tego przewodnika możesz wykonać te czynności:
Więcej informacji
- Aby lepiej zrozumieć, jak działa B&A w przypadku Protected Audience, zapoznaj się z tymi wyjaśnieniami w GitHubie:
- Przeprowadź eksperymenty z interfejsem Protected Audience API za pomocą platformy B&A, korzystając z ćwiczeń z programowania dotyczących kompleksowego testowania lokalnego.
- Informacje o integracji dla sprzedawców znajdziesz w artykule Integracja z B&A jako sprzedawca.
Masz pytania?
- Pytania dotyczące usług określania stawek i usług aukcyjnych możesz zadawać, otwierając zgłoszenie w repozytorium usług określania stawek i usług aukcyjnych.