Architettura

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 GetComponentAuctionCiphertexts da SAS.

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:

Il codice JavaScript lato client invia la richiesta di asta unificata alla SSP. L'SAS invia una richiesta all'SFE, che a sua volta invia una richiesta all'BFE per un'offerta

(Diagramma a grandezza originale)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Il servizio SFE dell'SSP chiama il servizio BFE del DSP con la richiesta GetBids.
  6. Il BFE della 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 di asta.
    • L'offerta con il punteggio di desiderabilità più alto viene restituita a SAS e poi inoltrata al codice JavaScript nella pagina.
  8. 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 e DSP-B partecipano solo alle aste on-device
  • 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 gestisce un'asta solo per B&A
  • SSP-MIX esegue un'asta in modalità mista
  • SSP-TOP gestisce un'asta multi-venditore:
    • SSP-OD/BA/MIX partecipa come venditore 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 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.

Un'architettura a venditore singolo in cui un SFE comunica con più BFE per ricevere le offerte

(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:

Un'architettura di venditore in modalità mista in cui gli acquirenti possono inviare le offerte da dispositivi o da 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.

Un diagramma che descrive come l'offerta e gli indicatori dell'asta contestuale e il risultato di SelectAd vengono trasmessi in streaming al codice JavaScript del browser

(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:

  1. Asta orchestrata dal dispositivo in cui la chiamata al servizio pubblicitario di ciascun venditore di componenti proviene dal browser
  2. 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.

Un diagramma che descrive in che modo più venditori che utilizzano configurazioni di asta diverse possono inviare il risultato dell'asta al venditore 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.

La SSP di primo livello invia una richiesta di asta unificata al proprio servizio di annunci del venditore. Il servizio pubblicitario del venditore chiama l'API SFE per eseguire l'operazione GetComponentAuctionCipherTexts. Le crittografie restituite vengono poi inviate al servizio pubblicitario di ciascun venditore di componenti che gestisce le proprie aste B&A

(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ù

Domande?