In qualità di acquirente di annunci (DSP e inserzionisti), potresti essere interessato a partecipare a un'asta dell'annuncio Protected Audience sul sito del publisher per scegliere come target di un annuncio il gruppo di interesse che hai definito sul sito dell'inserzionista. Partecipando all'asta Protected Audience, puoi raggiungere i tuoi clienti identificati su altri siti in un modo incentrato sulla tutela della privacy.
In un'asta Protected Audience, fornisci la logica per generare l'offerta e il browser calcola l'offerta utilizzando questa logica. a differenza di altre architetture di asta in cui invii l'offerta direttamente anziché fornire una logica.
Tu fornisci la logica di generazione delle offerte nella funzione JavaScript generateBid()
e il file viene ospitato sul tuo server. Quando aggiungi un utente a un gruppo di interesse, la posizione di questo file viene passata nella configurazione del gruppo di interesse come biddingLogicUrl
.
Durante l'asta, il browser recupera la logica di offerta specificata nel campo biddingLogicUrl
ed esegue la funzione generateBid()
per ogni gruppo di interesse in un ambiente isolato sicuro e limitato nella comunicazione con il contesto esterno. Quando viene eseguito generateBid()
, il browser trasmette gli indicatori alla funzione come argomenti. Questi indicatori contengono varie informazioni provenienti da fonti diverse, come i dati proprietari del publisher, i dati del venditore, i dati in tempo reale e altro ancora. Puoi utilizzare questi indicatori per calcolare l'offerta e il valore viene restituito dalla chiamata generateBid()
. Una volta inviate le offerte, il browser eseguirà la logica di valutazione del venditore su ciascuna offerta per calcolare il punteggio di desiderabilità del venditore.
generateBid()
Di seguito vengono descritti gli argomenti della funzione generateBid()
e la struttura dell'offerta restituita dalla funzione:
generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals, directFromSellerSignals) {
return {
ad: adObject,
adCost: optionalAdCost,
bid: bidValue,
bidCurrency: 'USD',
render: {
url: renderURL,
width: renderWidth,
height: renderHeight
},
adComponents: [
{url: adComponent1, width: componentWidth1, height: componentHeight1},
{url: adComponent2, width: componentWidth2, height: componentHeight2},
// ...
],
allowComponentAuction: false,
modelingSignals: 123 // 0-4095 integer (12-bits)
};
}
Argomenti
generateBid()
accetta i seguenti argomenti:
Argomento | Ruolo |
---|---|
|
Un oggetto trasmesso dall'acquirente dell'annuncio. Il gruppo basato sugli interessi potrebbe essere aggiornato con dailyUpdateUrl . |
|
Una proprietà dell'argomento configurazione delle aste passata a navigator.runAdAuction() dal venditore. Fornisce informazioni sul contesto della pagina (ad esempio le dimensioni dell'annuncio e l'ID publisher), il tipo di asta (primo o secondo prezzo) e altri metadati. |
|
Una proprietà dell'argomento configurazione delle aste trasmesso dal venditore. In questo modo, il server dell'acquirente può fornire indicatori di contesto relativi alla pagina, se il venditore è una SSP che esegue una chiamata per offerte in tempo reale ai server dell'acquirente e restituisce la risposta oppure se la pagina del publisher contatta direttamente il server dell'acquirente. In questo caso, l'acquirente potrebbe voler controllare una firma crittografica di questi indicatori all'interno di generateBid() come protezione dalle manomissioni. |
|
Un oggetto le cui chiavi sono trustedBiddingSignalsKeys per il gruppo di interesse e i cui valori vengono restituiti nella richiesta trustedBiddingSignals . |
|
Un oggetto creato dal browser, che potrebbe includere informazioni sul contesto della pagina (come hostname della pagina corrente, che il venditore potrebbe altrimenti falsificare) e dati per il gruppo di interesse stesso (ad esempio un record di quando il gruppo ha vinto in precedenza un'asta, per consentire la quota limite on-device). |
|
Indicatori per le quali è garantito che provengano da un venditore specifico, a differenza di auctionSignals e sellerSignals , che possono provenire da qualsiasi partecipante presente nel contesto in cui viene eseguito runAdAuction . |
Indicatori del browser
L'oggetto browserSignals
ha le seguenti proprietà:
{
topWindowHostname: 'publisher.example',
seller: 'https://ssp.example',
topLevelSeller: 'https://www.top-level-ssp.com',
requestedSize: {width: 100, height: 200}, /* if specified in auction config */
joinCount: 3,
recency: 3600000,
bidCount: 17,
prevWinsMs: [[timeDeltaMs1,ad1],[timeDeltaMs2,ad2],...],
wasmHelper: ...
dataVersion: 1,
adComponentsLimit: 40
}
Proprietà | Descrizione |
---|---|
|
Il nome host della posizione in cui è stata effettuata la chiamata runAdAuction() . |
|
Il venditore a cui viene inviata l'offerta. In un'asta del componente, questo valore è il venditore del componente. |
|
Il venditore di primo livello in un'asta di componenti ed è presente solo in un'asta di componenti. |
|
La proprietà requestedSize consiglia una dimensione del frame per l'asta. Il venditore imposta la dimensione richiesta nella configurazione dell'asta e il valore diventa disponibile per gli offerenti in generateBid() . Gli offerenti all'interno dell'asta potrebbero scegliere una dimensione dei contenuti diversa per l'annuncio e questa dimensione verrà ridimensionata visivamente per adattarsi alle dimensioni del contenitore dell'elemento. |
|
Il campo joinCount indica il numero di volte in cui questo dispositivo si è unito a questo gruppo basato sugli interessi negli ultimi 30 giorni mentre il gruppo basato sugli interessi è stato archiviato continuamente (ovvero, non ci sono lacune nella memoria del gruppo di interesse sul dispositivo a causa dell'uscita o della scadenza dell'iscrizione). |
|
Il campo recency indica la durata (in minuti) da quando il dispositivo si è unito a questo gruppo basato sugli interessi a oggi |
|
Il numero di volte in cui quel gruppo di interesse ha inviato un'offerta. |
|
Il campo prevWinMs contiene gli annunci vincenti del gruppo di interesse e il tempo trascorso dalle precedenti vittorie in millisecondi. Tieni presente che l'oggetto annuncio in questo caso contiene solo i campi renderURL e dei metadati. |
|
un oggetto WebAssembly.Module basato sull'elemento biddingWasmHelperURL del gruppo di interesse. |
|
Valore dati-versione provenienti dalle risposte del servizio chiave/valore dell'acquirente. |
|
Numero massimo di componenti dell'annuncio che possono essere restituiti da generateBid() |
Calcolare un'offerta
Per calcolare il valore di un'offerta, il codice in generateBid()
può utilizzare le proprietà dei parametri della funzione.
Ad esempio:
function generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals) {
return {
// ...
bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
// ...
}
}
Restituire un'offerta
generateBid()
restituisce un oggetto con le seguenti proprietà:
Proprietà | Ruolo |
---|---|
ad |
Metadati arbitrari sull'annuncio, ad esempio le informazioni che il venditore si aspetta di ricevere su questa offerta o creatività dell'annuncio. Il venditore utilizza queste informazioni nella logica dell'asta e della decisione. |
adCost |
Un valore numerico utilizzato per passare il costo di conversione o il clic dell'inserzionista di reporting da generateBid a reportWin. La precisione di questo numero è limitata a una mantissa a 8 bit e a un esponente a 8 bit, con qualsiasi arrotondamento eseguito in modo stocastico. |
adComponents |
Un elenco facoltativo di massimo 20 componenti per annunci composti da più elementi, tratto dalla proprietà adComponents dell'argomento gruppo di interesse passato a navigator.joinAdInterestGroup() . |
allowComponentAuction |
Un valore booleano che indica se questa offerta può essere utilizzata in un'asta di componenti. Il valore predefinito è "false" se non specificato. |
bid |
Un'offerta numerica che parteciperà all'asta. Il venditore deve essere in grado di confrontare le offerte di acquirenti diversi, pertanto le offerte devono rientrare in alcune unità scelte dal venditore (ad esempio, "USD per mille"). Se l'offerta è zero o negativa, questo gruppo basato sugli interessi non parteciperà in alcun modo all'asta del venditore. Con questo meccanismo, l'acquirente può implementare qualsiasi regola dell'inserzionista per la posizione in cui i suoi annunci possono o meno essere pubblicati. |
bidCurrency |
Valuta dell'offerta, utilizzata per il currency-checking. |
render |
Un dizionario che descrive la creatività che dovrebbe essere visualizzata se l'offerta vince l'asta. Sono inclusi:
|
|
Un numero intero compreso tra 0 e 4095 (12 bit) passato a reportWin() , senza rumore, come descritto nello schema di rumore e bucketing. I valori non validi, ad esempio valori negativi, infiniti e NaN , verranno ignorati e non trasmessi. Verranno passati solo i 12 bit più bassi. L'acquirente può utilizzare gli indicatori disponibili all'interno della funzione generateBid() , compresi i dati provenienti dagli acquirenti proprietari acquisiti al momento della creazione del gruppo di interesse nel mese di userBiddingSignals , per ricavare qualche valore che viene passato alla funzione di generazione di report sulle vittorie dell'acquirente per consentire l'addestramento del modello ML. |