Dopo che l'applicazione ha elaborato la richiesta di offerta da parte di Google, deve generare e inviare una risposta. Questa guida spiega come programmare la tua applicazione per creare la risposta.
Crea messaggio di risposta all'offerta
Authorized Buyers invia BidRequest
come corpo del messaggio
un POST
HTTP. La risposta inviata dall'applicazione deve avere
intestazione Content-Type
impostata su application/octet-stream
e un corpo del messaggio composto da un buffer di protocollo serializzato. Il protocollo
buffer è un messaggio BidResponse
come definito in
realtime-bidding.proto
. L'applicazione deve restituire una analisi
BidResponse
in risposta ogni BidRequest
. Timeout.
Le risposte che non possono essere analizzate sono considerate errori e limitazioni di Google
gli offerenti con un tasso di errore elevato.
Se non vuoi fare offerte su un'impressione, puoi impostare il
processing_time_ms
campo solo e lascia tutti gli altri campi
vuoto. Puoi ottenere realtime-bidding.proto
dal
pagina dati di riferimento.
ID creatività
Il BidResponse
specifica una creatività tramite
Campo buyer_creative_id
(limite di 64 byte). Anche creatività simili
devono avere valori univoci per buyer_creative_id
se differiscono in
caratteristiche degne di nota, inclusi, a titolo esemplificativo: dimensione, URL dichiarato,
attributi delle creatività e tipi di fornitori. In altre parole, devi assegnare valori diversi
ID creatività a due annunci che:
- Hanno un aspetto o un comportamento diverso.
- Esegui il rendering su immagini diverse.
- Esegui il rendering con mezzi diversi (ad esempio, un annuncio è costituito da un'immagine, mentre l'altro contiene Flash).
Durante la progettazione dell'applicazione, devi decidere un modo sistematico generando identificatori significativi per i tipi di creatività che intendi per l'invio.
Attributi annuncio
Devi dichiarare gli attributi della creatività che descrivono in modo completo
caratteristiche e il relativo targeting in BidResponse.Ad.attribute
. La
che devono essere dichiarati (vedi anche l'elenco completo dei
attributi in
buyer-declarable-creative-attributes.txt):
7 Tagging: IsTagged
L'annuncio contiene un pixel o un beacon web allo scopo di creare un elenco di ID cookie per il successivo remarketing.8 Remarketing: IsRemarketing
L'annuncio ha come target i consumatori in base al loro ID cookie o ID dispositivo, dove l'elenco di ID cookie o ID dispositivo rappresenta un insieme di consumatori che in precedenza hanno interagito con un sito di proprietà o rappresentato dall'acquirente.9 UserInterestTargeting: IsUserInterestTargeted
L'annuncio ha come target i consumatori in base al loro ID cookie o ID dispositivo, dove l'elenco di ID cookie o ID dispositivo rappresenta un insieme di consumatori che l'acquirente definito come gruppo di interesse comune.30 InstreamVastVideoType: Vpaid
Per eseguire il rendering dell'annuncio è necessario il supporto di VPAID.32 MraidType: MRAID
Per il rendering dell'annuncio è necessaria l'API MRAID.
Inoltre, sono supportati i seguenti attributi, ma la relativa dichiarazione è non è obbligatorio, perché Authorized Buyers rileva automaticamente questi elementi e li blocca (o consentire) le tue creatività in base ai valori rilevati, anziché alla tua dichiarazione. Consulta API Creatives per ricevere spiegazioni su come ricevere feedback sulle proprietà rilevate del tuo creatività.
34 RichMediaCapabilityType: RichMediaCapabilityFlash
Per eseguire il rendering dell'annuncio è necessario il supporto Flash.50 RichMediaCapabilityType: RichMediaCapabilityNonFlash
L'annuncio non richiede Flash per il rendering.47 RichMediaCapabilityType: RichMediaCapabilitySSL
L'annuncio può essere visualizzato su una pagina SSL. Tieni presente che Authorized Buyers tratta le creatività con valori dichiarati diversi di questo attributo come distinti (verranno esaminati separatamente e hanno uno stato di approvazione distinto). Pertanto, se fai offerte sia con SSL versioni non SSL della stessa creatività, devi dichiarare questo attributo di conseguenza, in modo che questa distinzione si rifletta correttamente in AdX.
Campi di Open Bidding
Risposte all'offerta inviate dagli offerenti della piattaforma di scambio e della rete che partecipano a Open Le offerte sono simili a quelle degli utenti Authorized Buyers che partecipano al programma offerte in tempo reale. I clienti di Open Bidding possono specificare un numero limitato di campi aggiuntivi e alcuni campi esistenti potrebbero avere usi alternativi. Questi include:
OpenRTB | Authorized Buyers | Dettagli |
---|---|---|
BidResponse.imp[].pmp.deals[].id |
BidResponse.ad[].adslot[].exchange_deal_id |
L'ID deal dallo spazio dei nomi della piattaforma di scambio associato a questo l'offerta e riferito ai publisher. |
BidResponse.seatbid[].bid[].ext.exchange_deal_type |
BidResponse.ad[].adslot[].exchange_deal_type |
Il tipo di deal segnalato ai publisher, che influisce sulle relative modalità trattati nell'asta. |
BidResponse.seatbid[].bid[].ext.third_party_buyer_token |
BidResponse.ad[].adslot[].third_party_buyer_token |
Token utilizzato per identificare le informazioni sull'acquirente finale di terze parti se come Open Bidding è un intermediario. Si ottiene all'acquirente terzo e deve essere trasmessa a Google inalterata nell'offerta la risposta corretta. |
Consigli
- Abilita connessioni HTTPS permanenti (note anche come "keep-alive" o "riutilizzo della connessione") sui tuoi server. Imposta il timeout su 10 secondi alle minimo: in molti casi i valori più alti sono vantaggiosi. Google verifica durante i test iniziali della latenza dell'applicazione, perché Authorized Buyers invia le richieste con frequenza elevata e deve evitare di latenza creando una connessione TCP separata per ogni richiesta.
Includi l'URL di monitoraggio delle impressioni facoltativo per monitorare quando viene mostrata l'impressione anziché quando vince l'offerente. A causa dell'abbandono tra vincite e rendering, ciò consente un monitoraggio più accurato statistiche.
- Mantieni il codice dello strumento di offerta privo di dipendenze nei campi ritirati e questo può causare errori nelle offerte.
- Includi
BidResponse.Ad.width
eBidResponse.Ad.height
nel tuoBidResponse
. RBidResponse
a una richiesta che include più dimensioni dell'annuncio deve includi i valoriwidth
eheight
, altrimenti sono stati esclusi dall'asta. - Limita le dimensioni della risposta a meno di 8K. Le risposte molto grandi possono aumentare latenza di rete e causare timeout.
- Segui le linee guida per Offerte per l'inventario iOS che richiedono l'attribuzione SKAdNetwork.
Esempio di risposta all'offerta
I seguenti esempi rappresentano campioni leggibili di Protobuf e richieste JSON.
JSON OpenRTB
Protobuf OpenRTB
Importante: i messaggi Protobuf raffigurati negli esempi sono rappresentati qui come testo leggibile. Tuttavia, non è così i messaggi vengono inviati via cavo. Quando si utilizza il protocollo Google o OpenRTB Protobuf , verranno accettati solo messaggi BidResponse serializzati.
Puoi creare e serializzare un messaggio BidResponse
utilizzando il metodo
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 creatività
La risposta all'offerta specifica la creatività da pubblicare se l'offerta si aggiudica l'asta. La tua offerta
Deve includere uno dei formati di 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 con rendering SDK
BidResponse.Ad.sdk_rendered_ad
- AMP
BidResponse.Ad.amp_ad_url
- Video
BidResponse.Ad.video_url
oBidResponse.Ad.video_vast_xml
- Nativi
BidResponse.Ad.native_ad
Specifica un annuncio ospitato sui tuoi server utilizzando uno snippet HTML in
il campo html_snippet
di BidResponse
. La
è racchiuso in un iframe inserito nella pagina web, generando così un annuncio
il recupero e il rendering della pagina. Devi creare il codice HTML
in modo che l'annuncio (banner o interstitial) venga visualizzato correttamente all'interno di uno
e con dimensioni appropriate per l'area annuncio per cui fai offerte.
Inoltre, le dimensioni dell'annuncio dichiarate nella risposta all'offerta devono corrispondere esattamente a uno. 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 relativa alle dimensioni è necessaria quando nella richiesta è presente più di una dimensione.
- Fanno eccezione gli annunci interstitial. Per interstitial con larghezza deve essere almeno il 50% della larghezza dello schermo e l'altezza almeno fino al 40% l'altezza dello schermo.
Il campo html_snippet
supporta qualsiasi codice HTML valido che
il rendering sia eseguito correttamente, ma tieni presenti le restrizioni sulla specifica
buyer_creative_id
nella sezione Crea messaggio di risposta all'offerta. Uno.
a questo scopo è inserire informazioni aggiuntive negli argomenti degli URL che sono
recuperate dai server durante il rendering dell'annuncio. Ciò ti consente di passare
di dati arbitrari sull'impressione ai tuoi server.
La maggior parte delle norme per gli snippet HTML restituiti nelle risposte all'offerta è la stessa della per gli annunci di terze parti. Consulta la pagina Authorized Buyers Linee guida del programma, Requisiti per terze parti pubblicazione di annunci e dichiarare gli URL di clickthrough negli annunci per saperne di più.
Specifica le macro
Lo snippet HTML che definisce una creatività può includere una o più
costrutti chiamati macro. Al momento della pubblicazione degli annunci, i valori vengono sostituiti
. Ad esempio, la tua applicazione di offerta client potrebbe utilizzare
Macro WINNING_PRICE
per determinare quanto ha pagato per l'annuncio,
se vince l'asta. Per analizzare questa macro, devi implementare una funzione
un'applicazione che decripta le conferme dei prezzi. Consulta la sezione Decrittografia dei prezzi
Conferma per ulteriori informazioni.
Specifica una macro come parte di uno snippet HTML nel formato
%%MACRO%%
, dove MACRO
è uno dei formati supportati
elencate nella tabella sottostante.
Google richiede l'utilizzo dell'CLICK_URL_UNESC
o
Macro CLICK_URL_ESC
nella creatività dell'annuncio pubblicato da terze parti
annuncio. Google utilizza le macro CLICK_URL
per il monitoraggio dei clic.
Per utilizzare una macro, includila nell'annuncio in modo che l'URL venga recuperato quando
qualcuno vi fa clic sopra. Il valore restituito del recupero è un reindirizzamento a un altro
URL che aggiungi a CLICK_URL
.
Macro | Descrizione |
---|---|
ADVERTISING_IDENTIFIER |
Consente agli acquirenti di ricevere un IDFA per iOS o un ID pubblicità di Android al momento del rendering delle impressioni. Consulta Decriptare gli identificatori degli inserzionisti. per maggiori dettagli. |
CACHEBUSTER |
Una rappresentazione stringa di un numero intero a quattro byte casuale, senza segno. |
CLICK_URL_UNESC |
L'URL di clic senza caratteri di escape dell'annuncio. Nello snippet, una versione l'URL di clic di terze parti deve seguire direttamente la macro. Ad esempio, se l'URL dei 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 degli annunci, questo viene esteso a: <a href="http://google-click-url?...&ad_url=http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a> L'URL registra prima il clic con Google, quindi reindirizza 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 degli annunci, questo viene esteso a: <a href="http://my.adserver.com/click?google_click_url=http://google-click- url%3F...%26ad_url%3D"></a> In questo modo il clic verrà registrato con Puoi aggiungere un URL con doppio escape dopo
|
CLICK_URL_ESC_ESC |
L'URL con doppio 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 degli annunci, questo viene esteso a: <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 oppure a
https: se la richiesta di offerta richiede SSL. |
SITE |
Il dominio con caratteri di escape dell'URL di contenuti o l'ID anonimo per l'inventario anonimo. |
SITE_URL |
Deprecato. Sostituita dalla macro SITE che fornisce le stesse funzionalità. |
TZ_OFFSET |
La differenza con il fuso orario. |
VERIFICATION |
I diversi valori relativi alla produzione e al momento in cui la creatività viene analizzata nella verifica
una pipeline o un blocco note personalizzato. Il formato è: %%?VERIFICATION:true-val:false-val%% dove qualsiasi
i valori eccetto le macro possono essere utilizzati per true-val e false-val ,
incluse le stringhe vuote. Per Open Bidding, consigliamo alle piattaforme di scambio pubblicitario di utilizzare questa macro;
dopo averlo fatto, le Demand-Side Platform non dovranno apportare modifiche.Ad esempio, se una creatività dovesse includere %%?VERIFICATION:-1:5000%%
la sostituzione del testo sarà 5000 per la pubblicazione e -1 nel
pipeline di verifica. Ciò consente di distinguere tra questi due insiemi di ping. |
WINNING_PRICE |
Il costo delle impressioni codificato (ovvero CPI anziché CPM) relativo a
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. Lo strumento decodificato
il valore di WINNING_PRICE in questo caso è 5000.
Il prezzo vincente è specificato in CPI.
|
WINNING_PRICE_ESC |
WINNING_PRICE con URL con caratteri di escape. |
L'utilizzo di caratteri di escape nelle macro utilizza il seguente schema:
- Il carattere 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 valore esadecimale numero che rappresenta il carattere.
Limitazioni per i publisher
I publisher utilizzano BidRequest
per ignorare le limitazioni relative a quali annunci
consentito. Devi applicare le limitazioni in questi campi:
allowed_vendor_type
excluded_attribute
excluded_sensitive_category
Un campo specifica le funzionalità consentite dell'annuncio, mentre l'altro specifica
elementi non consentiti. Non restituire mai un annuncio con una funzione non consentita. Per consentiti
come il tipo di fornitore, restituiscono un annuncio solo se il tipo di fornitore è nel
Elenco allowed_vendor_type
in BidRequest
. Consulta le
commenti per questi campi nel buffer di protocollo BidRequest
definizione per ulteriori dettagli.
Se uno snippet HTML viene restituito in BidResponse
,
necessaria per impostare con precisione attribute
, category
,
e click_through_url
nel campo BidResponse
.
Se un annuncio ha più valori applicabili per questi campi, è necessario
includi ogni valore. Vedi i commenti per questi campi nella
Definizione del buffer di protocollo BidResponse
per ulteriori dettagli.
Le risposte per cui non sono impostati questi campi vengono ignorate.
I valori possibili di BidRequest.excluded_attribute
sono
(consulta publisher-excludable-creative-attributes.txt):
7 Tagging: IsTagged
Gli annunci non sono consentiti se contengono un pixel o un beacon web allo scopo di creare un elenco di ID cookie per il successivo remarketing.8 CookieTargeting: IsCookieTargeted
Gli annunci non sono consentiti se si rivolgono ai consumatori in base al loro ID cookie, dove l'elenco degli ID cookie rappresenta un insieme di consumatori che in precedenza interagivano con un sito di proprietà o rappresentato dall'acquirente.9 UserInterestTargeting: IsUserInterestTargeted
Gli annunci non sono consentiti se si rivolgono ai consumatori in base al loro ID cookie, dove l'elenco degli ID cookie rappresenta un insieme di consumatori definiti dall'acquirente come gruppo di interesse comune.21 CreativeType: Html
Gli annunci non possono utilizzarehtml_snippet
osnippet_template
inBidResponse.Ad
.22 CreativeType: VastVideo
Gli annunci non possono utilizzare il campovideo_url
inBidResponse.Ad
.30 InstreamVastVideoType: Vpaid
Il rendering degli annunci non è consentito richiedere il supporto VPAID.32 MraidType: MRAID
Gli annunci non possono richiedere l'API MRAID per il rendering.34 RichMediaCapabilityType: RichMediaCapabilityFlash
La visualizzazione degli annunci non è consentita.39 RichMediaCapabilityType: RichMediaCapabilityHTML5
Gli annunci non sono autorizzati a richiedere funzionalità HTML5 per il rendering.48 RichMediaCapabilityType: RichMediaCapabilityNonSSL
Gli annunci non possono effettuare richieste non SSL.
Pertanto, se il campo excluded_attribute
contiene il valore
7, non devi restituire un annuncio che utilizza un pixel o un beacon web per
creando un elenco. Se per un annuncio viene eseguita questa operazione, è necessario impostare il valore 7 in
il campo attributo di BidResponse
.
In modo simile, se il campo excluded_attribute
contiene il valore 48,
devi restituire solo annunci che possono essere visualizzati su una pagina SSL (e, di conseguenza,
dichiara l'attributo 47 RichMediaCapabilityType: RichMediaCapabilitySSL).
Anche il campo excluded_sensitive_category
nella
BidRequest
utilizza i codici del
ad-sensitive-categories.txt
disponibile nella pagina Dati di riferimento. Ecco le estensioni
descrizioni di alcuni di questi codici:
3 Politics
Include politiche o questioni sociali controverse; non include annunci per agenzie di stampa generalmente non considerate di parte.4 Dating
Sono inclusi i servizi di incontri e le community di incontri online.5 Religion
Include annunci di argomento religioso e annunci che promuovono o condannano orientamenti religiosi; non include l'astrologia o spiritualità non confessionali.7 Video Games (Casual & Online)
Include videogiochi, giochi online e giochi scaricabili; non include le console per videogiochi.8 Ringtones & Downloadables
Componenti aggiuntivi per dispositivi mobili, tra cui suonerie, nonché altri componenti aggiuntivi scaricabili, come salvaschermo e sfondi per computer, nonché immagini e layout di profili per social network.10 Get Rich Quick
Schemi che promettono rapidi utili.18 Weight Loss
Include regimi dimagranti, diete ipocaloriche, programmi e prodotti correlati; non include annunci relativi alla sana alimentazione e al benessere generale.19 Cosmetic Procedures & Body Modification
Sono inclusi lifting, suzioni, interventi con il laser, depilazione e interventi per la ricrescita dei capelli, tatuaggi e interventi di chirurgia plastica.23 Drugs & Supplements:
Include prodotti farmaceutici, vitamine, integratori e rivenditori correlati; non include risorse che forniscono informazioni sui farmaci.24 Sexual & Reproductive Health
Include annunci sulle funzioni sessuali e sulla fertilità; non include le normali risorse per la gravidanza.35 Social Casino Games
Include giochi e scommesse simulati (inclusi, senza alcuna limitazione, poker, slot machine, bingo, lotterie, scommesse sportive, scommesse sulle corse, nonché altri giochi di carte e giochi da casinò) in cui non è possibile vincere beni di valore (come denaro o premi).36 Significant Skin Exposure
Immagini degli annunci in cui qualsiasi parte del corpo umano, dallo sterno fino a metà coscia, non è vestita; Il corpo è vestito con biancheria intima, costumi da bagno, lingerie o altri indumenti trasparenti oppure con oggetti non di abbigliamento, come un asciugamano o lenzuolo.37 Sensationalism
Annunci il cui scopo è indurre gli utenti a fare clic su di essi attirando la loro curiosità, spesso con messaggi teaser che utilizzano immagini o linguaggio iperbolico. Sono inclusi gli annunci incentrati su argomenti sensazionalistici (come l'arresto, la morte o il divorzio di celebrità) o con contenuti potenzialmente scioccanti.
Open Measurement
Con Open Measurement puoi specificare i fornitori di terze parti che forniscono misurazioni e strumenti di misurazione indipendenti servizi di verifica per gli annunci pubblicati in ambienti di app mobile.I formati degli annunci attualmente supportati includono annunci video, banner e interstitial. Per ulteriori informazioni su come utilizzare Open Measurement in una risposta all'offerta contenente questi formati, consulta il Centro assistenza SDK Open Measurement .
Esempi di risposte alle offerte
Le seguenti sezioni mostrano esempi di risposte alle offerte per diversi tipi di annunci.