Scopri l'architettura dell'asta di Bidding and Auction Services
Panoramica
I servizi di offerte e aste forniscono un insieme di servizi per acquirenti e venditori di annunci che vengono eseguiti in un ambiente di esecuzione sicuro (TEE) per facilitare un'asta Protected Audience (PA). Questa pagina descrive le varie configurazioni dell'asta in cui è possibile utilizzare le offerte basate sui beni e i servizi in un'asta con prezzo a pagamento.
Definizioni
Termine | Descrizione |
---|---|
Asta Protected Audience | Un'asta di annunci che coinvolge dati cross-site |
Asta contestuale | Un'asta di annunci che non coinvolge dati tra siti. Questa asta segue il percorso dell'asta basata su offerte in tempo reale (RTB) esistente. |
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 di annunci per i venditori (SAS) | Il servizio responsabile della gestione della richiesta di asta unificata dal browser. Potrebbe trattarsi dell'ad server RTB esistente di un venditore. SAS è responsabile dell'organizzazione delle aste sia contestuali che Protected Audience. |
Servizio annunci per gli acquirenti | Il servizio responsabile dell'invio di un'offerta per l'asta contestuale. Potrebbe trattarsi dell'ad server ORTB esistente di un acquirente. |
Servizi per acquirenti e venditori
I servizi B&A sono composti da quattro servizi per acquirenti e venditori:
- Per gli acquirenti, sono disponibili il servizio di offerta e il servizio BFE (Buyer Front-End).
- Per i venditori, sono disponibili il servizio di aste e il servizio di front-end per i venditori (SFE).
Partecipante | Servizio | Descrizione |
---|---|---|
Responsabile acquisti | Servizio BFE (Buyer Front-End) | Il servizio gestisce la richiesta GetBids dall'SFE di un venditore. È responsabile della decrittografia del payload, del recupero degli indicatori K/V e della chiamata di GenerateBids del servizio di offerta. |
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 frontend per i venditori (SFE) | Il servizio gestisce la richiesta SelectAd del servizio di annunci del venditore. È responsabile della decrittografia del payload, della chiamata all'operazione GetBids di BFE, del recupero degli indicatori K/V, della chiamata all'operazione ScoreAd di Auction Service e poi del ritorno del risultato dell'asta B&A criptato a SAS.
Quando il servizio fa parte dello stack del venditore di primo livello in un'asta multi-venditore orchestrata dal server, gestisce anche la richiesta |
Servizio aste | Il servizio gestisce la richiesta ScoreAd da SFE. È responsabile dell'esecuzione della logica di punteggio del venditore e del calcolo del punteggio di desiderabilità di un'offerta. |
Architettura di un'asta B&A di PA per il web
Il seguente diagramma descrive l'asta di base Protected Audience con i servizi B&A con un unico venditore e un unico acquirente. Le caselle con bordi rossi spessi rappresentano i servizi in esecuzione in un TEE:
(Diagramma a grandezza originale)
- Il codice JavaScript dell'SSP nella pagina del publisher genera i dati criptati dell'asta di annunci 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 dell'SSP invia una richiesta di asta unificata a Seller Ad Service.
- Una richiesta di asta unificata contiene sia il payload non protetto dell'asta contestuale ORTB sia il payload criptato dell'asta B&A.
- Il servizio di annunci del venditore è il tuo ad server esistente e non viene eseguito in un TEE.
- Il servizio di annunci del venditore chiama il servizio RTB della DSP per richiedere l'offerta per l'asta contestuale e gli eventuali indicatori dell'acquirente da trasmettere all'asta PA successiva.
- Questo può essere un passaggio in cui un acquirente segnala la sua intenzione di partecipare all'asta PA.
- Al termine dell'asta contestuale, il 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
.
- L'offerta vincente dell'asta contestuale e gli indicatori dell'acquirente vengono aggiunti al payload della richiesta
- Il servizio SFE dell'SSP chiama il servizio BFE del DSP con la richiesta
GetBids
. - Il BFE della DSP chiama il servizio di offerta con la richiesta
GenerateBids
. - Una volta ricevuta l'offerta da SFE, viene effettuata la chiamata
ScoreAd
al servizio di asta.- L'offerta con il punteggio di desiderabilità più alto viene restituita a SAS e poi inoltrata al codice JavaScript nella pagina.
- L'asta viene completata nel browser passando il risultato dell'asta B&A criptato alla 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 di annunci di ricerca e di annunci della rete di ricerca
- Asta in modalità mista con acquirenti on-device e acquirenti B&A
- Asta multi-venditore che può essere orchestrata in base al dispositivo o al server
Partecipanti
Per descrivere ogni configurazione dell'asta, in questa guida vengono utilizzati i seguenti partecipanti:
Partecipante | Descrizione |
---|---|
DSP-A |
Acquirente on-device |
DSP-B |
Acquirente on-device |
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 con modalità miste |
Esistono quattro DSP:
DSP-A
eDSP-B
partecipano solo alle aste on-deviceDSP-X
eDSP-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 dispositivoSSP-BA
gestisce un'asta solo per B&ASSP-MIX
esegue un'asta in modalità mistaSSP-TOP
gestisce un'asta multi-venditore:SSP-OD/BA/MIX
partecipa come venditore 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 pubblica un'asta B&A, gli acquirenti devono utilizzare lo stack dell'acquirente dei servizi B&A per poter fare un'offerta nell'asta. Gli acquirenti e i venditori non devono utilizzare lo stesso provider cloud.
(Diagramma a grandezza originale)
Nella configurazione precedente, SSP-BA
gestisce un'asta B&A a cui partecipano DSP-X
e DSP-Y
utilizzando lo stack dell'acquirente di B&A Services. Il servizio pubblicitario del venditore esegue prima un'asta contestuale per DSP-X
e DSP-Y
, quindi 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 trasmessi alla chiamata SelectAd
. Il servizio SFE invia quindi richieste GetBids
ai BFE di DSP-X
e DSP-Y
, che chiameranno il loro 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 dell'asta con un solo venditore è la 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 e i dati serverResponse
provengono dall'asta B&A lato server.
Asta mista
Nella configurazione in modalità mista, gli acquirenti possono partecipare all'asta del venditore da on-device o da B&A. Le frecce blu rappresentano il percorso dell'asta on-device, mentre le frecce rosse rappresentano il percorso dell'asta B&A:
(Diagramma a grandezza originale)
In questa configurazione, DSP-A
e DSP-B
sono acquirenti che inviano le offerte sul dispositivo, mentre DSP-X
e DSP-Y
sono acquirenti che inviano le 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 gli indicatori dell'acquirente. Viene quindi eseguita l'asta B&A e gli indicatori dell'acquirente provenienti dall'asta contestuale vengono trasmessi alla richiesta SelectAd
all'SFE. Il risultato dell'asta B&A criptato restituito da SFE viene inoltrato al browser. Dopo l'asta B&A, il relativo risultato viene inserito nell'asta on-device a cui partecipano gli acquirenti on-device.
Una configurazione di asta con un solo venditore in modalità mista per la parte on-device dell'asta è 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 la parallellizzazione, le aste vengono eseguite in sequenza, dove viene eseguita l'asta contestuale, poi l'asta B&A e infine l'asta on-device. Con l'implementazione della parallellizzazione, l'asta contestuale viene eseguita di nuovo per prima, ma il risultato e gli indicatori vengono restituiti in streaming al client per avviare l'asta on-device in parallelo prima del termine dell'asta B&A.
(Diagramma a grandezza originale)
Il codice JavaScript nel client invia la richiesta di asta unificata a SAS, che avvia l'asta contestuale e l'asta B2B AP. Quando il SAS riceve una risposta dal server RTB di un acquirente, l'acquirente indica che l'asta on-device può essere riprodotta in streaming nel browser, insieme al vincitore dell'asta contestuale una volta ricevute tutte le offerte. Gli indicatori degli acquirenti in streaming vengono utilizzati per generare un'offerta sul dispositivo e il vincitore dell'asta contestuale viene utilizzato come prezzo minimo dell'offerta durante il calcolo del punteggio delle offerte.
In SAS, il venditore genera un nonce UUID che viene impostato nell'intestazione di 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 di risposta Ad-Auction-Result-Nonce
corrisponda a quello nel payload del risultato dell'asta criptato.
Consulta la spiegazione per scoprire di più sulla parallelizzazione in modalità mista.
Asta multi-venditore
Esistono due modi per eseguire un'asta multi-venditore con B&A:
- Asta orchestrata dal dispositivo in cui la chiamata al servizio pubblicitario di ciascun venditore di componenti proviene dal browser
- Asta orchestrata dal server in cui la chiamata al servizio pubblicitario di ciascun venditore componente proviene dal servizio pubblicitario del venditore di primo livello
Asta multi-venditore orchestrata per dispositivo
In un'asta multi-venditore orchestrata dal dispositivo, ogni venditore di componenti è libero di eseguire la propria asta in una configurazione a scelta. I venditori on-device, i venditori B2B e i venditori in modalità mista possono partecipare all'asta di primo livello.
(Diagramma a grandezza originale)
In questa configurazione,SSP-TOP
, che è il venditore di primo livello, gestisce un'asta multi-venditore a cui partecipano SSP-OD
, SSP-BA
e SSP-MIX
:
SSP-OD
, che gestisce un'asta privata solo sul dispositivo, invia la configurazione dell'asta dei componenti sul dispositivo al venditore di primo livello.SSP-BA
, che gestisce un'asta B2B, invia una richiesta di asta unificata al proprio servizio di annunci per i venditori e gestisce le proprie aste contestuali e B2B. I risultati vengono inviati al venditore di primo livello.SSP-MIX
, che gestisce un'asta in modalità mista, esegue prima l'asta B&A sul server, poi invia sia il risultato dell'asta B&A sia la configurazione dell'asta sul dispositivo.
Il venditore di primo livello raccoglie le configurazioni delle aste dei componenti da ciascun venditore e crea una configurazione dell'asta simile alla seguente:
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 del componente vengono effettuate dal servizio pubblicitario del venditore di primo livello. In questa configurazione, i venditori di componenti non possono pubblicare un'asta on-device o in modalità mista. Tutti i venditori devono utilizzare la strategia B&A e tutti gli acquirenti devono inviare le offerte utilizzando questa strategia.
(Diagramma a grandezza originale)
In questo diagramma, SSP-TOP
gestisce 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 contenente il payload delle aste contestuali e di quelle di tipo PA per tutti i partecipanti. Quindi, SAS effettua una chiamata GetComponentAuctionCiphertexts
a SFE con il payload. L'SFE decripterà il payload, separerà i payload in base a ciascun venditore di componenti e restituirà i payload criptati al SAS del venditore di primo livello.
Le definizioni proto per la richiesta e la risposta GetComponentAuctionCiphertexts
sono le seguenti:
// 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 ciascun venditore di componenti, il SAS del venditore di primo livello chiama il SAS dei venditori di componenti e ogni SAS di componente esegue l'asta B&A del componente. Successivamente, 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 di asta 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 completa l'asta chiamando navigator.runAdAuction()
e fornendo il payload criptato del risultato dell'asta del server.
Passaggi successivi
Dopo aver letto questa guida, puoi procedere nel seguente modo:
Scopri di più
- Per una comprensione più approfondita del funzionamento di B&A per il pubblico protetto, consulta le seguenti spiegazioni su GitHub:
- Sperimenta con Protected Audience con B&A seguendo il codelab sui test locali end-to-end.
- Per l'integrazione con i venditori, consulta Eseguire l'integrazione con la piattaforma B&A come venditore.
Domande?
- Per fare domande sui servizi di offerte e aste, apri un problema nel repository dei servizi di offerte e aste.
- Per porre domande su Privacy Sandbox in generale, apri un problema nel repository privacy-sandbox-dev-support .