Architettura

Scopri l'architettura dell'asta dei servizi di offerte e aste

Panoramica

I servizi di offerte e aste (B&A) forniscono un insieme di servizi per acquirenti e venditori di annunci che vengono eseguiti in un Trusted Execution Environment (TEE) per facilitare un'asta Protected Audience (PA). Questa pagina descrive le varie configurazioni dell'asta in cui B&A può essere utilizzato in un'asta PA.

Definizioni

Termine Descrizione
asta Protected Audience Un'asta pubblicitaria che coinvolge dati cross-site
Asta contestuale Un'asta dell'annuncio che non coinvolge dati cross-site. Questa asta segue il percorso esistente delle aste basate su offerte in tempo reale (RTB).
Richiesta di asta unificata Una richiesta inviata dal codice JavaScript del venditore dal browser che include il payload sia per l'asta Protected Audience sia per l'asta contestuale.
Servizio pubblicitario del venditore (SAS) Il servizio responsabile della gestione della richiesta di asta unificata dal browser. Potrebbe trattarsi del server pubblicitario RTB esistente di un venditore. SAS è responsabile dell'orchestrazione delle aste contestuali e Protected Audience.
Buyer Ad Service Il servizio responsabile dell'invio di un'offerta all'asta contestuale. Potrebbe trattarsi di un ad server ORTB esistente dell'acquirente.

Servizi per acquirenti e venditori

B&A Services è composto da quattro servizi per acquirenti e venditori:

  • Per gli acquirenti, sono disponibili i servizi Bidding Service e Buyer Front-End (BFE) Service.
  • Per i venditori, sono disponibili i servizi Auction Service e Seller Front-End (SFE) Service.
Partecipante Servizio Descrizione
Responsabile acquisti Servizio Buyer Front-End (BFE) Il servizio gestisce la richiesta GetBids da un SFE di un venditore. È responsabile della decriptografia del payload, del recupero dei segnali K/V e della chiamata di GenerateBids di Bidding Service.
Servizio offerte Il servizio gestisce la richiesta GenerateBids da BFE. È responsabile dell'esecuzione della logica di offerta dell'acquirente e della generazione di un'offerta.
Venditore Servizio front-end per i venditori (SFE) Il servizio gestisce la richiesta SelectAd del servizio annunci del venditore. È responsabile della decrittografia del payload, della chiamata dell'operazione GetBids di BFE, del recupero dei segnali K/V, della chiamata dell'operazione ScoreAd di Auction Service e della restituzione del risultato dell'asta B&A criptato a SAS.

Quando il servizio fa parte dello stack del venditore di primo livello in un'asta multiventitore orchestrata dal server, gestisce anche la richiesta GetComponentAuctionCiphertexts da SAS.

Servizio aste Il servizio gestisce la richiesta ScoreAd da SFE. È responsabile dell'esecuzione della logica di assegnazione del punteggio del venditore e della fornitura del punteggio di idoneità di un'offerta.

Architettura di un'asta PA B&A per il web

Il seguente diagramma descrive l'asta Protected Audience di base con i servizi B&A con un singolo venditore e un singolo acquirente. Le caselle con contorno rosso spesso rappresentano i servizi in esecuzione in un TEE:

Il codice JavaScript lato client invia la richiesta di asta unificata alla SSP. Il SAS invia una richiesta a SFE e SFE invia una richiesta a BFE per un'offerta
(diagramma a grandezza naturale)
  1. Il codice JavaScript della SSP nella pagina del publisher genera i dati criptati dell'asta dell'annuncio B&A chiamando navigator.getInterestGroupAdAuctionData().
    • Questo payload criptato contiene i dati dell'acquirente e può essere decriptato solo all'interno di un SFE in un TEE.
  2. Il codice JavaScript della SSP invia una richiesta di asta unificata al servizio di annunci del venditore.
    • Una richiesta di asta unificata contiene sia il payload dell'asta contestuale ORTB in testo normale sia il payload dell'asta B&A criptato.
    • Il servizio di annunci del venditore è il tuo ad server esistente e non viene eseguito in un TEE.
  3. Il servizio annunci del venditore chiama il servizio RTB della DSP per richiedere l'offerta dell'asta contestuale e gli indicatori dell'acquirente da trasmettere all'asta PA successiva.
    • Questo può essere un passaggio in cui un acquirente segnala la propria intenzione di partecipare all'asta privata.
  4. Al termine dell'asta contestuale, SAS invia la richiesta SelectAd al servizio SFE.
    • L'offerta vincente dell'asta contestuale e gli indicatori dell'acquirente vengono aggiunti al payload della richiesta SelectAd.
  5. Il servizio SFE della SSP chiama il servizio BFE della DSP con la richiesta GetBids.
  6. La BFE del DSP chiama il servizio di offerta con la richiesta GenerateBids.
  7. Una volta ricevuta l'offerta da SFE, viene effettuata la chiamata ScoreAd al servizio aste.
    • L'offerta con il punteggio di desiderabilità più alto viene restituita a SAS e poi inoltrata al codice JavaScript sulla pagina.
  8. L'asta viene completata nel browser passando il risultato dell'asta B&A criptato nella chiamata navigator.runAdAuction().

Configurazioni dell'asta

Un'asta Protected Audience con i servizi B&A può essere configurata nei seguenti modi:

  • Asta con un solo venditore con acquirenti B&A
  • Asta in modalità mista con acquirenti on-device e acquirenti B&A
  • Asta multi-venditore che può essere orchestrata dal dispositivo o dal server

Partecipanti

Per descrivere ogni configurazione dell'asta, in questa guida vengono utilizzati i seguenti partecipanti:

Partecipante Descrizione
DSP-A Acquirente sul dispositivo
DSP-B Acquirente sul dispositivo
DSP-X Acquirente di B&A
DSP-Y Acquirente di B&A
SSP-TOP Venditore di primo livello
SSP-OD Venditore solo sul dispositivo
SSP-BA Venditore solo B&A
SSP-MIX Venditore multimodale

Esistono quattro DSP:

  • DSP-A e DSP-B partecipano solo alle aste sul dispositivo
  • DSP-X e DSP-Y partecipano sia alle aste on-device sia alle aste B&A

Esistono quattro SSP e ogni venditore esegue una configurazione dell'asta diversa:

  • SSP-OD esegue un'asta solo sul dispositivo
  • SSP-BA esegue un'asta solo per le offerte e i budget
  • SSP-MIX esegue un'asta in modalità mista
  • SSP-TOP gestisce un'asta multi-venditore:
    • SSP-OD/BA/MIX partecipare in qualità di venditori di componenti all'asta multi-venditore di SSP-TOP

Asta B&A con un solo venditore

In una configurazione con un solo venditore, un venditore organizza un'asta a cui partecipano più acquirenti. Se il venditore sta eseguendo un'asta B&A, gli acquirenti devono eseguire lo stack acquirente dei Servizi B&A per fare un'offerta all'asta. Gli acquirenti e i venditori non devono utilizzare lo stesso provider cloud.

Un'architettura con un solo venditore in cui un SFE comunica con più BFE per ricevere offerte.
(diagramma a grandezza naturale)

Nella configurazione precedente, SSP-BA esegue un'asta B&A a cui partecipano DSP-X e DSP-Y utilizzando lo stack dell'acquirente dei servizi B&A. Il servizio di annunci del venditore esegue prima un'asta contestuale per DSP-X e DSP-Y, poi esegue un'asta Protected Audience inviando la richiesta SelectAd al servizio SFE del venditore. L'offerta vincente dell'asta contestuale e gli indicatori per ogni acquirente vengono passati alla chiamata SelectAd. Il servizio SFE invia quindi richieste GetBids ai servizi BFE di DSP-X e DSP-Y, che chiameranno il servizio di offerta per generare un'offerta.

Il risultato dell'asta B&A criptato viene restituito al client e passato alla chiamata runAdAuction(). Una configurazione di asta con un solo venditore è simile alla seguente:

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
})

Il valore requestId proviene dalla chiamata getInterestGroupAdAuctionData() sul client, mentre i dati serverResponse provengono dall'asta B&A lato server.

Asta in modalità mista

Nella configurazione in modalità mista, gli acquirenti possono partecipare all'asta del venditore da B&A o dal dispositivo. Le frecce blu rappresentano il percorso dell'asta on-device, mentre le frecce rosse rappresentano il percorso dell'asta B&A:

Un'architettura del venditore in modalità mista in cui gli acquirenti possono inviare le loro offerte da un dispositivo o da B&A.
(Diagramma a grandezza naturale)

In questa configurazione, DSP-A e DSP-B sono acquirenti che inviano le loro offerte sul dispositivo, mentre DSP-X e DSP-Y sono acquirenti che inviano le loro offerte utilizzando B&A. Gli acquirenti on-device partecipano a un'asta PA on-device nel browser, mentre gli acquirenti B&A partecipano alla configurazione dell'asta B&A descritta nella sezione Asta con un solo venditore.

L'asta contestuale viene eseguita per prima per tutti gli acquirenti al fine di raccogliere l'offerta vincente dell'asta contestuale e i segnali dell'acquirente. Successivamente, viene eseguita l'asta B&A e gli indicatori dell'acquirente dell'asta contestuale vengono trasmessi alla richiesta SelectAd a SFE. Il risultato dell'asta B&A criptato restituito da SFE viene inoltrato al browser. Dopo l'asta B&A, il risultato viene inserito nell'asta sul dispositivo a cui partecipano gli acquirenti sul dispositivo.

Una configurazione di asta in modalità mista per un singolo venditore per la parte dell'asta sul dispositivo è simile alla seguente:

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',
    }
  ]
})

Parallelizzazione delle aste on-device e B&A

Senza parallelizzazione, le aste vengono eseguite in sequenza: prima l'asta contestuale, poi l'asta B&A e infine l'asta sul dispositivo. Con l'implementazione della parallelizzazione, l'asta contestuale viene eseguita di nuovo per prima, ma il suo risultato e i relativi indicatori vengono trasmessi in streaming al client per avviare l'asta sul dispositivo in parallelo prima che termini l'asta B&A.

Un diagramma che descrive come l'offerta e i segnali dell'asta contestuale e il risultato SelectAd vengono trasmessi in streaming al codice JavaScript del browser
(diagramma a grandezza naturale)

Il codice JavaScript nel client invia la richiesta di asta unificata a SAS, che avvia l'asta contestuale e l'asta B&A AP. Quando SAS riceve una risposta dal server RTB di un acquirente, gli indicatori dell'acquirente per l'asta sul dispositivo possono essere ritrasmessi al browser, insieme al vincitore dell'asta contestuale una volta ricevute tutte le offerte. Gli indicatori dell'acquirente in streaming vengono utilizzati per generare un'offerta sul dispositivo e il vincitore dell'asta contestuale viene utilizzato come prezzo minimo quando vengono valutate le offerte.

In SAS, il venditore genera un UUID nonce impostato nell'intestazione della risposta Ad-Auction-Result-Nonce durante lo streaming dei dati dell'asta contestuale nel browser. Lo stesso nonce viene utilizzato nella chiamata SelectAd a SFE per l'asta B&A e viene incluso nella risposta SelectAd restituita da SFE. Durante la fase dell'asta lato client, il browser verifica che il nonce nell'intestazione della risposta Ad-Auction-Result-Nonce corrisponda al nonce nel payload del risultato dell'asta criptato.

Consulta la spiegazione per scoprire di più sul parallelismo in modalità mista.

Asta multi-venditore

Esistono due modi per eseguire un'asta multiautore di PA con B&A:

  1. Asta orchestrata dal dispositivo in cui la chiamata al servizio pubblicitario di ogni venditore di componenti ha origine dal browser
  2. Asta orchestrata dal server in cui la chiamata al servizio pubblicitario di ogni venditore di componenti ha origine dal servizio pubblicitario del venditore di primo livello

Asta multi-venditore orchestrata dal dispositivo

In un'asta multiseller orchestrata dal dispositivo, ogni venditore di componenti è libero di eseguire la propria asta in una configurazione a sua scelta. I venditori on-device, i venditori B&A e i venditori in modalità mista possono partecipare all'asta di primo livello.

Un diagramma che descrive in che modo più venditori che eseguono configurazioni dell'asta diverse possono inviare il risultato dell'asta al venditore di primo livello.
(Diagramma a grandezza naturale)
In questa configurazione, "SSP-TOP", il venditore di primo livello, esegue un'asta multi-venditore a cui partecipano "SSP-OD", "SSP-BA" e "SSP-MIX": * "SSP-OD", che esegue un'asta PA solo sul dispositivo, invia la configurazione dell'asta dei componenti sul dispositivo al venditore di primo livello. * `SSP-BA`, che esegue un'asta B&A, invia una richiesta di asta unificata al proprio servizio di annunci del venditore ed esegue le proprie aste contestuali e B&A. I risultati vengono inviati al venditore di primo livello. * `SSP-MIX`, che esegue un'asta in modalità mista, esegue prima l'asta B&A sul server, quindi invia sia il risultato dell'asta B&A sia la configurazione dell'asta on-device. Il venditore di primo livello raccoglie le configurazioni dell'asta dei componenti da ogni venditore e crea una configurazione dell'asta simile alla seguente: ```js 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', } ] }) ``` ### Asta multi-venditore orchestrata dal server In un'asta multi-venditore orchestrata dal server, le chiamate ai servizi pubblicitari del venditore di componenti vengono effettuate dal servizio pubblicitario del venditore di primo livello. In questa configurazione, i venditori di componenti non possono eseguire un'asta sul dispositivo o in modalità mista; tutti i venditori devono utilizzare B&A e tutti gli acquirenti devono inviare le loro offerte utilizzando B&A.
La SSP di primo livello invia una richiesta di asta unificata al proprio servizio di annunci del venditore. Il servizio annunci del venditore chiama SFE per eseguire l'operazione GetComponentAuctionCipherTexts. I testi criptati restituiti vengono quindi inviati al servizio pubblicitario di ciascun venditore di componenti, che conduce le proprie aste B&A.
(diagramma a grandezza naturale)

In questo diagramma, SSP-TOP esegue un'asta multi-venditore orchestrata dal server a cui partecipano SSP-BA-X e SSP-BA-Y.

Dal browser al servizio pubblicitario del venditore di primo livello viene inviata una singola richiesta di asta unificata che contiene il payload delle aste contestuali e PA per tutti i partecipanti. Poi SAS effettua una chiamata GetComponentAuctionCiphertexts a SFE con il payload. SFE decripta il payload, lo separa in base a ciascun venditore di componenti e restituisce i payload ricriptati al SAS del venditore di primo livello.

Di seguito sono riportate le definizioni proto per la richiesta e la risposta 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;
}

Con il payload di ogni venditore di componenti, il SAS del venditore di primo livello chiama il SAS dei venditori di componenti e ogni SAS di componenti esegue la propria asta B&A dei componenti. I risultati delle aste dei componenti vengono restituiti all'SFE del venditore di primo livello e le offerte delle aste dei componenti vengono valutate dal servizio aste del venditore di primo livello. L'offerta con il punteggio di desiderabilità più alto viene restituita a SFE e il payload criptato viene inviato a SAS per essere restituito al client. Nel browser, il venditore di primo livello termina l'asta chiamando navigator.runAdAuction() e fornendo il payload del risultato dell'asta del server criptato.

Passaggi successivi

Dopo aver letto questa guida, puoi procedere nel seguente modo:

Scopri di più

Domande?