Fai offerte in un'asta per acquistare un'area annuncio

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

interestGroup

Un oggetto trasmesso dall'acquirente dell'annuncio. Il gruppo basato sugli interessi potrebbe essere aggiornato con dailyUpdateUrl.

auctionSignals

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.

perBuyerSignals

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.

trustedBiddingSignals

Un oggetto le cui chiavi sono trustedBiddingSignalsKeys per il gruppo di interesse e i cui valori vengono restituiti nella richiesta trustedBiddingSignals.

browserSignals

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).

directFromSellerSignals

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

topWindowHostname

Il nome host della posizione in cui è stata effettuata la chiamata runAdAuction().

seller

Il venditore a cui viene inviata l'offerta. In un'asta del componente, questo valore è il venditore del componente.

topLevelSeller

Il venditore di primo livello in un'asta di componenti ed è presente solo in un'asta di componenti.

requestedSize

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.

joinCount

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).

recency

Il campo recency indica la durata (in minuti) da quando il dispositivo si è unito a questo gruppo basato sugli interessi a oggi

bidCount

Il numero di volte in cui quel gruppo di interesse ha inviato un'offerta.

prevWinsMs

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.

wasmHelper

un oggetto WebAssembly.Module basato sull'elemento biddingWasmHelperURL del gruppo di interesse.

dataVersion

Valore dati-versione provenienti dalle risposte del servizio chiave/valore dell'acquirente.

adComponentsLimit

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:
  • url: l'URL della creatività.
  • width: la larghezza della creatività. Questa dimensione verrà confrontata con la dichiarazione nel gruppo di interesse e sostituita nelle macro delle dimensioni dell'annuncio presenti nell'URL della creatività dell'annuncio. Quando l'annuncio viene caricato in un frame recintato, il frame interno del frame recintato (ovvero la dimensione visibile alla creatività dell'annuncio) verrà bloccato a queste dimensioni e non sarà in grado di visualizzare le modifiche apportate a quelle apportate dall'autore dell'incorporamento.
  • height: l'altezza della creatività. Visualizza elaborazione in width.

modelingSignals

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.