Poznaj architekturę aukcji w usługach ustalania stawek i usługach aukcji
Omówienie
Usługi określania stawek i usługi aukcyjne to zestaw usług dla kupujących i sprzedawców reklam, który działa w zaufanym środowisku wykonawczym (TEE) i ułatwia przeprowadzanie aukcji Protected Audience (PA). Na tej stronie opisujemy różne konfiguracje aukcji, w których można używać B&A w aukcji PA.
Definicje
Termin | Opis |
---|---|
Aukcja Protected Audience | Aukcja reklamy, która wykorzystuje dane z wielu 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 dotyczące ujednoliconej aukcji | Żądanie wysyłane przez kod JavaScript sprzedawcy z przeglądarki, które zawiera ładunek zarówno dla aukcji Protected Audience, jak i aukccji kontekstowej. |
Usługa reklamowa dla sprzedawców (SAS) | Usługa odpowiedzialna za obsługę żądania ujednoliconej aukcji z przeglądarki. Może to być dotychczasowy serwer reklam RTB sprzedawcy. SAS odpowiada za koordynację aukcji kontekstowych i z użyciem listy odbiorców chronionych. |
Usługa reklamowa dla kupujących | Usługa odpowiedzialna za przesyłanie stawki aukcji kontekstowej. Może to być dotychczasowy serwer reklam ORTB kupującego. |
Usługi dla kupujących i sprzedających
Usługi fuzji i przejęcia obejmują 4 usługi dla kupujących i sprzedających:
- W przypadku kupujących dostępne są usługa ustalania stawek i usługa frontendu kupującego.
- Dla sprzedawców dostępne są usługi aukcji i interfejsu sprzedawcy.
Uczestnik | Usługa | Opis |
---|---|---|
Osoba odpowiadająca za zakupy | Usługa frontowa kupującego (BFE) | Usługa obsługuje GetBids żądanie z SFE sprzedawcy. Jest ona odpowiedzialna za odszyfrowywanie danych, pobieranie sygnałów K/V i wywoływanie funkcji GenerateBids Usługi ustalania stawek. |
Usługa określania stawek | Usługa obsługuje żądanie GenerateBids z BFE. Jest odpowiedzialny za stosowanie logiki ustalania stawek przez kupującego i generowanie stawki. |
|
Sprzedawca | Interfejs sprzedawcy (SFE) | Usługa obsługuje żądanie SelectAd z usługi reklamowej sprzedawcy. Jest ona odpowiedzialna za odszyfrowywanie ładunku, wywoływanie operacji GetBids w BFE, pobieranie sygnałów K/V, wywoływanie operacji ScoreAd w usłudze aukcji, a następnie zwracanie zaszyfrowanego wyniku aukcji B&A do SAS.
Jeśli usługa jest częścią pakietu usług sprzedawcy najwyższego poziomu w ramach aukcji wielosprzedawców sterowanej przez serwer, obsługuje ona również żądanie |
Serwis aukcyjny | Usługa obsługuje żądanie ScoreAd z SFE. Jest odpowiedzialny za uruchamianie logiki punktacji sprzedawcy i za podanie wyniku atrakcyjności stawki. |
Architektura aukcji PA B&A w internecie
Na poniższym diagramie opisano podstawową aukcję Protected Audience z usługami B&A z jednym sprzedawcą i jednym kupującym. Grube czerwone ramki oznaczają usługi działające w TEE:
- Kod JavaScript SSP na stronie wydawcy generuje zaszyfrowane dane aukcji reklam B&A, wywołując funkcję
navigator.getInterestGroupAdAuctionData()
.- Zaszyfrowany ładunek zawiera dane kupującego i może zostać odszyfrowany tylko w ramach SFE w TEE.
- Kod JavaScript SSP wysyła żądanie dotyczące zunifikowanej aukcji do usługi reklamowej sprzedawcy.
- Żądanie ujednoliconej aukcji zawiera zarówno ładunek aukcji kontekstowej ORTB w postaci tekstu zwykłego, jak i zaszyfrowany ładunek aukcji typu B&A.
- Usługa reklamowa sprzedawcy to dotychczasowy serwer reklam, który nie działa w enklawie TEE.
- Usługa reklamy sprzedawcy wywołuje usługę RTB platformy DSP, aby poprosić o stawkę w aukcji kontekstowej i sygnały kupującego, które mają zostać przekazane do kolejnej aukcji PA.
- Może to być krok, w którym kupujący sygnalizuje chęć udziału w aukcji PA.
- Po zakończeniu aukcji kontekstowej usługa SAS wysyła
SelectAd
do usługi SFE.- Do
SelectAd
dodawane są sygnały dotyczące zwycięskiej stawki i kupującego w kontekstualnej aukcji.
- Do
- Usługa SFE dostawcy usług SSP wywołuje usługę BFE dostawcy usług DSP za pomocą żądania
GetBids
. - BFE w DSP wywołuje usługę ustalania stawek z żądaniem
GenerateBids
. - Gdy SFE otrzyma stawkę, wywołuje usługę aukcji
ScoreAd
.- Stawka o najwyższym wyniku pożądania jest zwracana do SAS, a potem przekazywana do kodu JavaScript na stronie.
- Aukcja kończy się w przeglądarce, gdy wynik zaszyfrowanej aukcji B&A zostanie przekazany do wywołania
navigator.runAdAuction()
.
Konfiguracje aukcji
Aukcję Protected Audience z usługami B&A można skonfigurować na kilka sposobów:
- Aukcja pojedynczego sprzedawcy z kupcami B&A
- Aukcja w trybie mieszanym z kupującymi na urządzeniu i kupującymi w ramach B&A
- aukcja wielosprzedawców, która może być sterowana na poziomie urządzenia lub serwera;
Uczestnicy
Aby opisać poszczególne konfiguracje aukcji, w tym przewodniku używamy następujących nazw:
Uczestnik | Opis |
---|---|
DSP-A |
Kupujący na urządzeniu |
DSP-B |
Kupujący na urządzeniu |
DSP-X |
Kupujący w ramach fuzji i przejęcia |
DSP-Y |
Kupujący w ramach fuzji i przejęcia |
SSP-TOP |
Najlepszy sprzedawca |
SSP-OD |
Sprzedawca tylko na urządzeniu |
SSP-BA |
sprzedawca, który oferuje tylko B&A, |
SSP-MIX |
Sprzedawca w trybie mieszanym |
Istnieją 4 platformy DSP:
DSP-A
iDSP-B
uczestniczą tylko w aukcjach na urządzeniuDSP-X
iDSP-Y
biorą udział zarówno w aukcjach na urządzeniu, jak i w aukcjach B&A
Istnieją 4 SSP, a każdy sprzedawca korzysta z innej konfiguracji aukcji:
SSP-OD
przeprowadza aukcję tylko na urządzeniuSSP-BA
przeprowadza aukcję tylko z uwzględnieniem B&A,SSP-MIX
przeprowadza aukcję w trybie mieszanymSSP-TOP
przeprowadza aukcję wielu sprzedawców:SSP-OD/BA/MIX
biorą udział w aukcji wielu sprzedawcówSSP-TOP
jako sprzedawcy komponentów.
Aukcja B&A z jednym sprzedawcą
W przypadku konfiguracji z jednym sprzedawcą jeden sprzedawca prowadzi aukcję, w której bierze udział wielu kupujących. Jeśli sprzedawca prowadzi aukcję B&A, kupujący muszą korzystać ze zbioru usług kupującego w ramach usług B&A, aby licytować w aukcji. Kupujący i sprzedający nie muszą korzystać z tego samego dostawcy usług w chmurze.
W poprzedniej konfiguracji SSP-BA
prowadzi aukcję B&A, w której DSP-X
i DSP-Y
biorą udział za pomocą zbioru usług dla kupujących B&A. Usługa reklamowa sprzedawcy najpierw przeprowadza aukcję kontekstową dla DSP-X
i DSP-Y
, a potem przeprowadza aukcję Protected Audience, wysyłając żądanie SelectAd
do usługi SFE sprzedawcy. Wygrywająca 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 DSP-X
i DSP-Y
, które wywołają usługę określania stawek, aby wygenerować stawkę.
Zaszyfrowany wynik aukcji B&A jest zwracany do klienta i przekazywany do wywołania runAdAuction()
. Konfiguracja aukcji pojedynczego sprzedawcy 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()
na kliencie, a dane serverResponse
pochodzą z aukcji B&A po stronie serwera.
Aukcja w trybie mieszanym
W konfiguracji mieszanej kupujący mogą brać udział w aukcji sprzedawcy na urządzeniu lub w ramach interakcji z klientami. Niebieskie strzałki wskazują ścieżkę aukcji na urządzeniu, a czerwone – ścieżkę aukcji B&A:
W tej konfiguracji DSP-A
i DSP-B
to kupujący, którzy przesyłają stawki na urządzeniu, a DSP-X
i DSP-Y
to kupujący, którzy przesyłają stawki za pomocą B&A. Kupujący na urządzeniu biorą udział w aukcji na urządzeniu w ramach pakietu reklamowego w przeglądarce, a kupujący w ramach pakietu reklamowego biorą udział w aukcji w ramach pakietu reklamowego opisanej w sekcji Aukcja w ramach pakietu reklamowego.
Aukcja kontekstowa jest uruchamiana najpierw dla wszystkich kupujących, aby zebrać zwycięską stawkę i sygnały kupujących. Następnie przeprowadzana jest aukcja B&A, a sygnały kupującego z aukcji kontekstowej są przekazywane do SelectAd
żądania do SFE. Zaszyfrowany wynik aukcji B&A zwrócony przez 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 na urządzeniu wygląda mniej więcej tak:
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łość aukcji na urządzeniu i aukcji B&A,
Bez równoległości aukcje są wykonywane sekwencyjnie: najpierw aukcja kontekstowa, potem aukcja B&A, a na końcu aukcja na urządzeniu. Po wdrożeniu równoległości aukcja kontekstowa jest nadal uruchamiana jako pierwsza, ale jej wynik i sygnały są przesyłane z powrotem do klienta, aby można było równolegle rozpocząć aukcję na urządzeniu jeszcze przed zakończeniem aukcji B&A.
Kod JavaScriptu na kliencie wysyła żądanie dotyczące aukcji zunifikowanej do SAS, a SAS uruchamia aukcję kontekstową i aukcję B&A z ofertą preferencyjną. Gdy SAS otrzyma odpowiedź od serwera RTB kupującego, sygnały kupującego dotyczące aukcji na urządzeniu mogą zostać przesłane z powrotem do przeglądarki wraz z zwycięzcą aukcji kontekstowej po otrzymaniu wszystkich stawek. Przesyłane sygnały dotyczące kupujących są wykorzystywane do generowania stawki na urządzeniu, a zwycięzca aukcji kontekstowej jest używany jako minimalna stawka 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, a ta wartość jest uwzględniana w odpowiedzi SelectAd
z SFE. W fazie aukcji po stronie klienta przeglądarka sprawdza, czy losowa wartość w nagłówku odpowiedzi Ad-Auction-Result-Nonce
jest zgodna z losową wartością w zaszyfrowanym ładunku danych z wynikiem aukcji.
Aby dowiedzieć się więcej o równoległym przetwarzaniu w trybie mieszanym, przeczytaj ten artykuł.
Aukcja wielu sprzedawców
Istnieją 2 sposoby przeprowadzania aukcji wielosprzedawców z użyciem B&A:
- aukcja sterowana przez urządzenie, w której wywołanie usługi reklamowej każdego sprzedawcy komponentów pochodzi z przeglądarki;
- aukcji sterowanej przez serwer, w której wywołanie usługi reklamowej każdego sprzedawcy komponentu pochodzi z usługi reklamowej sprzedawcy najwyższego poziomu;
Aukcja wielu sprzedawców sterowana na urządzeniu
W aukcji wielu sprzedawców sterowanej przez urządzenie każdy sprzedawca komponentów może samodzielnie uruchamiać aukcję w wybranej przez siebie konfiguracji. W aukcji najwyższego poziomu mogą brać udział sprzedawcy na urządzeniu, sprzedawcy w trybie B&A i sprzedawcy w trybie mieszanym.
W tej konfiguracji sprzedawca najwyższego poziomu
SSP-TOP
przeprowadza aukcję wielu sprzedawców, w której uczestniczą sprzedawcy SSP-OD
, SSP-BA
i SSP-MIX
:
SSP-OD
, który przeprowadza aukcję PA tylko na urządzeniu, przesyła konfigurację aukcji komponentu na urządzeniu do sprzedawcy najwyższego poziomu.SSP-BA
, który przeprowadza aukcję B&A, wysyła żądanie ujednoliconej aukcji do swojej usługi reklamowej sprzedawcy i przeprowadza własne aukcje kontekstowe i B&A. Wyniki są przesyłane do sprzedawcy najwyższego poziomu.SSP-MIX
, który przeprowadza aukcję w trybie mieszanym, najpierw wykonuje aukcję B&A na serwerze, a potem przesyła wynik aukcji B&A oraz konfigurację aukcji na urządzeniu.
Sprzedawca najwyższego poziomu zbiera konfiguracje aukcji komponentów od każdego sprzedawcy i tworzy konfigurację aukcji, która wygląda mniej więcej tak:
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',
}
]
})
Aukcja wielu sprzedawców sterowana po stronie serwera
W ramach aukcji wielosprzedawców sterowanej przez serwer wywołania usług reklamowych sprzedawcy komponentów są wykonywane z poziomu usługi reklamowej sprzedawcy najwyższego poziomu. W takim przypadku sprzedawcy komponentów nie mogą prowadzić aukcji na urządzeniu ani w trybie mieszanym. Wszyscy sprzedawcy muszą używać B&A, a wszyscy kupujący muszą przesyłać stawki za pomocą B&A.
Na tym schemacie SSP-TOP
przeprowadza aukcji wielu sprzedawców sterowanej przez serwer, w której uczestniczą SSP-BA-X
i SSP-BA-Y
.
Z przeglądarki do usługi reklamowej sprzedawcy na najwyższym poziomie jest wysyłane jedno żądanie ujednoliconej aukcji, które zawiera ładunek kontekstowych i aukcjonowanych reklamowych aukcji kontekstowych dla wszystkich uczestników. Następnie SAS wywołuje GetComponentAuctionCiphertexts
w SFE z ładunkiem. SFE odszyfruje ładunek, rozdzieli go według każdego sprzedawcy komponentów i zwróci ponownie zaszyfrowane ładunki do usługi SAS sprzedawcy najwyższego poziomu.
Definicje proto żądania i odpowiedzi 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;
}
W przypadku każdego komponentu sprzedawcy ładunek SAS sprzedawcy na najwyższym poziomie 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 usługi aukcji sprzedawcy najwyższego poziomu, a stawki z aukcji komponentów są oceniane przez usługę aukcji sprzedawcy najwyższego poziomu. Stawka z najwyższą oceną pożądania jest zwracana do SFE, a zaszyfrowany ładunek jest wysyłany do SAS, aby został zwrócony klientowi. W przeglądarce sprzedawca najwyższego poziomu kończy aukcję, wywołując funkcję navigator.runAdAuction()
i przekazując zaszyfrowany ładunek z wynikiem aukcji serwera.
Dalsze kroki
Po przeczytaniu tego przewodnika wykonaj te czynności:
Więcej informacji
- Aby dowiedzieć się więcej o tym, jak działają funkcje B&A dla chronionych odbiorców, zapoznaj się z tymi artykułami na GitHubie:
- Przeprowadź eksperymenty z interfejsem Protected Audience API z pytaniami i odpowiedziami, korzystając z ćwiczenia z programowania „Kompleksowe testowanie lokalne”.
- Informacje o integracji z kontem sprzedawcy znajdziesz w artykule Integracja z B&A jako sprzedawca.
Masz pytania?
- Aby zadać pytania dotyczące usług określania stawek i usług aukcyjnych, otwórz zgłoszenie w repozytorium usług określania stawek i usług aukcyjnych.
- Aby zadać pytania dotyczące Piaskownicy prywatności, otwórz zgłoszenie w repozytorium privacy-sandbox-dev-support.