Architektura

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 GenerateBidsBFE. Jest odpowiedzialny za stosowanie logiki ustalania stawek przez kupującego i generowanie stawki.
Sprzedawca Interfejs sprzedawcy (SFE) Usługa obsługuje żądanie SelectAdusł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 GetComponentAuctionCiphertextsSAS.

Serwis aukcyjny Usługa obsługuje żądanie ScoreAdSFE. 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 po stronie klienta wysyła żądanie dotyczące zunifikowanej aukcji do SSP. SAS wysyła żądanie do SFE, a SFE wysyła żądanie do BFE o stawkę

(schemat w pełnym rozmiarze)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Usługa SFE dostawcy usług SSP wywołuje usługę BFE dostawcy usług DSP za pomocą żądania GetBids.
  6. BFE w DSP wywołuje usługę ustalania stawek z żądaniem GenerateBids.
  7. 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.
  8. 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-ADSP-B uczestniczą tylko w aukcjach na urządzeniu
  • DSP-XDSP-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ądzeniu
  • SSP-BA przeprowadza aukcję tylko z uwzględnieniem B&A,
  • SSP-MIX przeprowadza aukcję w trybie mieszanym
  • SSP-TOP przeprowadza aukcję wielu sprzedawców:
    • SSP-OD/BA/MIX biorą udział w aukcji wielu sprzedawców SSP-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.

Architektura pojedynczego sprzedawcy, w której jeden SFE komunikuje się z wieloma BFE, aby otrzymywać oferty

(schemat w pełnym rozmiarze)

W poprzedniej konfiguracji SSP-BA prowadzi aukcję B&A, w której DSP-XDSP-Y biorą udział za pomocą zbioru usług dla kupujących B&A. Usługa reklamowa sprzedawcy najpierw przeprowadza aukcję kontekstową dla DSP-XDSP-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:

Architektura sprzedawcy w trybie mieszanym, w której kupujący mogą przesyłać stawki z urządzenia lub z urządzenia z dostępem do sieci

(schemat w pełnym rozmiarze)

W tej konfiguracji DSP-ADSP-B to kupujący, którzy przesyłają stawki na urządzeniu, a DSP-XDSP-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.

Schemat opisujący sposób przesyłania do kodu JavaScript przeglądarki stawki i sygnałów aukcji kontekstowej oraz wyniku SelectAd

(schemat w pełnym rozmiarze)

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:

  1. aukcja sterowana przez urządzenie, w której wywołanie usługi reklamowej każdego sprzedawcy komponentów pochodzi z przeglądarki;
  2. 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.

Schemat pokazujący, jak wielu sprzedawców korzystających z różnych konfiguracji aukcji może przesyłać wyniki aukcji do sprzedawcy najwyższego poziomu

(schemat w pełnym rozmiarze)

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.

SSP najwyższego poziomu wysyła żądanie ujednoliconej aukcji do usługi reklamowej sprzedawcy. Usługa reklamowa sprzedawcy wywołuje SFE, aby wykonać operację GetComponentAuctionCipherTexts. Zwrócone teksty zaszyfrowane są następnie wysyłane do usługi reklamowej każdego sprzedawcy komponentów, która przeprowadza własne aukcje B&A.

(schemat w pełnym rozmiarze)

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

Masz pytania?