Elabora la richiesta
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Un'interazione di offerte in tempo reale inizia quando Google invia una richiesta di offerta alla tua applicazione. Questa guida spiega come codificare l'applicazione per
elaborare la richiesta di offerta.
Richiesta di analisi
Google invia una richiesta di offerta serializzata in formato OpenRTB JSON o Protobuf, allegata come payload di una richiesta HTTP POST. Il formato ricevuto
dipende dalla configurazione del tuo
endpoint. Vedi
Esempio di richiesta di offerta per un esempio.
Devi analizzare questa richiesta per ricevere il BidRequest serializzato. Se utilizzi il formato Protobuf, devi
scaricare openrtb.proto e openrtb-adx.proto dalla
pagina dati di riferimento e utilizzarli per
generare una libreria che possa essere utilizzata per analizzare il messaggio BidRequest. Ad esempio, il seguente codice C++ analizza una richiesta dato un payload POST in una stringa:
Una volta ottenuto il BidRequest, puoi utilizzarlo come
oggetto, estraendo e interpretando i campi di cui hai bisogno. Ad esempio, in
C++ l'iterazione tra le offerte in una `BidRequest` OpenRTB potrebbe essere simile
alla seguente:
Ricevi una richiesta di offerta quando l'inventario pubblicitario di un publisher è preso di mira da
una o più delle tue
configurazioni di pretargeting. BidRequest.imp.ext.billing_id
verrà compilato con gli ID fatturazione di tutti gli acquirenti idonei e con le configurazioni di pretargeting pertinenti. Inoltre, per l'inventario
dei deal, puoi trovare gli ID fatturazione associati agli acquirenti pertinenti
utilizzando BidRequest.imp.pmp.deal.ext.billing_id. Quando fai un'offerta, puoi specificare solo gli ID fatturazione degli acquirenti inclusi nella richiesta di offerta.
Se nella richiesta di offerta sono inclusi più ID fatturazione, devi specificare
l'ID fatturazione dell'acquirente a cui intendi attribuire la tua offerta con il
campo BidResponse.seatbid.bid.ext.billing_id.
imp {
ext {
// The billing IDs of all of your matching pretargeting configs and eligible child seats are
// stored in a flat list here.
billing_id: 123
billing_id: 456
billing_id: 789
}
pmp {
// All eligible deals are stored in a single flat list.
deal {
id: 1000
ext {
// The specific billing IDs eligible to bid on this deal are indicated here.
billing_id: 789
}
...
}
deal {
id: 2000
ext {
billing_id: 123
billing_id: 456
}
...
}
}
...
}
...
Determinare le categorie bloccate
Quando fai un'offerta, la creatività inclusa non deve avere categorie rilevate che il publisher
ha bloccato. In caso contrario, l'offerta viene filtrata dall'asta.
Puoi trovare le categorie bloccate per un'impressione esaminando il campo
BidRequest.bcat, che viene compilato con le categorie nella
tassonomia
configurata per il tuo account.
L'esempio seguente mostra le categorie bloccate in base a una tassonomia delle categorie di annunci configurata:
Tassonomia dei contenuti IAB 1.0
// Bid request{// Indicates the blocked categories using IAB Content 1.0 Taxonomy."bcat":["IAB9-9",// Cigars"IAB8-18"// Wine]"imp":{...}}
Tassonomia delle categorie di annunci di Google
// Bid request{// Indicates the blocked categories using Google Ad Category Taxonomy."bcat":["10138",// Cigar and tobacco collecting"10080",// Tobacco"11649",// Wine"10674",// Wine collecting"13008"// Wine clubs]"imp":{...}}
File del dizionario
La richiesta di offerta utilizza identificatori definiti nei file dizionario, disponibili nella pagina Dati di riferimento.
Macro URL dell'offerente
Facoltativamente, alcune informazioni di BidRequest possono essere
inserite negli URL degli endpoint di offerta utilizzando le macro. Se configuri un URL
dell'endpoint con una o più macro, queste verranno espanse se le informazioni
sono presenti nella richiesta di offerta. Questo può essere utile, ad esempio, se vuoi
eseguire il bilanciamento del carico in base alle informazioni in BidRequest.
Contatta il tuo account manager per richiedere l'assistenza per le nuove macro.
Macro
Descrizione
%%GOOGLE_USER_ID%%
Sostituito con l'ID utente Google trovato in
BidRequest.user.id. Ad esempio, l'URL offerente
http://google.bidder.com/path?gid=%%GOOGLE_USER_ID%% verrà
sostituito con un valore simile
a http://google.bidder.com/path?gid=dGhpyBhbiBleGFtGxl al momento
della richiesta.
Se l'ID utente Google non è noto, viene sostituita la stringa vuota, con un
risultato simile a
http://google.bidder.com/path?gid=
%%HAS_MOBILE%%
Sostituito con 1 per indicare che la richiesta di offerta proviene da un
dispositivo mobile o 0 in caso contrario. Questo valore si basa sul valore di
BidRequest.device.devicetype, dove i dispositivi mobili sono indicati
da HIGHEND_PHONE (4) o Tablet
(5).
%%HAS_VIDEO%%
Sostituito con 1 per indicare che la richiesta di offerta contiene
inventario video o 0 in caso contrario. Ciò dipende dal fatto che
BidRequest.imp.video sia compilato nella richiesta di offerta.
%%HOSTED_MATCH_DATA%%
Sostituito con un valore basato su BidRequest.user.buyeruid.
%%MOBILE_IS_APP%%
Sostituito da 1 per indicare che la richiesta di offerta riguarda
l'inventario di app mobile o 0 in caso contrario. Ciò dipende dal fatto che
BidRequest.app sia compilato.
Trovare l'ID app mobile dall'URL della transazione
Le transazioni delle applicazioni mobile genereranno URL simili a questo:
mbappgewtimrzgyytanjyg4888888.com
Utilizza un decodificatore base32 per decodificare la parte della stringa in grassetto
(gewtimrzgyytanjyg4888888).
Puoi utilizzare un decoder
online, ma dovrai mettere le lettere in maiuscolo e sostituire i 8 finali con valori =.
Quindi, decodificando questo valore:
GEWTIMRZGYYTANJYG4======
risultati in:
1-429610587
La stringa 429610587 è l'ID app per l'app per iOS
iFunny.
Ecco un altro esempio. L'URL segnalato è:
mbappgewtgmjug4ytmmrtgm888888.com
Decodifica di questo valore:
GEWTGMJUG4YTMMRTGM======
risultati in:
1-314716233
Il risultato 314716233 è l'ID app per l'app per iOS
TextNow.
Trovare il nome dell'app mobile dall'URL della transazione
Ecco un esempio di come ottenere il nome dell'app. L'URL segnalato è il seguente:
Il risultato corrisponde all'app per Android
slither.io.
Campi Open Bidding
Le richieste di offerta inviate agli 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 Open Bidding riceveranno un numero ridotto di
campi aggiuntivi e alcuni campi esistenti potrebbero avere utilizzi alternativi. Questi
includono:
OpenRTB
Dettagli
BidRequest.imp.ext.dfp_ad_unit_code
Contiene il codice di rete Ad Manager del publisher seguito dalla gerarchia
dell'unità pubblicitaria, separati da barre.
Ad esempio, questo elemento verrà visualizzato con una formattazione simile a:
/1234/cruises/mars.
BidRequest.user.data.segment
Coppie chiave-valore ripetute inviate dal publisher all'offerente della piattaforma di scambio.
Puoi determinare che i valori siano coppie chiave-valore inviate dal
publisher quando BidRequest.user.data.name è impostato su
“Publisher Passed”.
Dichiarare i fornitori consentiti
I fornitori di tecnologia che forniscono servizi come ricerca, remarketing e
pubblicazione di annunci possono svolgere un ruolo nell'interazione tra acquirenti e venditori. Sono consentiti solo i fornitori che Google ha esaminato per la partecipazione alle interazioni di Authorized Buyers.
Per comprendere il BidRequest e creare il tuo
BidResponse, devi conoscere le due diverse
possibilità per dichiarare i fornitori di tecnologia:
Altri fornitori possono partecipare solo se dichiarati in
BidRequest:
In BidRequest, il
campo BidRequest.imp.ext.allowed_vendor_type specifica
i fornitori consentiti dal venditore. I fornitori che verranno inviati
nell'allowed_vendor_type sono elencati nel
file dizionario vendors.txt.
Esempio di richiesta di offerta
Gli esempi riportati di seguito rappresentano campioni leggibili delle richieste Protobuf e
JSON.
Per convertire la richiesta di offerta in un formato binario, come quello che otterresti dal payload POST in una richiesta reale, puoi procedere nel seguente modo (in C++). Tieni presente, tuttavia, che questa operazione non è applicabile a OpenRTB JSON.
Il feedback in tempo reale è disponibile per Authorized Buyers, nonché per le piattaforme di scambio e le reti che utilizzano Open Bidding.
Il feedback in tempo reale viene compilato in BidRequest.ext.bid_feedback in base
al risultato di una o più offerte che hai fatto in precedenza e può essere utilizzato per trovare
dettagli come se l'offerta ha vinto l'asta o l'offerta minima necessaria per
vincere l'asta. Contatta il tuo account manager per attivare il feedback in tempo reale.
Oltre ai campi predefiniti inviati nel feedback sulla risposta all'offerta, puoi
inviare anche dati personalizzati nella risposta all'offerta utilizzando il
campo BidResponse.seatbid.bid.ext.event_notification_token. Il
event_notification_token sono dati arbitrari noti solo all'offerente che potrebbero essere utili per il debug, ad esempio un nuovo ID targeting o
un ID offerta che rappresenta una nuova tattica o metadati associati alla creatività
noti solo all'offerente. Per maggiori dettagli, consulta il
file Protocol Buffer delle estensioni OpenRTB.
Quando Authorized Buyers invia una richiesta di offerta a un offerente, quest'ultimo risponde
con un BidResponse. Se l'offerente ha attivato il feedback in tempo reale,
in una successiva richiesta di offerta, Authorized Buyers invia feedback sulla
risposta in un messaggio BidFeedback:
messageBidFeedback{//TheuniqueidfromBidRequest.id.optionalstringrequest_id=1;//Thestatuscodeforthead.Seecreative-status-codes.txtinthe//technicaldocumentationforalistofids.optionalint32creative_status_code=2;//Deprecated.ThisfieldisnotpopulatedandwillberemovedafterMarch,//2025.Ifthebidwontheauction,thisisthepricepaidinyouraccount//currency.Ifthebidparticipatedintheauctionbutwasout-bid,this//istheCPMthatshouldhavebeenexceededinordertowin.Thisisnot//setifthebidwasfilteredpriortotheauction,ifthepublisheror//winningbidderhasoptedoutofpricefeedbackorifyouraccounthas//optedoutofsharingwinningpriceswithotherbidders.Forfirst-price//auctions,minimum_bid_to_winispopulatedinsteadofthisfield.optionaldoubleprice=3[deprecated=true];//Theminimumbidvaluenecessarytohavewontheauction,inyouraccount//currency.Ifyourbidwontheauction,thisisthesecondhighestbid//thatwasnotfiltered(includingthefloorprice).Ifyourbiddidn't win//theauction,thisisthewinningcandidate's bid. This field will only be//populatedifyourbidparticipatedinafirst-priceauction,andwillnot//bepopulatedifyourbidwasfilteredpriortotheauction.optionaldoubleminimum_bid_to_win=6;//Deprecated.ThisfieldwillberemovedinFebruary2026.//Theminimumbidvaluenecessarytohavewontheserver-sidecomponentof//theoverallauctiongiventhattherewasalsoaninterestgroupbidding//componenttotheoverallauctionwhichranusingtheProtectedAudience//API.ThevalueisexpressedinCPMofthebuyeraccountcurrency.The//minimumbidtowinfortheoverallauction,includingbidsfromthe//server-sideandtheon-deviceinterestgroupcomponents,ispopulatedin//theminimum_bid_to_winfieldofthesameBidFeedbackobject.optionaldoublesscminbidtowin=14[deprecated=true];//Billableeventratemultiplierthatwasappliedtothisbidduring//ranking.Theadjustmentreflectsthelikelihoodthatyourbidwould//generateabillableevent(namely,theadrenderssuccessfully)ifitwon//theauction,relativetotheprobabilitythatotherbidsgeneratea//billableeventiftheywontheauction.Thisadjustmentcanbelargeror//smallerthan1.Thisaffectsthefinalrankingintheauctiononly;in//particular,thismultiplierdoesnotaffectthepaymentorwhetherthe//bidclearsanyfloorprice.optionalfloatbillable_event_rate_bid_adjustment=13[default=1];//WhenapublisherusesanRTBauctionandwaterfall-basedSDKmediationon//thesamequery,thewinnerofthereal-timeauctionmustalsocompetein//amediationwaterfall(whichisorderedbyprice)towintheimpression.//Ifthebidparticipatedintheauctionandtherewasnowaterfall,the//valueofthisfieldis0.Ifthebidparticipatedintheauctionand//therewasawaterfall,thevalueofthisfieldisapricerepresentinga//samplebidfromtheeligiblemediationnetworksthatwerehigherthanthe//auctionwinner,weightedbyexpectedfillrate.Thisfieldcanbeused//inconjunctionwithminimum_bid_to_wintotrainbiddingmodels.TheCPM//isinyouraccountcurrency.optionaldoublesampled_mediation_cpm_ahead_of_auction_winner=8;messageEventNotificationToken{//Thecontentsofthetoken.optionalstringpayload=1;}//Thetokenincludedinthecorrespondingbid.optionalEventNotificationTokenevent_notification_token=4;//ThecreativeIDincludedinthecorrespondingbid.optionalstringbuyer_creative_id=5;//Possibletypesofbidresponsefeedbackobjects.enumFeedbackType{FEEDBACK_TYPE_UNSPECIFIED=0;//Feedbackforabidthatwassubmittedonabidresponse.BID_FEEDBACK=1;//Feedbackforaninterestgroupbuyersubmittedonabidresponseto//particpateinaninterestgroupbiddingcomponentoftheauctionrun//usingtheProtectedAudienceAPI.INTEREST_GROUP_BUYER_FEEDBACK=2;}//Deprecated.ThisfieldwillberemovedinFebruary2026.//ThetypeoftheBidFeedbackmessage.Googlewillsendseparate//BidFeedbackobjectsfor://a)Eachbidsubmittedonabidresponse//b)Eachbuyersubmittedonabidresponsetoparticpateinaninterest//groupbiddingcomponentoftheauctionrunusingtheProtectedAudience//API.optionalFeedbackTypefeedbacktype=15[deprecated=true];//Deprecated.ThisfieldwillberemovedinFebruary2026.//Originofaninterestgroupbuyerthatwasincludedinthebidresponse.//Thisfieldispopulatedonlyforfeedbackwhereabidderoptedinan//interestgroupbuyertoparticipateintheinterestgroupbidding//componentoftheoverallauctionrunusingtheProtectedAudienceAPI.//Tolearnmoreaboutorigins,seehttps://www.rfc-editor.org/rfc/rfc6454.//TolearnmoreaboutinterestgroupbiddingandtheProtectedAudience//API,see//https://developers.google.com/authorized-buyers/rtb/fledge-origin-trial.optionalstringbuyerorigin=16[deprecated=true];//Deprecated.ThisfieldwillberemovedinFebruary2026.//Thestatuscodeforthesubmittedinterestgroupbuyer.Thisfieldis//onlypopulatedinthefeedbackforaninterestgroupbuyerthatabidder//requestedtoenterintotheinterestgroupauctionthroughthebid//response.Individualcreativestatuscodesofbidssubmittedbythebuyer//intheon-deviceinterestgroupauctionarenotavailable.See//https://storage.googleapis.com/adx-rtb-dictionaries/interest-group-buyer-status-codes.txt//foralistofinterestgroupbuyerstatuscodes.optionalint32igbuyerstatus=17[deprecated=true];}
Il primo campo da controllare in questo messaggio è
bid_feedback.creative_status_code; puoi trovare il significato del codice
in
creative-status-codes.txt. Tieni presente che se vinci l'offerta, puoi disattivare
il feedback sul prezzo. Per saperne di più, consulta la sezione Come
disattivare l'opzione.
Il feedback in tempo reale include l'ID richiesta di offerta e uno dei
seguenti elementi:
Risultato dell'asta
Feedback in tempo reale
L'acquirente non ha inviato un'offerta.
Niente.
L'acquirente ha inviato un'offerta che è stata filtrata prima di raggiungere
l'asta.
Creare un modello di offerta per le aste al primo prezzo
Dopo aver fatto un'offerta in un'asta al primo prezzo, riceverai un feedback in tempo reale
che include i campi minimum_bid_to_win e
sampled_mediation_cpm_ahead_of_auction_winner se l'offerta
non è stata filtrata dall'asta. Questi indicatori possono essere utilizzati per informare la logica di offerta su quanto più alta o più bassa avrebbe potuto essere la tua offerta per vincere l'impressione.
minimum_bid_to_win: l'offerta minima che avrebbe potuto
essere fatta per vincere l'asta di offerte in tempo reale. Se hai vinto l'asta, questa sarà
l'offerta più bassa che avresti potuto fare per vincere. Se hai perso l'asta, questa sarà l'offerta vincente.
sampled_mediation_cpm_ahead_of_auction_winner: se nella catena di mediazione sono presenti altre reti, il valore di questo campo è un prezzo che rappresenta un'offerta di esempio di una delle reti di mediazione idonee che era superiore a quella del vincitore dell'asta, ponderata in base al tasso di riempimento previsto. Questo valore verrà impostato su 0 se nessuna delle reti nella
catena di mediazione dovrebbe riempire o se il publisher non utilizza la
mediazione SDK.
Come funziona
Per descrivere i calcoli utilizzati per determinare i possibili valori
per minimum_bid_to_win e
sampled_mediation_cpm_ahead_of_auction_winner, dobbiamo prima
definire quanto segue:
Di seguito sono riportati i CPM nella catena di mediazione in ordine decrescente:
\[C_1, C_2, …, C_n\]
Di seguito sono riportati i tassi di riempimento corrispondenti per i CPM nella
catena di mediazione:
\[f_1, f_2, …, f_n\]
Di seguito è riportata una funzione utilizzata per determinare il CPM previsto e la relativa probabilità dall'elemento della catena di mediazione \(i\), in base al tasso di riempimento specificato:
\(X_i = \{C_i\) con probabilità \(f_i\); \(0\) con probabilità \(1 - f_i\}\)
La catena di mediazione vincente finale sarà:
\[\{C_1, C_2, …, C_K, W\}\]
dove \(W\) è l'offerta vincente e \(C_K > W >= C_{K+1}\)
Il prezzo di riserva, o prezzo minimo, è indicato come \(F\).
L'offerta seconda classificata è indicata come \(R\).
Calcoli per il vincitore dell'asta
Campo
Calcolo
minimum_bid_to_win
\(max\{F, R, X_{K+1}, …, X_n\}\)
sampled_mediation_cpm_ahead_ of_auction_winner
\(\{C_i\) con probabilità \(\prod_{j=1}^{i-1}(1-f_j) \cdot f_i \div \prod_{j=1}^{K}(1-f_j)\}\)
Per \(1 <= i <= K\).
Calcoli per l'utente che ha perso l'asta
Campo
Calcolo
minimum_bid_to_win
\(max\{F, W\}\)
sampled_mediation_cpm_ahead_ of_auction_winner
\(max\{X_1, …, X_K\}\)
Esempio con una semplice catena di mediazione
Supponiamo che un publisher utilizzi sia le offerte in tempo reale sia una catena di mediazione SDK come segue:
Catena di mediazione SDK
CPM previsto
Tasso di riempimento
Rete 1
\(C_1 = $3.00\)
\(f_1 = 5\%\)
Rete 2
\(C_2 = $2.00\)
\(f_2 = 45\%\)
Rete 3
\(C_3 = $0.50\)
\(f_3 = 80\%\)
Rete 4
\(C_4 = $0.10\)
\(f_4 = 85\%\)
Supponiamo che il risultato dell'asta RTB sia il seguente:
Asta RTB
CPM
Vincitore dell'asta (W)
1,00 $
Secondo classificato dell'asta (R)
$ 0,05
Prezzo di riserva / prezzo iniziale (F)
0 $
Offerta che ha vinto l'asta
Di seguito è riportato un esempio di come vengono calcolati i valori e le probabilità per
minimum_bid_to_win e
sampled_mediation_cpm_ahead_of_auction_winner per un'offerta
vincente.
Di seguito è riportato un esempio di come vengono calcolati i valori e le probabilità per
minimum_bid_to_win e
sampled_mediation_cpm_ahead_of_auction_winner per le
offerte che non hanno vinto.
minimum_bid_to_win
Probabilità
\(max(F, W) = $1.00\)
\(100\%\)
sampled_mediation_cpm_ ahead_of_auction_winner
Probabilità
\(C_1 = $3.00\)
\(f_1 = 5\%\)
\(C_2 = $2.00\)
\((1-f_1) \cdot f_2 =~ 42.8\%\)
\(0\)
\((1-f_1) \cdot (1-f_2) =~ 52.2\%\)
Suddivisione delle offerte
La suddivisione delle offerte descrive l'elaborazione di un singolo BidRequest complesso in più richieste di offerta che vengono inviate alla tua applicazione. Quando una richiesta di offerta viene appiattita, puoi capire quali richieste di offerta
facevano parte dell'originale perché avranno un valore identico nel
campo BidRequest.ext.google_query_id.
La suddivisione delle offerte è attivata per impostazione predefinita, ma puoi contattare il tuo account manager se preferisci disattivarla.
Formati degli annunci
Alcune opportunità pubblicitarie possono accettare più formati. Con l'appiattimento delle offerte, ogni formato viene inviato in una richiesta di offerta distinta in cui gli attributi come gli ID fatturazione idonei sono pertinenti al formato specificato nella richiesta.
Le richieste di offerta contenenti i seguenti formati verranno suddivise in richieste di offerta distinte:
Banner
Video
Audio
Nativo
Esempio di appiattimento del formato dell'annuncio
Di seguito è riportato un esempio che mostra una richiesta di offerta JSON OpenRTB semplificata senza
appiattimento del formato dell'annuncio rispetto a un insieme equivalente di richieste appiattite:
Un'opportunità pubblicitaria per un determinato offerente può essere applicabile a vari tipi di deal, oltre all'asta aperta. Con la suddivisione delle offerte per i deal, verrà inviata una richiesta di offerta per l'asta aperta e una per ogni tipo di deal a prezzo fisso. In pratica, i vincoli degli annunci possono variare tra le aste e i tipi di accordo a prezzo fisso. Ad esempio, per una determinata opportunità di annuncio video disponibile sia per l'asta aperta sia per un accordo a prezzo fisso, un offerente riceverà richieste di offerta distinte per ciascuna in cui possono variare vincoli come la durata massima dell'annuncio e l'ammissibilità degli annunci ignorabili. Di conseguenza, l'appiattimento applicato all'opportunità
pubblicitaria ti consente di distinguere più facilmente i vincoli pubblicitari per l'asta
aperta e l'accordo a prezzo fisso.
Possibilità di ignorare e durata del video
La specifica OpenRTB non dispone di campi separati per specificare la durata massima
dei video degli annunci ignorabili e non ignorabili. L'implementazione di Google utilizza l'appiattimento delle offerte per distinguere questi valori utilizzando i campi BidRequest.video.maxduration e BidRequest.video.skip esistenti.
Di seguito è riportato un esempio di come viene compresso l'inventario video quando la durata massima di un annuncio non ignorabile è 15 e la durata massima di un annuncio ignorabile è 60.
Esempio
max_ad_duration
skip (true OR false)
Richiesta originale senza appiattimento
15
true
Richiesta suddivisa n. 1: non ignorabile
15
false
Richiesta suddivisa n. 2: ignorabile
60
true
La suddivisione delle richieste di offerta per la durata dei video ignorabili avverrà solo quando
sono soddisfatte le seguenti condizioni:
La richiesta consente il video.
Sono consentiti sia i video ignorabili che quelli non ignorabili e le due durate massime
rispettive differiscono nel valore.
Questa richiesta è idonea per l'asta privata o l'asta aperta.
Puoi disattivare questo tipo di suddivisione contattando il tuo Technical Account Manager. Se disattivata e l'editore consente annunci video ignorabili e non ignorabili con durate massime diverse in base all'ignorabilità, skip verrà impostato su true e maxduration verrà impostato sulla durata più breve tra i limiti degli annunci ignorabili e non ignorabili.
Pod video
Le richieste di offerta per un pod video con più opportunità pubblicitarie vengono suddivise,
in modo che ogni richiesta di offerta si riferisca a una singola opportunità pubblicitaria del pod.
In questo modo puoi fare offerte per più opportunità pubblicitarie per un determinato pod.
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.
Per determinare se un publisher supporta Open Measurement nella richiesta di offerta, controlla se l'opportunità pubblicitaria esclude l'attributo OmsdkType:
OMSDK 1.0 presente in Attributi creativi escludibili dal publisher. Questo valore si trova nell'attributo battr
per Banner
o Video, a seconda
del formato.
Per saperne di più su come interpretare le richieste di offerta contenenti indicatori di Open Measurement, consulta l'articolo del Centro assistenza relativo all'SDK Open Measurement.
Richieste di offerta di esempio
Le sezioni seguenti mostrano richieste di offerta di esempio per diversi tipi di annunci.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2026-01-13 UTC."],[],["Bid requests are HTTP POSTs using OpenRTB Protobuf, replacing the deprecated Google RTB protocol. Parsing involves `ParseFromString()` to access fields in the `BidRequest` object. Billing IDs, found in `BidRequest.imp.ext.billing_id` and `BidRequest.imp.pmp.deal.ext.billing_id`, must be specified in `BidResponse.seatbid.bid.ext.billing_id`. Key information comes from dictionary files. Bid URL macros dynamically insert `BidRequest` data. Complex bid requests can be broken into simpler, flattened requests per format or deal, such as skippable/non-skippable video ads, or video pods. Bidders get real-time feedback. The provided sample requests are used to help the process.\n"]]