Guida all'API Seller e riferimenti per l'asta dell'annuncio dell'API Protected Audience.
In questo articolo troverai un riferimento tecnico per l'asta dell'annuncio, come utilizzato nell'attuale iterazione dell'API Protected Audience sperimentale.
Leggi la guida per gli sviluppatori per conoscere l'intero ciclo di vita dell'API Protected Audience e consulta la spiegazione dell'API Protected Audience per una discussione approfondita su come i venditori eseguono aste on-device.
Non sei uno sviluppatore? Consulta la panoramica dell'API Protected Audience.
Che cos'è l'asta dell'annuncio dell'API Protected Audience?
Un'asta dell'annuncio dell'API Protected Audience è una raccolta di piccoli programmi JavaScript che il browser esegue sul dispositivo dell'utente per scegliere un annuncio. Per tutelare la privacy, tutto il codice dell'asta dell'annuncio fornito dal venditore e dagli acquirenti viene eseguito in worklet JavaScript isolati che non possono comunicare con il mondo esterno.
![Sei fasi di un'asta dell'annuncio dell'API Protected Audience](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/six-stages-a-protected-a-3e1dd6fdeddbe.png?authuser=7&hl=it)
- Un utente visita un sito che pubblica annunci.
- Il codice del venditore esegue il giorno
navigator.runAdAuction()
. che specifica quale spazio pubblicitario è in vendita e chi può fare offerte. I venditori devono anche includere uno script che attribuisca un punteggio a ogni offerta,scoreAd()
. - Il codice dell'acquirente invitato viene eseguito per generare un'offerta, l'URL per una creatività dell'annuncio pertinente e altri dati. Lo script di offerta può eseguire query su dati in tempo reale, ad esempio il budget rimanente della campagna pubblicitaria, dal servizio chiave/valore dell'acquirente.
- Il codice del venditore assegna un punteggio a ogni offerta e seleziona un vincitore. Questa logica utilizza il valore dell'offerta e altri dati restituiscono l'opportunità di un'offerta. Gli annunci che non possono battere il vincitore contestuale vengono rifiutati. Il venditore può utilizzare il proprio servizio chiave/valore per ottenere dati in tempo reale.
- L'annuncio vincente viene restituito sotto forma di valore opaco, che viene mostrato in un frame recintato. Sia il venditore sia l'editore non saranno in grado di visualizzare questo valore.
- L'asta viene segnalata al venditore e agli acquirenti vincenti.
Quando si svolge l'asta?
L'API Protected Audience può essere eseguita da sola o con aste programmatiche. In un'asta programmatica multi-venditore:
- L'utente visita un sito partecipante.
- Un'asta programmatica viene gestita da un altro venditore per trovare un annuncio contestuale per un'area annuncio disponibile.
- Viene eseguita l'asta dell'API Protected Audience.
scoreAd()
confronta le offerte dell'acquirente con i risultati della prima asta.
Le offerte che non possono battere il vincitore contestuale vengono rifiutate.
Chi esegue l'asta dell'annuncio dell'API Protected Audience?
Più parti possono eseguire un'asta per vendere uno spazio pubblicitario.
Ad esempio:
- Publisher di contenuti: che agisce per sé stesso per ospitare i contenuti degli annunci sul proprio sito web.
- Supply-Side Platform (SSP): collaborazione con il publisher e fornitura di altri servizi.
- Script di terze parti: che agisce per un publisher, per consentire la partecipazione alle aste dell'annuncio.
Con l'API Protected Audience, un venditore svolge tre job:
- Forza l'applicazione delle regole per i publisher, ovvero quali acquirenti e offerte sono idonei.
- Esegui la logica dell'asta: JavaScript viene eseguito nei worklet per calcolare un punteggio di desiderabilità per ogni offerta.
- Segnalare il risultato dell'asta.
Questi job vengono eseguiti in modo programmatico, nel codice fornito dal venditore quando
avvia un'asta dell'annuncio richiamando la funzione JavaScript
navigator.runAdAuction()
.
Funzioni API
runAdAuction()
Il venditore invia una richiesta al browser dell'utente per iniziare un'asta dell'annuncio chiamando navigator.runAdAuction()
.
Ad esempio:
const auctionConfig = {
seller: 'https://ssp.example',
decisionLogicUrl: ...,
trustedScoringSignalsUrl: ...,
interestGroupBuyers: ['https://dsp.example', 'https://buyer2.example', ...],
auctionSignals: {...},
sellerSignals: {...},
sellerTimeout: 100,
perBuyerSignals: {
'https://dsp.example': {...},
'https://another-buyer.example': {...},
...
},
perBuyerTimeouts: {
'https://dsp.example': 50,
'https://another-buyer.example': 200,
'*': 150,
...
},
componentAuctions: [
{
'seller': 'https://some-other-ssp.example',
'decisionLogicUrl': ...,
...
},
...
]
};
try {
const auctionResultPromise = navigator.runAdAuction(auctionConfig);
} catch (error) {
// Handle error.
}
runAdAuction()
restituisce una promessa che si risolve in un URN (urn:uuid:<something>
) che rappresenta il
risultato dell'asta dell'annuncio. Questo può essere decodificato dal browser solo quando viene passato a un frame recintato per il rendering: la pagina del publisher non può esaminare l'annuncio vincente.
Lo script decisionLogicUrl
prende in considerazione uno alla volta ogni singolo annuncio, insieme all'offerta associata e ai metadati, quindi assegna un punteggio numerico di desiderabilità.
auctionConfig
strutture
seller
- Obbligatorio
- Esempio:
'https://ssp.example'
- Ruolo: origine del venditore.
decisionLogicUrl
- Obbligatorio
- Esempio:
'https://ssp.example/auction-decision-logic.js'
- Ruolo: URL per il codice JavaScript del worklet dell'asta.
trustedScoringSignalsUrl
- Facoltativo
- Esempio:
'https://ssp.example/scoring-signals'
- Ruolo: URL del server attendibile del venditore.
interestGroupBuyers
- Obbligatorio
- Esempio:
['https://dsp.example', 'https://buyer2.example', ...]
- Ruolo: origini di tutti i proprietari di gruppi di interesse a cui è stato chiesto di fare offerte nell'asta.
- Nota: il venditore può specificare
interestGroupBuyers:
per consentire a tutti i gruppi basati sugli interessi di fare offerte. Gli annunci vengono quindi accettati o rifiutati in base a criteri diversi dall'inclusione del proprietario del gruppo di interesse. Ad esempio, il venditore potrebbe rivedere le creatività degli annunci per verificare che rispettino le proprie norme. auctionSignals
- Facoltativo
- Esempio:
{...}
- Ruolo: informazioni del venditore sul contesto della pagina, sul tipo di asta e così via.
sellerSignals
- Facoltativo
- Esempio:
{...}
- Ruolo: informazioni basate sulle impostazioni del publisher, creazione di una richiesta di annuncio contestuale e così via.
sellerTimeout
- Facoltativo
- Esempio:
100
- Ruolo: runtime massimo (ms) dello script
scoreAd()
del venditore. perBuyerSignals
- Facoltativo
- Esempio:
{'https://dsp.example': {...}, 'https://another-buyer.example': {...}, ... }
- Ruolo: indicatori contestuali sulla pagina per ogni acquirente specifico, dal relativo server.
perBuyerTimeouts
- Facoltativo
- Esempio:
50
- Ruolo: runtime massimo (ms) degli script
generateBid()
di un acquirente specifico. componentAuctions
- Facoltativo
- Esempio:
[{'seller': 'https://www.some-other-ssp.com', 'decisionLogicUrl': ..., ...}, ...]
- Ruolo: configurazioni aggiuntive per le aste dei componenti.
decisionLogicUrl
decisionLogicUrl
è una proprietà dell'oggetto di configurazione dell'asta,
passata a runAdAuction()
. Questo URL deve includere uno script per la funzione scoreAd()
. Questa logica viene eseguita una volta per ogni annuncio
per determinarne l'appetibilità.
scoreAd(adMetadata, bid, auctionConfig, trustedScoringSignals, browserSignals) {
...
return desirabilityScoreForThisAd;
}
browserSignals
browserSignals
è un oggetto creato dal browser, incluse informazioni
che il browser conosce e che lo script di asta del venditore potrebbe voler
verificare:
{
topWindowHostname: 'publisher.example',
interestGroupOwner: 'https://dsp.example',
renderUrl: 'https://cdn.example/render',
adComponents: ['https://cdn.com/ad-component-1', ...],
biddingDurationMsec: 12,
dataVersion: 1 /* DValue from the seller's Key/Value service response. */
}
Prima che inizi un'asta, il venditore trova il miglior annuncio contestuale per l'area annuncio disponibile. Parte della logica scoreAd()
rifiuta qualsiasi annuncio che non può
battere l'elemento vincente contestuale.
scoreAd()
scoreAd()
accetta i seguenti argomenti:
Argomento | Ruolo |
---|---|
adMetadata |
Metadati arbitrari forniti dall'acquirente. |
auctionConfig |
L'oggetto di configurazione dell'asta passato a navigator.runAdAuction() . |
bid |
Un valore numerico dell'offerta. |
trustedScoringSignals |
Valori recuperati al momento dell'asta dal server attendibile del venditore, che rappresentano l'opinione del venditore sull'annuncio. |
Domande frequenti
Come viene deciso il vincitore dell'asta e chi lo sceglie?
Il venditore fornisce la logica di punteggio per determinare il punteggio di desiderabilità di ciascun annuncio e il browser seleziona il punteggio più alto come annuncio vincente.
Il venditore include una logica nella funzione scoreAd()
e il browser la esegue in un worklet che ha una comunicazione limitata con codice al di fuori di questo. Il browser stesso non assegna un punteggio agli annunci. Il browser è l'unico responsabile dell'esecuzione della logica di punteggio e della selezione dell'offerta con il punteggio più alto.
Tutti i riferimenti dell'API Protected Audience
Sono disponibili guide di riferimento API:
- Guida per gli sviluppatori relativa all'API Protected Audience.
- Guida per gli acquirenti di annunci ai gruppi di interesse e alla generazione di offerte di Protected Audience.
- Guida per i venditori di annunci alle aste degli annunci di Protected Audience.
- Guida per generare report sui risultati dell'asta
- Best practice per la latenza dell'asta dell'annuncio di Protected Audience
- Risolvere i problemi relativi a Protected Audience
Il messaggio esplicativo dell'API Protected Audience fornisce anche dettagli sul supporto e sui vincoli delle funzionalità.