Crea la risposta

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 e BidResponse.Ad.height nel tuo BidResponse. R BidResponse a una richiesta che include più dimensioni dell'annuncio deve includi i valori width e height, 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.

Google

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 o
    • BidResponse.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 è http://my.adserver.com/some/path/handleclick?click=clk, il seguente codice può essere utilizzato con la versione con escape singolo del terzo l'URL di clic di parte successivo alla chiamata della macro:

<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 CLICK_URL_UNESC se devi prima trasmettere il valore tramite a un altro server che restituirà un reindirizzamento.

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 my.adserver.com sarà poi responsabile del reindirizzamento all'URL trasmesso nella google_click_url. Questo presuppone che my.adserver.com elimina la sequenza di escape google_click_url .

Puoi aggiungere un URL con doppio escape dopo %%CLICK_URL_ESC%%. Dopo aver annullato i caratteri di escape my.adserver.com, lascia una versione dell'URL con escape singolo aggiunto al google_click_url. Quando Il campo google_click_url viene recuperato, verrà di nuovo eliminato la sequenza di escape e poi reindirizzamento.

CLICK_URL_ESC_ESC

L'URL con doppio escape dell'annuncio. Da utilizzare al posto di CLICK_URL_UNESC se devi prima trasmettere il valore tramite a un altro server che restituirà un reindirizzamento.

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, dove XX è 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 utilizzare html_snippet o snippet_template in BidResponse.Ad.
  • 22 CreativeType: VastVideo
    Gli annunci non possono utilizzare il campo video_url in BidResponse.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.

Banner app

Google

JSON OpenRTB

Protobuf OpenRTB

Interstitial per app

Google

JSON OpenRTB

Protobuf OpenRTB

Video interstitial per app

Google

Protobuf OpenRTB

Nativo dell'app

Google

JSON OpenRTB

Protobuf OpenRTB

Video sul Web

Google

Banner web mobile per lo strumento di offerta della piattaforma di scambio pubblicitario

Protobuf OpenRTB