Un'interazione con le offerte in tempo reale inizia quando Google invia una richiesta di offerta a
la tua applicazione. Questa guida spiega come programmare la tua applicazione per
elaborare la richiesta di offerta.
Richiesta di analisi
Google invia una richiesta di offerta come buffer di protocollo serializzato collegato come
payload binario di una richiesta POST HTTP. Il parametro Content-Type
è impostato su
application/octet-stream
. Per un esempio, consulta Esempio di richiesta di offerta .
Devi analizzare questa richiesta in un'istanza di BidRequest
. BidRequest
è definito in realtime-bidding.proto
,
che è possibile ottenere dalla pagina Dati di riferimento . Puoi analizzare il messaggio
utilizzando il metodo ParseFromString()
nella classe generata per
BidRequest
. Ad esempio, il seguente codice C++ analizza una richiesta
dato un payload POST in una stringa:
string post_payload = /* the payload from the POST request */ ;
BidRequest bid_request ;
if ( bid_request . ParseFromString ( post_payload )) {
// Process the request .
}
Una volta che hai il BidRequest
, puoi lavorarci come
estraendo e interpretando i campi necessari. Ad esempio, nel
C++:
for ( int i = 0 ; i < bid_request . adslot_size (); ++ i ) {
const BidRequest_AdSlot & adslot = bid_request . adslot ( i );
// Decide what to bid on adslot .
}
Alcune informazioni inviate in un BidRequest
, ad esempio l'Utente Google
L'ID, la lingua o la posizione geografica non sono sempre disponibili. Se disponi di
gruppi di annunci di pretargeting che utilizzano informazioni sconosciute
l'impressione, questi gruppi di annunci non corrisponderanno. Nei casi in cui l'elemento mancante
le informazioni non sono importanti per le condizioni di pretargeting, le richieste di offerta
inviato con le informazioni omesse.
Sono disponibili informazioni sul gruppo di annunci di pretargeting nella
MatchingAdData
gruppo per ogni AdSlot
. Contiene i parametri
il primo ID gruppo di annunci corrispondente del gruppo di annunci di pretargeting che ha invitato Google a
invia la richiesta di offerta, ovvero il gruppo di annunci e la campagna a cui vengono addebitati
se la tua risposta vince l'asta per l'impressione. Sotto certi
devi specificare esplicitamente il billing_id
per
attribuzione in BidResponse.AdSlot
, ad esempio, quando
BidRequest.AdSlot
ha più di un matching_ad_data
.
Per ulteriori informazioni sui vincoli ai contenuti dell'offerta, consulta
il realtime-bidding.proto
.
File di dizionario
La richiesta di offerta utilizza identificatori definiti nei file di dizionario, che sono
disponibile nei dati di riferimento
.
Macro URL offerta
Facoltativamente, alcuni campi di BidRequest
possono essere inseriti in
l'URL utilizzato nella richiesta POST HTTP. Questo è utile, ad esempio, se utilizzi
un frontend leggero che viene bilanciato su più backend utilizzando un valore
dalla richiesta. Contatta il tuo Technical Account Manager per richiedere assistenza per
nuove macro.
Macro Descrizione
%%GOOGLE_USER_ID%%
Sostituito con google_user_id
dal BidRequest
. Ad esempio, l'URL dello strumento di offerta
http://google.bidder.com/path?gid=%%GOOGLE_USER_ID%%
verrà sostituito da qualcosa come
http://google.bidder.com/path?gid=dGhpyBhbiBleGFtGxl
al momento della richiesta.
Se l'ID utente Google non è noto, viene sostituita la stringa vuota con
risultato simile a
http://google.bidder.com/path?gid=
%%HAS_MOBILE%%
Sostituito con 1
o 0
durante la chiamata
has_mobile()
di BidRequest
.
%%HAS_VIDEO%%
Sostituito con 1
(vero) o 0
(falso)
quando chiami il numero has_video()
di BidRequest
.
%%HOSTED_MATCH_DATA%%
Sostituito con il valore del campo hosted_match_data
dal BidRequest
.
%%MOBILE_IS_APP%%
Sostituito con 1
(vero) o 0
(falso)
dal campo mobile.is_app
di BidRequest
.
Trovare l'ID app mobile nell'URL transazione
Le transazioni delle app mobile segnaleranno URL che hanno il seguente aspetto:
mbappgewtimrzgyytanjyg4888888 .com
Usa un decoder base-32 per decodificare la parte della stringa in grassetto
(gewtimrzgyytanjyg4888888
)
Puoi usare un modello online
decoder , ma devi sostituire le lettere maiuscole
8
con valori =
.
Decodificando questo valore:
GEWTIMRZGYYTANJYG4======
porta a:
1 - 429610587
La stringa
429610587
è l'ID dell'app per iOS
iFunny .
Ecco un altro esempio. L'URL segnalato è:
mbappgewtgmjug4ytmmrtgm888888 .com
Decodifica questo valore:
GEWTGMJUG4YTMMRTGM======
porta a:
1 - 314716233
Il risultato
314716233
è l'ID app per l'app per iOS
TextNow .
Trovare il nome dell'app mobile nell'URL transazione
Di seguito è riportato un esempio di come recuperare il nome dell'app. L'URL segnalato è il seguente:
mbappMFUXELTDN5WS42DZOBQWQLTJN4XHG3DJORUGK4Q888 .com
Decodifica questo valore:
MFUXELTDN5WS42DZOBQWQLTJN4XHG3DJORUGK4Q===
porta a:
air.com.hypah.io.slither
Il risultato corrisponde all'app per Android
slither.io .
Campi di Open Bidding
Richieste di offerta inviate agli offerenti della piattaforma di scambio e della rete che partecipano al programma Open
Le offerte sono simili a quelle degli utenti Authorized Buyers che partecipano al programma
offerte in tempo reale. I clienti di Open Bidding riceveranno un numero limitato di
campi aggiuntivi e alcuni campi esistenti potrebbero avere usi alternativi. Questi
include:
OpenRTB
Authorized Buyers
Dettagli
BidRequest.imp[].ext.dfp_ad_unit_code
BidRequest.adslot[].dfp_ad_unit_code
Contiene il codice di rete Ad Manager del publisher seguito dall'annuncio
della gerarchia di unità di misura, separate da barre.
Ecco un esempio di formattazione:
/1234/cruises/mars
.
BidRequest.user.data[].segment[]
BidRequest.adslot[].exchange_bidding.key_value[]
Coppie chiave-valore ripetute inviate dal publisher all'offerente della piattaforma di scambio pubblicitario.
Puoi determinare che i valori sono coppie chiave-valore inviate dal
publisher quando BidRequest.user.data[].name
è impostato su
“Publisher Passed”
.
Nota: al momento questo campo viene inviato solo alla versione beta chiusa
partecipanti.
Dichiara i fornitori consentiti
Fornitori di tecnologie che offrono servizi quali ricerca, remarketing e
La pubblicazione di annunci può influire sull'interazione tra acquirenti e venditori. Solo
fornitori che Google ha verificato per partecipare ad Authorized Buyers
sono consentite interazioni.
Per comprendere il BidRequest
e creare i tuoi
BidResponse
, è necessario conoscere le due diverse
possibilità di dichiarare i fornitori di tecnologia:
Alcuni fornitori non devono essere dichiarati, i fornitori in questione sono elencati nel Centro assistenza Authorized Buyers .
Gli altri fornitori possono partecipare solo se sono dichiarati sia in
BidRequest
e BidResponse
:
.
In BidRequest
, allowed_vendor_type
specifica i fornitori autorizzati dal venditore. Fornitori che saranno inviati
il campo allowed_vendor_type
di BidRequest
viene
elencato in Vendors.txt
del dizionario.
Nel campo BidResponse
, il campo vendor_type
specifica i fornitori autorizzati che l'acquirente intende utilizzare.
Esempio di richiesta di offerta
I seguenti esempi rappresentano campioni leggibili di Protobuf e
richieste JSON.
Google
Mostrami l'esempio
id : "\ 2509 \ 326 c \ 203 \ 245 \ 3079 ! \ 301 \ 334 U \ 316 Wz \ 240 _ \ 252 \ 367 S \ 230 ) \ 303 "
user_agent : "Mozilla / 5.0 ( Linux ; Android 10 ; SM - J610FN ; wv ) AppleWebKit / 537.36 ( KHTML , like Gecko ) Version / 4.0 Chrome / 123.0.0.0 Mobile Safari / 537.36 ( Mobile ) "
url : "https : //www.google.com "
detected_language : "fr "
adslot {
id : 1
width : 320
width : 300
height : 50
height : 50
excluded_attribute : 22
excluded_attribute : 95
allowed_vendor_type : 3
allowed_vendor_type : 42
excluded_sensitive_category : 36
excluded_sensitive_category : 19
matching_ad_data {
billing_id : 30279159795
billing_id : 91462636804
minimum_cpm_micros : 520000
}
matching_ad_data {
billing_id : 20531517860
billing_id : 81128918204
minimum_cpm_micros : 40000
}
slot_visibility : ABOVE_THE_FOLD
excluded_product_category : 10159
ad_block_key : 1008473386
publisher_settings_list_id : 2398179148724909589
publisher_settings_list_id : 2783982084227045767
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
viewability : 99
allowed_ad_types : ALLOWED_AD_TYPE_BANNER
is_amp_page : DIALECT_HTML
amp_ad_requirement_type : AMP_AD_NOT_ALLOWED
consented_providers_settings {
consented_providers : 976
consented_providers : 1127
additional_consent_string : "OMITTED "
}
regs_gdpr : true
api : OMID_1
api : MRAID_1
flexible_adslot_settings {
max_width : 320
max_height : 50
min_width : 214
min_height : 33
}
omidpn : "Google "
omidpv : "afma - sdk - a - v240304999 .12451000.1 "
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
auction_environment : SERVER_SIDE_AUCTION
impression_expiration_seconds : 3600
supported_auction_environment : SERVER_SIDE_AUCTION
}
is_test : false
timezone_offset : 120
mobile {
app_id : "com . google . testapp "
is_app : true
app_name : "Test App "
app_rating : 4.2959895
}
postal_code : "10011 "
geo_criteria_id : 1001400
publisher_type : PUBLISHER_OWNED_AND_OPERATED
device {
device_type : HIGHEND_PHONE
platform : "android "
brand : "Samsung "
model : "SM - J610FN "
os_version {
major : 10
}
carrier_id : 0
screen_width : 412
screen_height : 798
screen_pixel_ratio_millis : 1750
screen_orientation : PORTRAIT
limit_ad_tracking : false
connection_type : WIFI
}
publisher_country : "DE "
publisher_id : "pub - 1111111111111111 "
response_deadline_ms : 1000
google_query_id : "ANy - zlKU2N - bX715350yWM17iAQg20R03ek41611E29hE35cvag5h91O1gYs9308t71bZ9k7 "
auction_type : FIRST_PRICE
geo {
lat : 50.46
lon : 4.85
country : "BEL "
region : "BE - WNA "
city : "Namur "
zip : "5000 "
utcoffset : 120
accuracy : 7471
}
user_agent_data {
platform {
brand : "Android "
version : "10 "
}
mobile : true
model : "SM - J610FN "
browsers {
brand : "Mozilla "
version : "5 "
version : "0 "
}
browsers {
brand : "AppleWebKit "
version : "537 "
version : "36 "
}
source : USER_AGENT_STRING
}
supply_chain {
complete : true
nodes {
advertising_system_identifier : "testdomain . com "
seller_identifier : "pub - 1111111111111111 "
handles_payment : true
}
version : "1.0 "
}
frequency_capping_scope : FREQUENCY_CAPPING_SCOPE_NONE
privacy_treatments {
ip : IP_REDACTED
user_agent : USER_AGENT_COARSENED
non_personalized_ads_reason : PUBLISHER_DECLARED_NPA
allow_user_data_collection : false
device_storage_restriction_reason : INSUFFICIENT_USER_CONSENT
}
inventory_partner_domain : "OMITTED "
JSON OpenRTB
Mostrami l'esempio
{
"id ": "219 DAI11M3120s2d8M4xgR ",
"imp ": [
{
"id ": "1 ",
"banner ": {
"w ": 300 ,
"h ": 250 ,
"pos ": 3 ,
"battr ": [
6 ,
7
],
"wmax ": 300 ,
"hmax ": 250 ,
"wmin ": 200 ,
"hmin ": 200 ,
"format ": [
{
"w ": 300 ,
"h ": 250
},
{
"w ": 200 ,
"h ": 200
}
]
},
"displaymanager ": "GOOGLE ",
"tagid ": "7820275329 ",
"bidfloor ": 0.08 ,
"bidfloorcur ": "USD ",
"secure ": 1 ,
"exp ": 3600 ,
"metric ": [
{
"type ": "click_through_rate ",
"value ": 0.00022253872884903103 ,
"vendor ": "EXCHANGE "
},
{
"type ": "viewability ",
"value ": 0.01 ,
"vendor ": "EXCHANGE "
}
],
"ext ": {
"billing_id ": [
54460865479
],
"publisher_settings_list_id ": [
5406346852112173352 ,
7576925985766584885
],
"allowed_vendor_type ": [
3 ,
42
],
"ampad ": 3 ,
"excluded_creatives ": [
{
"buyer_creative_id ": "EXCLUDED_BUYER_CREATIVE_ID "
},
{
"buyer_creative_id ": "EXCLUDED_BUYER_CREATIVE_ID "
}
],
"allowed_restricted_category ": [
32 ,
33
],
"creative_enforcement_settings ": {
"policy_enforcement ": 2 ,
"publisher_blocks_enforcement ": 1
},
"auction_environment ": 0 ,
"ae ": 0
}
}
],
"site ": {
"page ": "https : //www.google.com",
"publisher ": {
"id ": "pub - 1111111111111111 ",
"ext ": {
"country ": "GB "
}
},
"content ": {
"livestream ": 0 ,
"language ": "en "
},
"mobile ": 1 ,
"ext ": {
"amp ": 0 ,
"page_visibility ": 1 ,
"inventorypartnerdomain ": "OMITTED "
}
},
"device ": {
"ua ": "Mozilla / 5.0 ( iPhone ; CPU iPhone OS 17 _4_1 like Mac OS X ) AppleWebKit / 537.36 ( KHTML , like Gecko ) Chrome / 124.0.0.0 Mobile Safari / 537.36 ",
"ip ": "192.168.1.0 ",
"geo ": {
"lat ": 0.0 ,
"lon ": 0.0 ,
"country ": "GBR ",
"region ": "GB - ENG ",
"city ": "Leeds ",
"type ": 2 ,
"utcoffset ": 60 ,
"accuracy ": 7356
},
"carrier ": "70062 ",
"make ": "Apple ",
"model ": "iphone ",
"os ": "iOS ",
"osv ": "17.4.1 ",
"devicetype ": 4 ,
"lmt ": 0 ,
"w ": 393 ,
"h ": 852 ,
"pxratio ": 3 ,
"sua ": {
"browsers ": [
{
"brand ": "Mozilla ",
"version ": [
"5 ",
"0 "
]
},
{
"brand ": "AppleWebKit ",
"version ": [
"605 ",
"1 "
]
}
],
"platform ": {
"brand ": "iPhone ",
"version ": [
"17 ",
"4 "
]
},
"mobile ": 1 ,
"bitness ": "64 ",
"model ": "iPhone ",
"source ": 3
},
},
"user ": {
"ext ": {
"consented_providers_settings ": {
"consented_providers ": [
"1800 ",
"2878 "
],
"additional_consent ": "OMITTED "
},
"consent ": "OMITTED "
}
},
"at ": 1 ,
"tmax ": 300 ,
"cur ": [
"USD "
],
"bcat ": [
"IAB23 - 5 ",
"IAB23 - 7 "
],
"regs ": {
"ext ": {
"gdpr ": 1
}
},
"source ": {
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
},
"ext ": {
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
}
}
},
"ext ": {
"google_query_id ": "ANy - z1n326 - 9 P8x09i2I5f85oXp7N1r61w0p681H008U29MK56111D9VJn1nRRp4P7eB5Y9H ",
"fcap_scope ": 5 ,
"privacy_treatments ": {
"allow_user_data_collection ": 1
}
}
}
Protobuf OpenRTB
Mostrami l'esempio
id : "803 txXnQe99Y0e3070L5xO "
imp {
id : "1 "
banner {
w : 468
h : 60
pos : BELOW_THE_FOLD
expdir : LEFT
expdir : RIGHT
expdir : UP
expdir : DOWN
format {
w : 468
h : 60
}
format {
w : 300
h : 50
}
}
displaymanager : "GOOGLE "
tagid : "1614017459 "
bidfloor : 0.01
bidfloorcur : "USD "
secure : true
exp : 3600
metric {
type : "viewability "
value : 0.25
vendor : "EXCHANGE "
}
metric {
type : "session_depth "
value : 1.0
vendor : "EXCHANGE "
}
[ com . google . doubleclick . imp ] {
billing_id : 51570472186
dfp_ad_unit_code : "/2336960/google/ test "
ampad : AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
open_bidding {
is_open_bidding : true
}
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_OVERRIDDEN
}
auction_environment : SERVER_SIDE_AUCTION
ae : SERVER_SIDE_AUCTION
}
}
site {
page : "https :// www . google . com "
publisher {
id : "pub - 1111111111111111 "
[ com . google . doubleclick . publisher ] {
country : "US "
}
}
content {
livestream : false
language : "en "
}
[ com . google . doubleclick . site ] {
amp : DIALECT_HTML
page_visibility : VISIBILITY_STATE_VISIBLE
inventorypartnerdomain : "OMITTED "
}
}
device {
ua : "Mozilla /5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/ 537.36 "
geo {
lat : 0.0
lon : 0.0
country : "IND "
region : "IN - UP "
type : IP
utcoffset : 330
accuracy : 8141
}
ipv6 : "2409 : 4053 : 401 :: "
os : "X11 "
devicetype : PERSONAL_COMPUTER
lmt : false
pxratio : 2.0
sua {
browsers {
brand : "Google Chrome "
version : "123 "
version : "0 "
}
browsers {
brand : "Not : A - Brand "
version : "8 "
version : "0 "
}
platform {
brand : "Linux "
}
mobile : false
architecture : "x86 "
bitness : "64 "
source : CLIENT_HINTS_HIGH_ENTROPY
}
}
user {
id : "k5953o8KM7C3P2t45EoXQN6273h "
buyeruid : "i8VSc4u14C8hQCB3e6Tm8Od7z1S0542c "
customdata : "08135 N21ki8nbhM99rBJEGsU9kO5Mr99Hs10eeh3M8tn1o3q "
[ com . google . doubleclick . user ] {
idage : 2592000
}
}
at : FIRST_PRICE
tmax : 300
cur : "USD "
source {
schain {
complete : true
nodes {
asi : "testssp . com "
sid : "pub - 1111111111111111 "
hp : true
}
nodes {
asi : "testssp . com "
sid : "pub - 1111111111111111 "
hp : true
}
ver : "1.0 "
}
}
[ com . google . doubleclick . bid_request ] {
google_query_id : "ANy - z0q198 - VH9uWi641a7Nr5j1TA39TZM09b659F35vRZhyf532904TZ7cR3UPC71174eAi "
fcap_scope : FREQUENCY_CAPPING_SCOPE_BROWSER
}
Per convertire la richiesta di offerta in un formato binario, come si ottiene
payload POST in una richiesta reale, puoi fare quanto segue (in C++). Tieni presente che
tuttavia, questo non è applicabile al file JSON OpenRTB.
string text_format_example = /* example from above */ ;
BidRequest bid_request ;
if ( TextFormat :: ParseFromString ( text_format_example , &bid_request )) {
string post_payload ;
if ( bid_request . SerializeToString ( &post_payload )) {
// post_payload is a binary serialization of the protocol buffer
}
}
Authorized Buyers trasmette un ID pubblicità mobile nelle richieste di offerta di un
app mobile. L'ID pubblicità mobile può essere un
IDFA per iOS oppure
.
L'ID pubblicità di Android , che viene inviato tramite
%%EXTRA_TAG_DATA%%
nel tag JavaScript gestito da
Authorized Buyers.
La macro %%ADVERTISING_IDENTIFIER%%
consente agli acquirenti di ricevere
IDFA per iOS o ID pubblicità di Android nel rendering delle impressioni. Restituisce un valore
buffer di protocollo criptato MobileAdvertisingId
come
%%EXTRA_TAG_DATA%%
:
message MobileAdvertisingId {
optional bytes advertising_id = 1 ;
optional int32 user_id_type = 2 ;
}
user_id_type
è uno dei valori definiti nel
enum AdxMobileIdType
:
enum AdxMobileIdType {
MOBILE_ID_UNKNOWN = 0 ,
IDFA = 1 ,
ANDROID_ID = 2 ,
};
Puoi creare elenchi di utenti da ID pubblicità mobile utilizzando gli ID pubblicità
raccolti durante il rendering delle impressioni. Questi elenchi di utenti possono essere gestiti
sul vostro server o sui nostri. Per creare elenchi di utenti sui server di Google, puoi utilizzare
il nostro servizio di caricamento collettivo.
Quando l'ID pubblicità mobile corrisponde a un elenco di utenti, puoi utilizzarlo per eseguire
remarketing.
Feedback in tempo reale
Authorized Buyers ha a disposizione anche il feedback in tempo reale,
delle piattaforme di scambio pubblicitario e delle reti
usando Open Bidding.
Il feedback sulla risposta all'offerta è supportato nella richiesta di offerta successiva per entrambi
Protocollo AdX e OpenRTB. Per OpenRTB, viene inviato
BidRequestExt
.
Oltre ai campi predefiniti inviati in Feedback sulle risposte all'offerta, puoi
inviare anche dati personalizzati nella risposta all'offerta (in AdX Proto o OpenRTB)
utilizzando un valore event_notification_token
restituito
BidResponse
. Il valore event_notification_token
è
dati arbitrari noti solo all'offerente che potrebbero essere utili per il debug, ad esempio
Ad esempio: un nuovo ID targeting o un ID offerta che rappresenta una nuova tattica oppure
Metadati associati alla creatività noti solo all'offerente. Per maggiori dettagli,
consulta OpenRTB
Buffer di protocollo delle estensioni per RTB e protocollo AdX
per AdX.
Quando Authorized Buyers invia una richiesta di offerta a un offerente, quest'ultimo risponde
con un BidResponse
. Se per l'offerente è attivato
il feedback in tempo reale,
in una successiva richiesta di offerta, Authorized Buyers invia un feedback
risposta in un messaggio BidResponseFeedback
, come mostrato di seguito:
message BidResponseFeedback {
// The unique id from BidRequest . id
optional bytes request_id = 1 ;
// The index of the BidResponse_Ad if there was more than one . The index
// starts at zero for the first creative .
optional int32 creative_index = 2 ;
// The status code for the ad . See creative - status - codes . txt in the
// technical documentation for a list of ids .
optional int32 creative_status_code = 3 ;
// If the bid won the auction , this is the price paid in your account
// currency . If the bid participated in the auction but was out - bid , this
// is the CPM that should have been exceeded in order to win . This is not
// set if the bid was filtered prior to the auction , if the publisher or
// winning bidder has opted out of price feedback or if your account has
// opted out of sharing winning prices with other bidders . For first - price
// auctions , minimum_bid_to_win is populated instead of this field .
optional int64 cpm_micros = 4 ;
// The minimum bid value necessary to have won the auction , in micros of
// your account currency . If your bid won the auction , this is the second
// highest bid that was not filtered ( including the floor price ) . If your
// bid did not win the auction , this is the winning candidate's bid . This
// field will only be populated if your bid participated in a first - price
// auction , and will not be populated if your bid was filtered prior to the
// auction .
optional int64 minimum_bid_to_win = 7 ;
// The minimum bid value necessary to have won the server - side component of
// the overall auction given that there was also an interest group bidding
// component to the overall auction which ran using the Protected Audience
// API . The value is expressed in CPM micros of the buyer account currency .
// The minimum bid to win for the overall auction , including bids from the
// server - side and the on - device interest group components , is populated in
// the minimum_bid_to_win field of the same BidResponseFeedback object .
optional int64 server_side_component_minimum_bid_to_win = 16 ;
// Billable event rate multiplier that was applied to this bid during
// ranking . The adjustment reflects the likelihood that your bid would
// generate a billable event ( namely , the ad renders successfully ) if it won
// the auction , relative to the probability that other bids generate a
// billable event if they won the auction . This adjustment can be larger or
// smaller than 1. This affects the final ranking in the auction only ; in
// particular , this multiplier does not affect the payment or whether the
// bid clears any floor price .
optional float billable_event_rate_bid_adjustment = 15 [ default = 1 ];
// When a publisher uses an RTB auction and waterfall - based SDK mediation on
// the same query , the winner of the real - time auction must also compete in
// a mediation waterfall ( which is ordered by price ) to win the impression .
// If the bid participated in the auction and there was no waterfall , the
// value of this field is 0. If the bid participated in the auction and
// there was a waterfall , the value of this field is a price representing a
// sample bid from the eligible mediation networks that were higher than the
// auction winner , weighted by expected fill rate . This field can be used
// in conjunction with minimum_bid_to_win to train bidding models . The CPM
// is in micros of your account currency .
optional int64 sampled_mediation_cpm_ahead_of_auction_winner = 10 ;
// Event notification token that was included in the bid response .
optional bytes event_notification_token = 5 ;
// Buyer creative ID that was included in the bid response .
optional string buyer_creative_id = 6 ;
// Possible types of bid response feedback objects .
enum FeedbackType {
FEEDBACK_TYPE_UNSPECIFIED = 0 ;
// Feedback for a bid that was submitted on a bid response .
BID_FEEDBACK = 1 ;
// Feedback for an interest group buyer submitted on a bid response to
// particpate in an interest group bidding component of the auction run
// using the Protected Audience API .
INTEREST_GROUP_BUYER_FEEDBACK = 2 ;
}
// The type of the BidResponseFeedback message . Google will send separate
// BidResponseFeedback objects for :
// a ) Each bid submitted on a bid response
// b ) Each buyer submitted on a bid response to particpate in an interest
// group bidding component of the auction run using the Protected Audience
// API .
optional FeedbackType feedback_type = 17 ;
// Origin of an interest group buyer that was included in the bid response .
// This field is populated only for feedback where a bidder opted in an
// interest group buyer to participate in the interest group bidding
// component of the overall auction run using the Protected Audience API .
// To learn more about origins , see https : // www . rfc - editor . org / rfc / rfc6454 .
// To learn more about interest group bidding and the Protected Audience
// API , see
// https : // developers . google . com / authorized - buyers / rtb / fledge - origin - trial .
optional string buyer_origin = 18 ;
// The status code for the submitted interest group buyer . This field is
// only populated in the feedback for an interest group buyer that a bidder
// requested to enter into the interest group auction through the bid
// response . Individual creative status codes of bids submitted by the buyer
// in the on - device interest group auction are not available . See
// https : // storage . googleapis . com / adx - rtb - dictionaries / interest - group - buyer - status - codes . txt
// for a list of interest group buyer status codes .
optional int32 interest_group_buyer_status_code = 19 ;
}
Da questo messaggio, il primo campo da controllare è
bid_response_feedback.creative_status_code
; puoi trovare il codice
significato in
creative-status-codes.txt . Tieni presente che se vinci l'offerta, puoi disattivarla
dal feedback sul prezzo. Per ulteriori informazioni, vedi Come
disattivazione .
Il feedback in tempo reale include l'ID richiesta di offerta e uno dei
seguenti:
Risultato dell'asta
Feedback in tempo reale
L'acquirente non ha inviato un'offerta.
Niente.
L'acquirente ha presentato un'offerta che è stata filtrata prima di raggiungere
l'asta.
Il codice di stato della creatività (creative-status-codes.txt ).
L'acquirente ha presentato un'offerta, ma ha perso l'asta.
Il codice di stato della creatività 79
(offerta superata in
asta).
L'acquirente ha presentato un'offerta che ha vinto l'asta.
Il prezzo di compensazione e il codice di stato della creatività 1
.
Per un'impressione dell'app e un codice di stato della creatività pari a 83
, il valore
che il publisher di app potrebbe aver utilizzato una struttura a cascata di mediazione.
un'offerta vincente sarebbe stata in concorrenza con un'altra domanda nel campo
una struttura a cascata con pass-back. Scopri come utilizzare
sampled_mediation_cpm_ahead_of_auction_winner
quando
offerte .
Esempio
Di seguito è riportato un esempio di feedback in tempo reale, come mostrato nella sezione
protocolli:
Google
Mostrami l'esempio
id : "( \ 001 \ 334 X \ nH \ 034 \ 230 . \ 244 R / \ 370 \ 204 / \ 270 \ 265 \ 255 H \ 322 h \ 366 "
ip : "\ 300 \ 250 "
user_agent : "Mozilla / 5.0 ( iPhone ; CPU iPhone OS 16 _6 like Mac OS X ) AppleWebKit / 605.1.15 ( KHTML , like Gecko ) Mobile / 15 E148 "
url : "https : //www.google.com "
detected_language : "en "
adslot {
id : 1
width : 320
height : 50
excluded_attribute : 18
excluded_attribute : 27
allowed_vendor_type : 485
allowed_vendor_type : 4648
excluded_sensitive_category : 4
excluded_sensitive_category : 23
matching_ad_data {
billing_id : 18273476630
billing_id : 57564954457
minimum_cpm_micros : 634720000
}
matching_ad_data {
billing_id : 51346235308
billing_id : 16770443752
minimum_cpm_micros : 4037930000
}
slot_visibility : ABOVE_THE_FOLD
ad_block_key : 5409661012
publisher_settings_list_id : 8938951914739109978
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
viewability : 94
click_through_rate : 0.0002517347
allowed_ad_types : ALLOWED_AD_TYPE_BANNER
is_amp_page : DIALECT_HTML
amp_ad_requirement_type : AMP_AD_NOT_ALLOWED
session_depth : 1
api : OMID_1
api : MRAID_1
omidpn : "Google "
omidpv : "afma - sdk - i - v8 .13.0 "
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
auction_environment : SERVER_SIDE_AUCTION
impression_expiration_seconds : 3600
supported_auction_environment : SERVER_SIDE_AUCTION
display_manager : "GoogleMobileAds - iOS "
display_manager_version : "8.13.0 "
}
is_test : false
cookie_version : 1
google_user_id : "qM75u4Pq2e1DYmuo3J1w534y786 "
timezone_offset : - 300
mobile {
app_id : "549642335 "
is_app : true
encrypted_advertising_id : "\ 357 \ 005 \ 250 ` f \ 022 \ 357 Y \ 372 $\ 177 \ 005 \ 325 \ 036 \ 334 a ] \ 241 \ 014 \ 367 g_ \ 032 \ 262 w , nG \ 265 \ 312 : Iw \ 037 \ 347 y "
app_name : "Test App "
advertising_id : "\ 272 \ 026 \ 206 F \ 222 \ 250 \ re \ 253 \ 350 G \ 235 \ 241 h \ 303 \ 271 "
}
cookie_age_seconds : 20736000
postal_code : "10011 "
geo_criteria_id : 9012672
publisher_settings_list_id : 3625423117835077640
bid_response_feedback {
request_id : "\ 220 \ 366 \ 320 / \ 025 \ 000 Z \ 212 K \"\ 020 \ 364 \ 232 \ 247 \ 326 Q "
creative_status_code : 80
event_notification_token : "token "
buyer_creative_id : "test_creative_id_180631 "
minimum_bid_to_win : 11650000
feedback_type : BID_FEEDBACK
}
publisher_type : PUBLISHER_OWNED_AND_OPERATED
partner_id : 7759509030857009145
device {
device_type : HIGHEND_PHONE
platform : "iphone "
brand : "Apple "
model : "iPhone13 , 2 "
os_version {
major : 16
minor : 6
}
carrier_id : 0
screen_width : 390
screen_height : 844
screen_pixel_ratio_millis : 3000
screen_orientation : PORTRAIT
hardware_version : "iPhone13 , 2 "
limit_ad_tracking : false
app_tracking_authorization_status : AUTHORIZED
connection_type : WIFI
}
publisher_country : "US "
publisher_id : "pub - 1111111111111111 "
response_deadline_ms : 1000
google_query_id : "ANy - z8184S - 12 cH23V6vlS7A862Qr799b3g4uh5Y8a21SDWf3XC22u9KS5KSn1053a97039y "
auction_type : FIRST_PRICE
geo {
lat : 34.37
lon : - 87.44
country : "USA "
region : "AL "
metro : "691 "
zip : "35651 "
utcoffset : - 300
accuracy : 7879
}
user_agent_data {
platform {
brand : "iPhone "
version : "16 "
version : "6 "
}
mobile : true
model : "iPhone "
browsers {
brand : "Mozilla "
version : "5 "
version : "0 "
}
browsers {
brand : "AppleWebKit "
version : "605 "
version : "1 "
}
bitness : "64 "
source : USER_AGENT_STRING
}
supply_chain {
complete : true
nodes {
advertising_system_identifier : "testdomain . com "
seller_identifier : "pub - 1111111111111111 "
handles_payment : true
}
version : "1.0 "
}
frequency_capping_scope : FREQUENCY_CAPPING_SCOPE_DEVICE
privacy_treatments {
allow_user_data_collection : true
}
inventory_partner_domain : "OMITTED "
JSON OpenRTB
Mostrami l'esempio
{
"id ": "B2zmta620ms2392240eM5R ",
"imp ": [
{
"id ": "1 ",
"banner ": {
"w ": 300 ,
"h ": 250 ,
"pos ": 3 ,
"wmax ": 300 ,
"hmax ": 250 ,
"wmin ": 0 ,
"hmin ": 46 ,
"format ": [
{
"w ": 300 ,
"h ": 250
},
{
"w ": 180 ,
"h ": 150
}
]
},
"displaymanager ": "GOOGLE ",
"tagid ": "3178683015 ",
"bidfloor ": 0.06 ,
"bidfloorcur ": "USD ",
"secure ": 1 ,
"exp ": 3600 ,
"metric ": [
{
"type ": "click_through_rate ",
"value ": 0.0010899954941123724 ,
"vendor ": "EXCHANGE "
},
{
"type ": "viewability ",
"value ": 0.28 ,
"vendor ": "EXCHANGE "
}
],
"ext ": {
"billing_id ": [
76252023422
],
"publisher_settings_list_id ": [
7226782477948422193 ,
2459752148771775747
],
"allowed_vendor_type ": [
3 ,
42
],
"ampad ": 3 ,
"creative_enforcement_settings ": {
"policy_enforcement ": 2 ,
"publisher_blocks_enforcement ": 1
},
"auction_environment ": 0 ,
"ae ": 0
}
}
],
"site ": {
"page ": "https : // www . google . com ",
"publisher ": {
"id ": "pub - 1111111111111111 ",
"ext ": {
"country ": "TR "
}
},
"content ": {
"livestream ": 0 ,
"language ": "tr "
},
"ext ": {
"amp ": 0 ,
"page_visibility ": 1 ,
"inventorypartnerdomain ": "OMITTED "
}
},
"device ": {
"ua ": "Mozilla / 5.0 ( Windows NT 10.0 ; Win64 ; x64 ) AppleWebKit / 537.36 ( KHTML , like Gecko ) Chrome / 124.0 . 0.0 Safari / 537.36 ",
"ip ": "192.168 . 1.0 ",
"geo ": {
"lat ": 0.0 ,
"lon ": 0.0 ,
"country ": "TUR ",
"region ": "TR - 01 ",
"city ": "Adana ",
"type ": 2 ,
"utcoffset ": 180 ,
"accuracy ": 7060
},
"os ": "Windows ",
"devicetype ": 2 ,
"lmt ": 0 ,
"pxratio ": 1.25 ,
"sua ": {
"browsers ": [
{
"brand ": "Chromium ",
"version ": [
"124 ",
"0 "
]
},
{
"brand ": "Google Chrome ",
"version ": [
"124 ",
"0 "
]
}
],
"platform ": {
"brand ": "Windows ",
"version ": [
"7 ",
"0 "
]
},
"mobile ": 0 ,
"architecture ": "x86 ",
"bitness ": "64 ",
"source ": 2
},
},
"at ": 1 ,
"tmax ": 300 ,
"cur ": [
"USD "
],
"bcat ": [
"IAB23 - 6 ",
"IAB23 - 8 "
],
"source ": {
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
},
"ext ": {
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
}
}
},
"ext ": {
"bid_feedback ": [
{
"request_id ": "0 S7s2muW9tFzp8zl35u97n ",
"creative_status_code ": 80 ,
"event_notification_token ": {
"payload ": "token "
},
"buyer_creative_id ": "test_creative_id_383532 ",
"minimum_bid_to_win ": 0.01 ,
"feedbacktype ": 1
}
],
"google_query_id ": "ANy - z3QP2f - 48 p8d0ucFkGmd99q36HPgSg4o8b89L0989N0RoS0x56mYMJd4087NT0d21W99 ",
"fcap_scope ": 5 ,
"privacy_treatments ": {
"allow_user_data_collection ": 1
}
}
}
Protobuf OpenRTB
Mostrami l'esempio
id : "Wa0N08928Q93A1985Aj71s "
imp {
id : "1 "
banner {
w : 428
h : 846
pos : AD_POSITION_FULLSCREEN
expdir : LEFT
expdir : RIGHT
expdir : UP
expdir : DOWN
api : MRAID_1
api : MRAID_2
format {
w : 428
h : 846
}
format {
w : 414
h : 736
}
}
displaymanager : "GoogleMobileAds - iOS "
displaymanagerver : "10.12 . 0 "
instl : true
tagid : "7674739358 "
bidfloor : 0.01
bidfloorcur : "USD "
secure : true
exp : 3600
clickbrowser : true
metric {
type : "click_through_rate "
value : 0.12990431487560272
vendor : "EXCHANGE "
}
metric {
type : "viewability "
value : 0.91
vendor : "EXCHANGE "
}
[ com . google . doubleclick . imp ] {
billing_id : 25325587657
ampad : AMP_AD_NOT_ALLOWED
open_bidding {
is_open_bidding : true
}
skadn {
sourceapp : "com . google . testapp "
skadnetids : "M8jiSyxV "
skadnetids : "lZ95E155 "
versions : "2.0 "
versions : "2.1 "
fidelities : VIEW_THROUGH_ADS
fidelities : STOREKIT_RENDERED_ADS
}
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_OVERRIDDEN
}
auction_environment : SERVER_SIDE_AUCTION
ae : SERVER_SIDE_AUCTION
}
}
app {
name : "Test App "
bundle : "com . google . testapp "
publisher {
id : "pub - 7874601938215096 "
[ com . google . doubleclick . publisher ] {
country : "CN "
}
}
content {
url : "https : // www . google . com "
livestream : false
language : "en "
}
storeurl : "https : // www . google . com "
[ com . google . doubleclick . app ] {
inventorypartnerdomain : "OMITTED "
}
}
device {
ua : "Mozilla / 5.0 ( iPhone ; CPU iPhone OS 16 _3_1 like Mac OS X ) AppleWebKit / 605.1 . 15 ( KHTML , like Gecko ) Mobile / 15E148 "
ip : "192.168 . 1.0 "
geo {
lat : 0.0
lon : 0.0
country : "MYS "
region : "MY - 13 "
city : "Kuching "
zip : "93350 "
type : IP
utcoffset : 480
accuracy : 3372
}
make : "Apple "
model : "iPhone14 , 3 "
os : "iOS "
osv : "16.3 . 1 "
connectiontype : WIFI
devicetype : HIGHEND_PHONE
lmt : true
hwv : "iPhone14 , 3 "
w : 428
h : 926
pxratio : 3.0
sua {
browsers {
brand : "Mozilla "
version : "5 "
version : "0 "
}
browsers {
brand : "AppleWebKit "
version : "605 "
version : "1 "
}
platform {
brand : "iPhone "
version : "16 "
version : "3 "
}
mobile : true
bitness : "64 "
model : "iPhone "
source : USER_AGENT_STRING
}
[ com . google . doubleclick . device ] {
atts : 2
}
}
at : FIRST_PRICE
tmax : 1000
cur : "USD "
source {
schain {
complete : true
nodes {
asi : "testssp . com "
sid : "pub - 1111111111111111 "
hp : true
}
ver : "1.0 "
}
[ com . google . doubleclick . source ] {
omidpn : "Google "
omidpv : "afma - sdk - i - v10 . 12.0 "
schain {
complete : 1
nodes {
asi : "testssp . com "
sid : "pub - 1111111111111111 "
hp : 1
}
ver : "1.0 "
}
}
}
[ com . google . doubleclick . bid_request ] {
bid_feedback {
request_id : "0 I3TcIJ0r6cmPH750Be7b1 "
creative_status_code : 79
event_notification_token {
payload : "token "
}
buyer_creative_id : "test_creative_id_151612 "
minimum_bid_to_win : 0.14
sampled_mediation_cpm_ahead_of_auction_winner : 2.222233
feedbacktype : BID_FEEDBACK
}
google_query_id : "ANy - zv49ep - 83 k2i3iDL3q449a2D1l824ye020uBq6B1wnPqWz1657JQ4LF11N71794cU0n9 "
fcap_scope : FREQUENCY_CAPPING_SCOPE_APP
}
Creare un modello di offerta per le aste al primo prezzo
Dopo aver fatto un'offerta nell'asta al primo prezzo, riceverai in tempo reale
feedback tra cui minimum_bid_to_win
e
sampled_mediation_cpm_ahead_of_auction_winner
campi se l'offerta
non è stato filtrato dall'asta. Questi indicatori possono essere utilizzati per
logica di offerta su quanto avrebbe potuto essere più o meno alta la tua offerta per
conquistare l'impressione.
minimum_bid_to_win
: l'offerta minima che avrebbe potuto essere
posizionati per vincere l'asta con offerte in tempo reale. Se hai vinto l'asta, questo
l'offerta più bassa che avresti potuto fare mentre continuavi a vincere. Se perdi
questa sarà l'offerta vincente.
sampled_mediation_cpm_ahead_of_auction_winner
: Se sono presenti
altre reti nella catena di mediazione ,
di questo campo è un prezzo che rappresenta un'offerta di esempio di uno dei
reti di mediazione idonee che sono state superiori al vincitore dell'asta, ponderate
in base al tasso di riempimento previsto. Il valore sarà impostato su 0 se nessuna delle reti nel
la catena di mediazione deve essere soddisfatta o se il publisher non utilizza l'SDK
della mediazione.
Come funziona
Al fine di descrivere i calcoli utilizzati per determinare i valori possibili,
per minimum_bid_to_win
e
sampled_mediation_cpm_ahead_of_auction_winner
, per prima cosa dobbiamo
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 i relativi
probabilità dall'elemento della catena di mediazione \(i\), in base al riempimento specificato
conv.:
\(X_i = \{C_i\) con probabilità \(f_i\); \(0\) con probabilità \(1 - f_i\}\)
La catena di mediazione finale vincente 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 minimo, è indicato come \(F\).
L'offerta secondo la classifica è 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 la persona perdente dell'asta
Campo
Calcolo
minimum_bid_to_win
\(max\{F, W\}\)
sampled_mediation_cpm_ahead_ of_auction_winner
\(max\{X_1, …, X_K\}\)
Supponiamo che un publisher utilizzi sia le offerte in tempo reale sia una catena di mediazione SDK come
che 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\%\)
Supponi di avere quanto segue come risultato dell'asta RTB:
Asta RTB
CPM
Vincitore dell'asta (M)
1,00 $
Secondo posto per l'asta (R)
$ 0,05
Prezzo di riserva / minimo (F)
0 $
Offerta che ha vinto l'asta
Di seguito è riportato un esempio di come valori e probabilità per
minimum_bid_to_win
e
Il valore sampled_mediation_cpm_ahead_of_auction_winner
viene calcolato per
che ha vinto.
minimum_bid_to_win
Probabilità
\(max(F, R, C_3) = $0.50\)
\(f_3 = 80\%\)
\(max(F, R, C_4) = $0.10\)
\((1-f_3) \cdot f_4 = 17\%\)
\(max(F, R, 0) = $0.05\)
\((1-f_3) \cdot (1-f_4) = 3\%\)
sampled_mediation_cpm_ ahead_of_auction_winner
Probabilità
\(C_1 = $3.00\)
\(f_1 \div (1-(1-f_1) \cdot (1-f_2)) =~ 10.5\%\)
\(C_2 = $2.00\)
\(((1-f_1) \cdot f_2) \div (1-(1-f_1) \cdot (1-f_2)) =~ 89.5\%\)
Nota: se il vincitore dell'asta pubblica il suo annuncio e riceve un addebito
tramite un endpoint specificato
BidResponse.ad[].impression_tracking_url
, oppure
BidResponse.seatbid[].bid[].burl
in OpenRTB: il vincitore dell'asta può
deduci che nessuno dei CPM di mediazione campionati è andato a buon fine e
includere la frequenza con cui questo avviene nel loro modello.
Offerte che hanno perso l'asta
Di seguito è riportato un esempio di come valori e probabilità per
minimum_bid_to_win
e
Il valore sampled_mediation_cpm_ahead_of_auction_winner
viene calcolato per
le offerte perse.
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\%\)
Nota: un
Il valore 0 di sampled_mediation_cpm_ahead_of_auction_winner
indica
vinto l'asta con offerte in tempo reale. Nell'esempio precedente, l'asta
vincitore non dovrebbe superare l'offerta di una rete di mediazione concorrente il 52,2% dei
nel tempo.
Appiattimento delle offerte
La suddivisione delle offerte descrive l'elaborazione di un singolo complesso
BidRequest
in più richieste di offerta inviate al tuo
un'applicazione. Poiché conservano ID identici
(BidRequest.google_query_id
nel protocollo RTB di Authorized Buyers
o BidRequestExt.google_query_id
nel protocollo OpenRTB), puoi
determinare quali richieste di offerta sono correlate dopo la suddivisione.
Alcune opportunità di annunci possono accettare più formati. Con la suddivisione delle offerte,
viene inviato in una richiesta di offerta distinta in cui gli attributi come
Gli ID fatturazione 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
Di seguito è riportato un esempio che mostra una richiesta di offerta JSON OpenRTB semplificata senza annuncio
suddivisione del formato rispetto a un insieme equivalente di richieste suddivise:
Preappiattisci
Mostrami l'esempio
{
"id": "V5ar1wXqKP58nbsyJ6549D",
"imp": [
{
"id": "1",
"video": {
"linearity": 1,
"w": 300,
"h": 250,
"pos": 1,
"skip": 1,
"playbackmethod": [
6
],
"placement": 3,
"mimes": [
"video/mp4"
],
"protocols": [
2,
3
]
},
"banner": {
"format": [
{
"w": 300,
"h": 250
}
],
"w": 300,
"h": 250,
"pos": 1
},
"ext": {
"billing_id": [
47039494050,
52030317241
]
}
}
],
"ext": {
"google_query_id": "ANy-zdp266-244itJsom3dmXb7SvW1IPg6478g639g0867v1126w630F3M7lAp640H666744"
}
}
Appiattimento
Mostrami l'esempio
Richiesta 1
{
"id": "B3xr1yZqRL48nbsyJ6367N",
"imp": [
{
"id": "1",
"video": {
"linearity": 1,
"w": 300,
"h": 250,
"pos": 1,
"skip": 1,
"playbackmethod": [
6
],
"placement": 3,
"mimes": [
"video/mp4"
],
"protocols": [
2,
3
]
}
"ext": {
"billing_id": [
47039494050
]
}
],
"ext": {
"google_query_id": "ANy-zdp266-244itJsom3dmXb7SvW1IPg6478g639g0867v1126w630F3M7lAp640H666744"
}
}
Richiesta 2
{
"id": "M1dY8qHyNK74bMsjF393Gf",
"imp": [
{
"id": "1",
"banner": {
"format": [
{
"w": 300,
"h": 250
}
],
"w": 300,
"h": 250,
"pos": 1
},
"ext": {
"billing_id": [
52030317241
]
}
}
],
"ext": {
"google_query_id": "ANy-zdp266-244itJsom3dmXb7SvW1IPg6478g639g0867v1126w630F3M7lAp640H666744"
}
}
Offerte
Un'opportunità di annuncio per un determinato offerente può essere applicabile a diversi deal
di archiviazione, oltre che all'asta aperta. Con la suddivisione delle offerte per i deal, un'offerta
verrà inviata una richiesta per l'asta aperta e una per ogni tipo di prezzo
un'offerta speciale. In pratica, i vincoli degli annunci possono differire tra le aste e il prezzo fisso
tipi di deal, ad esempio per una determinata opportunità di annunci video disponibile
sia l'asta aperta sia un'offerta a prezzo fisso, l'offerente riceve
richieste di offerta per ciascuno, in cui vincoli come la durata massima degli annunci e
gli annunci ignorabili possono variare. Di conseguenza, l'appiattimento è stato applicato
Opportunità di riconoscere più facilmente i vincoli degli annunci
e il deal a prezzo fisso.
Nota: le aste private e i pacchetti di aste avranno le stesse caratteristiche
sono vincolanti all'asta aperta e continueranno a essere inclusi
richieste di offerta in base all'asta.
Durata massima dei video ignorabili
Il protocollo di Google e l'implementazione di OpenRTB supportano i seguenti campi
per conoscere la durata del video e la possibilità di ignorare:
Durata
Durata ignorabile
Possibilità di ignorare gli annunci
Protocollo Google
max_ad_duration
skippable_max_ad_duration
video_ad_skippable
OpenRTB
maxduration
n/d
skip
Ciò significa che, mentre il protocollo Google può avere un
e non ignorabile, l'implementazione OpenRTB ha un solo
valore della durata massima.
Prima della suddivisione delle offerte, il valore maxduration
di OpenRTB veniva impostato su
il valore più basso dei valori max_ad_duration
e
skippable_max_ad_duration
campi. Questo comportamento è cambiato in
inviando due richieste di offerta distinte quando questi valori sono diversi: una che rappresenta
maxduration
per gli annunci ignorabili e l'altro per quelli non ignorabili
di Google Cloud.
I seguenti esempi mostrano come viene tradotta una richiesta di protocollo Google
a OpenRTB prima e dopo la suddivisione delle offerte. Il protocollo Google equivalente
ha un valore max_ad_duration
di 15
e un
skippable_max_ad_duration
di 60
.
Esempio
max_ad_duration
skip
(vero OR falso)
Richiesta originale senza suddivisione
15
true
Richiesta uniforme n. 1: non ignorabile
15
false
Richiesta separata n. 2: ignorabile
60
true
La suddivisione della richiesta di offerta relativa alla durata del video ignorabile avviene solo se
queste condizioni sono soddisfatte:
Questa richiesta consente l'uso di video.
Sono consentiti sia i video ignorabili sia quelli non ignorabili e i due rispettivi valori massimi
le durate variano in valore.
Questa richiesta è idonea per l'asta privata o l'asta aperta.
L'account dell'offerente dispone di endpoint OpenRTB attivi.
Per disattivare questo tipo di suddivisione, contatta il tuo team
account manager.
Pod video
Le richieste di offerta per un pod video con più opportunità di annunci vengono suddivise,
in modo che ogni richiesta di offerta sia per una singola opportunità di annuncio da quel pod.
Ciò ti consente di fare offerte su più opportunità di annunci per un determinato pod.
Open Measurement
Con Open Measurement puoi specificare i fornitori di terze parti che offrono
servizi indipendenti di misurazione e verifica per gli annunci pubblicati in app mobile
ambienti cloud-native.
Puoi stabilire se un publisher supporta Open Measurement nell'offerta
richiesta controllando se l'opportunità di annuncio esclude l'attributo OmsdkType:
OMSDK 1.0
che si trova in Esclusi dal publisher
attributi della creatività . Per il protocollo di Authorized Buyers,
trovato in BidRequest.adslot[].excluded_attribute
. Per
protocollo OpenRTB, si trova nell'attributo battr
per Banner o
Video , a seconda
il formato.
Per ulteriori informazioni su come interpretare le richieste di offerta contenenti
Per gli indicatori di misurazione, consulta Open Measurement
SDK .
Esempi di richieste di offerta
Le seguenti sezioni mostrano esempi di richieste di offerta per diversi tipi di annunci.
Banner app
Google
Mostrami l'esempio
id : "1 \ 200 \ 2149 CH \ 354 \ 224 S \ 002 G >\ 276 \ 3068 \ 264 Z \ 316 \ 203 Hz \ 010 \ 334 "
ip : "\ 300 \ 250 "
user_agent : "Mozilla /5.0 (Linux; Android 13; SM-A032M Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/123.0.6312.118 Mobile Safari/ 537.36 ( Mobile ; afma - sdk - a - v241518064 . 241518064.0 ) "
url : "https :// www . google . com "
detected_language : "pt "
adslot {
id : 1
width : 300
width : 320
height : 250
height : 50
excluded_attribute : 13
excluded_attribute : 18
allowed_vendor_type : 745
allowed_vendor_type : 4513
excluded_sensitive_category : 4
excluded_sensitive_category : 31
matching_ad_data {
billing_id : 16751333146
minimum_cpm_micros : 10000
}
slot_visibility : ABOVE_THE_FOLD
ad_block_key : 6911419491
publisher_settings_list_id : 3488369073734770391
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
viewability : 66
allowed_ad_types : ALLOWED_AD_TYPE_BANNER
is_amp_page : DIALECT_HTML
amp_ad_requirement_type : AMP_AD_NOT_ALLOWED
api : OMID_1
api : MRAID_1
flexible_adslot_settings {
max_width : 336
max_height : 280
min_width : 168
min_height : 0
}
regs_lgpd : true
omidpn : "Google "
omidpv : "afma - sdk - a - v240304999 . 224400000.1 "
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
auction_environment : SERVER_SIDE_AUCTION
impression_expiration_seconds : 3600
supported_auction_environment : SERVER_SIDE_AUCTION
display_manager : "GoogleMobileAds - Android "
display_manager_version : "21.5 . 0 "
}
is_test : false
timezone_offset : - 180
mobile {
app_id : "com . google . testapp "
is_app : true
app_name : "Test App "
app_rating : 4.6296206
}
geo_criteria_id : 1001533
publisher_settings_list_id : 12488741028105368323
publisher_type : PUBLISHER_OWNED_AND_OPERATED
partner_id : 8688212468768627166
device {
device_type : HIGHEND_PHONE
platform : "android "
brand : "Samsung "
model : "SM - A032M "
os_version {
major : 13
}
carrier_id : 0
screen_width : 360
screen_height : 730
screen_pixel_ratio_millis : 2000
screen_orientation : PORTRAIT
limit_ad_tracking : false
connection_type : WIFI
}
publisher_country : "BR "
publisher_id : "pub - 1111111111111111 "
response_deadline_ms : 1000
google_query_id : "ANy - z6684B - S9K9375rD1B53ZdYA2RQi090I2bJ579yi0CF0N8A60v821V52F938j142LOzW "
auction_type : FIRST_PRICE
geo {
lat : - 12.98
lon : - 38.5
country : "BRA "
region : "BR - BA "
city : "Salvador "
utcoffset : - 180
accuracy : 14885
}
user_agent_data {
platform {
brand : "Android "
version : "13 "
}
mobile : true
model : "SM - A032M "
browsers {
brand : "Mozilla "
version : "5 "
version : "0 "
}
browsers {
brand : "AppleWebKit "
version : "537 "
version : "36 "
}
bitness : "64 "
source : USER_AGENT_STRING
}
supply_chain {
complete : true
nodes {
advertising_system_identifier : "testdomain . com "
seller_identifier : "pub - 1111111111111111 "
handles_payment : true
}
version : "1.0 "
}
frequency_capping_scope : FREQUENCY_CAPPING_SCOPE_BROWSER
privacy_treatments {
non_personalized_ads_reason : USER_OPT_OUT
allow_user_data_collection : false
}
inventory_partner_domain : "OMITTED "
JSON OpenRTB
Mostrami l'esempio
{
"id ": "r87mLfJ195K96b48857234 ",
"imp ": [
{
"id ": "1 ",
"banner ": {
"w ": 390 ,
"h ": 61 ,
"pos ": 1 ,
"api ": [
3 ,
5
],
"wmax ": 390 ,
"hmax ": 61 ,
"wmin ": 261 ,
"hmin ": 46 ,
"format ": [
{
"w ": 390 ,
"h ": 61
},
{
"w ": 320 ,
"h ": 50
}
]
},
"displaymanager ": "GoogleMobileAds - iOS ",
"displaymanagerver ": "11.2.0 ",
"tagid ": "2022397433 ",
"bidfloor ": 0.04 ,
"bidfloorcur ": "USD ",
"secure ": 1 ,
"exp ": 3600 ,
"clickbrowser ": 1 ,
"metric ": [
{
"type ": "click_through_rate ",
"value ": 4.110196186957182 e - 06 ,
"vendor ": "EXCHANGE "
},
{
"type ": "viewability ",
"value ": 0 ,
"vendor ": "EXCHANGE "
}
],
"ext ": {
"billing_id ": [
82346236545
],
"publisher_settings_list_id ": [
5491354135157496540 ,
9146398712997475724
],
"allowed_vendor_type ": [
445 ,
776
],
"ampad ": 2 ,
"allowed_restricted_category ": [
33
],
"skadn ": {
"sourceapp ": "com . google . testapp ",
"skadnetids ": [
"5 c39728P "
],
"versions ": [
"2.0 ",
"2.1 "
],
"fidelities ": [
1 ,
0
]
},
"creative_enforcement_settings ": {
"policy_enforcement ": 2 ,
"publisher_blocks_enforcement ": 1
},
"auction_environment ": 0 ,
"ae ": 0
}
}
],
"app ": {
"name ": "Test App ",
"bundle ": "com . google . testapp ",
"publisher ": {
"id ": "pub - 1242890569860107 ",
"ext ": {
"country ": "SG "
}
},
"content ": {
"url ": "https : //www.google.com",
"livestream ": 0 ,
"language ": "en "
},
"storeurl ": "https : //www.google.com",
"ext ": {
"inventorypartnerdomain ": "OMITTED "
}
},
"device ": {
"ua ": "Mozilla / 5.0 ( iPhone ; CPU iPhone OS 17 _4_1 like Mac OS X ) AppleWebKit / 605.1.15 ( KHTML , like Gecko ) Mobile / 15 E148 ",
"geo ": {
"lat ": 0.0 ,
"lon ": 0.0 ,
"country ": "USA ",
"region ": "MI ",
"metro ": "563 ",
"zip ": "49512 ",
"type ": 2 ,
"utcoffset ": - 240 ,
"accuracy ": 2082
},
"ipv6 ": "2601 : 404 : d980 :: ",
"make ": "Apple ",
"model ": "iPhone14 , 7 ",
"os ": "iOS ",
"osv ": "17.4.1 ",
"connectiontype ": 2 ,
"devicetype ": 4 ,
"lmt ": 1 ,
"hwv ": "iPhone14 , 7 ",
"w ": 390 ,
"h ": 844 ,
"pxratio ": 3 ,
"sua ": {
"browsers ": [
{
"brand ": "Mozilla ",
"version ": [
"5 ",
"0 "
]
},
{
"brand ": "AppleWebKit ",
"version ": [
"605 ",
"1 "
]
}
],
"platform ": {
"brand ": "iPhone ",
"version ": [
"17 ",
"4 "
]
},
"mobile ": 1 ,
"bitness ": "64 ",
"model ": "iPhone ",
"source ": 3
},
"ext ": {
"atts ": 2
}
},
"at ": 1 ,
"tmax ": 300 ,
"cur ": [
"USD "
],
"source ": {
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
},
"ext ": {
"omidpn ": "Google ",
"omidpv ": "afma - sdk - i - v11 .2.0 ",
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
}
}
},
"ext ": {
"google_query_id ": "ANy - z62LCy - as7Eko7z4957U01DLmn1o5VEX66Mm2j8763ahN2zV77j721K17752LzuUR571 ",
"fcap_scope ": 4 ,
"privacy_treatments ": {
"allow_user_data_collection ": 1
}
}
}
Protobuf OpenRTB
Mostrami l'esempio
id : "38 V61KXKxB63Yk8o3G6P38 "
imp {
id : "1 "
banner {
w : 320
h : 50
pos : ABOVE_THE_FOLD
api : MRAID_1
api : MRAID_2
format {
w : 320
h : 50
}
}
displaymanager : "GoogleMobileAds - Android "
displaymanagerver : "22.6 . 0 "
tagid : "6163632333 "
bidfloor : 0.04
bidfloorcur : "USD "
secure : true
exp : 3600
clickbrowser : true
metric {
type : "click_through_rate "
value : 0.00265840464271605
vendor : "EXCHANGE "
}
metric {
type : "viewability "
value : 0.99
vendor : "EXCHANGE "
}
[ com . google . doubleclick . imp ] {
billing_id : 67427969102
publisher_settings_list_id : 4626521705809021216
publisher_settings_list_id : 8961571116051095682
allowed_vendor_type : 113
allowed_vendor_type : 566
ampad : AMP_AD_NOT_ALLOWED
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
auction_environment : SERVER_SIDE_AUCTION
ae : SERVER_SIDE_AUCTION
}
}
app {
name : "Test App "
bundle : "com . google . testapp "
publisher {
id : "pub - 2997181131115025 "
[ com . google . doubleclick . publisher ] {
country : "SG "
}
}
content {
url : "https :// www . google . com "
userrating : "4.5 "
livestream : false
language : "es "
}
storeurl : "https :// www . google . com "
[ com . google . doubleclick . app ] {
inventorypartnerdomain : "OMITTED "
}
}
device {
ua : "Mozilla /5.0 (Linux; Android 14; SM-G998U Build/UP1A.231005.007; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/123.0.6312.118 Mobile Safari/ 537.36 ( Mobile ; afma - sdk - a - v241358038 . 241358038.0 ) "
ip : "192.168 . 1.0 "
geo {
lat : 0.0
lon : 0.0
country : "SLV "
city : "Soyapango "
type : IP
utcoffset : - 360
accuracy : 2669
}
make : "Samsung "
model : "SM - G998U "
os : "android "
osv : "14 "
connectiontype : WIFI
devicetype : HIGHEND_PHONE
lmt : false
w : 384
h : 779
pxratio : 2.813
sua {
browsers {
brand : "Mozilla "
version : "5 "
version : "0 "
}
browsers {
brand : "AppleWebKit "
version : "537 "
version : "36 "
}
platform {
brand : "Android "
version : "14 "
}
mobile : true
bitness : "64 "
model : "SM - G998U "
source : USER_AGENT_STRING
}
}
at : FIRST_PRICE
tmax : 300
cur : "USD "
bcat : "IAB23 - 1 "
bcat : "IAB7 - 36 "
source {
schain {
complete : true
nodes {
asi : "testssp . com "
sid : "pub - 1111111111111111 "
hp : true
}
ver : "1.0 "
}
[ com . google . doubleclick . source ] {
omidpn : "Google "
omidpv : "afma - sdk - a - v240304999 . 234310000.1 "
schain {
complete : 1
nodes {
asi : "testssp . com "
sid : "pub - 1111111111111111 "
hp : 1
}
ver : "1.0 "
}
}
}
[ com . google . doubleclick . bid_request ] {
google_query_id : "ANy - z128zE - MC22DP3W65flJoxSet5n2U738TRR92N5E76wd7Bh38KuU08Tyt67or0Od0b3q "
fcap_scope : FREQUENCY_CAPPING_SCOPE_DEVICE
privacy_treatments {
allow_user_data_collection : true
}
}
Interstitial per app
Google
Mostrami l'esempio
id : "( \ 232 m \ 232 xp \ 035 \ 326 w \ 260 \ 250 \ 262 \ 205 \ r : \ 313 \ 373 : 3 \ 215 ! L \ 234 "
ip : "\ 300 \ 250 "
user_agent : "Mozilla / 5.0 ( iPhone ; CPU iPhone OS 16 _6_1 like Mac OS X ) AppleWebKit / 605.1.15 ( KHTML , like Gecko ) Mobile / 15 E148 "
url : "https : //www.google.com "
detected_language : "en "
adslot {
id : 1
width : 398
width : 320
height : 744
height : 480
excluded_attribute : 19
excluded_attribute : 18
allowed_vendor_type : 828
allowed_vendor_type : 4697
matching_ad_data {
billing_id : 37034094959
billing_id : 19705546350
minimum_cpm_micros : 200000
}
slot_visibility : ABOVE_THE_FOLD
ad_block_key : 7260775726
publisher_settings_list_id : 1906995857014069503
viewability : 91
click_through_rate : 0.021559697
allowed_ad_types : ALLOWED_AD_TYPE_BANNER
is_amp_page : DIALECT_HTML
amp_ad_requirement_type : AMP_AD_NOT_ALLOWED
api : OMID_1
api : MRAID_1
omidpn : "Google "
omidpv : "afma - sdk - i - v11 .2.0 "
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
auction_environment : SERVER_SIDE_AUCTION
impression_expiration_seconds : 14400
billable_event_rate_bid_adjustment {
bid_adjustment : 1.1087964
creative_type : HTML_SNIPPET
}
supported_auction_environment : SERVER_SIDE_AUCTION
display_manager : "GoogleMobileAds - iOS "
display_manager_version : "11.2.0 "
}
is_test : false
timezone_offset : 480
mobile {
app_id : "500811620 "
is_app : true
is_interstitial_request : true
app_name : "Test App "
skadn {
sourceapp : "500811620 "
skadnetids : "41 dEOEaD "
skadnetids : "580 dmbSX "
versions : "2.0 "
versions : "2.1 "
supported_fidelity_types : VIEW_THROUGH_ADS
supported_fidelity_types : STOREKIT_RENDERED_ADS
skoverlay : true
}
is_app_open_ad : true
}
geo_criteria_id : 20827
publisher_settings_list_id : 18428013069233776176
publisher_type : PUBLISHER_OWNED_AND_OPERATED
partner_id : 4672461785023090980
device {
device_type : HIGHEND_PHONE
platform : "iphone "
brand : "Apple "
model : "iPhone11 , 8 "
os_version {
major : 16
minor : 6
micro : 1
}
carrier_id : 0
screen_width : 414
screen_height : 896
screen_pixel_ratio_millis : 2000
screen_orientation : PORTRAIT
hardware_version : "iPhone11 , 8 "
limit_ad_tracking : true
app_tracking_authorization_status : NOT_DETERMINED
connection_type : WIFI
}
publisher_country : "SG "
publisher_id : "pub - 1111111111111111 "
response_deadline_ms : 1000
google_query_id : "ANy - z06138 - 98 U8A68As2n5q57SoKI3EBuB5RV414N6krfd385z0q1c9o28Bv3176Zw2LuJe "
auction_type : FIRST_PRICE
geo {
lat : 10.24
lon : 123.79
country : "PHL "
region : "PH - CEB "
utcoffset : 480
accuracy : 39443
}
user_agent_data {
platform {
brand : "iPhone "
version : "16 "
version : "6 "
}
mobile : true
model : "iPhone "
browsers {
brand : "Mozilla "
version : "5 "
version : "0 "
}
browsers {
brand : "AppleWebKit "
version : "605 "
version : "1 "
}
bitness : "64 "
source : USER_AGENT_STRING
}
supply_chain {
complete : true
nodes {
advertising_system_identifier : "testdomain . com "
seller_identifier : "pub - 1111111111111111 "
handles_payment : true
}
version : "1.0 "
}
frequency_capping_scope : FREQUENCY_CAPPING_SCOPE_APP
privacy_treatments {
allow_user_data_collection : true
}
inventory_partner_domain : "OMITTED "
JSON OpenRTB
Mostrami l'esempio
{
"id ": "8460 Dv0171574mt7n9tOQ9 ",
"imp ": [
{
"id ": "1 ",
"banner ": {
"w ": 428 ,
"h ": 846 ,
"pos ": 7 ,
"api ": [
3 ,
5
],
"format ": [
{
"w ": 428 ,
"h ": 846
},
{
"w ": 414 ,
"h ": 736
}
]
},
"displaymanager ": "GoogleMobileAds - iOS ",
"displaymanagerver ": "10.10.0 ",
"instl ": 1 ,
"tagid ": "4914454382 ",
"bidfloor ": 0.01 ,
"bidfloorcur ": "USD ",
"secure ": 1 ,
"exp ": 3600 ,
"clickbrowser ": 1 ,
"metric ": [
{
"type ": "click_through_rate ",
"value ": 0.560609757900238 ,
"vendor ": "EXCHANGE "
},
{
"type ": "viewability ",
"value ": 0.97 ,
"vendor ": "EXCHANGE "
}
],
"ext ": {
"billing_id ": [
73848702501
],
"publisher_settings_list_id ": [
9781603598081027997 ,
9488077458915289715
],
"allowed_vendor_type ": [
698 ,
414
],
"ampad ": 2 ,
"excluded_creatives ": [
{
"buyer_creative_id ": "EXCLUDED_BUYER_CREATIVE_ID "
},
{
"buyer_creative_id ": "EXCLUDED_BUYER_CREATIVE_ID "
}
],
"skadn ": {
"sourceapp ": "com . google . testapp ",
"skadnetids ": [
"43 D4r5x9 "
],
"versions ": [
"2.0 ",
"2.1 "
],
"fidelities ": [
0 ,
1
],
"skoverlay ": 1
},
"creative_enforcement_settings ": {
"policy_enforcement ": 2 ,
"publisher_blocks_enforcement ": 1
},
"auction_environment ": 0 ,
"ae ": 0
}
}
],
"app ": {
"name ": "Test App ",
"bundle ": "com . google . testapp ",
"publisher ": {
"id ": "pub - 5842596021161378 ",
"ext ": {
"country ": "IN "
}
},
"content ": {
"url ": "https : //www.google.com",
"livestream ": 0 ,
"language ": "en "
},
"storeurl ": "https : //www.google.com",
"ext ": {
"inventorypartnerdomain ": "OMITTED "
}
},
"device ": {
"ua ": "Mozilla / 5.0 ( iPhone ; CPU iPhone OS 17 _4_1 like Mac OS X ) AppleWebKit / 605.1.15 ( KHTML , like Gecko ) Mobile / 15 E148 ",
"geo ": {
"lat ": 0.0 ,
"lon ": 0.0 ,
"country ": "SAU ",
"region ": "SA - 02 ",
"city ": "Jiddah ",
"zip ": "23462 ",
"type ": 2 ,
"utcoffset ": 180 ,
"accuracy ": 1291
},
"ipv6 ": "2 a02 : 9 b0 : 4047 :: ",
"carrier ": "71681 ",
"make ": "Apple ",
"model ": "iPhone14 , 8 ",
"os ": "iOS ",
"osv ": "17.4.1 ",
"connectiontype ": 6 ,
"devicetype ": 4 ,
"lmt ": 1 ,
"hwv ": "iPhone14 , 8 ",
"w ": 428 ,
"h ": 926 ,
"pxratio ": 3 ,
"sua ": {
"browsers ": [
{
"brand ": "Mozilla ",
"version ": [
"5 ",
"0 "
]
},
{
"brand ": "AppleWebKit ",
"version ": [
"605 ",
"1 "
]
}
],
"platform ": {
"brand ": "iPhone ",
"version ": [
"17 ",
"4 "
]
},
"mobile ": 1 ,
"bitness ": "64 ",
"model ": "iPhone ",
"source ": 3
},
"ext ": {
"atts ": 2
}
},
"at ": 1 ,
"tmax ": 1000 ,
"cur ": [
"USD "
],
"bcat ": [
"IAB23 - 4 ",
"IAB18 - 5 "
],
"source ": {
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
},
"ext ": {
"omidpn ": "Google ",
"omidpv ": "afma - sdk - i - v10 .10.0 ",
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
}
}
},
"ext ": {
"google_query_id ": "ANy - z562Q0 - p46Tz77U15Ie9774Mnu3QIa45V73X99r9NR1694g5301D186q8ZFJ57Ja8L78 ",
"fcap_scope ": 4 ,
"privacy_treatments ": {
"allow_user_data_collection ": 1
}
}
}
Protobuf OpenRTB
Mostrami l'esempio
id : "3 Sh9IsB712x9QzGDA1k93z "
imp {
id : "1 "
banner {
w : 360
h : 711
pos : AD_POSITION_FULLSCREEN
battr : VIDEO_IN_BANNER_AUTO_PLAY
battr : VIDEO_IN_BANNER_USER_INITIATED
api : MRAID_1
api : MRAID_2
format {
w : 360
h : 711
}
format {
w : 360
h : 640
}
}
displaymanager : "GoogleMobileAds - Android "
displaymanagerver : "21.3 . 0 "
instl : true
tagid : "8679500107 "
bidfloor : 0.02
bidfloorcur : "USD "
secure : true
exp : 14400
clickbrowser : true
metric {
type : "viewability "
value : 0.9
vendor : "EXCHANGE "
}
metric {
type : "session_depth "
value : 99.0
vendor : "EXCHANGE "
}
[ com . google . doubleclick . imp ] {
billing_id : 42834631855
ampad : AMP_AD_NOT_ALLOWED
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
auction_environment : SERVER_SIDE_AUCTION
ae : SERVER_SIDE_AUCTION
}
}
app {
name : "Test App "
bundle : "com . google . testapp "
publisher {
id : "pub - 8815040790812473 "
[ com . google . doubleclick . publisher ] {
country : "SG "
}
}
content {
url : "https :// www . google . com "
userrating : "4.6 "
livestream : false
language : "id "
}
storeurl : "https :// www . google . com "
[ com . google . doubleclick . app ] {
inventorypartnerdomain : "OMITTED "
}
}
device {
ua : "Dalvik /2.1.0 (Linux; U; Android 11; in-; RMX1971 Build/ RKQ1 . 201217.002 ) "
ip : "192.168 . 1.0 "
geo {
lat : 0.0
lon : 0.0
country : "IDN "
region : "ID - SS "
city : "Palembang "
type : IP
utcoffset : 420
accuracy : 7498
}
make : "Realme "
model : "RMX1971 "
os : "android "
osv : "11 "
connectiontype : CELL_4G
devicetype : HIGHEND_PHONE
ifa : "b \'\\ xa9>3 \\ xa2 \\ xbb \\ x95 \\ x8dIQq \\ xd0 \\ x8f \\ xee \\ xc1k }\ '"
lmt : false
w : 360
h : 711
pxratio : 3.0
sua {
browsers {
brand : "Dalvik "
version : "2 "
version : "1 "
}
platform {
brand : "Android "
version : "11 "
}
mobile : true
model : "RMX1971 "
source : USER_AGENT_STRING
}
}
user {
id : "21 QP3H9IaS263665PMP52FIes26 "
}
at : FIRST_PRICE
tmax : 300
cur : "USD "
source {
schain {
complete : true
nodes {
asi : "testssp . com "
sid : "pub - 1111111111111111 "
hp : true
}
ver : "1.0 "
}
[ com . google . doubleclick . source ] {
omidpn : "Google "
omidpv : "afma - sdk - a - v240304999 . 223104000.1 "
schain {
complete : 1
nodes {
asi : "testssp . com "
sid : "pub - 1111111111111111 "
hp : 1
}
ver : "1.0 "
}
}
}
[ com . google . doubleclick . bid_request ] {
google_query_id : "ANy - z52N8Y - VzuCT3Q7jr9Ixx3iR4pM1bm1q84NyH1tMMtV9SSO7y83u6Ec3xlaf1563Tt5k "
fcap_scope : FREQUENCY_CAPPING_SCOPE_DEVICE
privacy_treatments {
allow_user_data_collection : true
}
}
Video interstitial per app
Google
Mostrami l'esempio
id : "% w \ 237 \ 340 \ 331 q \ 305 e \ 350 \ 324 \ 017 Ho \ 274 f \ 177 #\ 316 \ 231 \ 004 \ 024 y "
ip : "\ 300 \ 250 "
user_agent : "Mozilla / 5.0 ( iPhone ; CPU iPhone OS 16 _5 like Mac OS X ) AppleWebKit / 605.1.15 ( KHTML , like Gecko ) Mobile / 15 E148 "
url : "https : //www.google.com "
detected_language : "te "
adslot {
id : 1
width : 1170
width : 768
height : 2532
height : 1024
excluded_attribute : 17
excluded_attribute : 26
allowed_vendor_type : 797
allowed_vendor_type : 38523
matching_ad_data {
billing_id : 82632801525
billing_id : 33577396948
minimum_cpm_micros : 200000
}
slot_visibility : ABOVE_THE_FOLD
ad_block_key : 8662832267
publisher_settings_list_id : 1529810617400603626
viewability : 99
click_through_rate : 0.75363326
video_completion_rate : 0.07627885
is_rewarded : true
allowed_ad_types : ALLOWED_AD_TYPE_VIDEO
is_amp_page : DIALECT_HTML
amp_ad_requirement_type : AMP_AD_NOT_ALLOWED
api : MRAID_1
api : MRAID_2
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
auction_environment : SERVER_SIDE_AUCTION
impression_expiration_seconds : 3600
supported_auction_environment : SERVER_SIDE_AUCTION
display_manager : "GoogleMobileAds - iOS "
display_manager_version : "7.55.0 "
}
is_test : false
timezone_offset : 300
mobile {
app_id : "734009722 "
is_app : true
is_interstitial_request : true
app_name : "Test App "
}
video {
videoad_start_delay : 0
max_ad_duration : 30000
video_ad_skippable : BLOCK_SKIPPABLE
allowed_video_formats : VIDEO_MP4
max_ads_in_pod : 2
end_cap_support : END_CAP_OPTIONAL
playback_method : CLICK_TO_PLAY
is_clickable : true
placement : INTERSTITIAL
protocols : VAST_2_0
protocols : VAST_3_0
is_livestream : false
playback_cessation_mode : COMPLETION_OR_USER
max_pod_duration_seconds : 30
plcmt : PLCMT_INTERSTITIAL
inferred_plcmt : PLCMT_INTERSTITIAL
}
geo_criteria_id : 2392
publisher_settings_list_id : 7852789180056851229
publisher_type : PUBLISHER_OWNED_AND_OPERATED
partner_id : 7934642581646184119
device {
device_type : HIGHEND_PHONE
platform : "iphone "
brand : "Apple "
model : "iPhone13 , 2 "
os_version {
major : 16
minor : 5
}
carrier_id : 0
screen_width : 1170
screen_height : 2532
screen_pixel_ratio_millis : 3000
screen_orientation : PORTRAIT
hardware_version : "iPhone13 , 2 "
limit_ad_tracking : false
connection_type : WIFI
}
publisher_country : "US "
publisher_id : "pub - 1111111111111111 "
response_deadline_ms : 1000
google_query_id : "ANy - zz7hC6 - w4hX445M724Cr7459S5M13Rw47SH672s9ygi8d8H1LN21ky6939KaU50lQsJR "
auction_type : FIRST_PRICE
geo {
lat : 36.2
lon : 138.25
country : "JPN "
utcoffset : 300
accuracy : 463340
}
user_agent_data {
platform {
brand : "iPhone "
version : "16 "
version : "5 "
}
mobile : true
model : "iPhone "
browsers {
brand : "Mozilla "
version : "5 "
version : "0 "
}
browsers {
brand : "AppleWebKit "
version : "605 "
version : "1 "
}
bitness : "64 "
source : USER_AGENT_STRING
}
supply_chain {
complete : true
nodes {
advertising_system_identifier : "testdomain . com "
seller_identifier : "pub - 1111111111111111 "
handles_payment : true
}
version : "1.0 "
}
frequency_capping_scope : FREQUENCY_CAPPING_SCOPE_NONE
privacy_treatments {
allow_user_data_collection : true
}
inventory_partner_domain : "OMITTED "
Protobuf OpenRTB
Mostrami l'esempio
id : "378836 oi92t144hpA8Nv3X "
imp {
id : "1 "
video {
mimes : "video / mp4 "
maxduration : 60
w : 375
h : 667
startdelay : 0
playbackmethod : AUTO_PLAY_SOUND_ON
pos : ABOVE_THE_FOLD
api : MRAID_1
api : MRAID_2
protocols : VAST_2_0
protocols : VAST_3_0
skip : false
placement : UNDEFINED_VIDEO_PLACEMENT
playbackend : COMPLETION_OR_USER
}
displaymanager : "GOOGLE "
instl : true
tagid : "4107980261 "
bidfloor : 0.01
bidfloorcur : "USD "
secure : true
metric {
type : "click_through_rate "
value : 0.0364835150539875
vendor : "EXCHANGE "
}
metric {
type : "video_completion_rate "
value : 0.02888789027929306
vendor : "EXCHANGE "
}
[ com . google . doubleclick . imp ] {
billing_id : 80831705186
publisher_settings_list_id : 2080323352414623499
publisher_settings_list_id : 2258624117197706769
allowed_vendor_type : 342
allowed_vendor_type : 698
is_rewarded_inventory : true
ampad : AMP_AD_NOT_ALLOWED
skadn {
version : "2.2 "
sourceapp : "532115234 "
skadnetids : "E499wc36 "
versions : "2.0 "
versions : "2.1 "
fidelities : STOREKIT_RENDERED_ADS
fidelities : VIEW_THROUGH_ADS
}
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
is_default : true
}
auction_environment : SERVER_SIDE_AUCTION
}
}
app {
name : "Test App "
bundle : "532115234 "
publisher {
id : "pub - 8927593002710190 "
[ com . google . doubleclick . publisher ] {
country : "CN "
}
}
content {
url : "https :// www . google . com "
livestream : false
language : "zh "
}
storeurl : "https :// www . google . com "
[ com . google . doubleclick . app ] {
}
}
device {
ua : "Mozilla /5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/ 15 E148 "
ip : "192.168 . 1.0 "
geo {
lat : 0.0
lon : 0.0
country : "CHN "
region : "CN - 33 "
city : "Hangzhou "
type : IP
accuracy : 44240
}
carrier : "70120 "
make : "apple "
model : "iphone "
os : "iOS "
osv : "15.4 . 4 "
devicetype : HIGHEND_PHONE
lmt : true
hwv : "8 "
w : 375
h : 667
pxratio : 2.0
[ com . google . doubleclick . device ] {
user_agent_data {
platform {
brand : "iPhone "
version : "15 "
version : "4 "
}
mobile : true
model : "iPhone "
}
atts : 2
}
}
user {
[ com . google . doubleclick . user ] {
}
}
at : FIRST_PRICE
tmax : 300
cur : "USD "
source {
[ com . google . doubleclick . source ] {
omidpn : "Google "
omidpv : "afma - sdk - i - v8 . 12.0 "
schain {
complete : 1
nodes {
asi : "google . com "
sid : "pub - 4000453616931440 "
hp : 1
}
ver : "1.0 "
}
}
}
[ com . google . doubleclick . bid_request ] {
google_query_id : "ANy - zp09u8 - d20rQ521040dqz39K771Lr9102b031Z15C45Q9q7AB414SnDWG5Rj96Z77W66 "
}
Nativo dell'app
Google
Mostrami l'esempio
id : "\ 304 a \ 2145 \ 337 \ 260 \ 351 \ 265 \ 0170 E \ 035 s \ 260 \ 203 \ 240 \ 3645 M \ 213 d \ 231 ) "
ip : "\ 300 \ 250 "
user_agent : "Mozilla / 5.0 ( Linux ; Android 14 ; SM - F711B Build / UP1A .231005.007 ; wv ) AppleWebKit / 537.36 ( KHTML , like Gecko ) Version / 4.0 Chrome / 123.0.6312.118 Mobile Safari / 537.36 ( Mobile ; afma - sdk - a - v241517039 .241517039.0 ) "
url : "https : //www.google.com "
detected_language : "nl "
adslot {
id : 1
excluded_attribute : 25
excluded_attribute : 114
allowed_vendor_type : 42
allowed_vendor_type : 79
excluded_sensitive_category : 36
excluded_sensitive_category : 27
matching_ad_data {
billing_id : 32132054378
billing_id : 19164334712
minimum_cpm_micros : 1450000
}
matching_ad_data {
billing_id : 13390832794
billing_id : 80810593642
minimum_cpm_micros : 78120000
}
slot_visibility : ABOVE_THE_FOLD
excluded_product_category : 10137
excluded_product_category : 10231
ad_block_key : 5513314873
publisher_settings_list_id : 3686438009801411181
publisher_settings_list_id : 2386502705811569074
allowed_restricted_category : 33
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
viewability : 81
allowed_restricted_category_for_deals : 33
click_through_rate : 0.026668096
allowed_languages : "en "
allowed_languages : "nl "
allowed_ad_types : ALLOWED_AD_TYPE_NATIVE
is_amp_page : DIALECT_HTML
amp_ad_requirement_type : AMP_AD_NOT_ALLOWED
session_depth : 166
consented_providers_settings {
tcf_consent_string : "OMITTED "
additional_consent_string : "OMITTED "
}
regs_gdpr : true
api : MRAID_1
api : MRAID_2
native_ad_template {
required_fields : 27
recommended_fields : 36
headline_max_safe_length : 25
body_max_safe_length : 90
call_to_action_max_safe_length : 15
advertiser_max_safe_length : 25
image_width : 800
image_height : 800
logo_width : 200
logo_height : 200
}
native_ad_template {
required_fields : 83
recommended_fields : 388
headline_max_safe_length : 25
body_max_safe_length : 90
call_to_action_max_safe_length : 15
image_width : 1200
image_height : 627
app_icon_width : 100
app_icon_height : 100
}
omidpn : "Google "
omidpv : "afma - sdk - a - v240304999 .234310000.1 "
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
auction_environment : SERVER_SIDE_AUCTION
impression_expiration_seconds : 3600
supported_auction_environment : SERVER_SIDE_AUCTION
display_manager : "GoogleMobileAds - Android "
display_manager_version : "22.6.0 "
}
is_test : false
cookie_version : 1
google_user_id : "7 L986AX24bG4ANQ91i8sd54fB22 "
timezone_offset : 120
mobile {
app_id : "com . google . testapp "
is_app : true
encrypted_advertising_id : "\ 341 \ 220 \ 325 \ 205 % \ 025 \ 246 _ / \ 307 \ 374 fy \ 2062 \ 270 \ 270 \ 204 X \ 230 \ 210 @ h \ 272 \ 344 \ 177 \ 370 \ 253 e \ 367 \ 262 i = U \ 030 $ "
app_name : "Test App "
app_rating : 4.0450907
advertising_id : "\ 315 \ 361 Ro $ | \ 362 I \ 355 \ 261 : \ 265 Z \ 300 @\ 242 "
}
cookie_age_seconds : 2592000
postal_code : "10011 "
geo_criteria_id : 1001092
encrypted_hyperlocal_set : "\ 275 \ 237 \ 311 : \ 263 \ 326 \ 270 h \ 337 ^ \ 013 ` / m \ 316 \ 330 \ 036 \ 007 \ 313 \ 265 \ 346 \ 351 \ 275 \ 346 <U \ 344 # a \ 376 \ 301 \ 342 \ 270 \ 303 \ 2767 \ 310 j % \ 327 \ 351 aA \ 312 \ 200 \ 247 ] IQ \ 241 \ 341 L \ 2431 \ 215 <\ 377 \ 033 V \ 310 \ 230 \ 305 \ 371 \ 025 \ 032 K \ 365 \ 372 \ 3365 p | \ 353 \ 216 \ 251 JSf \ 364 \ 367 \ 220 H \ 232 \ 342 Cq \ 256 \ 206 <\ 236 \ 311 "
bid_response_feedback {
request_id : "\ 253 \ 245 \ 326 \ 202 \ 206 \ 303 q \ 202 \ 307 \ 016 \ 257 \ 236 \ 317 \ rL \ 250 "
creative_status_code : 80
event_notification_token : "token "
buyer_creative_id : "test_creative_id_658408 "
minimum_bid_to_win : 120000
feedback_type : BID_FEEDBACK
}
publisher_type : PUBLISHER_OWNED_AND_OPERATED
hyperlocal_set {
hyperlocal {
corners {
latitude : 0.0
longitude : 0.0
}
corners {
latitude : 0.0
longitude : 0.0
}
corners {
latitude : 0.0
longitude : 0.0
}
corners {
latitude : 0.0
longitude : 0.0
}
}
center_point {
latitude : 0.0
longitude : 0.0
}
}
device {
device_type : HIGHEND_PHONE
platform : "android "
brand : "Samsung "
model : "SM - F711B "
os_version {
major : 14
}
carrier_id : 0
screen_width : 360
screen_height : 801
screen_pixel_ratio_millis : 3000
screen_orientation : PORTRAIT
limit_ad_tracking : false
connection_type : WIFI
}
publisher_country : "BE "
publisher_id : "pub - 1111111111111111 "
response_deadline_ms : 300
google_query_id : "ANy - z01131 - SRYIYklKNjC6Iw9Z99Jt2713Cf3WC111fe9wZa3e2wB0yC6A51Bt0R4x25142 "
auction_type : FIRST_PRICE
geo {
lat : 50.89
lon : 4.28
country : "BEL "
region : "BE - VBR "
city : "Asse "
zip : "1731 "
utcoffset : 120
accuracy : 2191
}
user_agent_data {
platform {
brand : "Android "
version : "14 "
}
mobile : true
model : "SM - F711B "
browsers {
brand : "Mozilla "
version : "5 "
version : "0 "
}
browsers {
brand : "AppleWebKit "
version : "537 "
version : "36 "
}
bitness : "64 "
source : USER_AGENT_STRING
}
supply_chain {
complete : true
nodes {
advertising_system_identifier : "testdomain . com "
seller_identifier : "pub - 1111111111111111 "
handles_payment : true
}
nodes {
advertising_system_identifier : "testdomain . com "
seller_identifier : "pub - 1111111111111111 "
handles_payment : true
}
version : "1.0 "
}
frequency_capping_scope : FREQUENCY_CAPPING_SCOPE_DEVICE
privacy_treatments {
allow_user_data_collection : false
}
inventory_partner_domain : "OMITTED "
JSON OpenRTB
Mostrami l'esempio
{
"id ": "IDnDvM76w32NI830aSeOLg ",
"imp ": [
{
"id ": "1 ",
"displaymanager ": "GoogleMobileAds - iOS ",
"displaymanagerver ": "10.14.0 ",
"tagid ": "8614649788 ",
"bidfloor ": 1.63 ,
"bidfloorcur ": "USD ",
"secure ": 1 ,
"native ": {
"request ": "{ \ "ver \ ": \ "1.2 \ ", \ "assets \ ":[{ \ "id \ ": 1 , \ "required \ ": 1 , \ "title \ ":{ \ "len \ ": 25 }},{ \ "id \ ": 2 , \ "required \ ": 1 , \ "data \ ":{ \ "type \ ": 2 , \ "len \ ": 90 }},{ \ "id \ ": 3 , \ "data \ ":{ \ "type \ ": 12 , \ "len \ ": 15 }},{ \ "id \ ": 4 , \ "required \ ": 1 , \ "data \ ":{ \ "type \ ": 1 , \ "len \ ": 25 }},{ \ "id \ ": 5 , \ "required \ ": 1 , \ "img \ ":{ \ "type \ ": 3 , \ "wmin \ ": 1200 , \ "hmin \ ": 627 }},{ \ "id \ ": 6 , \ "img \ ":{ \ "type \ ": 2 , \ "wmin \ ": 100 , \ "hmin \ ": 100 }}], \ "eventtrackers \ ":[{ \ "event \ ": 1 , \ "methods \ ":[ 1 ]}]}",
"ver ": "1.2 ",
"api ": [
3 ,
5
],
"battr ": [
6 ,
7
]
},
"exp ": 14400 ,
"clickbrowser ": 1 ,
"metric ": [
{
"type ": "viewability ",
"value ": 0.66 ,
"vendor ": "EXCHANGE "
},
{
"type ": "session_depth ",
"value ": 1 ,
"vendor ": "EXCHANGE "
}
],
"ext ": {
"billing_id ": [
30567639040
],
"publisher_settings_list_id ": [
9263869437120754969 ,
6380991891694941170
],
"allowed_vendor_type ": [
42 ,
144
],
"ampad ": 2 ,
"excluded_creatives ": [
{
"buyer_creative_id ": "EXCLUDED_BUYER_CREATIVE_ID "
},
{
"buyer_creative_id ": "EXCLUDED_BUYER_CREATIVE_ID "
}
],
"skadn ": {
"sourceapp ": "com . google . testapp ",
"skadnetids ": [
"345 vh5bv "
],
"versions ": [
"2.0 ",
"2.1 "
],
"fidelities ": [
1 ,
0
]
},
"creative_enforcement_settings ": {
"policy_enforcement ": 2 ,
"publisher_blocks_enforcement ": 1
},
"auction_environment ": 0 ,
"ae ": 0
}
}
],
"app ": {
"name ": "Test App ",
"bundle ": "com . google . testapp ",
"publisher ": {
"id ": "pub - 5146744635924393 ",
"ext ": {
"country ": "US "
}
},
"content ": {
"url ": "https : //www.google.com",
"livestream ": 0 ,
"language ": "en "
},
"storeurl ": "https : //www.google.com",
"ext ": {
"inventorypartnerdomain ": "OMITTED "
}
},
"device ": {
"ua ": "Mozilla / 5.0 ( iPhone ; CPU iPhone OS 17 _4_1 like Mac OS X ) AppleWebKit / 605.1.15 ( KHTML , like Gecko ) Mobile / 15 E148 PrebidMobile / 2.0.4 ",
"ip ": "192.168.1.0 ",
"geo ": {
"lat ": 0.0 ,
"lon ": 0.0 ,
"country ": "USA ",
"region ": "WA ",
"metro ": "881 ",
"city ": "Quincy ",
"zip ": "98848 ",
"type ": 2 ,
"utcoffset ": - 420 ,
"accuracy ": 19022
},
"make ": "Apple ",
"model ": "iPhone15 , 3 ",
"os ": "iOS ",
"osv ": "17.4.1 ",
"connectiontype ": 2 ,
"devicetype ": 4 ,
"ifa ": "76 RVV351f5D7z7905j9Dhy5kawZNAvn548d3 ",
"lmt ": 0 ,
"hwv ": "iPhone15 , 3 ",
"w ": 430 ,
"h ": 932 ,
"pxratio ": 3 ,
"sua ": {
"browsers ": [
{
"brand ": "Mozilla ",
"version ": [
"5 ",
"0 "
]
},
{
"brand ": "AppleWebKit ",
"version ": [
"605 ",
"1 "
]
}
],
"platform ": {
"brand ": "iPhone ",
"version ": [
"17 ",
"4 "
]
},
"mobile ": 1 ,
"bitness ": "64 ",
"model ": "iPhone ",
"source ": 3
},
"ext ": {
"atts ": 3
}
},
"user ": {
"id ": "V3G2P745W97j342y3bgMZzO8B19 ",
"ext ": {
"session ": {
"duration ": 14
}
}
},
"at ": 1 ,
"tmax ": 300 ,
"cur ": [
"USD "
],
"bcat ": [
"IAB23 - 1 ",
"IAB9 "
],
"bapp ": [
"1427744264 "
],
"source ": {
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
},
"ext ": {
"omidpn ": "Google ",
"omidpv ": "afma - sdk - i - v10 .14.0 ",
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
}
}
},
"ext ": {
"google_query_id ": "ANy - z70v0W - 6 x9m76YuuU237u44yc6fL3Ouo00tZhzmz1rL58xQr1V6tg59Qu5j2f4LEMbPZ ",
"fcap_scope ": 3 ,
"privacy_treatments ": {
"allow_user_data_collection ": 1
}
}
}
Protobuf OpenRTB
Mostrami l'esempio
id : "5 P52J8388TSRzc920ct7p5 "
imp {
id : "1 "
displaymanager : "GoogleMobileAds - iOS "
displaymanagerver : "10.14 . 0 "
tagid : "6553352351 "
bidfloor : 0.03
bidfloorcur : "USD "
secure : true
native {
ver : "1.2 "
api : MRAID_1
api : MRAID_2
battr : VIDEO_IN_BANNER_AUTO_PLAY
battr : VIDEO_IN_BANNER_USER_INITIATED
request_native {
ver : "1.2 "
assets {
id : 1
required : true
title {
len : 25
}
}
assets {
id : 2
required : true
data {
type : DESC
len : 90
}
}
assets {
id : 3
data {
type : CTATEXT
len : 15
}
}
assets {
id : 4
required : true
data {
type : SPONSORED
len : 25
}
}
assets {
id : 5
required : true
img {
type : MAIN
wmin : 1200
hmin : 627
}
}
assets {
id : 6
img {
type : LOGO
wmin : 100
hmin : 100
}
}
eventtrackers {
event : IMPRESSION
methods : IMG
}
}
}
exp : 3600
clickbrowser : true
metric {
type : "viewability "
value : 0.39
vendor : "EXCHANGE "
}
metric {
type : "session_depth "
value : 1.0
vendor : "EXCHANGE "
}
[ com . google . doubleclick . imp ] {
billing_id : 52078759229
billing_id : 88594274551
publisher_settings_list_id : 5866545268236998203
publisher_settings_list_id : 3494845642358232123
allowed_vendor_type : 42
allowed_vendor_type : 79
ampad : AMP_AD_NOT_ALLOWED
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
skadn {
sourceapp : "com . google . testapp "
skadnetids : "200 O3kQr "
versions : "2.0 "
versions : "2.1 "
fidelities : STOREKIT_RENDERED_ADS
fidelities : VIEW_THROUGH_ADS
}
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
auction_environment : SERVER_SIDE_AUCTION
ae : SERVER_SIDE_AUCTION
}
}
app {
name : "Test App "
bundle : "com . google . testapp "
publisher {
id : "pub - 9816179305584184 "
[ com . google . doubleclick . publisher ] {
country : "LU "
}
}
content {
url : "https :// www . google . com "
livestream : false
language : "uk "
}
storeurl : "https :// www . google . com "
[ com . google . doubleclick . app ] {
inventorypartnerdomain : "OMITTED "
}
}
device {
ua : "Mozilla /5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/ 15 E148 "
geo {
lat : 0.0
lon : 0.0
country : "UKR "
region : "UA - 46 "
city : "L \ 'viv "
zip : "79000 "
type : IP
utcoffset : 180
accuracy : 6246
[ com . google . doubleclick . geo ] {
geo_criteria_id : 1012859
}
}
ipv6 : "2 a02 : 2378 : 106 a :: "
carrier : "71710 "
make : "Apple "
model : "iPhone12 , 1 "
os : "iOS "
osv : "17.4 . 1 "
connectiontype : CELL_4G
devicetype : HIGHEND_PHONE
ifa : "b \'\\ t : >vF \\ xb9 \\ x9e4 \\ x86k \\ xde \\ x99 \\ xbe \\ xb6 \\ x88 \\ x83 \ '"
lmt : false
hwv : "iPhone12 , 1 "
w : 414
h : 896
pxratio : 2.0
sua {
browsers {
brand : "Mozilla "
version : "5 "
version : "0 "
}
browsers {
brand : "AppleWebKit "
version : "605 "
version : "1 "
}
platform {
brand : "iPhone "
version : "17 "
version : "4 "
}
mobile : true
bitness : "64 "
model : "iPhone "
source : USER_AGENT_STRING
}
[ com . google . doubleclick . device ] {
atts : 3
}
}
user {
id : "8 Er98D3U5PK59538kL30LhIZkab "
}
at : FIRST_PRICE
tmax : 300
cur : "USD "
bcat : "IAB7 - 39 "
bcat : "IAB9 "
bapp : "1038653883 "
bapp : "372513032 "
source {
schain {
complete : true
nodes {
asi : "testssp . com "
sid : "pub - 1111111111111111 "
hp : true
}
ver : "1.0 "
}
[ com . google . doubleclick . source ] {
omidpn : "Google "
omidpv : "afma - sdk - i - v10 . 14.0 "
schain {
complete : 1
nodes {
asi : "testssp . com "
sid : "pub - 1111111111111111 "
hp : 1
}
ver : "1.0 "
}
}
}
[ com . google . doubleclick . bid_request ] {
google_query_id : "ANy - z0n8D1 - K6FKO2zNI26Z4yp738UAjYOUTxw2V054413Lpv107q2A97RS96j68N9J53N9K "
fcap_scope : FREQUENCY_CAPPING_SCOPE_DEVICE
privacy_treatments {
allow_user_data_collection : false
}
}
Video sul Web
Google
Mostrami l'esempio
id : "\ 350 \ 243 \ 202 \ 2349 \ 243 \ 014 \ 244 \ 372 \ 020 Y ; \ r \ 007 \ 031 \ 214 { \ 232 \ 261 \ 3752 % \ 035 "
ip : "\ 300 \ 250 "
user_agent : "Mozilla / 5.0 ( iPhone ; CPU iPhone OS 14 _8_1 like Mac OS X ) AppleWebKit / 605.1.15 ( KHTML , like Gecko ) Version / 14.1.2 Mobile / 15 E148 Safari / 604.1 "
url : "https : //www.google.com "
detected_language : "ja "
adslot {
id : 1
width : 320
width : 360
height : 570
height : 592
excluded_attribute : 19
excluded_attribute : 13
allowed_vendor_type : 3
allowed_vendor_type : 42
excluded_sensitive_category : 36
excluded_sensitive_category : 4
matching_ad_data {
billing_id : 34223090460
minimum_cpm_micros : 16000000
direct_deal {
direct_deal_id : 17775265
fixed_cpm_micros : 16000000
deal_type : AUCTION_PACKAGE
}
}
matching_ad_data {
billing_id : 86280326995
billing_id : 71601885715
minimum_cpm_micros : 120000
}
slot_visibility : NO_DETECTION
excluded_product_category : 10137
excluded_product_category : 10609
ad_block_key : 5853321589
publisher_settings_list_id : 2539996898654608860
publisher_settings_list_id : 7335705698915428874
allowed_restricted_category : 33
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
iframing_state : UNKNOWN_IFRAME_STATE
viewability : 100
allowed_restricted_category_for_deals : 33
click_through_rate : 0.5914875
renderer : GOOGLE
is_rewarded : true
allowed_ad_types : ALLOWED_AD_TYPE_VIDEO
is_amp_page : DIALECT_HTML
amp_ad_requirement_type : AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
auction_environment : SERVER_SIDE_AUCTION
impression_expiration_seconds : 3600
}
is_test : false
mobile {
is_app : false
is_mobile_web_optimized : true
}
video {
video_ad_skippable : ALLOW_SKIPPABLE
allowed_video_formats : VIDEO_MP4
playback_method : CLICK_TO_PLAY
is_clickable : true
placement : INTERSTITIAL
protocols : VAST_2_0
protocols : VAST_3_0
playback_cessation_mode : COMPLETION_OR_USER
}
geo_criteria_id : 1009310
seller_network_id : 4766
bid_response_feedback {
request_id : "\ 327 ( \ 005 >\ 257 u \ 241 U ~ \ 350 s \ 211 \ 010 \ 3615 \ 334 "
creative_status_code : 80
event_notification_token : "token "
buyer_creative_id : "test_creative_id_702979 "
minimum_bid_to_win : 328000000
}
publisher_type : PUBLISHER_OWNED_AND_OPERATED
device {
device_type : HIGHEND_PHONE
platform : "iphone "
brand : "apple "
model : "iphone "
os_version {
major : 14
minor : 8
micro : 1
}
carrier_id : 0
screen_width : 375
screen_height : 667
screen_pixel_ratio_millis : 2000
limit_ad_tracking : false
}
publisher_country : "JP "
publisher_id : "pub - 1111111111111111 "
response_deadline_ms : 300
google_query_id : "ANy - zd34Gv - NJ6B8Zsd8j4NV0r6F8P69920cL9Q88372fjS7EO9DQZ9Y69qUQ2l6L8R2M903 "
auction_type : FIRST_PRICE
geo {
lat : 35.69
lon : 139.7
country : "JPN "
region : "JP - 13 "
city : "Shinjuku "
accuracy : 2852
}
user_agent_data {
platform {
brand : "iPhone "
version : "14 "
version : "8 "
}
mobile : true
model : "iPhone "
browsers {
brand : "Mozilla "
version : "5 "
version : "0 "
}
browsers {
brand : "AppleWebKit "
version : "605 "
version : "1 "
}
bitness : "64 "
}
page_visibility : VISIBILITY_STATE_VISIBLE
supply_chain {
complete : true
nodes {
advertising_system_identifier : "google . com "
seller_identifier : "pub - 1111111111111111 "
handles_payment : true
}
version : "1.0 "
}
frequency_capping_scope : FREQUENCY_CAPPING_SCOPE_SITE
privacy_treatments {
allow_user_data_collection : true
}
inventory_partner_domain : "OMITTED "
Banner web mobile per lo strumento di offerta della piattaforma di scambio pubblicitario
Protobuf OpenRTB
Mostrami l'esempio
id : "6 gXB0gc0938Ow444j0j623 "
imp {
id : "1 "
banner {
w : 320
h : 50
pos : ABOVE_THE_FOLD
expdir : LEFT
expdir : RIGHT
expdir : UP
expdir : DOWN
format {
w : 320
h : 50
}
format {
w : 300
h : 50
}
}
tagid : "7128811473 "
bidfloor : 0.01
bidfloorcur : "USD "
secure : true
exp : 3600
metric {
type : "click_through_rate "
value : 0.00012312238686718047
vendor : "EXCHANGE "
}
metric {
type : "viewability "
value : 0.98
vendor : "EXCHANGE "
}
[ com . google . doubleclick . imp ] {
billing_id : 46483683815
dfp_ad_unit_code : "/3253397/google/ test "
ampad : AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID "
}
open_bidding {
is_open_bidding : true
}
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_OVERRIDDEN
}
auction_environment : SERVER_SIDE_AUCTION
ae : SERVER_SIDE_AUCTION
}
}
site {
page : "https :// www . google . com "
publisher {
id : "pub - 1111111111111111 "
[ com . google . doubleclick . publisher ] {
country : "US "
}
}
content {
livestream : false
language : "en "
}
mobile : true
[ com . google . doubleclick . site ] {
amp : DIALECT_HTML
page_visibility : VISIBILITY_STATE_VISIBLE
inventorypartnerdomain : "OMITTED "
}
}
device {
ua : "Mozilla /5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/ 537.36 "
ip : "192.168 . 1.0 "
geo {
lat : 0.0
lon : 0.0
country : "IND "
region : "IN - MH "
city : "Mumbai "
zip : "400066 "
type : IP
utcoffset : 330
accuracy : 1439
}
make : "Xiaomi "
model : "22120 rn86i "
os : "android "
osv : "14 "
devicetype : HIGHEND_PHONE
lmt : false
w : 360
h : 825
pxratio : 2.0
sua {
browsers {
brand : "Chromium "
version : "124 "
version : "0 "
}
browsers {
brand : "Google Chrome "
version : "124 "
version : "0 "
}
platform {
brand : "Android "
version : "14 "
version : "0 "
}
mobile : true
model : "22120 RN86I "
source : CLIENT_HINTS_HIGH_ENTROPY
}
}
at : FIRST_PRICE
tmax : 300
cur : "USD "
source {
schain {
complete : true
nodes {
asi : "testssp . com "
sid : "pub - 1111111111111111 "
hp : true
}
nodes {
asi : "testssp . com "
sid : "pub - 1111111111111111 "
hp : true
}
ver : "1.0 "
}
}
[ com . google . doubleclick . bid_request ] {
google_query_id : "ANy - z0k831 - U6Nsse2Zs380x9jWlM98I735gC6c3602K1swV8ex1390yK9kO53353X64953A "
fcap_scope : FREQUENCY_CAPPING_SCOPE_BROWSER
}