Scopri come configurare un'asta dell'API Protected Audience.
Aste sul dispositivo gestite dai venditori
Un'asta Protected Audience on-device viene eseguita su un sito che vende spazi pubblicitari e ci riferiamo alla parte che esegue l'asta come venditore. Molte parti potrebbero agire da venditori: un sito potrebbe eseguire la propria asta pubblicitaria o includere uno script di terze parti per eseguire l'asta per suo conto oppure potrebbe utilizzare una SSP che combina l'esecuzione di un'asta sul dispositivo con altre attività di asta pubblicitaria lato server. I venditori hanno tre compiti di base nell'asta di annunci on-device:
- I venditori decidono (a) quali acquirenti possono partecipare e (b) quali offerte dei gruppi di interesse di questi acquirenti sono idonee a partecipare all'asta. In questo modo, il venditore può applicare le regole del sito per gli annunci che possono essere pubblicati nella pagina.
- I venditori sono responsabili della logica di business dell'asta: codice JavaScript che considera il prezzo e i metadati di ogni offerta e calcola un punteggio di "desiderabilità". L'offerta con il punteggio di desiderabilità più alto vince l'asta.
- I venditori generano report sull'esito dell'asta, incluse informazioni sul prezzo di aggiudicazione e su eventuali altri pagamenti. Anche gli acquirenti vincenti e perdenti possono generare i propri report.
Questo documento spiega come configurare e avviare un'asta sul dispositivo.
Configurare un'asta dell'API Protected Audience
Per eseguire un'asta dell'annuncio dell'API Protected Audience, il primo passaggio consiste nel
configurare l'asta. A questo scopo, viene creato un oggetto auctionConfig.
Ecco un esempio di una di queste configurazioni:
const auctionConfig = {
seller: 'https://seller.example',
decisionLogicUrl: ...,
trustedScoringSignalsUrl: ...,
interestGroupBuyers: ['https://buyer-1.example', 'https://buyer-2.example', ...],
auctionSignals: {...},
sellerSignals: {...},
sellerTimeout: 100,
perBuyerSignals: {
'https://buyer-1.example': {...},
'https://buyer-2.example': {...},
...
},
perBuyerTimeouts: {
'https://buyer-1.example': 50,
'https://buyer-2.example': 200,
'*': 150,
...
},
componentAuctions: [
{
'seller': 'https://component-seller.example',
'decisionLogicUrl': ...,
...
},
...
],
resolveToConfig: [true|false],
};
AuctionConfig strutture
Proprietà obbligatorie
Le uniche proprietà obbligatorie per auctionConfigs sono seller,
decisionLogicUrl e interestGroupBuyers.
| Proprietà | Esempio | Ruolo |
|---|---|---|
| seller | https://seller.example | Origine del venditore. |
| decisionLogicUrl | https://seller.example/decision-logic.js | URL del worklet della logica decisionale JavaScript per l'asta. Questo campo deve avere la stessa origine del campo venditore. |
| interestGroupBuyers | [https://buyer-1.example, https://buyer-2.example, ...] |
Origini di tutti i proprietari dei gruppi di interesse a cui è stato chiesto di fare offerte nell'asta |
Proprietà facoltative
Le proprietà rimanenti per auctionConfigs sono facoltative.
| Proprietà | Esempio | Ruolo |
|---|---|---|
| trustedScoringSignalsUrl | https://seller.example/scoring-signals | URL del server chiave/valore del venditore. Verrà eseguita una query durante il processo di assegnazione del punteggio dell'annuncio utilizzando l'URL di rendering della creatività come chiave. Questo campo deve avere la stessa origine del campo venditore. |
| auctionSignals | {"category":"news"} | Oggetto serializzabile JSON che rappresenta i segnali disponibili per tutti gli acquirenti e i venditori che partecipano all'asta. |
| sellerSignals | {...} | Oggetto serializzabile JSON che rappresenta gli indicatori disponibili solo per i venditori. |
| perBuyerSignals | {https://dsp.example: {...}, https://another-buyer.example: {...}, ... } |
Segnali disponibili per un acquirente specifico. I segnali possono provenire dai venditori e dagli acquirenti stessi. |
| perBuyerTimeouts | {https://www.example-dsp.com: 50, https://www.another-buyer.com: 200, *: 150, ...}, |
Durata massima in millisecondi dello script generateBid() di un determinato acquirente. Un simbolo jolly verrà applicato a ogni acquirente per cui non è stato definito un timeout specifico. |
| sellerTimeout | 100 | Tempo di esecuzione massimo in millisecondi di uno script scoreAd() di un venditore. |
| componentAuctions | [{seller: https://www.some-other-ssp.com, decisionLogicUrl: ..., ...}, ...] | Configurazioni aggiuntive per le aste dei componenti. |
| resolveToConfig | true|false | Un valore booleano che indica alla promessa restituita da runAdAuction() di risolversi in un FencedFrameConfig se true (per l'utilizzo in un <fencedframe>) o in un URL urn:uuid opaco se false (per l'utilizzo in un <iframe>). Il valore predefinito è false. |
Fornire indicatori in modo asincrono
I valori di alcuni indicatori (quelli configurati dai campi auctionSignals,
sellerSignals, perBuyerSignals e perBuyerTimeouts) possono
facoltativamente essere forniti non come valori concreti, ma come promesse. Ciò consente
ad alcune parti dell'asta, come il caricamento di script e indicatori attendibili e
l'avvio di processi worklet isolati, di sovrapporsi al calcolo (o al recupero
di rete) di questi valori. Gli script worklet vedranno solo i valori risolti. Se una di queste promesse viene rifiutata, l'asta verrà interrotta, a meno che non sia già fallita o interrotta in altri modi.
Configurare un'asta con più venditori
In alcuni casi, più venditori potrebbero voler partecipare a un'asta, con i
vincitori di aste separate che vengono trasferiti a un'altra asta, gestita da un altro
venditore. Queste aste separate che vengono superate sono chiamate aste dei componenti.
Per facilitare queste aste dei componenti, l'oggetto componentAuctions può contenere
configurazioni aggiuntive dell'asta per l'asta dei componenti di ogni venditore. L'offerta vincente di ciascuna di queste aste dei componenti verrà trasferita all'asta "di primo livello", che determina il risultato finale dell'asta. L'auctionConfig delle aste dei componenti potrebbe non avere un proprio componentAuctions. Quando componentAuctions non è vuoto,
interestGroupBuyers deve essere vuoto. ovvero, per qualsiasi asta Protected
Audience, esiste un singolo venditore e nessuna asta componente oppure
tutte le offerte provengono da aste componenti e l'asta di primo livello può scegliere solo tra i vincitori delle aste componenti.
Esegui l'asta
Il venditore invia una richiesta al browser dell'utente per avviare un'asta di annunci chiamando navigator.runAdAuction().
try {
const auctionResultPromise = navigator.runAdAuction(auctionConfig);
} catch (error) {
// Handle error.
}
La chiamata runAdAuction() restituisce una promessa che si risolve nell'annuncio. Nessun codice nella pagina del publisher può ispezionare l'annuncio vincente o
venire a conoscenza dei suoi contenuti dal risultato di runAdAuction(). Se il
flag resolveToConfig è stato impostato su true in AuctionConfig, viene restituito un
oggetto FencedFrameConfig che può essere visualizzato solo in un frame
isolato. Se il flag è impostato su false, viene restituito un URN opaco che può essere
visualizzato in un iframe. È possibile che runAdAuction restituisca un valore nullo,
a indicare che non è stato selezionato alcun annuncio. In questo caso, il venditore potrebbe scegliere di
mostrare un annuncio con targeting contestuale.