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 definito sul sito dell'inserzionista. Partecipando all'asta Protected Audience, puoi raggiungere i 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 viene inviata l'offerta direttamente invece di fornire la logica.

Tu 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, il percorso di questo file viene trasferito 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 ciascun gruppo di interesse in un ambiente sicuro isolato, limitato nella comunicazione con l'esterno. Quando viene eseguito generateBid(), il browser trasmette 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, il cui valore viene restituito dalla chiamata generateBid(). Dopo l'invio delle offerte, il browser esegue la logica del punteggio del venditore per 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 all'acquirente dell'annuncio. Il gruppo basato sugli interessi potrebbe essere aggiornato con dailyUpdateUrl.

auctionSignals

Una proprietà dell'argomento auction config passata a navigator.runAdAuction() dal venditore. Fornisce informazioni sul contesto della pagina (ad esempio dimensioni dell'annuncio e ID publisher), sul tipo di asta (primo prezzo o secondo prezzo) e altri metadati.

perBuyerSignals

Una proprietà dell'argomento auction config passata dal venditore. Ciò può fornire indicatori di contesto dal server dell'acquirente in merito alla pagina, se il venditore è un'SSP che esegue una chiamata per le offerte in tempo reale ai server dell'acquirente e inoltra 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 contro le 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 il hostname della pagina corrente, che altrimenti il venditore potrebbe falsificare) e i dati relativi al gruppo di interesse stesso (ad esempio la registrazione della data in cui il gruppo ha vinto in precedenza un'asta, per consentire la quota limite on-device).

directFromSellerSignals

Indicatori di cui è garantita la provenienza 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 del quale è stata effettuata la chiamata a runAdAuction().

seller

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

topLevelSeller

Venditore di primo livello in un'asta del componente ed è presente solo in un'asta del componente.

requestedSize

La proprietà requestedSize consiglia una dimensione 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 dimensioni diverse per i contenuti dell'annuncio e le dimensioni risultanti verranno scalate visivamente per adattarsi alle dimensioni del contenitore dell'elemento.

joinCount

Il campo joinCount indica il numero di volte in cui questo dispositivo si è unito al gruppo di interesse negli ultimi 30 giorni, mentre il gruppo di interesse è stato archiviato in modo continuo (ossia, non ci sono lacune nello spazio di archiviazione del gruppo di interesse sul dispositivo a causa di un'abbandono o di un'iscrizione in scadenza).

recency

Il campo recency indica la durata (in minuti) da quando il dispositivo è entrato a far parte del gruppo basato sugli interessi fino ad ora

bidCount

Il numero di volte in cui il gruppo basato sugli interessi ha presentato un'offerta.

prevWinsMs

Il campo prevWinMs contiene gli annunci vincenti del gruppo di interesse e il tempo trascorso dalle precedenti vincite in millisecondi. Tieni presente che l'oggetto annuncio qui contiene solo i campi renderURL e metadati.

wasmHelper

un oggetto WebAssembly.Module basato sul valore biddingWasmHelperURL del gruppo di interesse.

dataVersion

Valore della versione dati proveniente 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 dell'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 ottenere su questa offerta o creatività dell'annuncio. Il venditore utilizza queste informazioni nell'asta e nella logica decisionale.
adCost Un valore numerico utilizzato per passare i report sul costo di conversione o clic dell'inserzionista 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, tratto dalla proprietà adComponents dell'argomento gruppo di interesse passato a navigator.joinAdInterestGroup().
allowComponentAuction Un valore booleano che indica se l'offerta può essere utilizzata in un'asta di componenti. Se non specificato, il valore predefinito è "false".
bid Un'offerta numerica che parteciperà all'asta. Il venditore deve essere in grado di confrontare le offerte di diversi acquirenti, pertanto le offerte devono essere in alcune unità scelte dal venditore (ad esempio, "USD per mille"). Se l'offerta è pari a zero o negativa, il gruppo basato sugli interessi non parteciperà affatto all'asta del venditore. Con questo meccanismo, l'acquirente può implementare qualsiasi regola inserzionista per la quale i suoi annunci possono o meno essere pubblicati.
bidCurrency La valuta dell'offerta, utilizzata per il controllo della valuta.
render Un dizionario che descrive la creatività da visualizzare se l'offerta vince l'asta. Ad esempio:
  • url: l'URL della creatività.
  • width: la larghezza della creatività. Questa dimensione verrà abbinata alla dichiarazione nel gruppo di interesse e sostituita in qualsiasi macro delle dimensioni dell'annuncio presente nell'URL della creatività dell'annuncio. Quando l'annuncio viene caricato in un frame isolato, il frame interno del frame recintato (ovvero le dimensioni visibili alla creatività dell'annuncio) verrà bloccato a queste dimensioni e non sarà in grado di vedere modifiche alle dimensioni del frame apportate dall'incorporamento.
  • height: l'altezza della creatività. Vedi elaborazione in width.

modelingSignals

Un numero intero 0-4095 (12 bit) passato a reportWin(), con noising, come descritto nello schema di rumore e bucketing. I valori non validi, ad esempio negativi, infiniti e NaN, verranno ignorati e non verranno passati. Verranno passati solo i 12 bit più bassi.


L'acquirente può utilizzare gli indicatori disponibili all'interno della funzione generateBid(), inclusi i dati dei dati proprietari degli acquirenti acquisiti al momento della creazione del gruppo di interesse in userBiddingSignals, per ricavare un valore che viene trasmesso alla funzione di generazione di report sulle vittorie dell'acquirente per consentire l'addestramento del modello ML.