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 |
| 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 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.
- 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.
- 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.
- Al termine dell'asta contestuale, SAS invia la richiesta
SelectAdal servizio SFE.- L'offerta vincente dell'asta contestuale e gli indicatori dell'acquirente vengono aggiunti al payload della richiesta
SelectAd.
- L'offerta vincente dell'asta contestuale e gli indicatori dell'acquirente vengono aggiunti al payload della richiesta
- Il servizio SFE della SSP chiama il servizio BFE della DSP con la richiesta
GetBids. - La BFE del DSP chiama il servizio di offerta con la richiesta
GenerateBids. - Una volta ricevuta l'offerta da SFE, viene effettuata la chiamata
ScoreAdal servizio aste.- L'offerta con il punteggio di desiderabilità più alto viene restituita a SAS e poi inoltrata al codice JavaScript sulla pagina.
- 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-AeDSP-Bpartecipano solo alle aste sul dispositivoDSP-XeDSP-Ypartecipano sia alle aste on-device sia alle aste B&A
Esistono quattro SSP e ogni venditore esegue una configurazione dell'asta diversa:
SSP-ODesegue un'asta solo sul dispositivoSSP-BAesegue un'asta solo per le offerte e i budgetSSP-MIXesegue un'asta in modalità mistaSSP-TOPgestisce un'asta multi-venditore:SSP-OD/BA/MIXpartecipare in qualità di venditori di componenti all'asta multi-venditore diSSP-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.
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:
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.
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:
- Asta orchestrata dal dispositivo in cui la chiamata al servizio pubblicitario di ogni venditore di componenti ha origine dal browser
- 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.
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ù
- Per comprendere meglio il funzionamento di Build& Test per Protected Audience, consulta le seguenti spiegazioni su GitHub:
- Sperimenta con Protected Audience con B&A seguendo il codelab per i test locali end-to-end.
- Per l'integrazione del venditore, consulta Eseguire l'integrazione con B&A come venditore.
Domande?
- Poni domande sui servizi di offerte e aste aprendo un problema nel repository dei servizi di offerte e aste.