Una interacción de ofertas en tiempo real comienza cuando Google envía una solicitud de oferta a
tu aplicación. En esta guía, se explica cómo programar tu aplicación para
procesar la solicitud de oferta.
Analizar solicitud
Google envía una solicitud de oferta como un búfer de protocolo serializado adjunto como el
carga útil binaria de una solicitud HTTP POST. La Content-Type
se establece en
application/octet-stream
Consulta Ejemplo de solicitud de oferta para ver un ejemplo.
Debes analizar esta solicitud en una instancia de BidRequest
.
mensaje. BidRequest
se define en realtime-bidding.proto
,
que se pueden obtener en la página de datos de referencia . Puedes analizar el mensaje
usando el método ParseFromString()
en la clase generada para el
BidRequest
Por ejemplo, el siguiente código C++ analiza una solicitud
dada una carga útil POST en una cadena:
string post_payload = /* the payload from the POST request */ ;
BidRequest bid_request ;
if ( bid_request . ParseFromString ( post_payload )) {
// Process the request .
}
Una vez que tengas el BidRequest
, podrás trabajar con él como un
extraiga y, luego, interprete los campos que necesites. Por ejemplo, en
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 .
}
Parte de la información enviada en un BidRequest
, como el Usuario de Google
El ID, el idioma o la ubicación geográfica no siempre están disponibles. Si tienes
grupos de anuncios de segmentación previa que usan información desconocida de una determinada
impresión, esos grupos de anuncios no coincidirán. En los casos en los que la falta
información no importa para las condiciones de segmentación previa, las solicitudes de oferta se
enviados con la información omitida.
La información sobre el grupo de anuncios de segmentación previa se encuentra disponible en
Grupo MatchingAdData
para cada AdSlot
. Contiene las
primer ID de grupo de anuncios coincidente del grupo de anuncios de segmentación previa que solicitó a Google que
envía la solicitud de oferta, es decir, el grupo de anuncios y la campaña a los que se les cobra
si tu respuesta gana la subasta por la impresión. Bajo ciertas
debes especificar de forma explícita el billing_id
para
la atribución en el BidResponse.AdSlot
, por ejemplo, cuando la
BidRequest.AdSlot
tiene más de un matching_ad_data
.
Para obtener más información sobre las limitaciones de los contenidos de la oferta, consulte
el objeto realtime-bidding.proto
.
Archivos de diccionario
La solicitud de oferta utiliza identificadores definidos en archivos del diccionario, que se
disponible en los datos de referencia
.
Macros de URL de oferta
De manera opcional, se pueden insertar algunos campos de BidRequest
en
la URL utilizada en la solicitud HTTP POST. Esto es útil, por ejemplo, si usas
un frontend ligero que balancea las cargas en múltiples backends usando un valor
de la solicitud. Comunícate con tu administrador técnico de cuentas para solicitar asistencia
las nuevas macros.
Macro Descripción
%%GOOGLE_USER_ID%%
Se reemplazó por google_user_id
.
del BidRequest
. Por ejemplo, la URL del ofertante
http://google.bidder.com/path?gid=%%GOOGLE_USER_ID%%
será reemplazado por algo como
http://google.bidder.com/path?gid=dGhpyBhbiBleGFtGxl
al momento de la solicitud.
Si no se conoce el ID de usuario de Google, se sustituye la cadena vacía por el
resultado similar a
http://google.bidder.com/path?gid=
%%HAS_MOBILE%%
Se reemplaza por 1
o 0
cuando se realiza una llamada.
has_mobile()
de BidRequest
%%HAS_VIDEO%%
Se reemplazó por 1
(verdadero) o 0
(falso).
cuando llames al elemento has_video()
de BidRequest
%%HOSTED_MATCH_DATA%%
Se reemplazó por el valor del campo hosted_match_data
.
del BidRequest
.
%%MOBILE_IS_APP%%
Se reemplazó por 1
(verdadero) o 0
(falso).
del campo mobile.is_app
de BidRequest
.
Busque el ID de aplicación para dispositivos móviles a partir de la URL de la transacción
Las transacciones de aplicaciones para dispositivos móviles informarán URLs como las siguientes:
mbappgewtimrzgyytanjyg4888888 .com
Usa un decodificador de base 32 para decodificar la parte de la cadena en negrita
(gewtimrzgyytanjyg4888888
).
Puedes usar una en línea
decodificador , pero deberás usar mayúsculas en las letras y reemplazar el texto
8
con valores =
.
Entonces, se decodifica este valor:
GEWTIMRZGYYTANJYG4======
da como resultado:
1 - 429610587
La cadena
429610587
es el ID de la aplicación para iOS
iFunny .
Les doy otro ejemplo. La URL denunciada es:
mbappgewtgmjug4ytmmrtgm888888 .com
Decodifica este valor:
GEWTGMJUG4YTMMRTGM======
da como resultado:
1 - 314716233
El resultado
314716233
es el ID de la aplicación para iOS
TextNow .
Busque el nombre de la aplicación para dispositivos móviles en la URL de la transacción
Este es un ejemplo de cómo obtener el nombre de la app. La URL denunciada es la siguiente:
mbappMFUXELTDN5WS42DZOBQWQLTJN4XHG3DJORUGK4Q888 .com
Decodifica este valor:
MFUXELTDN5WS42DZOBQWQLTJN4XHG3DJORUGK4Q===
da como resultado:
air.com.hypah.io.slither
El resultado equivale a la app para Android
slither.io .
Campos de Open Bidding
Las solicitudes de oferta se envían a los ofertantes de intercambio y de red que participan en Open Bidding
Las ofertas son similares a las de los compradores de Authorized Buyers que participan en el
con las ofertas en tiempo real. Los clientes de Open Bidding recibirán una pequeña cantidad de
campos adicionales, y algunos campos existentes
pueden tener usos alternativos. Estos
incluyen lo siguiente:
OpenRTB
Authorized Buyers
Detalles
BidRequest.imp[].ext.dfp_ad_unit_code
BidRequest.adslot[].dfp_ad_unit_code
Contiene el código de red de Ad Manager del publicador seguido del anuncio.
de unidades, separadas por barras diagonales.
A modo de ejemplo, esto aparecería con un formato similar al siguiente:
/1234/cruises/mars
BidRequest.user.data[].segment[]
BidRequest.adslot[].exchange_bidding.key_value[]
Pares clave-valor repetidos que se envían del publicador al ofertante del intercambio.
Puedes determinar que los valores son pares clave-valor enviados por el
publicador cuando BidRequest.user.data[].name
está configurado como
“Publisher Passed”
Nota: Actualmente, este campo solo se envía a versiones beta cerradas
participantes.
Declara los proveedores permitidos
Los proveedores de tecnología que prestan servicios, como investigación, remarketing y
la publicación de anuncios puede influir en la interacción entre los compradores y los vendedores. Solo
proveedores que Google aprobó para participar en Authorized Buyers
se permiten interacciones.
Para comprender el BidRequest
y crear
BidResponse
, debes tener en cuenta las dos opciones
posibilidades para declarar proveedores de tecnología:
No es necesario declarar algunos proveedores. estos proveedores se incluyen en la Ayuda de Authorized Buyers .
Otros proveedores solo pueden participar si se declaran en el
BidRequest
y BidResponse
:
En BidRequest
, allowed_vendor_type
que especifica los proveedores que permite el vendedor. Proveedores que se enviarán en
el campo allowed_vendor_type
de BidRequest
se
se incluye en la Vendors.txt
de diccionario.
En BidResponse
, el campo vendor_type
especifica cuál de esos proveedores permitidos usará el comprador.
Ejemplo de solicitud de oferta
Los siguientes ejemplos representan muestras legibles de Protobuf y
Solicitudes JSON.
Google
Muéstrame el ejemplo
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 de OpenRTB
Muéstrame el ejemplo
{
"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
}
}
}
Protocolo de OpenRTB
Muéstrame el ejemplo
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
}
Para convertir la solicitud de oferta al formato binario, como lo obtendrías en
POST en una solicitud real, puedes hacer lo siguiente (en C++). Nota:
sin embargo, que esto no es aplicable al JSON de 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 transfiere un ID de publicidad para dispositivos móviles en las solicitudes de oferta de un
para dispositivos móviles. El ID de publicidad para móviles puede ser un
IDFA de iOS o
ID de publicidad de Android , que se envía a través del
.
Macro %%EXTRA_TAG_DATA%%
en la etiqueta de JavaScript administrada por
Authorized Buyers.
La macro %%ADVERTISING_IDENTIFIER%%
permite que los compradores reciban
IDFA de iOS o ID de publicidad de Android en la renderización de impresiones. Muestra un
búfer de protocolo encriptado MobileAdvertisingId
Me gusta
%%EXTRA_TAG_DATA%%
:
message MobileAdvertisingId {
optional bytes advertising_id = 1 ;
optional int32 user_id_type = 2 ;
}
El user_id_type
es uno de los valores definidos en el
enum AdxMobileIdType
enum AdxMobileIdType {
MOBILE_ID_UNKNOWN = 0 ,
IDFA = 1 ,
ANDROID_ID = 2 ,
};
Puedes crear listas de usuarios a partir de los ID de publicidad para dispositivos móviles mediante los ID de publicidad
que recopilaste durante la renderización de impresiones. Estas listas de usuarios se pueden mantener
en tu servidor o en el nuestro. Para crear listas de usuarios en los servidores de Google, puedes usar
nuestro sitio de carga masiva.
Cuando el ID de publicidad para dispositivos móviles coincide con una lista de usuarios, puedes usarlo para publicar
remarketing.
Comentarios en tiempo real
Los comentarios en tiempo real también están disponibles para Authorized Buyers
como intercambios y redes con Open Bidding.
Los comentarios de la respuesta a la oferta se admiten en la solicitud de oferta posterior tanto para
AdX Protocol y OpenRTB. Para OpenRTB, se envía en
BidRequestExt
Además de los campos predeterminados enviados a través de los comentarios de la respuesta a la oferta, puedes
También puede enviar datos personalizados en la respuesta a la oferta (en OpenRTB o AdX Proto).
con un event_notification_token
que se muestra en el
BidResponse
La event_notification_token
es
datos arbitrarios conocidos solo por el ofertante que podrían ayudar con la depuración, por
Ejemplo: un ID de segmentación o un ID de oferta nuevos que representen una táctica nueva
metadatos asociados con la creatividad que solo conoce el ofertante Para obtener más información,
consulta OpenRTB
Búfer de protocolo de extensiones para RTB y Proto de AdX
para AdX.
Cuando Authorized Buyers envía una solicitud de oferta a un ofertante, este responde
con un BidResponse
. Si el ofertante tiene habilitados los comentarios en tiempo real,
Luego, en una solicitud de oferta posterior, Authorized Buyers envía comentarios sobre el
en un mensaje BidResponseFeedback
, como se muestra a continuación:
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 ;
}
A partir de este mensaje, el primer campo que debes verificar es
bid_response_feedback.creative_status_code
; pueden encontrar el código
significado en
Creative-status-codes.txt . Ten en cuenta que si ganas la oferta, puedes inhabilitar
a partir de los comentarios sobre el precio. Para obtener más información, consulta Cómo
el rechazo de las comunicaciones.
Los comentarios en tiempo real incluyen el ID de solicitud de oferta y una de las
lo siguiente:
Resultado de la subasta
Comentarios en tiempo real
El comprador no envió una oferta.
Nada.
El comprador envió una oferta que se filtró antes de llegar
durante la subasta.
Es el código de estado de la creatividad (creative-status-codes.txt ).
El comprador envió una oferta, pero perdió la subasta.
El código de estado de la creatividad 79
(se superó la oferta en
subasta).
El comprador envió una oferta que ganó la subasta.
El precio de liquidación y el código de estado de la creatividad 1
En el caso de una impresión de aplicación y un código de estado de creatividad de 83
, la
el publicador de aplicaciones podría haber usado una cascada de mediación y, por lo tanto,
ganadora habría compitido contra otra demanda en la
de una cadena de cascada de devoluciones. Aprende a utilizar
sampled_mediation_cpm_ahead_of_auction_winner
cuando
con las ofertas .
Muestra
El siguiente es un ejemplo de comentarios
en tiempo real, tal como se ve en
protocolos:
Google
Muéstrame el ejemplo
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 de OpenRTB
Muéstrame el ejemplo
{
"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
}
}
}
Protocolo de OpenRTB
Muéstrame el ejemplo
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
}
Crea un modelo de ofertas para las subastas de primer precio
Después de realizar una oferta en una subasta de primer precio,
comentarios, como minimum_bid_to_win
y
sampled_mediation_cpm_ahead_of_auction_winner
si la oferta
no se filtró de la subasta. Estos indicadores se pueden usar para informar a tu
lógica de ofertas sobre cuánto podría haber sido más alta o más baja su oferta para
ganar la impresión.
minimum_bid_to_win
: la oferta mínima que se podría haber
para ganar la subasta de ofertas en tiempo real. Si ganaste la subasta, esto
sería la oferta más baja que podrías haber hecho y, al mismo tiempo, seguir ganando. Si perdiste el
subasta, esta será la oferta ganadora.
sampled_mediation_cpm_ahead_of_auction_winner
: Si hay
otras redes de la cadena de mediación ,
de este campo es un precio que representa una oferta de muestra de uno de los
redes de mediación aptas que superaron el ganador de la subasta, ponderado
según la tasa de relleno esperada. Este valor se establecerá en 0 si ninguna de las redes de la
se espera que llene la cadena de mediación, o si el publicador no usa un SDK
mediación.
Cómo funciona
Para describir los cálculos usados para determinar los valores posibles
para minimum_bid_to_win
y
sampled_mediation_cpm_ahead_of_auction_winner
, primero necesitamos
definen lo siguiente:
A continuación, se muestran los CPM de la cadena de mediación en orden descendente:
\[C_1, C_2, …, C_n\]
A continuación, se muestran las tasas de relleno correspondientes a los CPM de la
cadena de mediación:
\[f_1, f_2, …, f_n\]
La siguiente es una función utilizada para determinar el CPM esperado y su
probabilidad del elemento de la cadena de mediación \(i\), según el relleno especificado
tarifa:
\(X_i = \{C_i\) con probabilidad \(f_i\); \(0\) con probabilidad \(1 - f_i\}\)
La última cadena de mediación ganadora será la siguiente:
\[\{C_1, C_2, …, C_K, W\}\]
donde \(W\) es la oferta ganadora y \(C_K > W >= C_{K+1}\)
El precio de reserva, o precio mínimo, se indica como \(F\).
La oferta en segundo lugar se indica como \(R\).
Cálculos para el ganador de la subasta
Campo
Cálculo
minimum_bid_to_win
\(max\{F, R, X_{K+1}, …, X_n\}\)
sampled_mediation_cpm_ahead_ of_auction_winner
\(\{C_i\) con probabilidad \(\prod_{j=1}^{i-1}(1-f_j) \cdot f_i \div \prod_{j=1}^{K}(1-f_j)\}\)
Para \(1 <= i <= K\).
Cálculos para perdedor en la subasta
Campo
Cálculo
minimum_bid_to_win
\(max\{F, W\}\)
sampled_mediation_cpm_ahead_ of_auction_winner
\(max\{X_1, …, X_K\}\)
Supongamos que un publicador usa licitación en tiempo real
y una cadena de mediación de SDK
sigue:
Cadena de mediación de SDK
CPM esperado
Tasa de relleno
Red 1
\(C_1 = $3.00\)
\(f_1 = 5\%\)
Red 2
\(C_2 = $2.00\)
\(f_2 = 45\%\)
Red 3
\(C_3 = $0.50\)
\(f_3 = 80\%\)
Red 4
\(C_4 = $0.10\)
\(f_4 = 85\%\)
Como resultado de la subasta de RTB, suponga lo siguiente:
Subasta de RTB
CPM
Ganador de la subasta (W)
USD 1.00
Segundo puesto de la subasta (D)
$0.05
Precio mínimo de reserva (F)
USD 0
Oferta que ganó la subasta
El siguiente es un ejemplo de cómo los valores y las probabilidades para
minimum_bid_to_win
y
sampled_mediation_cpm_ahead_of_auction_winner
se calculan para un
la oferta que ganó.
minimum_bid_to_win
Probabilidad
\(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
Probabilidad
\(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: Si el ganador de la subasta publica su anuncio y recibe una factura
notificación, por ejemplo, a través de un extremo especificado en
BidResponse.ad[].impression_tracking_url
o
BidResponse.seatbid[].bid[].burl
en OpenRTB; el ganador de la subasta puede
deduce que ninguno de los CPM de mediación de muestra se terminó completando y puede
incluyen la frecuencia con la que esto ocurre en su modelo.
Ofertas que perdieron la subasta
El siguiente es un ejemplo de cómo los valores y las probabilidades para
minimum_bid_to_win
y
sampled_mediation_cpm_ahead_of_auction_winner
se calculan para un
ofertas que perdieron.
minimum_bid_to_win
Probabilidad
\(max(F, W) = $1.00\)
\(100\%\)
sampled_mediation_cpm_ ahead_of_auction_winner
Probabilidad
\(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: A
El valor 0 de sampled_mediation_cpm_ahead_of_auction_winner
indica
que ganó la subasta de ofertas en tiempo real. En el ejemplo anterior, la subasta
se espera que el ganador no supere la oferta por una red de mediación rival; el 52.2% del
tiempo.
Disminución de ofertas
La separación de ofertas describe el procesamiento de una única estrategia
BidRequest
en varias solicitudes de oferta que se envían a su
y mantener la integridad de su aplicación. Debido a que conservan IDs idénticos
(BidRequest.google_query_id
en el protocolo de RTB de Authorized Buyers)
o BidRequestExt.google_query_id
en el protocolo OpenRTB), puedes
determinar qué solicitudes de oferta se correlacionan después de la compactación.
Algunas oportunidades de anuncios pueden aceptar múltiples formatos. Con la separación de ofertas, cada
se envía en una solicitud de oferta distinta en la que los atributos como
Los IDs de facturación son relevantes para el formato especificado en la solicitud.
Las solicitudes de oferta que contengan los siguientes formatos se agruparán en
solicitudes de oferta distintas:
Banner
Video
Audio
Nativo
A continuación, se incluye un ejemplo de una solicitud de oferta JSON de OpenRTB simplificada sin anuncio.
acoplamiento de formato en comparación con un conjunto equivalente de solicitudes acopladas:
Preaplanado
Muéstrame el ejemplo
{
"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"
}
}
Posaplanado
Muéstrame el ejemplo
Solicitud 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"
}
}
Solicitud 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"
}
}
Ofertas
Una oportunidad de anuncio para un ofertante determinado puede aplicarse a varios acuerdos.
nuevos, además de la subasta abierta. Con la separación de ofertas para los acuerdos, una oferta
una solicitud para la subasta abierta y una para cada tipo de precio fijo
de un acuerdo de precios. En la práctica, las restricciones de anuncios pueden diferir entre las subastas y las de precio fijo
tipos de acuerdos, por ejemplo, para una determinada oportunidad de anuncio de video que esté disponible para
en la subasta abierta y en el acuerdo de precio fijo, el ofertante recibirá
solicitudes de oferta para cada una en las que haya restricciones, como la duración máxima del anuncio y si
que se permiten los anuncios que se pueden omitir pueden variar. Como resultado, la compactación se aplicó al anuncio
le permite distinguir más fácilmente las limitaciones de los anuncios de la
y el acuerdo de precio fijo.
Nota: Las subastas privadas y los paquetes de subastas tendrán un diseño idéntico
restricciones a la subasta abierta y seguirán estando incluidas en las
las solicitudes de ofertas de subasta.
Duración máxima de video que se puede omitir
El protocolo de Google y la implementación de OpenRTB admiten los siguientes campos
para la duración y omisión del video:
Duración
Duración que se puede omitir
Posibilidad de omitir
Protocolo de Google
max_ad_duration
skippable_max_ad_duration
video_ad_skippable
OpenRTB
maxduration
N/A
skip
Esto significa que, si bien el protocolo de Google puede tener una capa
y de duración que no se puede omitir, la implementación de OpenRTB solo tiene un
de duración máxima.
Antes de la compactación de ofertas, el valor maxduration
de OpenRTB se configuraba como
el valor inferior de la max_ad_duration
del protocolo de Google y
skippable_max_ad_duration
. Este comportamiento ha cambiado a
enviar dos solicitudes de oferta separadas cuando estos valores difieren: una que represente
la maxduration
para anuncios que se pueden omitir y la otra para los que no se pueden omitir
oportunidades.
En los siguientes ejemplos, se muestra cómo se traduce una solicitud de protocolo de Google
con OpenRTB antes y después de la separación de ofertas. El protocolo equivalente de Google
tiene un max_ad_duration
de 15
y una
skippable_max_ad_duration
de 60
.
Ejemplo
max_ad_duration
skip
(verdadero O falso)
Solicitud original sin compactar
15
true
Solicitud plana n° 1: No se puede omitir
15
false
Solicitud separada n° 2: Se puede omitir
60
true
La compactación de solicitudes de oferta de duración de videos que se pueden omitir solo ocurrirá cuando
se cumplan estas condiciones:
La solicitud permite el video.
Se permiten tanto los videos que se pueden omitir como los que no se pueden omitir, y los dos valores máximos respectivos
las duraciones difieren en el valor.
Esta solicitud es apta para subasta privada o subasta abierta.
La cuenta de ofertante tiene extremos de OpenRTB activos.
Para inhabilitar este tipo de compactación, comunícate con tu
administrador de cuentas.
Grupos de anuncios de video
Las solicitudes de oferta para un grupo de anuncios de video con varias oportunidades de anuncios se aplanan
de manera que cada solicitud de oferta sea
para una oportunidad de anuncio individual de ese grupo.
Esto te permite realizar ofertas para varias oportunidades de anuncios para un grupo de anuncios determinado.
Open Measurement
Open Measurement te permite especificar proveedores externos que ofrecen
servicios independientes de medición y verificación para los anuncios que se publican en aplicaciones para dispositivos móviles
entornos de prueba.
Puede determinar si un publicador admite Open Measurement en la oferta.
solicitud comprobando si la oportunidad de anuncio excluye el atributo OmsdkType:
OMSDK 1.0
que se encuentra en Exclusivo por el publicador
atributos de creatividades . Para el protocolo Authorized Buyers,
que se encuentran en BidRequest.adslot[].excluded_attribute
. Para el
protocolo OpenRTB, que se encuentra en el atributo battr
para Banner o
Video , según
el formato.
Para obtener más información sobre cómo interpretar las solicitudes de oferta que contienen Open
Indicadores de medición, consulta Open Measurement
SDK .
Ejemplos de solicitudes de oferta
Las siguientes secciones muestran ejemplos de solicitudes de oferta para diferentes tipos de anuncios.
Banner de la app
Google
Muéstrame el ejemplo
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 de OpenRTB
Muéstrame el ejemplo
{
"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
}
}
}
Protocolo de OpenRTB
Muéstrame el ejemplo
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
}
}
Intersticial para aplicaciones
Google
Muéstrame el ejemplo
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 de OpenRTB
Muéstrame el ejemplo
{
"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
}
}
}
Protocolo de OpenRTB
Muéstrame el ejemplo
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 intersticial para aplicaciones
Google
Muéstrame el ejemplo
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 "
Protocolo de OpenRTB
Muéstrame el ejemplo
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 "
}
Aplicación nativa
Google
Muéstrame el ejemplo
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 de OpenRTB
Muéstrame el ejemplo
{
"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
}
}
}
Protocolo de OpenRTB
Muéstrame el ejemplo
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 web
Google
Muéstrame el ejemplo
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 de Web móvil para ofertante de intercambio
Protocolo de OpenRTB
Muéstrame el ejemplo
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
}