Uma interação de lance em tempo real começa quando o Google envia uma solicitação de lance para
seu aplicativo. Este guia explica como codificar seu aplicativo para
a solicitação de lance.
Analisar solicitação
O Google envia uma solicitação de lance como um buffer de protocolo serializado anexado como o
payload binário de uma solicitação POST HTTP. O Content-Type
está definido como
application/octet-stream
. Consulte Exemplo de solicitação de lance para ver um exemplo.
Analise essa solicitação em uma instância do BidRequest
mensagem. BidRequest
é definido em realtime-bidding.proto
,
que podem ser obtidos na página de dados de referência . É possível analisar a mensagem
usando o método ParseFromString()
na classe gerada para a
BidRequest
. Por exemplo, o código em C++ a seguir analisa uma solicitação
recebe um payload POST em uma string:
string post_payload = /* the payload from the POST request */ ;
BidRequest bid_request ;
if ( bid_request . ParseFromString ( post_payload )) {
// Process the request .
}
Depois de ter o BidRequest
, você pode trabalhar com ele como um
para extrair e interpretar os campos necessários. Por exemplo, em
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 .
}
Algumas informações enviadas em um BidRequest
, como o usuário do Google
ID, idioma ou localização geográfica nem sempre estão disponíveis. Se você tiver
grupos de anúncios de pré-segmentação que usam informações desconhecidas para um determinado
impressão, esses grupos de anúncios não serão correspondentes. Nos casos em que os elementos
for irrelevante para as condições de pré-segmentação, as solicitações de lance serão
enviada com a informação omitida.
As informações sobre o grupo de anúncios de pré-segmentação estão disponíveis no
MatchingAdData
grupo para cada AdSlot
. Ele contém
primeiro ID do grupo de anúncios correspondente do grupo de anúncios de pré-segmentação que fez o Google
envie a solicitação de lance, ou seja, o grupo de anúncios e a campanha cobrados
se sua resposta vencer o leilão para a impressão. Abaixo de determinados
circunstâncias, é necessário especificar explicitamente o billing_id
para
no BidResponse.AdSlot
, por exemplo, quando o
BidRequest.AdSlot
tem mais de um matching_ad_data
.
Para mais informações sobre as restrições de conteúdo do lance, consulte
o realtime-bidding.proto
.
Arquivos de dicionário
A solicitação de lance usa identificadores definidos em arquivos de dicionário, que são
disponíveis nos dados de referência
página.
Macros de URLs de lances
Opcionalmente, alguns campos do BidRequest
podem ser inseridos no
o URL usado na solicitação POST HTTP. Isso é útil, por exemplo, se você usar
um front-end leve com balanceamento de carga em vários back-ends usando um valor
da solicitação. Entre em contato com seu gerente técnico de contas para solicitar suporte para
novas macros.
Macro Descrição
%%GOOGLE_USER_ID%%
Substituído por google_user_id
do BidRequest
. Por exemplo, o URL do bidder
http://google.bidder.com/path?gid=%%GOOGLE_USER_ID%%
será substituída por algo como
http://google.bidder.com/path?gid=dGhpyBhbiBleGFtGxl
no momento da solicitação.
Se o ID de usuário do Google for desconhecido, a string vazia será substituída por um
resultado semelhante a
http://google.bidder.com/path?gid=
%%HAS_MOBILE%%
Substituído por 1
ou 0
ao chamar
has_mobile()
de BidRequest
.
%%HAS_VIDEO%%
Substituído por 1
(verdadeiro) ou 0
(falso).
ao chamar has_video()
de BidRequest
.
%%HOSTED_MATCH_DATA%%
Substituído pelo valor do campo hosted_match_data
do BidRequest
.
%%MOBILE_IS_APP%%
Substituído por 1
(verdadeiro) ou 0
(falso).
do campo mobile.is_app
de BidRequest
.
Encontrar o ID do app para dispositivos móveis no URL da transação
As transações de aplicativos para dispositivos móveis informarão URLs com esta aparência:
mbappgewtimrzgyytanjyg4888888 .com
Use um decodificador de base 32 para decodificar a parte da string em negrito
(gewtimrzgyytanjyg4888888
).
Você pode usar uma configuração
decodificador , mas terá que colocar as letras maiúsculas e substituir as letras
8
s com valores =
.
Então, decodificando esse valor:
GEWTIMRZGYYTANJYG4======
resulta em:
1 - 429610587
A string
429610587
é o ID do app iOS.
iFunny .
Veja outro exemplo. O URL denunciado é:
mbappgewtgmjug4ytmmrtgm888888 .com
Decodificando esse valor:
GEWTGMJUG4YTMMRTGM======
resulta em:
1 - 314716233
O resultado
314716233
é o ID do app iOS.
TextNow (link em inglês).
Encontrar o nome do app para dispositivos móveis no URL da transação
Veja um exemplo de como conseguir o nome do app. O URL informado é o seguinte:
mbappMFUXELTDN5WS42DZOBQWQLTJN4XHG3DJORUGK4Q888 .com
Decodificando esse valor:
MFUXELTDN5WS42DZOBQWQLTJN4XHG3DJORUGK4Q===
resulta em:
air.com.hypah.io.slither
O resultado equivale ao app Android
slither.io .
Campos do Open Bidding
Solicitações de lance enviadas para os bidders da troca e da rede que participam do Open Bidding
Os lances são semelhantes aos dos Authorized Buyers que participam das campanhas padrão
lances em tempo real. Os clientes do Open Bidding receberão um pequeno número de
campos adicionais, e alguns campos existentes podem ter usos alternativos. Esses
incluem o seguinte:
OpenRTB
Authorized Buyers
Detalhes
BidRequest.imp[].ext.dfp_ad_unit_code
BidRequest.adslot[].dfp_ad_unit_code
Contém o código de rede do Ad Manager do editor seguido pelo anúncio
de unidade de medida, separados por barras.
Como exemplo, isso apareceria com uma formatação semelhante a:
/1234/cruises/mars
:
BidRequest.user.data[].segment[]
BidRequest.adslot[].exchange_bidding.key_value[]
Pares de chave-valor repetidos enviados do editor para o bidder da troca.
Você pode determinar que os valores são pares de chave-valor enviados pelo
editor quando BidRequest.user.data[].name
for definido como
“Publisher Passed”
.
Observação :no momento, este campo é enviado apenas na versão Beta fechada.
participantes.
Declarar fornecedores permitidos
Fornecedores de tecnologia que prestam serviços como pesquisa, remarketing e
a veiculação de anúncios pode desempenhar um papel na interação entre compradores e vendedores. Somente
fornecedores com participação verificada pelo Google no Authorized Buyers
são permitidas.
Para entender o BidRequest
e criar seu
BidResponse
, você precisa conhecer os dois
de declarar fornecedores de tecnologia:
Alguns fornecedores não precisam ser declarados. esses fornecedores estão listados na Ajuda do Authorized Buyers .
Outros fornecedores só poderão participar se forem declarados tanto no
BidRequest
e BidResponse
:
No BidRequest
, a allowed_vendor_type
especifica quais fornecedores o vendedor permite. Fornecedores que serão enviados
o campo allowed_vendor_type
do BidRequest
são
listados em Vendors.txt
de dicionário.
Na BidResponse
, o campo vendor_type
especifica quais desses fornecedores permitidos o comprador pretende usar.
Exemplo de solicitação de lance
Os exemplos a seguir representam amostras legíveis do Protobuf e
Solicitações JSON.
Google
Mostrar o exemplo
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 do OpenRTB
Mostrar o exemplo
{
"id ": "219 DAI11M3120s2d8M4xgR ",
"imp ": [
{
"id ": "1 ",
"banner ": {
"w ": 300 ,
"h ": 250 ,
"pos ": 3 ,
"battr ": [
6 ,
7
],
"wmax ": 300 ,
"hmax ": 250 ,
"wmin ": 200 ,
"hmin ": 200 ,
"format ": [
{
"w ": 300 ,
"h ": 250
},
{
"w ": 200 ,
"h ": 200
}
]
},
"displaymanager ": "GOOGLE ",
"tagid ": "7820275329 ",
"bidfloor ": 0.08 ,
"bidfloorcur ": "USD ",
"secure ": 1 ,
"exp ": 3600 ,
"metric ": [
{
"type ": "click_through_rate ",
"value ": 0.00022253872884903103 ,
"vendor ": "EXCHANGE "
},
{
"type ": "viewability ",
"value ": 0.01 ,
"vendor ": "EXCHANGE "
}
],
"ext ": {
"billing_id ": [
54460865479
],
"publisher_settings_list_id ": [
5406346852112173352 ,
7576925985766584885
],
"allowed_vendor_type ": [
3 ,
42
],
"ampad ": 3 ,
"excluded_creatives ": [
{
"buyer_creative_id ": "EXCLUDED_BUYER_CREATIVE_ID "
},
{
"buyer_creative_id ": "EXCLUDED_BUYER_CREATIVE_ID "
}
],
"allowed_restricted_category ": [
32 ,
33
],
"creative_enforcement_settings ": {
"policy_enforcement ": 2 ,
"publisher_blocks_enforcement ": 1
},
"auction_environment ": 0 ,
"ae ": 0
}
}
],
"site ": {
"page ": "https : //www.google.com",
"publisher ": {
"id ": "pub - 1111111111111111 ",
"ext ": {
"country ": "GB "
}
},
"content ": {
"livestream ": 0 ,
"language ": "en "
},
"mobile ": 1 ,
"ext ": {
"amp ": 0 ,
"page_visibility ": 1 ,
"inventorypartnerdomain ": "OMITTED "
}
},
"device ": {
"ua ": "Mozilla / 5.0 ( iPhone ; CPU iPhone OS 17 _4_1 like Mac OS X ) AppleWebKit / 537.36 ( KHTML , like Gecko ) Chrome / 124.0.0.0 Mobile Safari / 537.36 ",
"ip ": "192.168.1.0 ",
"geo ": {
"lat ": 0.0 ,
"lon ": 0.0 ,
"country ": "GBR ",
"region ": "GB - ENG ",
"city ": "Leeds ",
"type ": 2 ,
"utcoffset ": 60 ,
"accuracy ": 7356
},
"carrier ": "70062 ",
"make ": "Apple ",
"model ": "iphone ",
"os ": "iOS ",
"osv ": "17.4.1 ",
"devicetype ": 4 ,
"lmt ": 0 ,
"w ": 393 ,
"h ": 852 ,
"pxratio ": 3 ,
"sua ": {
"browsers ": [
{
"brand ": "Mozilla ",
"version ": [
"5 ",
"0 "
]
},
{
"brand ": "AppleWebKit ",
"version ": [
"605 ",
"1 "
]
}
],
"platform ": {
"brand ": "iPhone ",
"version ": [
"17 ",
"4 "
]
},
"mobile ": 1 ,
"bitness ": "64 ",
"model ": "iPhone ",
"source ": 3
},
},
"user ": {
"ext ": {
"consented_providers_settings ": {
"consented_providers ": [
"1800 ",
"2878 "
],
"additional_consent ": "OMITTED "
},
"consent ": "OMITTED "
}
},
"at ": 1 ,
"tmax ": 300 ,
"cur ": [
"USD "
],
"bcat ": [
"IAB23 - 5 ",
"IAB23 - 7 "
],
"regs ": {
"ext ": {
"gdpr ": 1
}
},
"source ": {
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
},
"ext ": {
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
}
}
},
"ext ": {
"google_query_id ": "ANy - z1n326 - 9 P8x09i2I5f85oXp7N1r61w0p681H008U29MK56111D9VJn1nRRp4P7eB5Y9H ",
"fcap_scope ": 5 ,
"privacy_treatments ": {
"allow_user_data_collection ": 1
}
}
}
Protobuf do OpenRTB
Mostrar o exemplo
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 converter a solicitação de lance em um formato binário, da mesma forma que você faria com o
POST em uma solicitação real, faça o seguinte (em C++). Observação:
No entanto, isso não é aplicável ao JSON do 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
}
}
O Authorized Buyers transmite um ID de publicidade para dispositivos móveis nas solicitações de lance de um
aplicativo para dispositivos móveis. O ID de publicidade móvel pode ser uma
IDFA do iOS ou
ID de publicidade do Android , que é enviado pelo
%%EXTRA_TAG_DATA%%
na tag JavaScript gerenciada pelo
Authorized Buyers.
A macro %%ADVERTISING_IDENTIFIER%%
permite que os compradores recebam
IDFA do iOS ou ID de publicidade do Android na renderização de impressões. Ele retorna uma
buffer proto criptografado MobileAdvertisingId
"gostei"
%%EXTRA_TAG_DATA%%
:
message MobileAdvertisingId {
optional bytes advertising_id = 1 ;
optional int32 user_id_type = 2 ;
}
O user_id_type
é um dos valores definidos no
enum AdxMobileIdType
:
enum AdxMobileIdType {
MOBILE_ID_UNKNOWN = 0 ,
IDFA = 1 ,
ANDROID_ID = 2 ,
};
Você pode criar listas de usuários com base em IDs de publicidade para dispositivos móveis usando IDs de publicidade.
coletados durante a renderização de impressões. Essas listas de usuários podem ser mantidas
no seu servidor ou no nosso. Para criar listas de usuários nos servidores do Google, você pode usar
nosso recurso de upload em massa.
Quando o ID de publicidade para dispositivos móveis corresponde a uma lista de usuários, ele pode ser usado na execução
remarketing.
Feedback em tempo real
O feedback em tempo real também está disponível para o Authorized Buyers.
como trocas e redes que usam o Open Bidding.
O feedback da resposta do lance é compatível com a solicitação de lance subsequente para ambos
protocolo AdX e OpenRTB. Para o OpenRTB, ele é enviado
BidRequestExt
:
Além dos campos padrão enviados no Feedback da resposta do lance, é possível
também enviar dados personalizados na resposta do lance (no Proto do AdX ou no OpenRTB)
usando um event_notification_token
retornado no
BidResponse
. O event_notification_token
é
dados arbitrários conhecidos somente pelo proponente que possam ajudar na depuração, por
exemplo: um novo ID de segmentação ou de lance que representa uma nova tática ou
metadados associados ao criativo que o bidder sabe apenas. Para mais detalhes,
consulte OpenRTB
Buffer de protocolo de extensões (link em inglês) para RTB e Protocolo do AdX
para o AdX.
Quando o Authorized Buyers envia uma solicitação de lance para um bidder, o bidder responde
com um BidResponse
. Se o bidder tiver ativado o feedback em tempo real,
Em uma próxima solicitação de lance, o Authorized Buyers envia feedback sobre
resposta em uma mensagem BidResponseFeedback
, conforme mostrado abaixo:
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 dessa mensagem, o primeiro campo a ser verificado é
bid_response_feedback.creative_status_code
você encontra o código
significado em
criativo-status-codes.txt . Se você ganhar o lance, poderá desativar
com base no feedback sobre o preço. Para mais informações, consulte
de não participar .
O feedback em tempo real inclui o ID da solicitação de lance e uma das
seguinte:
Resultado do leilão
Feedback em tempo real
O comprador não enviou um lance.
Nada
O comprador enviou um lance que foi filtrado antes de alcançar
no leilão.
O código de status do criativo (creative-status-codes.txt ).
O comprador enviou um lance, mas perdeu o leilão.
O código de status do criativo 79
(lance superado em
leilão).
O comprador enviou um lance que venceu o leilão.
O preço de liberação e o código de status do criativo 1
.
Para uma impressão de aplicativo e um código de status do criativo de 83
, o
editor de apps poderia estar usando uma hierarquia de mediação e, portanto, o
lance vencedor teria competido com outra demanda na campanha
a cadeia de cascata de passbacks. Saiba como usar
sampled_mediation_cpm_ahead_of_auction_winner
quando
lances .
Exemplo
Confira a seguir um exemplo de feedback em tempo real
protocolos:
Google
Mostrar o exemplo
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 do OpenRTB
Mostrar o exemplo
{
"id ": "B2zmta620ms2392240eM5R ",
"imp ": [
{
"id ": "1 ",
"banner ": {
"w ": 300 ,
"h ": 250 ,
"pos ": 3 ,
"wmax ": 300 ,
"hmax ": 250 ,
"wmin ": 0 ,
"hmin ": 46 ,
"format ": [
{
"w ": 300 ,
"h ": 250
},
{
"w ": 180 ,
"h ": 150
}
]
},
"displaymanager ": "GOOGLE ",
"tagid ": "3178683015 ",
"bidfloor ": 0.06 ,
"bidfloorcur ": "USD ",
"secure ": 1 ,
"exp ": 3600 ,
"metric ": [
{
"type ": "click_through_rate ",
"value ": 0.0010899954941123724 ,
"vendor ": "EXCHANGE "
},
{
"type ": "viewability ",
"value ": 0.28 ,
"vendor ": "EXCHANGE "
}
],
"ext ": {
"billing_id ": [
76252023422
],
"publisher_settings_list_id ": [
7226782477948422193 ,
2459752148771775747
],
"allowed_vendor_type ": [
3 ,
42
],
"ampad ": 3 ,
"creative_enforcement_settings ": {
"policy_enforcement ": 2 ,
"publisher_blocks_enforcement ": 1
},
"auction_environment ": 0 ,
"ae ": 0
}
}
],
"site ": {
"page ": "https : // www . google . com ",
"publisher ": {
"id ": "pub - 1111111111111111 ",
"ext ": {
"country ": "TR "
}
},
"content ": {
"livestream ": 0 ,
"language ": "tr "
},
"ext ": {
"amp ": 0 ,
"page_visibility ": 1 ,
"inventorypartnerdomain ": "OMITTED "
}
},
"device ": {
"ua ": "Mozilla / 5.0 ( Windows NT 10.0 ; Win64 ; x64 ) AppleWebKit / 537.36 ( KHTML , like Gecko ) Chrome / 124.0 . 0.0 Safari / 537.36 ",
"ip ": "192.168 . 1.0 ",
"geo ": {
"lat ": 0.0 ,
"lon ": 0.0 ,
"country ": "TUR ",
"region ": "TR - 01 ",
"city ": "Adana ",
"type ": 2 ,
"utcoffset ": 180 ,
"accuracy ": 7060
},
"os ": "Windows ",
"devicetype ": 2 ,
"lmt ": 0 ,
"pxratio ": 1.25 ,
"sua ": {
"browsers ": [
{
"brand ": "Chromium ",
"version ": [
"124 ",
"0 "
]
},
{
"brand ": "Google Chrome ",
"version ": [
"124 ",
"0 "
]
}
],
"platform ": {
"brand ": "Windows ",
"version ": [
"7 ",
"0 "
]
},
"mobile ": 0 ,
"architecture ": "x86 ",
"bitness ": "64 ",
"source ": 2
},
},
"at ": 1 ,
"tmax ": 300 ,
"cur ": [
"USD "
],
"bcat ": [
"IAB23 - 6 ",
"IAB23 - 8 "
],
"source ": {
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
},
"ext ": {
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
}
}
},
"ext ": {
"bid_feedback ": [
{
"request_id ": "0 S7s2muW9tFzp8zl35u97n ",
"creative_status_code ": 80 ,
"event_notification_token ": {
"payload ": "token "
},
"buyer_creative_id ": "test_creative_id_383532 ",
"minimum_bid_to_win ": 0.01 ,
"feedbacktype ": 1
}
],
"google_query_id ": "ANy - z3QP2f - 48 p8d0ucFkGmd99q36HPgSg4o8b89L0989N0RoS0x56mYMJd4087NT0d21W99 ",
"fcap_scope ": 5 ,
"privacy_treatments ": {
"allow_user_data_collection ": 1
}
}
}
Protobuf do OpenRTB
Mostrar o exemplo
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
}
Criar um modelo de lances para leilões de primeiro preço
Depois de dar um lance em um leilão de primeiro preço, você receberá
feedback, incluindo minimum_bid_to_win
e
sampled_mediation_cpm_ahead_of_auction_winner
se o lance
não foi filtrada do leilão. Esses indicadores podem ser usados para informar
lógica de lances com base em quanto maior ou menor seu lance poderia ter sido
para ganhar a impressão.
minimum_bid_to_win
: o lance mínimo que poderia ter sido
para vencer o leilão de lances em tempo real. Se você tiver vencido o leilão,
o lance mais baixo que você poderia ter feito e ainda fosse o vencedor. Se você perdeu o
leilão, esse será o lance vencedor.
sampled_mediation_cpm_ahead_of_auction_winner
: se houver
outras redes na cadeia de mediação , a
o valor deste campo é um preço que representa um lance de amostra de um dos
redes de mediação qualificadas que foram maiores do que o vencedor do leilão, ponderados
pela taxa de preenchimento esperada. Esse valor será definido como "0" se nenhuma das redes da
cadeia de mediação precisa ser preenchida, ou se o editor não usar o SDK
mediação.
Como funciona
Para descrever os cálculos usados para determinar os valores possíveis
para minimum_bid_to_win
e
sampled_mediation_cpm_ahead_of_auction_winner
, primeiro precisamos
defina o seguinte:
Veja a seguir os CPMs na cadeia de mediação em ordem decrescente:
\[C_1, C_2, …, C_n\]
A tabela a seguir representa as taxas de preenchimento correspondentes para os CPMs na
cadeia de mediação:
\[f_1, f_2, …, f_n\]
A seguir, temos uma função usada para determinar o CPM esperado e seu
probabilidade do elemento da cadeia de mediação \(i\), com base no preenchimento fornecido
taxa:
\(X_i = \{C_i\) com probabilidade \(f_i\); \(0\) com probabilidade \(1 - f_i\}\)
A cadeia de mediação vencedora final será:
\[\{C_1, C_2, …, C_K, W\}\]
em que \(W\) é o lance vencedor e \(C_K > W >= C_{K+1}\)
O preço de reserva, ou mínimo, é indicado como \(F\).
O lance secundário é indicado como \(R\).
Cálculos do vencedor do leilão
Campo
Cálculo
minimum_bid_to_win
\(max\{F, R, X_{K+1}, …, X_n\}\)
sampled_mediation_cpm_ahead_ of_auction_winner
\(\{C_i\) com probabilidade \(\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 do leilão
Campo
Cálculo
minimum_bid_to_win
\(max\{F, W\}\)
sampled_mediation_cpm_ahead_ of_auction_winner
\(max\{X_1, …, X_K\}\)
Suponha que um editor use lances em tempo real e uma cadeia de mediação de SDK como
da seguinte forma:
Cadeia de mediação do SDK
CPM esperado
Taxa de preenchimento
Rede 1
\(C_1 = $3.00\)
\(f_1 = 5\%\)
Rede 2
\(C_2 = $2.00\)
\(f_2 = 45\%\)
Rede 3
\(C_3 = $0.50\)
\(f_3 = 80\%\)
Rede 4
\(C_4 = $0.10\)
\(f_4 = 85\%\)
Considere o seguinte como resultado do leilão de RTB:
Leilão de RTB
CPM
Vencedor do leilão (W)
US$ 1,00
Segundo o leilão (R)
US$ 0,05
Preço de reserva / mínimo (F)
US$ 0
Lance que venceu o leilão
Veja a seguir um exemplo de como os valores e as probabilidades
minimum_bid_to_win
e
sampled_mediation_cpm_ahead_of_auction_winner
são calculados para uma
de lance que venceu.
minimum_bid_to_win
Probabilidade
\(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
Probabilidade
\(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\%\)
Observação :se o vencedor do leilão veicular o anúncio e receber um faturamento
notificação, por exemplo, por um endpoint especificado em
BidResponse.ad[].impression_tracking_url
ou
BidResponse.seatbid[].bid[].burl
no OpenRTB: o vencedor do leilão pode
deduzir que nenhum dos CPMs de mediação da amostra acabou sendo preenchido, e pode
incluir a frequência com que isso ocorre no modelo.
Lances que perderam o leilão
Veja a seguir um exemplo de como os valores e as probabilidades
minimum_bid_to_win
e
sampled_mediation_cpm_ahead_of_auction_winner
são calculados para uma
lances perdidos.
minimum_bid_to_win
Probabilidade
\(max(F, W) = $1.00\)
\(100\%\)
sampled_mediation_cpm_ ahead_of_auction_winner
Probabilidade
\(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\%\)
Observação: A
O valor 0 sampled_mediation_cpm_ahead_of_auction_winner
indica
que o leilão de lances em tempo real venceu. No exemplo acima, o leilão
espera-se que o vencedor não supere os lances de uma rede de mediação concorrente em 52,2% do
momento.
Separação de lances
A separação de lances descreve o processamento de um único
BidRequest
em várias solicitações de lance que são enviadas aos seus
para o aplicativo. Como eles retêm IDs idênticos
(BidRequest.google_query_id
no protocolo RTB do Authorized Buyers)
ou BidRequestExt.google_query_id
no protocolo OpenRTB), será possível
determinar quais solicitações de lance estão correlacionadas após a separação.
Algumas oportunidades de anúncio aceitam vários formatos. Com a separação de lances, cada
formato é enviado em uma solicitação de lance distinta em que atributos como
IDs de faturamento são relevantes para o formato especificado na solicitação.
As solicitações de lance com os formatos a seguir serão reduzidas
solicitações de lance distintas:
Banner
Vídeo
Áudio
Nativo
Veja abaixo um exemplo que mostra uma solicitação de lance JSON do OpenRTB simplificada sem anúncio
nivelamento de formato em comparação com um conjunto equivalente de solicitações simplificadas:
Pré-nivelar
Mostrar o exemplo
{
"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"
}
}
Pós-achatamento
Mostrar o exemplo
Solicitação 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"
}
}
Solicitação 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
Uma oportunidade de anúncio para determinado bidder pode ser aplicável a várias transações
diferentes, além do leilão aberto. Com a separação de lances para transações, um lance
solicitação será enviada para o leilão aberto e uma para cada tipo de item de linha
negócios. Na prática, as restrições de anúncios podem variar entre leilões e preços fixos
de transações, por exemplo, para uma determinada oportunidade de anúncio em vídeo disponível para
no leilão aberto e na transação de preço fixo, um proponente receberá diferentes
solicitações de lance para cada um, em que restrições como duração máxima do anúncio e se
os anúncios puláveis permitidos podem ser diferentes. Como resultado, a separação é aplicada ao anúncio
permite que você discuta mais facilmente as restrições de anúncios para a campanha
leilão e a transação de preço fixo.
Observação :os leilões privados e os pacotes de leilão terão
restrições ao leilão aberto e continuarão sendo incluídas
solicitações de lance de leilão.
Duração máxima do vídeo pulável
O protocolo do Google e a implementação do OpenRTB são compatíveis com os seguintes campos
para a duração do vídeo e a possibilidade de pular:
Duração
Duração do trecho pulável
Recurso para pular
Protocolo do Google
max_ad_duration
skippable_max_ad_duration
video_ad_skippable
OpenRTB
maxduration
N/A
skip
Isso significa que, embora o protocolo do Google possa ter um link
e duração não pulável, a implementação do OpenRTB tem apenas um
o valor máximo da duração.
Antes da separação de lances, o maxduration
do OpenRTB era definido como
o menor dos max_ad_duration
do protocolo do Google e
Campos skippable_max_ad_duration
. Esse comportamento mudou para
enviar duas solicitações de lance separadas quando esses valores forem diferentes: uma representando
os campos maxduration
para puláveis e os não puláveis
oportunidades.
Os exemplos a seguir mostram como uma solicitação de protocolo do Google converte
para o OpenRTB antes e depois da separação de lances. O protocolo equivalente do Google
solicitação tem um max_ad_duration
de 15
e um
skippable_max_ad_duration
de 60
.
Exemplo
max_ad_duration
skip
(verdadeiro OU falso)
Solicitação original sem nivelamento
15
true
Solicitação nivelada no 1: não pulável
15
false
Solicitação nivelada no 2: pulável
60
true
A separação da solicitação de lance de duração de vídeo pulável só vai ocorrer quando
estas condições sejam atendidas:
A solicitação permite vídeo.
Vídeos pulados e não puláveis são permitidos, e os dois respectivos
e durações diferentes em termos de valor.
Esta solicitação está qualificada para leilões privados ou abertos.
A conta do bidder tem endpoints OpenRTB ativos.
Para desativar esse tipo de nivelamento, entre em contato com seu
gerente de contas.
Conjuntos de vídeos
As solicitações de lance para um conjunto de vídeos com várias oportunidades de anúncio são separadas,
de modo que cada solicitação de lance seja para uma oportunidade de anúncio individual desse conjunto.
Isso permite que você dê lances em várias oportunidades de anúncio para um determinado conjunto.
Open Measurement
Com o Open Measurement, você pode especificar fornecedores terceirizados que
serviços independentes de medição e verificação para anúncios veiculados em apps para dispositivos móveis
e ambientes de teste.
É possível determinar se um editor aceita o Open Measurement no lance
solicitação verificando se a oportunidade de anúncio exclui o atributo OmsdkType:
OMSDK 1.0
encontrado em Editor excluído
atributos do criativo . Para o protocolo do Authorized Buyers, seria
encontrado abaixo de BidRequest.adslot[].excluded_attribute
. Para o
protocolo OpenRTB, encontrado no atributo battr
para Banner ou
Vídeo , dependendo
o formato.
Para mais informações sobre como interpretar solicitações de lance que contêm
indicadores de medição, consulte a documentação do
do SDK da Central de Ajuda.
Exemplos de solicitações de lance
As seções a seguir mostram exemplos de solicitações de lance para diferentes tipos de anúncio.
Banner de aplicativo
Google
Mostrar o exemplo
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 do OpenRTB
Mostrar o exemplo
{
"id ": "r87mLfJ195K96b48857234 ",
"imp ": [
{
"id ": "1 ",
"banner ": {
"w ": 390 ,
"h ": 61 ,
"pos ": 1 ,
"api ": [
3 ,
5
],
"wmax ": 390 ,
"hmax ": 61 ,
"wmin ": 261 ,
"hmin ": 46 ,
"format ": [
{
"w ": 390 ,
"h ": 61
},
{
"w ": 320 ,
"h ": 50
}
]
},
"displaymanager ": "GoogleMobileAds - iOS ",
"displaymanagerver ": "11.2.0 ",
"tagid ": "2022397433 ",
"bidfloor ": 0.04 ,
"bidfloorcur ": "USD ",
"secure ": 1 ,
"exp ": 3600 ,
"clickbrowser ": 1 ,
"metric ": [
{
"type ": "click_through_rate ",
"value ": 4.110196186957182 e - 06 ,
"vendor ": "EXCHANGE "
},
{
"type ": "viewability ",
"value ": 0 ,
"vendor ": "EXCHANGE "
}
],
"ext ": {
"billing_id ": [
82346236545
],
"publisher_settings_list_id ": [
5491354135157496540 ,
9146398712997475724
],
"allowed_vendor_type ": [
445 ,
776
],
"ampad ": 2 ,
"allowed_restricted_category ": [
33
],
"skadn ": {
"sourceapp ": "com . google . testapp ",
"skadnetids ": [
"5 c39728P "
],
"versions ": [
"2.0 ",
"2.1 "
],
"fidelities ": [
1 ,
0
]
},
"creative_enforcement_settings ": {
"policy_enforcement ": 2 ,
"publisher_blocks_enforcement ": 1
},
"auction_environment ": 0 ,
"ae ": 0
}
}
],
"app ": {
"name ": "Test App ",
"bundle ": "com . google . testapp ",
"publisher ": {
"id ": "pub - 1242890569860107 ",
"ext ": {
"country ": "SG "
}
},
"content ": {
"url ": "https : //www.google.com",
"livestream ": 0 ,
"language ": "en "
},
"storeurl ": "https : //www.google.com",
"ext ": {
"inventorypartnerdomain ": "OMITTED "
}
},
"device ": {
"ua ": "Mozilla / 5.0 ( iPhone ; CPU iPhone OS 17 _4_1 like Mac OS X ) AppleWebKit / 605.1.15 ( KHTML , like Gecko ) Mobile / 15 E148 ",
"geo ": {
"lat ": 0.0 ,
"lon ": 0.0 ,
"country ": "USA ",
"region ": "MI ",
"metro ": "563 ",
"zip ": "49512 ",
"type ": 2 ,
"utcoffset ": - 240 ,
"accuracy ": 2082
},
"ipv6 ": "2601 : 404 : d980 :: ",
"make ": "Apple ",
"model ": "iPhone14 , 7 ",
"os ": "iOS ",
"osv ": "17.4.1 ",
"connectiontype ": 2 ,
"devicetype ": 4 ,
"lmt ": 1 ,
"hwv ": "iPhone14 , 7 ",
"w ": 390 ,
"h ": 844 ,
"pxratio ": 3 ,
"sua ": {
"browsers ": [
{
"brand ": "Mozilla ",
"version ": [
"5 ",
"0 "
]
},
{
"brand ": "AppleWebKit ",
"version ": [
"605 ",
"1 "
]
}
],
"platform ": {
"brand ": "iPhone ",
"version ": [
"17 ",
"4 "
]
},
"mobile ": 1 ,
"bitness ": "64 ",
"model ": "iPhone ",
"source ": 3
},
"ext ": {
"atts ": 2
}
},
"at ": 1 ,
"tmax ": 300 ,
"cur ": [
"USD "
],
"source ": {
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
},
"ext ": {
"omidpn ": "Google ",
"omidpv ": "afma - sdk - i - v11 .2.0 ",
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
}
}
},
"ext ": {
"google_query_id ": "ANy - z62LCy - as7Eko7z4957U01DLmn1o5VEX66Mm2j8763ahN2zV77j721K17752LzuUR571 ",
"fcap_scope ": 4 ,
"privacy_treatments ": {
"allow_user_data_collection ": 1
}
}
}
Protobuf do OpenRTB
Mostrar o exemplo
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 de app
Google
Mostrar o exemplo
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 do OpenRTB
Mostrar o exemplo
{
"id ": "8460 Dv0171574mt7n9tOQ9 ",
"imp ": [
{
"id ": "1 ",
"banner ": {
"w ": 428 ,
"h ": 846 ,
"pos ": 7 ,
"api ": [
3 ,
5
],
"format ": [
{
"w ": 428 ,
"h ": 846
},
{
"w ": 414 ,
"h ": 736
}
]
},
"displaymanager ": "GoogleMobileAds - iOS ",
"displaymanagerver ": "10.10.0 ",
"instl ": 1 ,
"tagid ": "4914454382 ",
"bidfloor ": 0.01 ,
"bidfloorcur ": "USD ",
"secure ": 1 ,
"exp ": 3600 ,
"clickbrowser ": 1 ,
"metric ": [
{
"type ": "click_through_rate ",
"value ": 0.560609757900238 ,
"vendor ": "EXCHANGE "
},
{
"type ": "viewability ",
"value ": 0.97 ,
"vendor ": "EXCHANGE "
}
],
"ext ": {
"billing_id ": [
73848702501
],
"publisher_settings_list_id ": [
9781603598081027997 ,
9488077458915289715
],
"allowed_vendor_type ": [
698 ,
414
],
"ampad ": 2 ,
"excluded_creatives ": [
{
"buyer_creative_id ": "EXCLUDED_BUYER_CREATIVE_ID "
},
{
"buyer_creative_id ": "EXCLUDED_BUYER_CREATIVE_ID "
}
],
"skadn ": {
"sourceapp ": "com . google . testapp ",
"skadnetids ": [
"43 D4r5x9 "
],
"versions ": [
"2.0 ",
"2.1 "
],
"fidelities ": [
0 ,
1
],
"skoverlay ": 1
},
"creative_enforcement_settings ": {
"policy_enforcement ": 2 ,
"publisher_blocks_enforcement ": 1
},
"auction_environment ": 0 ,
"ae ": 0
}
}
],
"app ": {
"name ": "Test App ",
"bundle ": "com . google . testapp ",
"publisher ": {
"id ": "pub - 5842596021161378 ",
"ext ": {
"country ": "IN "
}
},
"content ": {
"url ": "https : //www.google.com",
"livestream ": 0 ,
"language ": "en "
},
"storeurl ": "https : //www.google.com",
"ext ": {
"inventorypartnerdomain ": "OMITTED "
}
},
"device ": {
"ua ": "Mozilla / 5.0 ( iPhone ; CPU iPhone OS 17 _4_1 like Mac OS X ) AppleWebKit / 605.1.15 ( KHTML , like Gecko ) Mobile / 15 E148 ",
"geo ": {
"lat ": 0.0 ,
"lon ": 0.0 ,
"country ": "SAU ",
"region ": "SA - 02 ",
"city ": "Jiddah ",
"zip ": "23462 ",
"type ": 2 ,
"utcoffset ": 180 ,
"accuracy ": 1291
},
"ipv6 ": "2 a02 : 9 b0 : 4047 :: ",
"carrier ": "71681 ",
"make ": "Apple ",
"model ": "iPhone14 , 8 ",
"os ": "iOS ",
"osv ": "17.4.1 ",
"connectiontype ": 6 ,
"devicetype ": 4 ,
"lmt ": 1 ,
"hwv ": "iPhone14 , 8 ",
"w ": 428 ,
"h ": 926 ,
"pxratio ": 3 ,
"sua ": {
"browsers ": [
{
"brand ": "Mozilla ",
"version ": [
"5 ",
"0 "
]
},
{
"brand ": "AppleWebKit ",
"version ": [
"605 ",
"1 "
]
}
],
"platform ": {
"brand ": "iPhone ",
"version ": [
"17 ",
"4 "
]
},
"mobile ": 1 ,
"bitness ": "64 ",
"model ": "iPhone ",
"source ": 3
},
"ext ": {
"atts ": 2
}
},
"at ": 1 ,
"tmax ": 1000 ,
"cur ": [
"USD "
],
"bcat ": [
"IAB23 - 4 ",
"IAB18 - 5 "
],
"source ": {
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
},
"ext ": {
"omidpn ": "Google ",
"omidpv ": "afma - sdk - i - v10 .10.0 ",
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
}
}
},
"ext ": {
"google_query_id ": "ANy - z562Q0 - p46Tz77U15Ie9774Mnu3QIa45V73X99r9NR1694g5301D186q8ZFJ57Ja8L78 ",
"fcap_scope ": 4 ,
"privacy_treatments ": {
"allow_user_data_collection ": 1
}
}
}
Protobuf do OpenRTB
Mostrar o exemplo
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
}
}
Vídeo de intersticial do app
Google
Mostrar o exemplo
id : "% w \ 237 \ 340 \ 331 q \ 305 e \ 350 \ 324 \ 017 Ho \ 274 f \ 177 #\ 316 \ 231 \ 004 \ 024 y "
ip : "\ 300 \ 250 "
user_agent : "Mozilla / 5.0 ( iPhone ; CPU iPhone OS 16 _5 like Mac OS X ) AppleWebKit / 605.1.15 ( KHTML , like Gecko ) Mobile / 15 E148 "
url : "https : //www.google.com "
detected_language : "te "
adslot {
id : 1
width : 1170
width : 768
height : 2532
height : 1024
excluded_attribute : 17
excluded_attribute : 26
allowed_vendor_type : 797
allowed_vendor_type : 38523
matching_ad_data {
billing_id : 82632801525
billing_id : 33577396948
minimum_cpm_micros : 200000
}
slot_visibility : ABOVE_THE_FOLD
ad_block_key : 8662832267
publisher_settings_list_id : 1529810617400603626
viewability : 99
click_through_rate : 0.75363326
video_completion_rate : 0.07627885
is_rewarded : true
allowed_ad_types : ALLOWED_AD_TYPE_VIDEO
is_amp_page : DIALECT_HTML
amp_ad_requirement_type : AMP_AD_NOT_ALLOWED
api : MRAID_1
api : MRAID_2
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
auction_environment : SERVER_SIDE_AUCTION
impression_expiration_seconds : 3600
supported_auction_environment : SERVER_SIDE_AUCTION
display_manager : "GoogleMobileAds - iOS "
display_manager_version : "7.55.0 "
}
is_test : false
timezone_offset : 300
mobile {
app_id : "734009722 "
is_app : true
is_interstitial_request : true
app_name : "Test App "
}
video {
videoad_start_delay : 0
max_ad_duration : 30000
video_ad_skippable : BLOCK_SKIPPABLE
allowed_video_formats : VIDEO_MP4
max_ads_in_pod : 2
end_cap_support : END_CAP_OPTIONAL
playback_method : CLICK_TO_PLAY
is_clickable : true
placement : INTERSTITIAL
protocols : VAST_2_0
protocols : VAST_3_0
is_livestream : false
playback_cessation_mode : COMPLETION_OR_USER
max_pod_duration_seconds : 30
plcmt : PLCMT_INTERSTITIAL
inferred_plcmt : PLCMT_INTERSTITIAL
}
geo_criteria_id : 2392
publisher_settings_list_id : 7852789180056851229
publisher_type : PUBLISHER_OWNED_AND_OPERATED
partner_id : 7934642581646184119
device {
device_type : HIGHEND_PHONE
platform : "iphone "
brand : "Apple "
model : "iPhone13 , 2 "
os_version {
major : 16
minor : 5
}
carrier_id : 0
screen_width : 1170
screen_height : 2532
screen_pixel_ratio_millis : 3000
screen_orientation : PORTRAIT
hardware_version : "iPhone13 , 2 "
limit_ad_tracking : false
connection_type : WIFI
}
publisher_country : "US "
publisher_id : "pub - 1111111111111111 "
response_deadline_ms : 1000
google_query_id : "ANy - zz7hC6 - w4hX445M724Cr7459S5M13Rw47SH672s9ygi8d8H1LN21ky6939KaU50lQsJR "
auction_type : FIRST_PRICE
geo {
lat : 36.2
lon : 138.25
country : "JPN "
utcoffset : 300
accuracy : 463340
}
user_agent_data {
platform {
brand : "iPhone "
version : "16 "
version : "5 "
}
mobile : true
model : "iPhone "
browsers {
brand : "Mozilla "
version : "5 "
version : "0 "
}
browsers {
brand : "AppleWebKit "
version : "605 "
version : "1 "
}
bitness : "64 "
source : USER_AGENT_STRING
}
supply_chain {
complete : true
nodes {
advertising_system_identifier : "testdomain . com "
seller_identifier : "pub - 1111111111111111 "
handles_payment : true
}
version : "1.0 "
}
frequency_capping_scope : FREQUENCY_CAPPING_SCOPE_NONE
privacy_treatments {
allow_user_data_collection : true
}
inventory_partner_domain : "OMITTED "
Protobuf do OpenRTB
Mostrar o exemplo
id : "378836 oi92t144hpA8Nv3X "
imp {
id : "1 "
video {
mimes : "video / mp4 "
maxduration : 60
w : 375
h : 667
startdelay : 0
playbackmethod : AUTO_PLAY_SOUND_ON
pos : ABOVE_THE_FOLD
api : MRAID_1
api : MRAID_2
protocols : VAST_2_0
protocols : VAST_3_0
skip : false
placement : UNDEFINED_VIDEO_PLACEMENT
playbackend : COMPLETION_OR_USER
}
displaymanager : "GOOGLE "
instl : true
tagid : "4107980261 "
bidfloor : 0.01
bidfloorcur : "USD "
secure : true
metric {
type : "click_through_rate "
value : 0.0364835150539875
vendor : "EXCHANGE "
}
metric {
type : "video_completion_rate "
value : 0.02888789027929306
vendor : "EXCHANGE "
}
[ com . google . doubleclick . imp ] {
billing_id : 80831705186
publisher_settings_list_id : 2080323352414623499
publisher_settings_list_id : 2258624117197706769
allowed_vendor_type : 342
allowed_vendor_type : 698
is_rewarded_inventory : true
ampad : AMP_AD_NOT_ALLOWED
skadn {
version : "2.2 "
sourceapp : "532115234 "
skadnetids : "E499wc36 "
versions : "2.0 "
versions : "2.1 "
fidelities : STOREKIT_RENDERED_ADS
fidelities : VIEW_THROUGH_ADS
}
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
is_default : true
}
auction_environment : SERVER_SIDE_AUCTION
}
}
app {
name : "Test App "
bundle : "532115234 "
publisher {
id : "pub - 8927593002710190 "
[ com . google . doubleclick . publisher ] {
country : "CN "
}
}
content {
url : "https :// www . google . com "
livestream : false
language : "zh "
}
storeurl : "https :// www . google . com "
[ com . google . doubleclick . app ] {
}
}
device {
ua : "Mozilla /5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/ 15 E148 "
ip : "192.168 . 1.0 "
geo {
lat : 0.0
lon : 0.0
country : "CHN "
region : "CN - 33 "
city : "Hangzhou "
type : IP
accuracy : 44240
}
carrier : "70120 "
make : "apple "
model : "iphone "
os : "iOS "
osv : "15.4 . 4 "
devicetype : HIGHEND_PHONE
lmt : true
hwv : "8 "
w : 375
h : 667
pxratio : 2.0
[ com . google . doubleclick . device ] {
user_agent_data {
platform {
brand : "iPhone "
version : "15 "
version : "4 "
}
mobile : true
model : "iPhone "
}
atts : 2
}
}
user {
[ com . google . doubleclick . user ] {
}
}
at : FIRST_PRICE
tmax : 300
cur : "USD "
source {
[ com . google . doubleclick . source ] {
omidpn : "Google "
omidpv : "afma - sdk - i - v8 . 12.0 "
schain {
complete : 1
nodes {
asi : "google . com "
sid : "pub - 4000453616931440 "
hp : 1
}
ver : "1.0 "
}
}
}
[ com . google . doubleclick . bid_request ] {
google_query_id : "ANy - zp09u8 - d20rQ521040dqz39K771Lr9102b031Z15C45Q9q7AB414SnDWG5Rj96Z77W66 "
}
Nativo do app
Google
Mostrar o exemplo
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 do OpenRTB
Mostrar o exemplo
{
"id ": "IDnDvM76w32NI830aSeOLg ",
"imp ": [
{
"id ": "1 ",
"displaymanager ": "GoogleMobileAds - iOS ",
"displaymanagerver ": "10.14.0 ",
"tagid ": "8614649788 ",
"bidfloor ": 1.63 ,
"bidfloorcur ": "USD ",
"secure ": 1 ,
"native ": {
"request ": "{ \ "ver \ ": \ "1.2 \ ", \ "assets \ ":[{ \ "id \ ": 1 , \ "required \ ": 1 , \ "title \ ":{ \ "len \ ": 25 }},{ \ "id \ ": 2 , \ "required \ ": 1 , \ "data \ ":{ \ "type \ ": 2 , \ "len \ ": 90 }},{ \ "id \ ": 3 , \ "data \ ":{ \ "type \ ": 12 , \ "len \ ": 15 }},{ \ "id \ ": 4 , \ "required \ ": 1 , \ "data \ ":{ \ "type \ ": 1 , \ "len \ ": 25 }},{ \ "id \ ": 5 , \ "required \ ": 1 , \ "img \ ":{ \ "type \ ": 3 , \ "wmin \ ": 1200 , \ "hmin \ ": 627 }},{ \ "id \ ": 6 , \ "img \ ":{ \ "type \ ": 2 , \ "wmin \ ": 100 , \ "hmin \ ": 100 }}], \ "eventtrackers \ ":[{ \ "event \ ": 1 , \ "methods \ ":[ 1 ]}]}",
"ver ": "1.2 ",
"api ": [
3 ,
5
],
"battr ": [
6 ,
7
]
},
"exp ": 14400 ,
"clickbrowser ": 1 ,
"metric ": [
{
"type ": "viewability ",
"value ": 0.66 ,
"vendor ": "EXCHANGE "
},
{
"type ": "session_depth ",
"value ": 1 ,
"vendor ": "EXCHANGE "
}
],
"ext ": {
"billing_id ": [
30567639040
],
"publisher_settings_list_id ": [
9263869437120754969 ,
6380991891694941170
],
"allowed_vendor_type ": [
42 ,
144
],
"ampad ": 2 ,
"excluded_creatives ": [
{
"buyer_creative_id ": "EXCLUDED_BUYER_CREATIVE_ID "
},
{
"buyer_creative_id ": "EXCLUDED_BUYER_CREATIVE_ID "
}
],
"skadn ": {
"sourceapp ": "com . google . testapp ",
"skadnetids ": [
"345 vh5bv "
],
"versions ": [
"2.0 ",
"2.1 "
],
"fidelities ": [
1 ,
0
]
},
"creative_enforcement_settings ": {
"policy_enforcement ": 2 ,
"publisher_blocks_enforcement ": 1
},
"auction_environment ": 0 ,
"ae ": 0
}
}
],
"app ": {
"name ": "Test App ",
"bundle ": "com . google . testapp ",
"publisher ": {
"id ": "pub - 5146744635924393 ",
"ext ": {
"country ": "US "
}
},
"content ": {
"url ": "https : //www.google.com",
"livestream ": 0 ,
"language ": "en "
},
"storeurl ": "https : //www.google.com",
"ext ": {
"inventorypartnerdomain ": "OMITTED "
}
},
"device ": {
"ua ": "Mozilla / 5.0 ( iPhone ; CPU iPhone OS 17 _4_1 like Mac OS X ) AppleWebKit / 605.1.15 ( KHTML , like Gecko ) Mobile / 15 E148 PrebidMobile / 2.0.4 ",
"ip ": "192.168.1.0 ",
"geo ": {
"lat ": 0.0 ,
"lon ": 0.0 ,
"country ": "USA ",
"region ": "WA ",
"metro ": "881 ",
"city ": "Quincy ",
"zip ": "98848 ",
"type ": 2 ,
"utcoffset ": - 420 ,
"accuracy ": 19022
},
"make ": "Apple ",
"model ": "iPhone15 , 3 ",
"os ": "iOS ",
"osv ": "17.4.1 ",
"connectiontype ": 2 ,
"devicetype ": 4 ,
"ifa ": "76 RVV351f5D7z7905j9Dhy5kawZNAvn548d3 ",
"lmt ": 0 ,
"hwv ": "iPhone15 , 3 ",
"w ": 430 ,
"h ": 932 ,
"pxratio ": 3 ,
"sua ": {
"browsers ": [
{
"brand ": "Mozilla ",
"version ": [
"5 ",
"0 "
]
},
{
"brand ": "AppleWebKit ",
"version ": [
"605 ",
"1 "
]
}
],
"platform ": {
"brand ": "iPhone ",
"version ": [
"17 ",
"4 "
]
},
"mobile ": 1 ,
"bitness ": "64 ",
"model ": "iPhone ",
"source ": 3
},
"ext ": {
"atts ": 3
}
},
"user ": {
"id ": "V3G2P745W97j342y3bgMZzO8B19 ",
"ext ": {
"session ": {
"duration ": 14
}
}
},
"at ": 1 ,
"tmax ": 300 ,
"cur ": [
"USD "
],
"bcat ": [
"IAB23 - 1 ",
"IAB9 "
],
"bapp ": [
"1427744264 "
],
"source ": {
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
},
"ext ": {
"omidpn ": "Google ",
"omidpv ": "afma - sdk - i - v10 .14.0 ",
"schain ": {
"complete ": 1 ,
"nodes ": [
{
"asi ": "testssp . com ",
"sid ": "pub - 1111111111111111 ",
"hp ": 1
}
],
"ver ": "1.0 "
}
}
},
"ext ": {
"google_query_id ": "ANy - z70v0W - 6 x9m76YuuU237u44yc6fL3Ouo00tZhzmz1rL58xQr1V6tg59Qu5j2f4LEMbPZ ",
"fcap_scope ": 3 ,
"privacy_treatments ": {
"allow_user_data_collection ": 1
}
}
}
Protobuf do OpenRTB
Mostrar o exemplo
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
}
}
Vídeo na Web
Google
Mostrar o exemplo
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 da Web para dispositivos móveis para o bidder da troca
Protobuf do OpenRTB
Mostrar o exemplo
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
}