In qualità di acquirente di annunci (DSP e inserzionisti), potresti essere interessato a partecipare a un'asta di annunci Protected Audience sul sito del publisher per scegliere come target un annuncio per 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 modo da tutelare la privacy.
In un'asta Protected Audience, fornisci la logica per generare l'offerta e il browser la calcola utilizzando questa logica. Ciò è in contrasto con altre architetture dell'asta in cui invii l'offerta direttamente anziché fornire la logica.
Fornisci la logica di generazione delle offerte nella funzione JavaScript generateBid()
e il file è ospitato sul tuo server. Quando aggiungi un utente a un gruppo di interesse, la posizione di questo file viene trasferita 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 che ha una comunicazione limitata con il contesto esterno. Quando viene eseguito generateBid()
, il browser passa i segnali alla funzione come argomenti. Questi indicatori contengono varie informazioni provenienti da diverse fonti, 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 esegue la logica di assegnazione del punteggio 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 di interesse potrebbe essere aggiornato con dailyUpdateUrl . |
|
Una proprietà dell'argomento auction config passato a navigator.runAdAuction() dal venditore. Fornisce informazioni sul contesto della pagina (ad esempio le dimensioni dell'annuncio e l'ID editore), sul tipo di asta (al primo prezzo o al secondo prezzo) e su altri metadati. |
|
Una proprietà dell'argomento auction config passato dal venditore. In questo modo, il server dell'acquirente può fornire indicatori contestuali sulla pagina, se il venditore è una SSP che esegue una chiamata di offerta in tempo reale ai server dell'acquirente e reindirizza 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 segnali all'interno di generateBid() come protezione contro la manomissione. |
|
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 (ad esempio l'hostname della pagina corrente, che altrimenti il venditore potrebbe falsificare) e dati per il gruppo di interesse stesso (ad esempio un record di quando il gruppo ha vinto un'asta in precedenza, per consentire la limitazione della frequenza sul dispositivo). |
|
Indicatori provenienti 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 da cui è stata effettuata la chiamata runAdAuction() . |
|
Il venditore a cui viene inviata l'offerta. In un'asta di componenti, questo valore è il venditore del componente. |
|
Il venditore di primo livello in un'asta di componenti, presente solo in questo tipo di asta. |
|
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 possono scegliere una dimensione diversa per i contenuti dell'annuncio e la dimensione risultante verrà scalata visivamente per adattarsi alle dimensioni del contenitore dell'elemento. |
|
Il campo joinCount indica il numero di volte in cui questo dispositivo è entrato a far parte di questo gruppo di interesse negli ultimi 30 giorni, mentre il gruppo di interesse è stato memorizzato in modo continuo (ovvero non ci sono interruzioni nella memorizzazione del gruppo di interesse sul dispositivo dovute all'uscita o alla scadenza dell'appartenenza). |
|
Il campo recency indica la durata di tempo (in minuti) da quando questo dispositivo è entrato a far parte di questo gruppo di interesse fino ad ora |
|
Il numero di volte in cui il gruppo di interesse ha inviato un'offerta. |
|
Il campo prevWinMs contiene gli annunci vincenti del gruppo di interesse e il tempo trascorso dalle vittorie precedenti in millisecondi. Tieni presente che l'oggetto annuncio qui contiene solo i campi renderURL e i metadati. |
|
un oggetto WebAssembly.Module basato sul biddingWasmHelperURL del gruppo di interesse. |
|
Valore Data-Version dalle risposte del servizio Key/Value dell'acquirente. |
|
È possibile restituire un massimo di generateBid() componenti dell'annuncio |
Calcolare un'offerta
Per calcolare un valore di 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 informazioni che il venditore si aspetta di conoscere su questa offerta o sulla creatività annuncio. Il venditore utilizza queste informazioni nella sua logica di asta e decisione. |
adCost |
Un valore numerico utilizzato per trasferire il costo del clic o della conversione dell'inserzionista dei report 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 gli annunci composti da più parti, tratti dalla proprietà adComponents dell'argomento del gruppo di interesse passato a navigator.joinAdInterestGroup() . |
allowComponentAuction |
Un valore booleano che indica se questa offerta può essere utilizzata in un'asta dei componenti. Se non specificato, il valore predefinito è "false". |
bid |
Un'offerta numerica che verrà inserita nell'asta. Il venditore deve essere in grado di confrontare le offerte di diversi acquirenti, pertanto le offerte devono essere in un'unità scelta dal venditore (ad esempio "USD per mille"). Se l'offerta è pari a zero o negativa, questo gruppo di interesse non parteciperà all'asta del venditore. Con questo meccanismo, l'acquirente può implementare le regole dell'inserzionista relative a dove gli annunci possono o non possono essere pubblicati. |
bidCurrency |
La valuta dell'offerta, utilizzata per il controllo della valuta. |
render |
Un dizionario che descrive la creatività da visualizzare se questa offerta vince l'asta. Ad esempio:
|
|
Un numero intero compreso tra 0 e 4095 (12 bit) passato a reportWin() , con l'aggiunta di rumore, come descritto nello schema di aggiunta di rumore e raggruppamento. I valori non validi, come quelli 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() , inclusi i dati proprietari dell'acquirente acquisiti al momento della creazione del gruppo di interesse in userBiddingSignals , per derivare un valore che viene passato alla funzione di report sulle vittorie dell'acquirente per consentire l'addestramento del modello di ML. |