Dopo aver elaborato la richiesta di offerta di Google, l'applicazione deve creare e inviare una risposta. Questa guida spiega come codificare l'applicazione per creare la risposta.
Creare un messaggio Protobuf BidResponse
Authorized Buyers invia il BidRequest
come corpo del messaggio di un POST
HTTP. Se l'endpoint per le offerte è configurato per utilizzare il formato Protobuf, l'applicazione deve inviare una risposta con l'intestazione Content-Type
impostata su application/octet-stream
e un corpo del messaggio costituito da un buffer di protocollo serializzato. Il buffer del protocollo è un messaggio BidResponse
come definito in openrtb.proto
. La tua applicazione deve restituire un BidResponse
analizzabile in risposta a ogni BidRequest
. I timeout
e le risposte che non possono essere analizzate sono considerati errori e Google limita
gli offerenti con tassi di errore elevati.
Se non vuoi fare offerte per un'impressione, devi restituire una risposta HTTP 204 vuota. Puoi ottenere openrtb.proto
dalla pagina
Dati di riferimento.
ID creatività
BidResponse
specifica una creatività tramite il campo BidResponse.seatbid.bid.crid
(limite di 64 byte). Anche le creatività simili devono avere valori univoci per questo campo se differiscono per caratteristiche notevoli, tra cui, a titolo esemplificativo, dimensioni, URL dichiarato, attributi della creatività e tipi di fornitori. In altre parole, devi assegnare ID creatività diversi a due annunci che:
- Aspetto o comportamento diverso.
- Esegui il rendering in immagini diverse.
- Vengono visualizzati con mezzi diversi (ad esempio, un annuncio è costituito da un'immagine, mentre l'altro è un video).
Durante la progettazione dell'applicazione, devi decidere un modo sistematico per generare identificatori che abbiano senso per i tipi di creatività che prevedi di inviare.
Attributi annuncio
Google consiglia di dichiarare gli attributi delle creatività per descrivere le caratteristiche dell'annuncio e il relativo targeting utilizzando una combinazione di BidResponse.seatbid.bid.apis
e BidResponse.seatbid.bid.attr
o l'estensione BidResponse.seatbid.bid.ext.attribute
. Di seguito viene descritto come dichiarare gli attributi:
VPAID
ImpostaBidResponse.seatbid.bid.apis
suVPAID_1
oVPAID_2
. Per il formato JSON, può essere impostato rispettivamente su1
o2
.MRAID
ImpostaBidResponse.seatbid.bid.apis
suMRAID_1
o3
per il formato JSON.SIZELESS
ImpostaBidResponse.seatbid.bid.attr
suRESPONSIVE
o18
per il formato JSON.PLAYABLE
Questo viene indicato impostandoBidResponse.seatbid.bid.attr
suUSER_INTERACTIVE
o13
per il formato JSON.
Consulta la risorsa sulle creatività per una spiegazione su come ricevere un feedback sulle proprietà rilevate delle tue creatività.
Campi Open Bidding
Le risposte alle offerte inviate dagli offerenti di piattaforme di scambio e reti che partecipano a Open Bidding sono simili a quelle di Authorized Buyers che partecipano alle offerte in tempo reale standard. I clienti di Open Bidding possono specificare un numero ridotto di campi aggiuntivi e alcuni campi esistenti potrebbero avere utilizzi alternativi. tra cui:
OpenRTB | Authorized Buyers | Dettagli |
---|---|---|
BidResponse.imp[].pmp.deals[].id |
BidResponse.ad[].adslot[].exchange_deal_id |
L'ID deal dello spazio dei nomi della piattaforma di scambio pubblicitario associato a questa offerta e registrato per i publisher. |
BidResponse.seatbid[].bid[].ext.exchange_deal_type |
BidResponse.ad[].adslot[].exchange_deal_type |
Il tipo di deal segnalato ai publisher, che influisce sul modo in cui viene trattato nell'asta. |
BidResponse.seatbid[].bid[].ext.third_party_buyer_token |
BidResponse.ad[].adslot[].third_party_buyer_token |
Token utilizzato per identificare le informazioni dell'acquirente di terze parti finale se la piattaforma di scambio pubblicitario come offerente Open Bidding è un intermediario. Questo valore viene ottenuto dall'acquirente di terze parti e deve essere trasmesso a Google invariato nella risposta all'offerta. |
Consigli
- Attiva le connessioni HTTPS permanenti (note anche come "keep-alive" o "riutilizzo della connessione") sui tuoi server. Imposta il timeout su almeno 10 secondi. In molti casi, valori più elevati sono utili. Google lo verifica durante i test iniziali della latenza dell'applicazione, perché Authorized Buyers invia richieste a una frequenza elevata e deve evitare il sovraccarico di latenza dovuto all'instaurazione di una connessione TCP separata per ogni richiesta.
Includi l'URL di monitoraggio delle impressioni facoltativo per monitorare il momento in cui viene visualizzata l'impressione anziché quando l'offerente vince. A causa del calo tra le vittorie e i rendering, si ottengono statistiche di monitoraggio più accurate.
- Mantieni il codice dell'offerente privo di dipendenze dai campi ritirati, che possono causare errori di mancata esecuzione delle offerte.
- Includi
BidResponse.seatbid.bid.w
eBidResponse.seatbid.bid.h
inBidResponse
. UnBidResponse
per una richiesta che include più dimensioni degli annunci deve includere questi campi, altrimenti verrà eliminato dall'asta. - Limita le dimensioni della risposta a meno di 8 KB. Risposte molto grandi possono aumentare la latenza della rete e causare timeout.
- Segui le linee guida per le offerte sull'inventario iOS che richiedono l'attribuzione SKAdNetwork.
Esempio di risposta all'offerta
Gli esempi riportati di seguito rappresentano esempi leggibili delle richieste Protobuf e JSON.
Mostrami l'esempio
Risposta serializzataid: "9u09jhHJXT2fbaDZ9V1x66" seatbid { bid { id: "37Td8Gbw1Lr8161bA4B" impid: "1" price: 0.075 adm: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adomain: "google.com" adomain: "google.com" crid: "test_creative_id_156129" cat: "IAB22" w: 320 h: 50 language: "es" slotinpod: SLOT_POSITION_POD_ANY cattax: IAB_CONTENT_1_0 [com.google.doubleclick.bid] { impression_tracking_url: "https://test.com/impression?id=123456" exchange_deal_type: OPEN_AUCTION event_notification_token { payload: "token" } billing_id: 61560909063 } } seat: "4778:9251:780612" } cur: "USD"
Mostrami l'esempio
{ "id": "9u09jhHJXT2fbaDZ9V1x66", "seatbid": [ { "bid": [ { "id": "37Td8Gbw1Lr8161bA4B", "impid": "1", "price": 0.075, "adm": "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>", "adomain": [ "google.com", "google.com" ], "crid": "test_creative_id_156129", "cat": [ "IAB22" ], "w": 320, "h": 50, "language": "es", "slotinpod": 0, "cattax": 1, "ext": { "impression_tracking_url": [ "https://test.com/impression?id=123456" ], "exchange_deal_type": 0, "event_notification_token": { "payload": "token" }, "billing_id": "61560909063" } } ], "seat": "4778:9251:780612" } ], "cur": "USD" }
Mostrami l'esempio
Risposta serializzataad { html_snippet: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adslot { id: 1 max_cpm_micros: 226722 billing_id: 78614473201 currency: "USD" } click_through_url: "google.com" attribute: 105 buyer_creative_id: "test_creative_id_827359" width: 336 height: 280 impression_tracking_url: "https://test.com/imp?id=123456" event_notification_token: "token" }
Importante:i messaggi Protobuf mostrati nei sample sono rappresentati qui come testo leggibile da una persona. Tuttavia, non è così che vengono inviati i messaggi tramite rete. Quando utilizzi il formato Protobuf di Google o OpenRTB, verranno accettati solo i messaggi BidResponse serializzati.
Puoi creare e serializzare un messaggio BidResponse
utilizzando il seguente codice C++:
BidResponse bid_response; // fill in bid response with bid information string post_response; if (bid_response.SerializeToString(&post_response)) { // respond to the POST with post_response as the content } else { // return an error to the POST }
Specifica la creatività
La risposta all'offerta specifica la creatività da pubblicare se la tua offerta è vincente. L'offerta deve includere uno dei formati degli annunci supportati (AMP, video, nativo). In questo
esempio, specifichiamo la creatività utilizzando il campo html_snippet
.
In alternativa, puoi specificare la creatività utilizzando uno dei seguenti campi, in base al formato dell'annuncio:
- Annuncio visualizzato dall'SDK
BidResponse.seatbid.bid.ext.sdk_rendered_ad
- AMP
BidResponse.seatbid.bid.amp_ad_url
- Video
BidResponse.seatbid.bid.adm
- Nativo
BidResponse.seatbid.bid.adm_native
Specifica un annuncio ospitato sui tuoi server utilizzando uno snippet HTML nel
campo BidResponse.seatbid.bid.adm
. Lo snippet è racchiuso in un iFrame inserito nella pagina web, in modo che l'annuncio venga recuperato e visualizzato al caricamento della pagina. Devi creare lo snippet HTML in modo che l'annuncio (banner o interstitial) venga visualizzato correttamente all'interno di un iframe e in dimensioni appropriate per l'area annuncio per cui fai offerte.
Inoltre, la dimensione dell'annuncio dichiarata nella risposta all'offerta deve corrispondere esattamente a una delle combinazioni di dimensioni nella richiesta di offerta quando:
- Un annuncio è un banner normale (non video, nativo o interstitial).
- L'offerente ha dichiarato le dimensioni nella risposta all'offerta. La dichiarazione delle dimensioni è obbligatoria ogni volta che nella richiesta è presente più di una dimensione.
- Viene fatta un'eccezione per gli annunci interstitial. Per gli interstitial, la larghezza deve essere almeno il 50% della larghezza dello schermo e l'altezza almeno il 40% dell'altezza dello schermo.
Puoi specificare una creatività snippet HTML utilizzando qualsiasi codice HTML valido che viene visualizzato correttamente, ma tieni presente le limitazioni relative alla specifica del campo crid
nella sezione Creare il messaggio BidResponse.
Un utilizzo è inserire informazioni aggiuntive negli argomenti degli URL che vengono recuperati dai tuoi server durante il rendering dell'annuncio. In questo modo puoi ritrasmettere ai tuoi server dati arbitrari sull'impressione.
La maggior parte delle norme per gli snippet HTML restituiti nelle risposte all'offerta è la stessa per gli annunci di terze parti. Per saperne di più, consulta le linee guida del programma Authorized Buyers, i requisiti per la pubblicazione di annunci di terze parti e la sezione Dichiarare gli URL di clic negli annunci.
Specificare le macro
Le macro sono testo formattato incorporato in alcuni campi della risposta all'offerta contenenti URL che vengono sostituiti con un valore pertinente al momento della pubblicazione dell'annuncio. Ad esempio, se la tua offerta vincente includeva la macro AUCTION_PRICE
nella creatività snippet HTML inclusa nell'offerta, la macro verrà sostituita con un valore che potrai decriptare per determinare l'importo che hai pagato per l'impressione nell'asta.
Puoi includere macro nei seguenti campi:
-
BidResponse.seatbid.bid.adm
Le macro sono supportate per i formati XML VAST, video, URL video e snippet HTML.
-
BidResponse.seatbid.bid.adm_native.eventtrackers.url
-
BidResponse.seatbid.bid.adm_native.imptrackers
-
BidResponse.seatbid.bid.ext.amp_ad_url
Per le creatività AMP sono supportate solo le macro
WINNING_PRICE
eWINNING_PRICE_ESC
specifiche di Google. -
BidResponse.seatbid.bid.burl
-
BidResponse.seatbid.bid.ext.impression_tracking_url
Utilizzalo al posto di
BidResponse.seatbid.bid.burl
se hai bisogno di più di un URL di fatturazione.
Ad esempio, puoi includere una macro all'interno di uno snippet HTML incorporando ${MACRO}
nell'URL utilizzato per recuperare la creatività, dove MACRO
è una delle macro supportate descritte nella specifica OpenRTB.
Macro Google RTB
Google supporta macro aggiuntive oltre a quelle presenti nella specifica OpenRTB. Queste macro sono formattate in modo diverso e vengono visualizzate come%%MACRO%%
se incorporate in un URL. La seguente tabella descrive queste macro:
Macro | Descrizione |
---|---|
ADVERTISING_IDENTIFIER |
Consente agli acquirenti di ricevere l'ID pubblicità di iOS o Android al momento del rendering delle impressioni. Per maggiori dettagli, consulta Decriptare gli identificatori dell'inserzionista. |
CACHEBUSTER |
Una rappresentazione come stringa di un numero intero casuale non firmato di quattro byte. |
CLICK_URL_UNESC |
L'URL di clic senza caratteri di escape dell'annuncio. Nello snippet, la macro deve essere seguita direttamente da una versione con caratteri di escape dell'URL di clic di terze parti. Ad esempio, se l'URL di clic di terze parti è
<a href="%%CLICK_URL_UNESC%%http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a> Al momento della pubblicazione dell'annuncio, si espande nel seguente modo: <a href="http://google-click-url?...&ad_url=http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a> L'URL registrerà prima il clic con Google, quindi reindirizzerà all'URL di clic di terze parti. |
CLICK_URL_ESC |
L'URL di clic con caratteri di escape dell'annuncio. Da utilizzare al posto di
Ad esempio, in uno snippet HTML potrebbe essere utilizzato il seguente codice: <a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC%%"></a> Al momento della pubblicazione dell'annuncio, si espande nel seguente modo: <a href="http://my.adserver.com/click?google_click_url=http://google-click- url%3F...%26ad_url%3D"></a> Il clic verrà registrato in Puoi aggiungere un URL con doppia evocazione dopo
|
CLICK_URL_ESC_ESC |
L'URL con doppio carattere di escape dell'annuncio. Da utilizzare al posto di
Ad esempio, in uno snippet HTML potrebbe essere utilizzato il seguente codice: <a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC_ESC%%"></a> Al momento della pubblicazione dell'annuncio, si espande nel seguente modo: <a href="http://my.otheradserver.com/click?google_click_url=http%3A%2F%2Fmy.adserver.com%2Fclick%3Fgoogle_click_url%3Dhttp%3A%2F%2Fgoogle-click-%20url%253F...%2526ad_url%253D"></a> |
SCHEME |
Espanso a http: se la richiesta di offerta non richiede SSL o a
https: se la richiesta di offerta richiede SSL. |
SITE |
Il dominio URL con caratteri di escape dell'URL di contenuti o l'ID anonimo per l'inventario anonimo. |
SITE_URL |
Deprecato. Sostituito dalla macro SITE che fornisce funzionalità identiche. |
TZ_OFFSET |
La differenza di fuso orario. |
VERIFICATION |
I diversi valori per la produzione e per la scansione della creatività
nella pipeline di verifica. Il formato è:
Ad esempio, se una creatività dovesse includere
|
WINNING_PRICE |
Costo impressione codificato (CPI) in
micro della valuta dell'account. Ad esempio, un CPM vincente di 5 $corrisponde a un CPM di 5.000.000 di micro, o un CPI di 5000 micro. In questo caso,il valore decodificato di Per analizzare questa macro, dovrai implementare un'applicazione che decritta le conferme dei prezzi. Per ulteriori informazioni, consulta la pagina Decriptazione delle conferme dei prezzi. |
WINNING_PRICE_ESC |
WINNING_PRICE con escape per URL. |
Google richiede di utilizzare la macro CLICK_URL_UNESC
o
CLICK_URL_ESC
all'interno della creatività dell'annuncio di terze parti pubblicato. Google utilizza le macro CLICK_URL
per il monitoraggio dei clic.
L'escape degli URL nelle macro utilizza lo schema seguente:
- Il carattere di spazio viene sostituito da un segno più (
+
). - I caratteri alfanumerici (0-9, a-z, A-Z) e i caratteri dell'insieme !()*,-./:_~ rimangono invariati.
- Tutti gli altri caratteri vengono sostituiti da
%XX
, doveXX
è il numero esadecimale che rappresenta il carattere.
Limitazioni e requisiti per i publisher
La richiesta di offerta include informazioni sui tipi di limitazioni e requisiti che i publisher applicano alle creatività nell'asta.
BidRequest.bcat
- Puoi confrontare le categorie bloccate specificate da questo campo con quelle rilevate per le creatività inviate utilizzando il campo
detectedCategories
dell'API Real-time Bidding.
- Puoi confrontare le categorie bloccate specificate da questo campo con quelle rilevate per le creatività inviate utilizzando il campo
BidRequest.imp.ext.allowed_vendor_type
BidRequest.imp.secure
- In pratica, questo valore sarà sempre impostato su
true
perché Google richiede il supporto di SSL per tutte le creatività.
- In pratica, questo valore sarà sempre impostato su
BidRequest.imp.{audio/banner/native/video}
BidRequest.imp.{audio/banner/native/video}.api
BidRequest.imp.{audio/banner/native/video}.battr
BidRequest.imp.{audio/banner/video}.mimes
Non fare mai offerte con un annuncio contenente una funzionalità con limitazioni. Per le funzionalità consentite, come il tipo di fornitore, restituisci un annuncio solo se il tipo di fornitore è presente nell'elenco allowed_vendor_type
in BidRequest
. Solo i formati degli annunci specificati nella richiesta di offerta compilando campi comeBidRequest.imp.banner
devono essere inclusi nell'offerta. Per ulteriori dettagli, consulta i commenti relativi a questi campi nella definizione del buffer del protocollo BidRequest
.
Se in BidResponse
viene restituito un annuncio, devi impostare con precisione i campi BidResponse.seatbid.bid.attr
, BidResponse.seatbid.bid.cat
e BidResponse.seatbid.bid.adomain
o BidResponse.seatbid.bid.adm_native.link.url
in BidResponse
. Se un annuncio ha più valori applicabili per questi campi, devi includere tutti i valori. Per ulteriori dettagli, consulta i commenti relativi a questi campi nella definizione del buffer del protocollo BidResponse
.
Le risposte per cui non sono impostati questi campi vengono ignorate.
Open Measurement
Open Measurement ti consente di specificare fornitori di terze parti che forniscono servizi di misurazione e verifica indipendenti per gli annunci pubblicati negli ambienti delle app mobile.
I formati degli annunci supportati includono annunci video, banner e interstitial. Per ulteriori informazioni su come utilizzare Open Measurement in una risposta all'offerta contenente questi formati, consulta l'articolo del Centro assistenza sull'SDK Open Measurement.
Risposte all'offerta di esempio
Le sezioni seguenti mostrano risposte di offerta di esempio per diversi tipi di annunci.
Banner app
Mostrami l'esempio
Risposta serializzataid: "8L85Di7e9374c3jriwo2W0" seatbid { bid { id: "0L7hx7783rjD1hT81FH" impid: "1" price: 0.4000000059604645 adm: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adomain: "google.com" crid: "test_creative_id_192654" w: 300 h: 50 burl: "https://test.com/imp?id=123456" [com.google.doubleclick.bid] { impression_tracking_url: "https://test.com/impression?id=123456" billing_id: 70614819650 skadn { version: "3.0" network: "Y8HK1z22" campaign: "72382716" itunesitem: "953637916" sourceapp: "com.google.testapp" fidelities { fidelity: VIEW_THROUGH_ADS nonce: "bf105d9a-6df9-4d49-a10d-44e21a539415" timestamp: "1730359683568" signature: "589Vb2BJlF955D6kUj197D84U8UWWtngYQ73o1SVMEcAk6ju348j0454AOxpR74j95BF13RLC119Qo73nyq2qgp4IJENP6yE" } fidelities { fidelity: STOREKIT_RENDERED_ADS nonce: "bf105d9a-6df9-4d49-a10d-44e21a539415" timestamp: "1730359683568" signature: "3Av39t8684YefY03NT715Z2dTtXQ39pQH7C9aq6Wuh4WzbS044734J7FAlw7690Nm7743G7Z4P6hX8K7H607886b7FBHTCYY" } skadn_opts { always_open_appstore: true } } app_promotion_type: INSTALLS } } seat: "4095:5416:758587" } cur: "USD" [com.google.doubleclick.bid_response] { processing_time_ms: 16 }
Mostrami l'esempio
{ "id": "8L85Di7e9374c3jriwo2W0", "seatbid": [ { "bid": [ { "id": "0L7hx7783rjD1hT81FH", "impid": "1", "price": 0.4000000059604645, "adm": "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>", "adomain": [ "google.com" ], "crid": "test_creative_id_192654", "w": 300, "h": 50, "burl": "https://test.com/imp?id=123456", "ext": { "impression_tracking_url": [ "https://test.com/impression?id=123456" ], "billing_id": "70614819650", "skadn": { "version": "3.0", "network": "Y8HK1z22", "campaign": "72382716", "itunesitem": "953637916", "sourceapp": "com.google.testapp", "fidelities": [ { "fidelity": 0, "nonce": "bf105d9a-6df9-4d49-a10d-44e21a539415", "timestamp": "1730359683568", "signature": "589Vb2BJlF955D6kUj197D84U8UWWtngYQ73o1SVMEcAk6ju348j0454AOxpR74j95BF13RLC119Qo73nyq2qgp4IJENP6yE" }, { "fidelity": 1, "nonce": "bf105d9a-6df9-4d49-a10d-44e21a539415", "timestamp": "1730359683568", "signature": "3Av39t8684YefY03NT715Z2dTtXQ39pQH7C9aq6Wuh4WzbS044734J7FAlw7690Nm7743G7Z4P6hX8K7H607886b7FBHTCYY" } ], "skadn_opts": { "always_open_appstore": 1 } }, "app_promotion_type": 1 } } ], "seat": "4095:5416:758587" } ], "cur": "USD", "ext": { "processing_time_ms": 16 } }
Mostrami l'esempio
Risposta serializzataad { html_snippet: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adslot { id: 1 max_cpm_micros: 44095 billing_id: 99718422589 } click_through_url: "google.com" attribute: 47 attribute: 50 category: 7 buyer_creative_id: "test_creative_id_997551" advertiser_name: "Google" width: 300 height: 250 impression_tracking_url: "https://test.com/imp?id=123456" skadn { version: "4.0" network: "DofiF4X5" itunesitem: "448730563" sourceapp: "195751234" fidelities { fidelity_type: VIEW_THROUGH_ADS nonce: "a869c155-3566-475c-8cb9-d0a75159e0c5" timestamp: 1728803273481 signature: "0KXE97ri9xnW9M10NDg64r014MsN7SO5R11N29oe8h8Cuao3K477i9dFH61bKny28iA6337A6EK6T3fgR9p9EJK12qvaY96E" } fidelities { fidelity_type: STOREKIT_RENDERED_ADS nonce: "a869c155-3566-475c-8cb9-d0a75159e0c5" timestamp: 1728803273481 signature: "EF1Vj82st371O79029Q9067AL00972U3NqNG9u295r8B4681c12Se2jk34XSR8404681c9WGa9a69779CQ87o9T81Y85198C" } source_identifier: 1 } advertised_app_id: "APP_ID_OMITTED" app_promotion_type: INSTALLS } processing_time_ms: 13
Interstitial per app
Mostrami l'esempio
Risposta serializzataid: "6700Z3L2o0zSw9g8IqmiQ5" seatbid { bid { id: "0UBHDN63xQ8hj1F8184" impid: "1" price: 0.016728 adid: "test_creative_id_179418" adm: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adomain: "google.com" crid: "test_creative_id_179418" cat: "IAB13-7" w: 300 h: 600 burl: "https://test.com/imp?id=123456" [com.google.doubleclick.bid] { billing_id: 14443955188 dsa { behalf: "TEST_ADVERTISER" paid: "TEST_PAYING_ENTITY" adrender: false } } } seat: "2054:4176:757161" group: false } bidid: "TI590379-wi3Z9CU8-6j8V-Uj0l1I102h2q" cur: "USD"
Mostrami l'esempio
{ "id": "6700Z3L2o0zSw9g8IqmiQ5", "seatbid": [ { "bid": [ { "id": "0UBHDN63xQ8hj1F8184", "impid": "1", "price": 0.016728, "adid": "test_creative_id_179418", "adm": "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>", "adomain": [ "google.com" ], "crid": "test_creative_id_179418", "cat": [ "IAB13-7" ], "w": 300, "h": 600, "burl": "https://test.com/imp?id=123456", "ext": { "billing_id": "14443955188", "dsa": { "behalf": "TEST_ADVERTISER", "paid": "TEST_PAYING_ENTITY", "adrender": 0 } } } ], "seat": "2054:4176:757161", "group": 0 } ], "bidid": "TI590379-wi3Z9CU8-6j8V-Uj0l1I102h2q", "cur": "USD" }
Mostrami l'esempio
Risposta serializzataad { html_snippet: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adslot { id: 1 max_cpm_micros: 80117 min_cpm_micros: 0 billing_id: 12608068331 deal_id: 0 } click_through_url: "google.com" attribute: 47 buyer_creative_id: "test_creative_id_266407" advertiser_name: "Google" width: 756 height: 384 impression_tracking_url: "https://test.com/imp?id=123456" event_notification_token: "token" dsa_transparency { buyer_render: true } } processing_time_ms: 11
Video interstitial per app
Mostrami l'esempio
Risposta serializzataid: "79N7F1708654i75q3k69j1" seatbid { bid { id: "1gR655162hOsH9q3X6R" impid: "1" price: 2.3833 adid: "test_creative_id_648299" adm: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" adomain: "google.com" crid: "test_creative_id_648299" attr: VIDEO_IN_BANNER_AUTO_PLAY w: 1920 h: 1080 [com.google.doubleclick.bid] { event_notification_token { payload: "token" } billing_id: 11004606416 skadn { version: "4.0" network: "O5O88B57" itunesitem: "509167749" nonce: "" sourceapp: "com.google.testapp" timestamp: "OMITTED" signature: "OMITTED" fidelities { fidelity: VIEW_THROUGH_ADS nonce: "d3be52b1-8ef6-4277-8922-54450b07fd5b" timestamp: "1730409097616" signature: "8d52E359K158Dj1u89EpLP3544Qz7B10CV0a92YZJ6JXX8d9uXi72N43ZxjRl96Ph7v8R5u1k5y9Aoy3jZcN3C5dxRU390qc" } fidelities { fidelity: STOREKIT_RENDERED_ADS nonce: "d3be52b1-8ef6-4277-8922-54450b07fd5b" timestamp: "1730409097616" signature: "43C2b79X4nPY913Qs3jJLLhCjUNZg39cK022pCE2wH731Ie7q4584b5UGG137Jh12I2R6a0e35LJbvQJbn5o564roQ7G1Mtd" } sourceidentifier: "1" } app_promotion_type: INSTALLS } } seat: "1061:9160:833989" } bidid: "m7V3rjn0-aF599ZZ6-37hA-b9o7DU8CLrtp" cur: "USD"
Mostrami l'esempio
{ "id": "79N7F1708654i75q3k69j1", "seatbid": [ { "bid": [ { "id": "1gR655162hOsH9q3X6R", "impid": "1", "price": 2.3833, "adid": "test_creative_id_648299", "adm": "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%", "adomain": [ "google.com" ], "crid": "test_creative_id_648299", "attr": [ 6 ], "w": 1920, "h": 1080, "ext": { "event_notification_token": { "payload": "token" }, "billing_id": "11004606416", "skadn": { "version": "4.0", "network": "O5O88B57", "itunesitem": "509167749", "nonce": "", "sourceapp": "com.google.testapp", "timestamp": "OMITTED", "signature": "OMITTED", "fidelities": [ { "fidelity": 0, "nonce": "d3be52b1-8ef6-4277-8922-54450b07fd5b", "timestamp": "1730409097616", "signature": "8d52E359K158Dj1u89EpLP3544Qz7B10CV0a92YZJ6JXX8d9uXi72N43ZxjRl96Ph7v8R5u1k5y9Aoy3jZcN3C5dxRU390qc" }, { "fidelity": 1, "nonce": "d3be52b1-8ef6-4277-8922-54450b07fd5b", "timestamp": "1730409097616", "signature": "43C2b79X4nPY913Qs3jJLLhCjUNZg39cK022pCE2wH731Ie7q4584b5UGG137Jh12I2R6a0e35LJbvQJbn5o564roQ7G1Mtd" } ], "sourceidentifier": "1" }, "app_promotion_type": 1 } } ], "seat": "1061:9160:833989" } ], "bidid": "m7V3rjn0-aF599ZZ6-37hA-b9o7DU8CLrtp", "cur": "USD" }
Mostrami l'esempio
Risposta serializzataad { adslot { id: 1 max_cpm_micros: 2454000 billing_id: 95400492935 deal_id: 1 } click_through_url: "google.com" attribute: 22 attribute: 105 buyer_creative_id: "test_creative_id_716344" width: 0 height: 0 video_vast_xml: "OMITTED_VAST_XML" event_notification_token: "token" skadn { version: "4.0" network: "113tdmXM" itunesitem: "460184775" sourceapp: "751592940" fidelities { fidelity_type: STOREKIT_RENDERED_ADS nonce: "1c3ed154-33f5-4cb7-960a-3e571cb9c3b9" timestamp: 1728932156118 signature: "7m3PDLV778PZ741T2I3561kkCW3UjIp5p63989cP311iiZ2445v20HP5ymfD8ThYO7437h22075h4h9O21S8A08U1kw3qis2" } fidelities { fidelity_type: VIEW_THROUGH_ADS nonce: "1c3ed154-33f5-4cb7-960a-3e571cb9c3b9" timestamp: 1728932156118 signature: "28X90AX01Z762a3W92186a40Eb4J8ekACsYFo55J8vD445f5pcA80MH45753Iy887596gK8ax0s55ndC23eg0V7P862yS240" } source_identifier: 1 } advertised_app_id: "APP_ID_OMITTED" app_promotion_type: INSTALLS } processing_time_ms: 51
App nativa
Mostrami l'esempio
Risposta serializzataid: "96Z599PGNvp7Mr99138Fm0" seatbid { bid { id: "NQb32Ge7Rtt84wFn2p8" impid: "1" price: 0.153584 adid: "test_creative_id_272596" adomain: "google.com" crid: "test_creative_id_272596" cat: "IAB13-7" burl: "https://test.com/imp?id=123456" adm_native { ver: "1.2" assets { id: 1 required: true title { text: "Luxury Mars Cruises" } } assets { id: 2 required: true data { value: "Visit the planet in a luxury spaceship." } } assets { id: 3 required: false data { value: "Book today" } } assets { id: 4 required: true data { value: "Galactic Luxury Cruises" } } assets { id: 5 required: true img { url: "https://native.test.com/image?id=123456" w: 1200 h: 627 } } link { url: "https://www.google.com" } eventtrackers { event: IMPRESSION method: IMG url: "https://test.com/event?id=123456" } privacy: "https://adssettings.google.com/whythisad?source=display&reasons=OMITTED" } [com.google.doubleclick.bid] { ad_choices_destination_url: "https://test.com/preferences" billing_id: 29846056590 dsa { behalf: "TEST_ADVERTISER" paid: "TEST_PAYING_ENTITY" adrender: false } } } bid { id: "4vwb23qm6iqU6w6G978" impid: "1" price: 0.153584 adid: "test_creative_id_272596" adomain: "google.com" crid: "test_creative_id_272596" cat: "IAB21" burl: "https://test.com/imp?id=123456" adm_native { ver: "1.2" assets { id: 1 required: true title { text: "Luxury Mars Cruises" } } assets { id: 2 required: true data { value: "Visit the planet in a luxury spaceship." } } assets { id: 3 required: false data { value: "Book today" } } assets { id: 4 required: true data { value: "Galactic Luxury Cruises" } } assets { id: 5 required: true img { url: "https://native.test.com/image?id=123456" w: 1200 h: 627 } } link { url: "https://www.google.com" } eventtrackers { event: IMPRESSION method: IMG url: "https://test.com/event?id=123456" } privacy: "https://adssettings.google.com/whythisad?source=display&reasons=OMITTED" } [com.google.doubleclick.bid] { ad_choices_destination_url: "https://test.com/preferences" dsa { behalf: "TEST_ADVERTISER" paid: "TEST_PAYING_ENTITY" adrender: false } } } seat: "4528:1161:591635" group: false } bidid: "hgu4ev7j-ZK929XM0-79f7-0A23O0VN2CFC" cur: "USD"
Mostrami l'esempio
{ "id": "96Z599PGNvp7Mr99138Fm0", "seatbid": [ { "bid": [ { "id": "NQb32Ge7Rtt84wFn2p8", "impid": "1", "price": 0.153584, "adid": "test_creative_id_272596", "adomain": [ "google.com" ], "crid": "test_creative_id_272596", "cat": [ "IAB13-7" ], "burl": "https://test.com/imp?id=123456", "ext": { "ad_choices_destination_url": "https://test.com/preferences", "billing_id": "29846056590", "dsa": { "behalf": "TEST_ADVERTISER", "paid": "TEST_PAYING_ENTITY", "adrender": 0 } }, "adm": "{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"text\":\"Luxury Mars Cruises\"}},{\"id\":2,\"required\":1,\"data\":{\"value\":\"Visit the planet in a luxury spaceship.\"}},{\"id\":3,\"required\":0,\"data\":{\"value\":\"Book today\"}},{\"id\":4,\"required\":1,\"data\":{\"value\":\"Galactic Luxury Cruises\"}},{\"id\":5,\"required\":1,\"img\":{\"url\":\"https://native.test.com/image?id=123456\",\"w\":1200,\"h\":627}}],\"link\":{\"url\":\"https://www.google.com\"},\"eventtrackers\":[{\"event\":1,\"method\":1,\"url\":\"https://test.com/event?id=123456\"}],\"privacy\":\"https://adssettings.google.com/whythisad?source=display&reasons=OMITTED\"}" }, { "id": "4vwb23qm6iqU6w6G978", "impid": "1", "price": 0.153584, "adid": "test_creative_id_272596", "adomain": [ "google.com" ], "crid": "test_creative_id_272596", "cat": [ "IAB21" ], "burl": "https://test.com/imp?id=123456", "ext": { "ad_choices_destination_url": "https://test.com/preferences", "dsa": { "behalf": "TEST_ADVERTISER", "paid": "TEST_PAYING_ENTITY", "adrender": 0 } }, "adm": "{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"text\":\"Luxury Mars Cruises\"}},{\"id\":2,\"required\":1,\"data\":{\"value\":\"Visit the planet in a luxury spaceship.\"}},{\"id\":3,\"required\":0,\"data\":{\"value\":\"Book today\"}},{\"id\":4,\"required\":1,\"data\":{\"value\":\"Galactic Luxury Cruises\"}},{\"id\":5,\"required\":1,\"img\":{\"url\":\"https://native.test.com/image?id=123456\",\"w\":1200,\"h\":627}}],\"link\":{\"url\":\"https://www.google.com\"},\"eventtrackers\":[{\"event\":1,\"method\":1,\"url\":\"https://test.com/event?id=123456\"}],\"privacy\":\"https://adssettings.google.com/whythisad?source=display&reasons=OMITTED\"}" } ], "seat": "4528:1161:591635", "group": 0 } ], "bidid": "hgu4ev7j-ZK929XM0-79f7-0A23O0VN2CFC", "cur": "USD" }
Mostrami l'esempio
Risposta serializzataad { adslot { id: 1 max_cpm_micros: 158000 billing_id: 41106584355 deal_id: 1 } click_through_url: "google.com" attribute: 70 buyer_creative_id: "test_creative_id_251451" advertiser_name: "Google" native_ad { headline: "Luxury Mars Cruises" body: "Visit the planet in a luxury spaceship." call_to_action: "Book today" advertiser: "Galactic Luxury Cruises" image { url: "https://native.test.com/image?id=123456" width: 1200 height: 222 } app_icon { url: "https://native.test.com/icon?id=123456" width: 512 height: 512 } star_rating: 4.300000190734863 click_link_url: "https://www.google.com" } impression_tracking_url: "https://test.com/imp?id=123456" impression_tracking_url: "https://test.com/imp?id=123456" event_notification_token: "token" skadn { version: "4.0" network: "l6x39K4z" itunesitem: "731305960" sourceapp: "627009739" fidelities { fidelity_type: STOREKIT_RENDERED_ADS nonce: "9216faff-74a9-4b35-badc-66878c35f67c" timestamp: 1728975919221 signature: "b0USXkmg02Q3v6p301kYOHG36CCOWWdEo52RHRttB9t8PTNi79qL17E4D6h7UeUSuq479oTK13G2Ev34MJlU86C5vY1SMVw2" } fidelities { fidelity_type: VIEW_THROUGH_ADS nonce: "9216faff-74a9-4b35-badc-66878c35f67c" timestamp: 1728975919221 signature: "4Cf4NH6239z9f3wa8j6420Z7H0UISYxyxN5720444dkq6457I5FY0Jg8bk1xge2P8YgiDp74l2738136v2g1A8D50331IRm0" } source_identifier: 1 } click_tracking_urls: "https://google.com/rtb/click?imp_id=55d2112c-4947-4da5-bc37-b79ebf4577dd" advertised_app_id: "APP_ID_OMITTED" app_promotion_type: INSTALLS } processing_time_ms: 63
Video sul Web
Mostrami l'esempio
Risposta serializzataid: "b2F6m05a9d83V7I35iw415" seatbid { bid { id: "Ob7259K5679O36pMt00" impid: "1" price: 1.52 adid: "test_creative_id_262797" adm: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" adomain: "google.com" crid: "test_creative_id_262797" exp: 3600 [com.google.doubleclick.bid] { event_notification_token { payload: "token" } billing_id: 47460168025 } } bid { id: "0890di791A75n9R13jM" impid: "1" price: 1.2 adid: "test_creative_id_262797" adm: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" adomain: "google.com" crid: "test_creative_id_262797" exp: 3600 [com.google.doubleclick.bid] { event_notification_token { payload: "token" } } } seat: "2121:7826:598388" } cur: "USD"
Mostrami l'esempio
{ "id": "b2F6m05a9d83V7I35iw415", "seatbid": [ { "bid": [ { "id": "Ob7259K5679O36pMt00", "impid": "1", "price": 1.52, "adid": "test_creative_id_262797", "adm": "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%", "adomain": [ "google.com" ], "crid": "test_creative_id_262797", "exp": 3600, "ext": { "event_notification_token": { "payload": "token" }, "billing_id": "47460168025" } }, { "id": "0890di791A75n9R13jM", "impid": "1", "price": 1.2, "adid": "test_creative_id_262797", "adm": "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%", "adomain": [ "google.com" ], "crid": "test_creative_id_262797", "exp": 3600, "ext": { "event_notification_token": { "payload": "token" } } } ], "seat": "2121:7826:598388" } ], "cur": "USD" }
Mostrami l'esempio
Risposta serializzatafad { adslot { id: 1 max_cpm_micros: 68340760 min_cpm_micros: 0 billing_id: 75752641104 deal_id: 0 } click_through_url: "google.com" vendor_type: 145 attribute: 47 attribute: 8 video_url: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" buyer_creative_id: "test_creative_id_877383" advertiser_name: "Google" event_notification_token: "token" dsa_transparency { buyer_render: true } } processing_time_ms: 17
Banner web mobile per l'offerente della piattaforma di scambio pubblicitario
Mostrami l'esempio
Risposta serializzataid: "l30Zu42070Man1Z5u751yG" seatbid { bid { id: "4X6uu65F9J3m467C571" impid: "1" price: 0.17 adm: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adomain: "google.com" crid: "test_creative_id_941528" w: 320 h: 50 [com.google.doubleclick.bid] { impression_tracking_url: "https://test.com/impression?id=123456" impression_tracking_url: "https://test.com/impression?id=123456" event_notification_token { payload: "token" } billing_id: 50962964480 } } seat: "7632:7504:809671" } bidid: "II638Xkf-6432F06d-VGu8-27B4407D136w" [com.google.doubleclick.bid_response] { processing_time_ms: 70 }
Mostrami l'esempio
{ "id": "l30Zu42070Man1Z5u751yG", "seatbid": [ { "bid": [ { "id": "4X6uu65F9J3m467C571", "impid": "1", "price": 0.17, "adm": "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>", "adomain": [ "google.com" ], "crid": "test_creative_id_941528", "w": 320, "h": 50, "ext": { "impression_tracking_url": [ "https://test.com/impression?id=123456", "https://test.com/impression?id=123456" ], "event_notification_token": { "payload": "token" }, "billing_id": "50962964480" } } ], "seat": "7632:7504:809671" } ], "bidid": "II638Xkf-6432F06d-VGu8-27B4407D136w", "ext": { "processing_time_ms": 70 } }