A real-time bidding interaction begins when Google sends a bid request to
your application. This guide explains how to code your application to
process the bid request.
Parse request
Google sends a bid request as a serialized protocol buffer attached as the
binary payload of an HTTP POST request. The Content-Type
is set to
application/octet-stream
. See Example bid request for an example.
You must parse this request into an instance of the BidRequest
message. BidRequest
is defined in realtime-bidding.proto
,
which can be obtained from the reference data page. You can parse the message
using the ParseFromString()
method in the generated class for the
BidRequest
. For example, the following C++ code parses a request
given a POST payload in a string:
string post_payload = /* the payload from the POST request */;
BidRequest bid_request;
if (bid_request.ParseFromString(post_payload)) {
// Process the request.
}
Once you have the BidRequest
you can then work with it as an
object, extracting and interpreting the fields you need. For example, in
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.
}
Some information sent in a BidRequest
, such as the Google User
ID, language, or geographic location, are not always available. If you have
pretargeting ad groups that use information that is unknown for a given
impression, then those ad groups will not match. In cases where the missing
information doesn't matter for the pretargeting conditions, bid requests are
sent with the information omitted.
Information about the pretargeting ad group is available in the
MatchingAdData
group for each AdSlot
. It contains the
first matching ad group ID of the pretargeting ad group that prompted Google to
send out the bid request, that is, the ad group and campaign that are charged
if your response wins the auction for the impression. Under certain
circumstances, you need to explicitly specify the billing_id
for
attribution in the BidResponse.AdSlot
, for example, when the
BidRequest.AdSlot
has more than one matching_ad_data
.
For more information on the constraints on the contents of the bid, refer to
therealtime-bidding.proto
.
Dictionary files
The bid request uses identifiers defined in dictionary files, which are
available on the reference data
page.
Bid URL macros
Optionally, some fields of the BidRequest
can be inserted into
the URL used in the HTTP POST request. This is useful, for example, if you use
a lightweight frontend that load balances over multiple backends using a value
from the request. Contact your technical account manager to request support for
new macros.
Macro Description
%%GOOGLE_USER_ID%%
Replaced with the google_user_id
from the BidRequest
. For example, the bidder URL
http://google.bidder.com/path?gid=%%GOOGLE_USER_ID%%
will be replaced by something like
http://google.bidder.com/path?gid=dGhpyBhbiBleGFtGxl
at request time.
If the Google User ID is unknown, the empty string is substituted, with a
result similar to
http://google.bidder.com/path?gid=
%%HAS_MOBILE%%
Replaced with 1
or 0
when calling
BidRequest
's has_mobile()
.
%%HAS_VIDEO%%
Replaced with 1
(true) or 0
(false)
when calling BidRequest
's has_video()
.
%%HOSTED_MATCH_DATA%%
Replaced with the value of the hosted_match_data
field
from the BidRequest
.
%%MOBILE_IS_APP%%
Replaced with 1
(true) or 0
(false)
from BidRequest
's mobile.is_app
field.
Find mobile app ID from transaction URL
Mobile application transactions will report URLs that look like this:
mbappgewtimrzgyytanjyg4888888 .com
Use a base-32 decoder to decode the portion of the string in bold
(gewtimrzgyytanjyg4888888
).
You can use an online
decoder , but you'll have to capitalize the letters and replace trailing
8
s with =
values.
So decoding this value:
GEWTIMRZGYYTANJYG4======
results in:
1-429610587
The string
429610587
is the app ID for the iOS app
iFunny .
Here's another example. The reported URL is:
mbappgewtgmjug4ytmmrtgm888888 .com
Decoding this value:
GEWTGMJUG4YTMMRTGM======
results in:
1-314716233
The result
314716233
is the app ID for the iOS app
TextNow .
Find mobile app name from transaction URL
Here's an example of getting the app name. The reported URL is as follows:
mbappMFUXELTDN5WS42DZOBQWQLTJN4XHG3DJORUGK4Q888 .com
Decoding this value:
MFUXELTDN5WS42DZOBQWQLTJN4XHG3DJORUGK4Q===
results in:
air.com.hypah.io.slither
The result equates to the Android app
slither.io .
Open Bidding fields
Bid requests sent to exchange and network bidders participating in Open
Bidding are similar to those of Authorized Buyers participating in standard
real-time bidding. Open Bidding customers will receive a small number of
additional fields, and a few existing fields may have alternative uses. These
include the following:
OpenRTB
Authorized Buyers
Details
BidRequest.imp[].ext.dfp_ad_unit_code
BidRequest.adslot[].dfp_ad_unit_code
Contains the publisher's Ad Manager network code followed by the ad
unit hierarchy, separated by forward slashes.
As an example, this would appear with formatting similar to:
/1234/cruises/mars
.
BidRequest.user.data[].segment[]
BidRequest.adslot[].exchange_bidding.key_value[]
Repeated key-value pairs sent from publisher to exchange bidder.
You can determine that the values are key-value pairs sent by the
publisher when BidRequest.user.data[].name
is set to
“Publisher Passed”
.
Note: This field is currently only sent to closed beta
participants.
Declare allowed vendors
Technology vendors which provide services such as research, remarketing, and
ad serving may play a role in the interaction between buyers and sellers. Only
vendors which Google has vetted for participation in Authorized Buyers
interactions are allowed.
To understand the BidRequest
and create your
BidResponse
, you need to be aware of the two different
possibilities for declaring technology vendors:
Some vendors do not need to be declared; these vendors are listed in the Authorized Buyers Help .
Other vendors can only participate if they are declared in both the
BidRequest
and BidResponse
:
In the BidRequest
, the allowed_vendor_type
field specifies which vendors the seller allows. Vendors that will be sent in
the allowed_vendor_type
field of the BidRequest
are
listed in the Vendors.txt
dictionary file.
In the BidResponse
, the vendor_type
field
specifies which of those allowed vendors the buyer intends to use.
Example bid request
The following examples represent human-readable samples of the Protobuf and
JSON requests.
Google
Show me the example
id: "\001\276\271\324j\323\235\324\326a&\242/\371\230k\336X\352y\275K/"
ip: "\300\250"
user_agent: "Mozilla/5.0 (Linux; Android 11; SM-A025U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Mobile Safari/537.36"
url: "https://www.google.com"
detected_language: "es"
adslot {
id: 1
width: 336
width: 300
height: 280
height: 250
excluded_attribute: 25
excluded_attribute: 34
allowed_vendor_type: 3
allowed_vendor_type: 42
excluded_sensitive_category: 36
excluded_sensitive_category: 4
matching_ad_data {
billing_id: 12643149723
minimum_cpm_micros: 6250000
}
slot_visibility: BELOW_THE_FOLD
excluded_product_category: 10080
excluded_product_category: 10137
ad_block_key: 9526068969
publisher_settings_list_id: 1837341518912841485
publisher_settings_list_id: 4570460332307961497
iframing_state: UNKNOWN_IFRAME_STATE
viewability: 20
click_through_rate: 0.003267611376941204
allowed_ad_types: ALLOWED_AD_TYPE_BANNER
is_amp_page: DIALECT_HTML
amp_ad_requirement_type: AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
session_depth: 2
creative_enforcement_settings {
policy_enforcement: POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
is_default: false
}
auction_environment: SERVER_SIDE_AUCTION
}
is_test: false
cookie_version: 1
google_user_id: "8bN8AWF82g27t1649IL0141MhF2"
mobile {
is_app: false
is_mobile_web_optimized: true
}
cookie_age_seconds: 5184000
geo_criteria_id: 1015116
seller_network_id: 5722
publisher_type: PUBLISHER_OWNED_AND_OPERATED
device {
device_type: HIGHEND_PHONE
platform: "android"
brand: "samsung"
model: "sm-a025u"
os_version {
major: 11
}
carrier_id: 70093
screen_width: 412
screen_height: 915
screen_pixel_ratio_millis: 1750
limit_ad_tracking: false
}
publisher_country: "US"
publisher_id: "pub-1111111111111111"
response_deadline_ms: 300
google_query_id: "ANy-zW75C5-D0LVOhJ2vDq8LO4jFC5U67H03586V4qT266yQ3fT6e99Z423l0A8N002W3n40"
auction_type: FIRST_PRICE
geo {
lat: 25.76
lon: -80.19
country: "USA"
region: "FL"
metro: "528"
city: "Miami"
accuracy: 8104
}
user_agent_data {
browsers {
brand: "Chrome"
version: "100"
version: "0"
}
platform {
brand: "Android"
version: "11"
}
mobile: true
model: "sm-a025u"
}
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_BROWSER
OpenRTB JSON
Show me the example
{
"id": "2971X3628L1e4Jv17tJ4GL",
"imp": [
{
"id": "1",
"banner": {
"w": 320,
"h": 50,
"pos": 1,
"expdir": [
1,
2,
3,
4
],
"api": [
3,
5
],
"format": [
{
"w": 320,
"h": 50
}
]
},
"tagid": "6238273354",
"bidfloor": 0.03,
"bidfloorcur": "EUR",
"secure": 1,
"metric": [
{
"type": "click_through_rate",
"value": 4.5860808313591406e-05,
"vendor": "EXCHANGE"
},
{
"type": "viewability",
"value": 0.92,
"vendor": "EXCHANGE"
}
],
"ext": {
"billing_id": [
91146810793
],
"dfp_ad_unit_code": "/8310990/google/test",
"ampad": 2,
"open_bidding": {
"is_open_bidding": 1
},
"creative_enforcement_settings": {
"policy_enforcement": 1,
"publisher_blocks_enforcement": 2,
"is_default": 1
},
"auction_environment": 0
}
}
],
"app": {
"name": "Test App",
"bundle": "com.google.testapp",
"publisher": {
"id": "pub-2738945863893931",
"ext": {
"country": "US"
}
},
"content": {
"url": "https://www.google.com",
"userrating": "4.1",
"livestream": 0,
"language": "en"
},
"ext": {
"inventorypartnerdomain": ""
}
},
"device": {
"ua": "Mozilla/5.0 (Linux; Android 9; SM-G950U Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.127 Mobile Safari/537.36 (Mobile; afma-sdk-a-v221215030.221215030.0)",
"ip": "192.168.1.0",
"geo": {
"lat": 0.0,
"lon": 0.0,
"country": "USA",
"region": "WI",
"metro": "617",
"city": "Milwaukee",
"type": 2,
"accuracy": 10530
},
"carrier": "70119",
"make": "samsung",
"model": "sm-g950u",
"os": "android",
"osv": "9",
"devicetype": 4,
"ifa": "9U36EzPIKb9Z0Dws76Bzde1nls44cU95kwk2",
"lmt": 0,
"w": 360,
"h": 692,
"pxratio": 3,
"ext": {
"user_agent_data": {
"platform": {
"brand": "Android",
"version": [
"9"
]
},
"mobile": 1,
"model": "sm-g950u",
"browsers": [
{
"brand": "Chrome",
"version": [
"100",
"0"
]
},
{
"brand": "Mozilla",
"version": [
"5",
"0"
]
},
{
"brand": "AppleWebKit",
"version": [
"537",
"36"
]
}
]
}
}
},
"user": {
"id": "mhkwYsO7lsG0JHk2jTAAAW1vp6c",
"ext": {}
},
"at": 1,
"tmax": 1000,
"cur": [
"EUR"
],
"source": {
"ext": {
"omidpn": "Google",
"omidpv": "afma-sdk-a-v221310999.212910000.1",
"schain": {
"complete": 1,
"nodes": [
{
"asi": "google.com",
"sid": "pub-6384385731055605",
"hp": 1
}
],
"ver": "1.0"
}
}
},
"ext": {
"google_query_id": "ANy-z6Ea56-0S0597bYX6331kQp9s49u1H2Ai586c2r7q8lMQ2d7JsGW327LYXyT2Ux5798c",
"fcap_scope": 3,
"privacy_treatments": {}
}
}
OpenRTB Protobuf
Show me the example
id: "378836oi92t144hpA8Nv3X"
imp {
id: "1"
banner {
w: 300
h: 250
pos: BELOW_THE_FOLD
expdir: LEFT
expdir: RIGHT
expdir: UP
expdir: DOWN
format {
w: 300
h: 250
}
}
displaymanager: "GOOGLE"
tagid: "1207256787"
bidfloor: 0.53
bidfloorcur: "USD"
secure: true
metric {
type: "click_through_rate"
value: 7.040146738290787e-05
vendor: "EXCHANGE"
}
metric {
type: "viewability"
value: 0.04
vendor: "EXCHANGE"
}
[com.google.doubleclick.imp] {
billing_id: 99986364855
dfp_ad_unit_code: "/5847528/google/test"
ampad: AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
open_bidding {
is_open_bidding: true
}
creative_enforcement_settings {
policy_enforcement: POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_OVERRIDDEN
is_default: true
}
auction_environment: SERVER_SIDE_AUCTION
}
}
site {
publisher {
id: "pub-1111111111111111"
[com.google.doubleclick.publisher] {
country: "GB"
}
}
content {
livestream: false
language: "en"
}
mobile: true
[com.google.doubleclick.site] {
amp: DIALECT_HTML
page_visibility: VISIBILITY_STATE_VISIBLE
}
}
device {
ua: "Mozilla/5.0 (Linux; Android 9; SM-G950U Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.127 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/364.0.0.24.132;]"
ip: "192.168.1.0"
geo {
lat: 0.0
lon: 0.0
country: "USA"
region: "MD"
metro: "511"
city: "Clarksburg"
}
make: "samsung"
model: "sm-g950u"
os: "android"
osv: "9"
devicetype: HIGHEND_PHONE
lmt: false
w: 360
h: 740
pxratio: 3.0
sua {
browsers {
brand: "Chrome"
version: "100"
version: "0"
}
platform {
brand: "Android"
version: "9"
}
mobile: true
model: "SM-G950U"
}
}
user {
id: "f4G8H7cP3675g5P04i7CrpZ1b07"
buyeruid: "1aLfGYj5X30t47dA5nUZ87Q663TbVp04"
customdata: "CRlYHM5hq3G2J0676T1V98Q9vA7g0zal0377C3GC1N0AVTTy"
[com.google.doubleclick.user] {
}
}
at: FIRST_PRICE
tmax: 300
cur: "USD"
source {
[com.google.doubleclick.source] {
schain {
complete: 1
nodes {
asi: "google.com"
sid: "pub-9922974912311690"
hp: 1
}
ver: "1.0"
}
}
}
[com.google.doubleclick.bid_request] {
google_query_id: "ANy-zp09u8-d20rQ521040dqz39K771Lr9102b031Z15C45Q9q7AB414SnDWG5Rj96Z77W66"
fcap_scope: FREQUENCY_CAPPING_SCOPE_BROWSER
}
To convert the bid request into a binary form, like you would get from the
POST payload in a real request, you can do the following (in C++). Note,
however, that this is not applicable to OpenRTB JSON.
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 passes a mobile advertising ID in bid requests from a
mobile application. The mobile advertising ID can be an
iOS IDFA or
Android's advertising ID , which is sent through the
%%EXTRA_TAG_DATA%%
macro in the JavaScript tag managed by
Authorized Buyers.
The %%ADVERTISING_IDENTIFIER%%
macro allows buyers to receive
iOS IDFA or Android's Advertising ID on impression rendering. It returns an
encrypted proto buffer MobileAdvertisingId
like
%%EXTRA_TAG_DATA%%
:
message MobileAdvertisingId {
optional bytes advertising_id = 1;
optional int32 user_id_type = 2;
}
The user_id_type
is one of the values defined in the
enum AdxMobileIdType
:
enum AdxMobileIdType {
MOBILE_ID_UNKNOWN = 0,
IDFA = 1,
ANDROID_ID = 2,
};
You can create user lists from mobile advertising IDs using advertising IDs
you've collected during impression rendering. These user lists can be maintained
on your server or on ours. To create user lists on Google's servers you can use
our bulk upload facility.
When the mobile advertising ID matches a user list, you can use it to run
remarketing.
Real-time feedback
Real-time feedback is available to Authorized Buyers, as well
as exchanges and networks using Open Bidding.
Bid response feedback is supported on the subsequent bid request for both
AdX Protocol and OpenRTB. For OpenRTB, it is sent in
BidRequestExt
.
In addition to the default fields sent in Bid Response Feedback, you can
also send custom data in the bid response (in either AdX Proto or OpenRTB)
using an event_notification_token
that is returned in the
BidResponse
. The event_notification_token
is
arbitrary data known only to the bidder that might help with debugging, for
example: a new targeting ID or bidding ID representing a new tactic, or
metadata associated with the creative known only to the bidder. For details,
see OpenRTB
Extensions Protocol Buffer for RTB and AdX Proto
for AdX.
When Authorized Buyers sends a bid request to a bidder, the bidder replies
with a BidResponse
. If the bidder has real-time feedback enabled,
then in a subsequent bid request, Authorized Buyers sends feedback on the
response in a BidResponseFeedback
message, as shown below:
// Feedback on bids submitted in previous responses. This is only set if
// real-time feedback is enabled for your bidder. Contact your account
// manager if you want to enable real-time feedback.
//
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;
// 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;
}
repeated BidResponseFeedback bid_response_feedback = 44;
From this message, the first field you should check is
bid_response_feedback.creative_status_code
; you can find the code
meaning in
creative-status-codes.txt . Note that if you win the bid, you can opt out
from the price feedback. For more information, see How to
opt-out .
The real-time feedback includes the bid request ID and one of the
following:
Auction outcome
Real-time feedback
The buyer didn't submit a bid.
Nothing.
The buyer submitted a bid that was filtered out before reaching
the auction.
The creative status code (see
creative-status-codes.txt ).
The buyer submitted a bid but lost the auction.
The creative status code 79
(outbid in
auction).
The buyer submitted a bid that won the auction.
The clearing price and creative status code 1
.
For an app impression and a creative status code of 53
, the
app publisher could have been using a mediation waterfall and therefore the
winning bid would have competed against other demand in the publisher's
passback waterfall chain. Learn how to use
sampled_mediation_cpm_ahead_of_auction_winner
when
bidding .
Sample
The following is a sample of real-time feedback as seen in supported
protocols:
Google
Show me the example
id: "\253s\346\264+f\315\2505\375md\315\2720U\357\261\237\031\266\227\023"
ip: "\300\250"
user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Instagram 234.0.0.19.114 (iPhone13,2; iOS 15_4_1; en_US; en; scale=3.00; 1170x2532; 368521586)"
url: "https://www.google.com"
detected_language: "en"
adslot {
id: 1
width: 320
width: 300
height: 50
height: 50
excluded_attribute: 16
excluded_attribute: 25
allowed_vendor_type: 3
allowed_vendor_type: 42
excluded_sensitive_category: 36
excluded_sensitive_category: 27
matching_ad_data {
billing_id: 21598308433
minimum_cpm_micros: 190000
direct_deal {
direct_deal_id: 91999040
fixed_cpm_micros: 190000
deal_type: AUCTION_PACKAGE
}
}
slot_visibility: BELOW_THE_FOLD
excluded_product_category: 10031
excluded_product_category: 10080
ad_block_key: 5264449314
publisher_settings_list_id: 1628874090293145259
publisher_settings_list_id: 3234468745852371051
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: 98
allowed_restricted_category_for_deals: 33
auto_refresh {
refresh_count: 6
}
click_through_rate: 5.757739199907519e-05
allowed_ad_types: ALLOWED_AD_TYPE_BANNER
is_amp_page: DIALECT_HTML
amp_ad_requirement_type: AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
flexible_adslot_settings {
max_width: 320
max_height: 50
min_width: 214
min_height: 33
}
creative_enforcement_settings {
policy_enforcement: POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
is_default: false
}
auction_environment: SERVER_SIDE_AUCTION
}
is_test: false
mobile {
is_app: false
is_mobile_web_optimized: true
}
geo_criteria_id: 9058679
seller_network_id: 11359
bid_response_feedback {
request_id: "}l\034\301\261{i\243\361=\274\224\366\330S\225"
creative_status_code: 1
event_notification_token: "token"
buyer_creative_id: "test_creative_id_765250"
minimum_bid_to_win: 600000
bid_cpm_micros: 861728
}
publisher_type: PUBLISHER_OWNED_AND_OPERATED
device {
device_type: HIGHEND_PHONE
platform: "iphone"
brand: "apple"
model: "iphone"
os_version {
major: 15
minor: 4
micro: 1
}
carrier_id: 70119
screen_width: 390
screen_height: 844
screen_pixel_ratio_millis: 3000
limit_ad_tracking: false
}
publisher_country: "US"
publisher_id: "pub-1111111111111111"
response_deadline_ms: 300
google_query_id: "ANy-zW75C5-D0LVOhJ2vDq8LO4jFC5U67H03586V4qT266yQ3fT6e99Z423l0A8N002W3n40"
auction_type: FIRST_PRICE
geo {
lat: 40.93
lon: -74.08
country: "USA"
region: "NJ"
metro: "501"
accuracy: 16351
}
user_agent_data {
platform {
brand: "iPhone"
version: "15"
version: "4"
}
mobile: true
}
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"
}
OpenRTB JSON
Show me the example
{
"id": "L5B14b97anPGL2Fg17B187",
"imp": [
{
"id": "1",
"banner": {
"w": 320,
"h": 50,
"pos": 1,
"expdir": [
1,
2,
3,
4
],
"api": [
3,
5
],
"format": [
{
"w": 320,
"h": 50
}
]
},
"tagid": "1021472578",
"bidfloor": 0.01,
"bidfloorcur": "USD",
"secure": 1,
"metric": [
{
"type": "viewability",
"value": 0.96,
"vendor": "EXCHANGE"
}
],
"ext": {
"billing_id": [
33798644522
],
"dfp_ad_unit_code": "/8310990/google/test",
"ampad": 2,
"open_bidding": {
"is_open_bidding": 1
},
"skadn": {
"version": "2.2",
"sourceapp": "994680680",
"skadnetids": [
"0h3W6Uj6",
"v1735fce"
],
"versions": [
"2.0",
"2.1"
],
"fidelities": [
1
]
},
"creative_enforcement_settings": {
"policy_enforcement": 1,
"publisher_blocks_enforcement": 2,
"is_default": 1
},
"auction_environment": 0
}
}
],
"app": {
"name": "Test App",
"bundle": "994680680",
"publisher": {
"id": "pub-2738945863893931",
"ext": {
"country": "US"
}
},
"content": {
"url": "https://www.google.com",
"livestream": 0,
"language": "en"
},
"storeurl": "https://www.google.com",
"ext": {
"inventorypartnerdomain": ""
}
},
"device": {
"ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_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": "USA",
"region": "CT",
"metro": "533",
"zip": "06437",
"type": 2,
"accuracy": 7317
},
"make": "apple",
"model": "iphone",
"os": "iOS",
"osv": "15.4.4",
"devicetype": 4,
"lmt": 0,
"w": 390,
"h": 844,
"pxratio": 3,
"ext": {
"user_agent_data": {
"platform": {
"brand": "iPhone",
"version": [
"15",
"4"
]
},
"mobile": 1,
"browsers": [
{
"brand": "Mozilla",
"version": [
"5",
"0"
]
},
{
"brand": "AppleWebKit",
"version": [
"605",
"1"
]
}
],
"bitness": "64"
}
}
},
"user": {
"ext": {}
},
"at": 1,
"tmax": 300,
"cur": [
"USD"
],
"source": {
"ext": {
"omidpn": "Google",
"omidpv": "afma-sdk-i-v8.13.0",
"schain": {
"complete": 1,
"nodes": [
{
"asi": "google.com",
"sid": "pub-6950425611895734",
"hp": 1
}
],
"ver": "1.0"
}
}
},
"ext": {
"bid_feedback": [
{
"request_id": "jJ41j2Sdn2hiyv7508u9X9",
"creative_status_code": 80,
"event_notification_token": {
"payload": "token"
},
"buyer_creative_id": "test_creative_id_976289",
"minimum_bid_to_win": 1110
}
],
"google_query_id": "ANy-z6Ea56-0S0597bYX6331kQp9s49u1H2Ai586c2r7q8lMQ2d7JsGW327LYXyT2Ux5798c",
"fcap_scope": 4,
"privacy_treatments": {
"non_personalized_ads_reason": [
3
]
}
}
}
OpenRTB Protobuf
Show me the example
id: "378836oi92t144hpA8Nv3X"
imp {
id: "1"
banner {
w: 336
h: 280
pos: BELOW_THE_FOLD
expdir: LEFT
expdir: RIGHT
expdir: UP
expdir: DOWN
format {
w: 336
h: 280
}
format {
w: 300
h: 250
}
}
displaymanager: "GOOGLE"
tagid: "1935028388"
bidfloor: 0.01
bidfloorcur: "USD"
secure: true
metric {
type: "click_through_rate"
value: 0.0008105529705062509
vendor: "EXCHANGE"
}
metric {
type: "viewability"
value: 0.61
vendor: "EXCHANGE"
}
[com.google.doubleclick.imp] {
billing_id: 56229662526
dfp_ad_unit_code: "/5847528/google/test"
ampad: AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
open_bidding {
is_open_bidding: true
}
creative_enforcement_settings {
policy_enforcement: POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_OVERRIDDEN
is_default: true
}
auction_environment: 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
}
}
device {
ua: "Mozilla/5.0 (Linux; Android 12; SM-G998U Build/SP1A.210812.016; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/101.0.4951.61 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/366.1.0.20.113;]"
ip: "192.168.1.0"
geo {
lat: 0.0
lon: 0.0
country: "USA"
region: "UT"
metro: "770"
city: "Cedar City"
utcoffset: -360
}
make: "samsung"
model: "sm-g998u"
os: "android"
osv: "12"
devicetype: HIGHEND_PHONE
lmt: false
w: 384
h: 854
pxratio: 2.813
sua {
browsers {
brand: "Chrome"
version: "101"
version: "0"
}
platform {
brand: "Android"
version: "12"
}
mobile: true
model: "sm-g998u"
}
}
user {
id: "N717P58M82GNvLST319530D47x5"
buyeruid: "mX5a5Kd35N3D29zYh64hx4s1B289EuH6"
customdata: "PU0805WI2pbjD3E8PV90PaCM55Q6i9x46T72NjG5Sh5nY6mf"
[com.google.doubleclick.user] {
}
}
at: FIRST_PRICE
tmax: 300
cur: "USD"
source {
[com.google.doubleclick.source] {
schain {
complete: 1
nodes {
asi: "google.com"
sid: "pub-8588259130877863"
hp: 1
}
ver: "1.0"
}
}
}
[com.google.doubleclick.bid_request] {
bid_feedback {
request_id: "kB9yv40o3Z6K2yoC8BbmL8"
creative_status_code: 79
event_notification_token {
payload: "token"
}
buyer_creative_id: "test_creative_id_236865"
minimum_bid_to_win: 0.19
}
google_query_id: "ANy-zp09u8-d20rQ521040dqz39K771Lr9102b031Z15C45Q9q7AB414SnDWG5Rj96Z77W66"
fcap_scope: FREQUENCY_CAPPING_SCOPE_BROWSER
}
Build a bidding model for first-price auctions
After placing a bid in a first-price auction, you will receive real-time
feedback including the minimum_bid_to_win
and
sampled_mediation_cpm_ahead_of_auction_winner
fields if the bid
was not filtered from the auction. These signals can be used to inform your
bidding logic on how much higher or lower your bid could have been in order to
win the impression.
minimum_bid_to_win
: The minimum bid that could have been
placed to win the real-time bidding auction. If you won the auction, this will
be the lowest bid you could have placed while still winning. If you lost the
auction, this will be the winning bid.
sampled_mediation_cpm_ahead_of_auction_winner
: If there are
other networks in the mediation chain , the
value of this field is a price representing a sample bid from one of the
eligible mediation networks that were higher than the auction winner, weighted
by expected fill rate. This will be set to 0 if none of the networks in the
mediation chain are expected to fill, or if the publisher does not use SDK
mediation.
How it works
In order to describe the calculations used to determine the possible values
for minimum_bid_to_win
and
sampled_mediation_cpm_ahead_of_auction_winner
, we first need to
define the following:
The following represents the CPMs in the mediation chain in descending order:
\[C_1, C_2, …, C_n\]
The following represents the corresponding fill rates for the CPMs in the
mediation chain:
\[f_1, f_2, …, f_n\]
The following is a function used to determine the expected CPM and its
probability from mediation chain element \(i\), based on the given fill
rate:
\(X_i = \{C_i\) with probability \(f_i\); \(0\) with probability \(1 - f_i\}\)
The final winning mediation chain will be:
\[\{C_1, C_2, …, C_K, W\}\]
where \(W\) is the winning bid, and \(C_K > W >= C_{K+1}\)
The reserve price, or floor, is denoted as \(F\).
The runner-up bid is denoted as \(R\).
Calculations for auction winner
Field
Calculation
minimum_bid_to_win
\(max\{F, R, X_{K+1}, …, X_n\}\)
sampled_mediation_cpm_ahead_of_auction_winner
\(\{C_i\) with probability \(\prod_{j=1}^{i-1}(1-f_j) \cdot f_i \div \prod_{j=1}^{K}(1-f_j)\}\)
For \(1 <= i <= K\).
Calculations for auction loser
Field
Calculation
minimum_bid_to_win
\(max\{F, W\}\)
sampled_mediation_cpm_ahead_of_auction_winner
\(max\{X_1, …, X_K\}\)
Assume a publisher uses both real-time bidding and an SDK mediation chain as
follows:
SDK Mediation Chain
Expected CPM
Fill Rate
Network 1
\(C_1 = $3.00\)
\(f_1 = 5\%\)
Network 2
\(C_2 = $2.00\)
\(f_2 = 45\%\)
Network 3
\(C_3 = $0.50\)
\(f_3 = 80\%\)
Network 4
\(C_4 = $0.10\)
\(f_4 = 85\%\)
Assume the following as the result of the RTB auction:
RTB Auction
CPM
Auction Winner (W)
$1.00
Auction Runner-UP (R)
$0.05
Reserve Price / Floor (F)
$0
Bid that won the auction
The following is an example of how values and probabilities for
minimum_bid_to_win
and
sampled_mediation_cpm_ahead_of_auction_winner
are calculated for a
bid that won.
minimum_bid_to_win
Probability
\(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
Probability
\(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\%\)
Note: If the auction winner serves their ad and receives a billing
notification, for example, through an endpoint specified in
BidResponse.ad[].impression_tracking_url
, or
BidResponse.seatbid[].bid[].burl
in OpenRTB—the auction winner can
deduce that neither of the sampled mediation CPMs ended up filling, and can
include how often this occurs into their model.
Bids that lost the auction
The following is an example of how values and probabilities for
minimum_bid_to_win
and
sampled_mediation_cpm_ahead_of_auction_winner
are calculated for a
bids that lost.
minimum_bid_to_win
Probability
\(max(F, W) = $1.00\)
\(100\%\)
sampled_mediation_cpm_ahead_of_auction_winner
Probability
\(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\%\)
Note: A
sampled_mediation_cpm_ahead_of_auction_winner
value of 0 indicates
that the real-time bidding auction won. In the above example, the auction
winner is expected to not outbid by a competing mediation network 52.2% of the
time.
Bid flattening
Bid flattening describes the processing of a single complex
BidRequest
into multiple bid requests that are sent to your
application. Because they retain identical IDs
(BidRequest.google_query_id
in the Authorized Buyers RTB Protocol
or BidRequestExt.google_query_id
in the OpenRTB protocol) you can
determine which bid requests are correlated after flattening.
Some ad opportunities can accept multiple formats. With bid flattening, each
format is sent in a distinct bid request where attributes such as eligible
billing IDs are relevant to the format specified in the request.
Bid requests containing the following formats will be flattened into
distinct bid requests:
Banner
Video
Audio
Native
Below is an example showing a simplified OpenRTB JSON bid request without ad
format flattening in comparison to an equivalent set of flatenned requests:
Pre-flatten
Show me the example
{
"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"
}
}
Post-flatten
Show me the example
Request 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"
}
}
Request 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"
}
}
Deals
An ad opportunity for a given bidder can be applicable to various deal
types, in addition to the open auction. With bid flattening for deals, one bid
request will be sent for the open auction, and one for each type of fixed-price
deal. In practice, ad constraints can differ between auctions and fixed-price
deal types, for example, for a given video ad opportunity that is available to
both the open auction and a fixed-price deal, a bidder will receive distinct
bid requests for each where constraints such as maximum ad duration and whether
skippable ads are allowed can differ. As a result, flattening applied to the ad
opportunity lets you more easily discern the ad constraints for the open
auction and the fixed-price deal.
Note: Private Auctions and Auction Packages will have identical
constraints to the open auction, and will continue to be included in open
auction bid requests.
Max skippable video duration
Google's protocol and OpenRTB implementation support the following fields
for video duration and skipability:
Duration
Skippable duration
Skipability
Google protocol
max_ad_duration
skippable_max_ad_duration
video_ad_skippable
OpenRTB
maxduration
n/a
skip
This means that while the Google protocol can have a granular skippable
and non-skippable duration, the OpenRTB implementation only has a single
maximum duration value.
Prior to bid flattening, OpenRTB's maxduration
would be set to
the lower of the Google protocol's max_ad_duration
and
skippable_max_ad_duration
fields. This behavior has now changed to
sending two separate bid requests when these values differ: one representing
the maxduration
for skippable and the other for non-skippable
opportunities.
The following examples show how a Google protocol request translates
to OpenRTB before and after bid flattening. The equivalent Google protocol
request has a max_ad_duration
of 15
and a
skippable_max_ad_duration
of 60
.
Example
max_ad_duration
skip
(true OR false)
Original request without flattening
15
true
Flattened request #1: Non-skippable
15
false
Flattened request #2: Skippable
60
true
Skippable video duration bid request flattening will only take place when
these conditions are met:
The request allows video.
Both skip and no-skip videos are allowed, and the two respective max
durations differ in value.
This request is Private Auction or Open Auction-eligible.
The bidder account has active OpenRTB endpoints.
You can opt out from this type of flattening by contacting your technical
account manager.
Video pods
Bid requests for a video pod with multiple ad opportunities are flattened,
such that each bid request is for an individual ad opportunity from that pod.
This enables you to bid on multiple ad opportunities for a given pod.
Open Measurement
Open Measurement lets you specify third-party vendors that provide
independent measurement and verification services for ads served to mobile app
environments.
You can determine whether a publisher supports Open Measurement in the bid
request by checking whether the ad opportunity excludes the OmsdkType:
OMSDK 1.0
attribute found in Publisher-excludable
creative attributes . For the Authorized Buyers protocol, this would be
found under BidRequest.adslot[].excluded_attribute
. For the
OpenRTB protocol, this would be found under the battr
attribute
for Banner or
Video , depending on
the format.
For more information on how to interpret bid requests containing Open
Measurement signals, refer to the Open Measurement
SDK Help Center article.
Sample bid requests
The following sections show sample bid requests for different ad types.
App banner
Google
Show me the example
id: "t\305Y\217\325?l\027\340\007~8\355Z(\276\367\001X/E\007$"
ip: "\300\250"
user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
url: "https://www.google.com"
detected_language: "en"
adslot {
id: 1
width: 320
width: 375
height: 50
height: 59
excluded_attribute: 34
excluded_attribute: 70
allowed_vendor_type: 704
allowed_vendor_type: 776
excluded_sensitive_category: 36
excluded_sensitive_category: 19
matching_ad_data {
billing_id: 61079118432
minimum_cpm_micros: 10000
}
slot_visibility: ABOVE_THE_FOLD
excluded_product_category: 11321
ad_block_key: 6739283573
publisher_settings_list_id: 6303324577610681564
excluded_creatives {
buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
}
excluded_creatives {
buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
}
viewability: 99
renderer: GOOGLE
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: 375
max_height: 59
min_width: 251
min_height: 44
}
omidpn: "Google"
omidpv: "afma-sdk-i-v8.12.0"
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
}
is_test: false
mobile {
app_id: "670859293"
is_app: true
app_name: "Test App"
skadn {
version: "2.2"
sourceapp: "670859293"
skadnetids: "9Qvt7vzv"
skadnetids: "C7434lkC"
versions: "2.0"
versions: "2.1"
supported_fidelity_types: STOREKIT_RENDERED_ADS
}
}
geo_criteria_id: 1016367
encrypted_hyperlocal_set: "!\201\200\273\223\2119\367\255M\346\240\\\311\305}he\025\250d\226\314\314\027\004\251UP\227P\206\363\"\030\225|\237\235\363\2702T\363\360\336\366\200\355\324\001.\223\337\000\034%J\320;\"\211\351\265*\010\364\362\177\301\tE\355Z\244 \274\003M\333\301\327\377Jr\354p\177\370\3318"
seller_network_id: 1
publisher_settings_list_id: 4688091016647841845
publisher_type: PUBLISHER_OWNED_AND_OPERATED
partner_id: 8092393806272838809
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: "iphone"
brand: "apple"
model: "iphone"
os_version {
major: 15
minor: 4
micro: 1
}
carrier_id: 0
screen_width: 375
screen_height: 812
screen_pixel_ratio_millis: 3000
screen_orientation: PORTRAIT
hardware_version: "iphone xs"
limit_ad_tracking: false
}
publisher_country: "US"
publisher_id: "pub-1111111111111111"
response_deadline_ms: 1000
google_query_id: "ANy-zW75C5-D0LVOhJ2vDq8LO4jFC5U67H03586V4qT266yQ3fT6e99Z423l0A8N002W3n40"
auction_type: FIRST_PRICE
geo {
lat: 41.88
lon: -87.63
country: "USA"
region: "IL"
metro: "602"
city: "Chicago"
accuracy: 16835
}
user_agent_data {
platform {
brand: "iPhone"
version: "15"
version: "4"
}
mobile: true
}
supply_chain {
complete: true
nodes {
advertising_system_identifier: "google.com"
seller_identifier: "pub-1111111111111111"
handles_payment: true
}
version: "1.0"
}
OpenRTB JSON
Show me the example
{
"id": "e581k54Dp8Z5Z1ZkOdM1r1",
"imp": [
{
"id": "1",
"banner": {
"w": 375,
"h": 667,
"pos": 1,
"expdir": [
1,
2,
3,
4
],
"api": [
3,
5
],
"format": [
{
"w": 375,
"h": 667
},
{
"w": 360,
"h": 640
}
]
},
"instl": 1,
"tagid": "3616010577",
"bidfloor": 1.06,
"bidfloorcur": "USD",
"secure": 1,
"metric": [
{
"type": "viewability",
"value": 0.92,
"vendor": "EXCHANGE"
}
],
"ext": {
"billing_id": [
80291467374
],
"dfp_ad_unit_code": "/8310990/google/test",
"ampad": 2,
"open_bidding": {
"is_open_bidding": 1
},
"skadn": {
"version": "",
"sourceapp": "287955212",
"skadnetids": [
"eF3Z61v2",
"H403M1M2"
],
"versions": [
"2.0",
"2.1"
],
"fidelities": [
1,
0
]
},
"creative_enforcement_settings": {
"policy_enforcement": 1,
"publisher_blocks_enforcement": 2,
"is_default": 1
},
"auction_environment": 0
}
}
],
"app": {
"name": "Test App",
"bundle": "287955212",
"publisher": {
"id": "pub-2738945863893931",
"ext": {
"country": "US"
}
},
"content": {
"url": "https://www.google.com",
"livestream": 0,
"language": "en"
},
"storeurl": "https://www.google.com",
"ext": {
"inventorypartnerdomain": ""
}
},
"device": {
"ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_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": "USA",
"region": "GA",
"metro": "567",
"zip": "30520",
"type": 2,
"accuracy": 8187
},
"make": "apple",
"model": "iphone",
"os": "iOS",
"osv": "15.4.4",
"devicetype": 4,
"lmt": 1,
"hwv": "6s+",
"w": 375,
"h": 667,
"pxratio": 3,
"ext": {
"user_agent_data": {
"platform": {
"brand": "iPhone",
"version": [
"15",
"4"
]
},
"mobile": 1,
"browsers": [
{
"brand": "Mozilla",
"version": [
"5",
"0"
]
},
{
"brand": "AppleWebKit",
"version": [
"605",
"1"
]
}
],
"bitness": "64"
},
"atts": 2
}
},
"user": {
"ext": {}
},
"at": 1,
"tmax": 1000,
"cur": [
"USD"
],
"source": {
"ext": {
"omidpn": "Google",
"omidpv": "afma-sdk-i-v8.11.0",
"schain": {
"complete": 1,
"nodes": [
{
"asi": "google.com",
"sid": "pub-9867995726204524",
"hp": 1
}
],
"ver": "1.0"
}
}
},
"ext": {
"google_query_id": "ANy-z6Ea56-0S0597bYX6331kQp9s49u1H2Ai586c2r7q8lMQ2d7JsGW327LYXyT2Ux5798c",
"fcap_scope": 4,
"privacy_treatments": {
"non_personalized_ads_reason": [
3
]
}
}
}
OpenRTB Protobuf
Show me the example
id: "378836oi92t144hpA8Nv3X"
imp {
id: "1"
banner {
w: 320
h: 50
pos: ABOVE_THE_FOLD
expdir: LEFT
expdir: RIGHT
expdir: UP
expdir: DOWN
api: MRAID_1
api: MRAID_2
format {
w: 320
h: 50
}
}
tagid: "5623575528"
bidfloor: 0.01
bidfloorcur: "USD"
secure: true
metric {
type: "click_through_rate"
value: 0.0005203211912885308
vendor: "EXCHANGE"
}
metric {
type: "viewability"
value: 0.81
vendor: "EXCHANGE"
}
[com.google.doubleclick.imp] {
billing_id: 60406752348
dfp_ad_unit_code: "/5847528/google/test"
ampad: AMP_AD_NOT_ALLOWED
open_bidding {
is_open_bidding: true
}
skadn {
version: "2.2"
sourceapp: "935825322"
skadnetids: "MPlyc4vZ"
skadnetids: "96e6kS73"
versions: "2.0"
versions: "2.1"
fidelities: STOREKIT_RENDERED_ADS
}
creative_enforcement_settings {
policy_enforcement: POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_OVERRIDDEN
is_default: true
}
auction_environment: SERVER_SIDE_AUCTION
}
}
app {
name: "Test App"
bundle: "935825322"
publisher {
id: "pub-8927593002710190"
[com.google.doubleclick.publisher] {
country: "US"
}
}
content {
url: "https://www.google.com"
livestream: false
language: "en"
}
[com.google.doubleclick.app] {
}
}
device {
ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 15_0_2 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: "USA"
region: "NY"
metro: "501"
city: "Rosedale"
zip: "11413"
}
make: "apple"
model: "iphone"
os: "iOS"
osv: "15.0.0"
devicetype: HIGHEND_PHONE
lmt: true
hwv: "xr"
w: 414
h: 896
pxratio: 2.0
[com.google.doubleclick.device] {
user_agent_data {
platform {
brand: "iPhone"
version: "15"
version: "0"
}
mobile: true
}
atts: 2
}
}
user {
[com.google.doubleclick.user] {
}
}
at: FIRST_PRICE
tmax: 1000
cur: "USD"
source {
[com.google.doubleclick.source] {
omidpn: "Google"
omidpv: "afma-sdk-i-v8.7.0"
schain {
complete: 1
nodes {
asi: "google.com"
sid: "pub-8096633902563724"
hp: 1
}
ver: "1.0"
}
}
}
[com.google.doubleclick.bid_request] {
google_query_id: "ANy-zp09u8-d20rQ521040dqz39K771Lr9102b031Z15C45Q9q7AB414SnDWG5Rj96Z77W66"
}
App interstitial
Google
Show me the example
id: "\244\242\240\321\332Y\243b\227]x\261H\343\033\262Q\344\317\027\312\325~"
ip: "\300\250"
user_agent: "Mozilla/5.0 (Linux; Android 10; V2026 Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.99 Mobile Safari/537.36 (Mobile; afma-sdk-a-v211515037.211515037.0)"
url: "https://www.google.com"
detected_language: "km"
adslot {
id: 1
width: 787
width: 667
height: 384
height: 375
excluded_attribute: 17
excluded_attribute: 34
allowed_vendor_type: 237
allowed_vendor_type: 767
excluded_sensitive_category: 4
excluded_sensitive_category: 23
matching_ad_data {
billing_id: 20273131638
minimum_cpm_micros: 10000
direct_deal {
direct_deal_id: 58008622
fixed_cpm_micros: 10000
deal_type: AUCTION_PACKAGE
}
}
slot_visibility: ABOVE_THE_FOLD
ad_block_key: 1820566794
publisher_settings_list_id: 9648859480484756896
viewability: 91
click_through_rate: 0.0058700209483504295
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-a-v210402999.15000000.1"
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
}
is_test: false
cookie_version: 1
google_user_id: "Mz3YtD2En38zI02PA4o9qyyj6z9"
mobile {
app_id: "com.google.testapp"
is_app: true
is_interstitial_request: true
encrypted_advertising_id: "\307\347r\342,\236B\276\260\361\205kK\310]\257\251\270\300v:\241\274\273!Y\301\001m\216rC\307\221\035\307"
app_name: "Test App"
app_rating: 4.449807167053223
advertising_id: "\234\334g\220\327\277\271C\307\3146\177\241*y\233"
}
cookie_age_seconds: 31104000
geo_criteria_id: 1009829
seller_network_id: 1
publisher_settings_list_id: 13915096152856491127
publisher_type: PUBLISHER_OWNED_AND_OPERATED
partner_id: 1292702123501092588
device {
device_type: HIGHEND_PHONE
platform: "android"
brand: "vivo"
model: "v2026"
os_version {
major: 10
}
carrier_id: 0
screen_width: 787
screen_height: 384
screen_pixel_ratio_millis: 1875
screen_orientation: LANDSCAPE
limit_ad_tracking: false
}
publisher_country: "RS"
publisher_id: "pub-1111111111111111"
response_deadline_ms: 300
google_query_id: "ANy-zW75C5-D0LVOhJ2vDq8LO4jFC5U67H03586V4qT266yQ3fT6e99Z423l0A8N002W3n40"
auction_type: FIRST_PRICE
geo {
lat: 11.56
lon: 104.93
country: "KHM"
city: "Phnum Penh"
accuracy: 18189
}
user_agent_data {
browsers {
brand: "Chrome"
version: "80"
version: "0"
}
platform {
brand: "Android"
version: "10"
}
mobile: true
model: "v2026"
}
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_DEVICE
OpenRTB JSON
Show me the example
{
"id": "K41i6E7663H1R438P64B3o",
"imp": [
{
"id": "1",
"banner": {
"w": 360,
"h": 733,
"pos": 1,
"battr": [
6,
7
],
"api": [
3,
5
],
"format": [
{
"w": 360,
"h": 733
},
{
"w": 360,
"h": 640
}
]
},
"instl": 1,
"tagid": "4644394426",
"bidfloor": 0.02,
"bidfloorcur": "USD",
"secure": 1,
"metric": [
{
"type": "viewability",
"value": 0.95,
"vendor": "EXCHANGE"
}
],
"ext": {
"billing_id": [
34504854664
],
"publisher_settings_list_id": [
2374211339189759834,
4108271305212383079
],
"ampad": 2,
"excluded_creatives": [
{
"buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
},
{
"buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
}
],
"creative_enforcement_settings": {
"policy_enforcement": 2,
"publisher_blocks_enforcement": 1,
"is_default": 1
},
"auction_environment": 0
}
}
],
"app": {
"name": "Test App",
"bundle": "com.google.testapp",
"publisher": {
"id": "pub-2738945863893931",
"ext": {
"country": "US"
}
},
"content": {
"url": "https://www.google.com",
"userrating": "4.3",
"livestream": 0,
"language": "en"
},
"storeurl": "https://www.google.com",
"ext": {
"inventorypartnerdomain": ""
}
},
"device": {
"ua": "Mozilla/5.0 (Linux; Android 10; AQM-LX1 Build/HUAWEIAQM-LX1; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.93 Mobile Safari/537.36 (Mobile; afma-sdk-a-v15601000.15601000.0)",
"ip": "192.168.1.0",
"geo": {
"lat": 0.0,
"lon": 0.0,
"country": "SAU",
"region": "SA-04",
"type": 2,
"accuracy": 19609
},
"carrier": "71682",
"make": "huawei",
"model": "aqm-lx1",
"os": "android",
"osv": "10",
"devicetype": 4,
"lmt": 1,
"w": 360,
"h": 733,
"pxratio": 3,
"ext": {
"user_agent_data": {
"platform": {
"brand": "Android",
"version": [
"10"
]
},
"mobile": 1,
"model": "AQM-LX1",
"browsers": [
{
"brand": "Chrome",
"version": [
"88",
"0"
]
},
{
"brand": "Mozilla",
"version": [
"5",
"0"
]
},
{
"brand": "AppleWebKit",
"version": [
"537",
"36"
]
}
]
}
}
},
"user": {
"ext": {}
},
"at": 1,
"tmax": 300,
"cur": [
"USD"
],
"bcat": [
"IAB7-39",
"IAB23-3"
],
"source": {
"ext": {
"schain": {
"complete": 1,
"nodes": [
{
"asi": "google.com",
"sid": "pub-6772632620925271",
"hp": 1
}
],
"ver": "1.0"
}
}
},
"ext": {
"google_query_id": "ANy-z6Ea56-0S0597bYX6331kQp9s49u1H2Ai586c2r7q8lMQ2d7JsGW327LYXyT2Ux5798c",
"fcap_scope": 3,
"privacy_treatments": {
"non_personalized_ads_reason": [
3
],
"allow_user_data_collection": 0
}
}
}
OpenRTB Protobuf
Show me the example
id: "378836oi92t144hpA8Nv3X"
imp {
id: "1"
banner {
w: 412
h: 837
pos: ABOVE_THE_FOLD
battr: VIDEO_IN_BANNER_AUTO_PLAY
battr: VIDEO_IN_BANNER_USER_INITIATED
api: MRAID_1
api: MRAID_2
format {
w: 412
h: 837
}
format {
w: 375
h: 667
}
}
instl: true
tagid: "8677389752"
bidfloor: 1.63
bidfloorcur: "USD"
secure: true
metric {
type: "viewability"
value: 0.77
vendor: "EXCHANGE"
}
metric {
type: "session_depth"
value: 5.0
vendor: "EXCHANGE"
}
[com.google.doubleclick.imp] {
billing_id: 29069041801
publisher_settings_list_id: 5270584302957419329
publisher_settings_list_id: 5401707662914897870
ampad: AMP_AD_NOT_ALLOWED
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: "com.google.testapp"
publisher {
id: "pub-8927593002710190"
[com.google.doubleclick.publisher] {
country: "US"
}
}
content {
url: "https://www.google.com"
userrating: "4.3"
livestream: false
language: "en"
}
storeurl: "https://www.google.com"
[com.google.doubleclick.app] {
}
}
device {
ua: "Mozilla/5.0 (Linux; Android 11; SM-A315F Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.181 Mobile Safari/537.36 (Mobile; afma-sdk-a-v212621037.212621037.0)"
ip: "192.168.1.0"
geo {
lat: 0.0
lon: 0.0
country: "USA"
region: "NV"
metro: "839"
city: "Las Vegas"
type: IP
accuracy: 13880
}
make: "samsung"
model: "sm-a315f"
os: "android"
osv: "11"
devicetype: HIGHEND_PHONE
ifa: "b\'\\x17\\xcf\\x98\\xc4Rz\\x05\\xc3h_d\\xeb\\xa5$\\x06\\xb4\'"
lmt: false
w: 412
h: 837
pxratio: 2.625
[com.google.doubleclick.device] {
user_agent_data {
platform {
brand: "Android"
version: "11"
}
mobile: true
model: "sm-a315f"
}
}
}
user {
id: "3C96zG2NN92w0G0Kmq0zBD7w1V3"
[com.google.doubleclick.user] {
}
}
at: FIRST_PRICE
tmax: 1000
cur: "USD"
bcat: "IAB26"
bcat: "IAB23-2"
source {
[com.google.doubleclick.source] {
omidpn: "Google"
omidpv: "afma-sdk-a-v213806999.203404000.1"
schain {
complete: 1
nodes {
asi: "google.com"
sid: "pub-6772632620925271"
hp: 1
}
ver: "1.0"
}
}
}
[com.google.doubleclick.bid_request] {
google_query_id: "ANy-zp09u8-d20rQ521040dqz39K771Lr9102b031Z15C45Q9q7AB414SnDWG5Rj96Z77W66"
fcap_scope: FREQUENCY_CAPPING_SCOPE_DEVICE
}
App interstitial video
Google
Show me the example
id: "\275\272K,\0107\201\377\023\030\013\200{=0\246\367\225>\204\341\302\246"
ip: "\300\250"
user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
url: "https://www.google.com"
detected_language: "tr"
adslot {
id: 1
width: 414
width: 414
height: 816
height: 736
excluded_attribute: 21
excluded_attribute: 14
allowed_vendor_type: 3
allowed_vendor_type: 42
excluded_sensitive_category: 36
excluded_sensitive_category: 27
matching_ad_data {
billing_id: 82258771360
minimum_cpm_micros: 2000000
direct_deal {
direct_deal_id: 40012229
fixed_cpm_micros: 2000000
deal_type: AUCTION_PACKAGE
}
}
slot_visibility: ABOVE_THE_FOLD
excluded_product_category: 10080
excluded_product_category: 10137
ad_block_key: 3692691101
publisher_settings_list_id: 5963104787493662593
publisher_settings_list_id: 5844904381316320542
excluded_creatives {
buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
}
excluded_creatives {
buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
}
viewability: 99
renderer: GOOGLE
is_rewarded: true
allowed_ad_types: ALLOWED_AD_TYPE_VIDEO
is_amp_page: DIALECT_HTML
amp_ad_requirement_type: AMP_AD_NOT_ALLOWED
session_depth: 28
api: OMID_1
api: MRAID_1
omidpn: "Google"
omidpv: "afma-sdk-i-v8.8.0"
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
}
is_test: false
cookie_version: 1
google_user_id: "2u6aJZK1bJ0E68f33R7316usS0v"
mobile {
app_id: "826492162"
is_app: true
is_interstitial_request: true
encrypted_advertising_id: "\351/\245\016\334&r\035\374T\247\016\031\241O#\277\2536\246d>\010\341cx<\367o\225\322\274\363\273u\351"
app_name: "Test App"
advertising_id: "\232\305V\244,\000\216\315n\024\310\202F\377\177\252"
skadn {
version: "2.2"
sourceapp: "826492162"
skadnetids: "58V3sRIv"
skadnetids: "1qU495DD"
versions: "2.0"
versions: "2.1"
supported_fidelity_types: STOREKIT_RENDERED_ADS
supported_fidelity_types: VIEW_THROUGH_ADS
}
}
video {
videoad_start_delay: 0
max_ad_duration: 60000
video_ad_skippable: ALLOW_SKIPPABLE
skippable_max_ad_duration: 600000
allowed_video_formats: VIDEO_MP4
is_embedded_offsite: true
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
}
cookie_age_seconds: 23328000
postal_code: "10011"
geo_criteria_id: 1012775
seller_network_id: 10095
publisher_type: PUBLISHER_OWNED_AND_OPERATED
device {
device_type: HIGHEND_PHONE
platform: "iphone"
brand: "apple"
model: "iphone"
os_version {
major: 15
minor: 4
micro: 1
}
carrier_id: 0
screen_width: 414
screen_height: 896
screen_pixel_ratio_millis: 2000
screen_orientation: PORTRAIT
hardware_version: "iphone 11"
limit_ad_tracking: false
app_tracking_authorization_status: AUTHORIZED
}
publisher_country: "GB"
publisher_id: "pub-1111111111111111"
response_deadline_ms: 1000
google_query_id: "ANy-zW75C5-D0LVOhJ2vDq8LO4jFC5U67H03586V4qT266yQ3fT6e99Z423l0A8N002W3n40"
auction_type: FIRST_PRICE
geo {
lat: 39.91
lon: 41.27
country: "TUR"
region: "TR-25"
city: "Erzurum"
zip: "25200"
accuracy: 3801
}
user_agent_data {
platform {
brand: "iPhone"
version: "15"
version: "4"
}
mobile: true
model: "iPhone"
}
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_DEVICE
OpenRTB JSON
Show me the example
{
"id": "kb6b894m63dEp0957BZ592",
"imp": [
{
"id": "1",
"video": {
"mimes": [
"video/mp4"
],
"linearity": 1,
"maxduration": 600,
"w": 1792,
"h": 828,
"startdelay": 0,
"playbackmethod": [
3
],
"pos": 1,
"api": [
3,
5
],
"protocols": [
2,
3
],
"skip": 1,
"placement": 5,
"playbackend": 1
},
"displaymanager": "GOOGLE",
"instl": 1,
"tagid": "4170349280",
"bidfloor": 0.01,
"bidfloorcur": "USD",
"secure": 1,
"metric": [
{
"type": "click_through_rate",
"value": 0.33534348011016846,
"vendor": "EXCHANGE"
},
{
"type": "video_completion_rate",
"value": 0.2568979263305664,
"vendor": "EXCHANGE"
}
],
"ext": {
"billing_id": [
22808954312
],
"publisher_settings_list_id": [
7343296717952502612,
8574621111622201721
],
"allowed_vendor_type": [
331,
780
],
"is_rewarded_inventory": 1,
"ampad": 2,
"creative_enforcement_settings": {
"policy_enforcement": 2,
"publisher_blocks_enforcement": 1,
"is_default": 1
},
"auction_environment": 0
}
}
],
"app": {
"name": "Test App",
"bundle": "258551851",
"publisher": {
"id": "pub-2738945863893931",
"ext": {
"country": "CN"
}
},
"content": {
"url": "https://www.google.com",
"livestream": 0,
"language": "en"
},
"storeurl": "https://www.google.com",
"ext": {
"inventorypartnerdomain": ""
}
},
"device": {
"ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_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": "CAN",
"type": 2,
"utcoffset": -240,
"accuracy": 2233936
},
"carrier": "70779",
"make": "apple",
"model": "iphone",
"os": "iOS",
"osv": "15.1",
"devicetype": 4,
"lmt": 0,
"hwv": "xr",
"w": 1792,
"h": 828,
"pxratio": 2,
"ext": {
"user_agent_data": {
"platform": {
"brand": "iPhone",
"version": [
"15",
"1"
]
},
"mobile": 1,
"model": "iPhone",
"browsers": [
{
"brand": "Mozilla",
"version": [
"5",
"0"
]
},
{
"brand": "AppleWebKit",
"version": [
"605",
"1"
]
}
],
"bitness": "64"
}
}
},
"user": {
"ext": {}
},
"at": 1,
"tmax": 1000,
"cur": [
"USD"
],
"bcat": [
"IAB11-5"
],
"source": {
"ext": {
"omidpn": "Google",
"omidpv": "afma-sdk-i-v7.64.0",
"schain": {
"complete": 1,
"nodes": [
{
"asi": "google.com",
"sid": "pub-9127653932755113",
"hp": 1
}
],
"ver": "1.0"
}
}
},
"ext": {
"google_query_id": "ANy-z6Ea56-0S0597bYX6331kQp9s49u1H2Ai586c2r7q8lMQ2d7JsGW327LYXyT2Ux5798c",
"fcap_scope": 1,
"privacy_treatments": {
"non_personalized_ads_reason": [
3
],
"allow_user_data_collection": 0
}
}
}
OpenRTB Protobuf
Show me the example
id: "378836oi92t144hpA8Nv3X"
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/15E148"
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"
}
App native
Google
Show me the example
id: "\204\034\005H\211\227\327\373P\206\207\022\346\276\346\241\224\267\nC\326\362T"
ip: "\300\250"
user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
url: "https://www.google.com"
detected_language: "en"
adslot {
id: 1
excluded_attribute: 16
excluded_attribute: 34
allowed_vendor_type: 3
allowed_vendor_type: 42
excluded_sensitive_category: 36
excluded_sensitive_category: 4
matching_ad_data {
billing_id: 18269893472
minimum_cpm_micros: 40000
}
slot_visibility: ABOVE_THE_FOLD
excluded_product_category: 10031
excluded_product_category: 10137
ad_block_key: 6252219973
publisher_settings_list_id: 8104763305464478136
publisher_settings_list_id: 8853428022144354715
excluded_creatives {
buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
}
excluded_creatives {
buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
}
viewability: 46
allowed_ad_types: ALLOWED_AD_TYPE_NATIVE
is_amp_page: DIALECT_HTML
amp_ad_requirement_type: AMP_AD_NOT_ALLOWED
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: 1200
image_height: 627
logo_width: 100
logo_height: 100
}
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-i-v8.8.0"
creative_enforcement_settings {
policy_enforcement: POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
is_default: false
}
auction_environment: SERVER_SIDE_AUCTION
}
is_test: false
mobile {
app_id: "600013928"
is_app: true
app_name: "Test App"
skadn {
version: "2.2"
sourceapp: "600013928"
skadnetids: "F3433ti3"
skadnetids: "M32557oL"
versions: "2.0"
versions: "2.1"
supported_fidelity_types: STOREKIT_RENDERED_ADS
}
}
geo_criteria_id: 20822
encrypted_hyperlocal_set: "\013)\230\244H\337\274\0130Qx)\252\371\227\376^\247\023\n\346@Z\244\2533\217\203e\020F\321\220\375|\232E\017N\303\344s\"p\352\033\317#%\2167o|6K\242\255\371BH&\202\032D\007g\207#\231\225RF\257_\035E\273\347\030/\370\307\370\2078\"\260\206O\302A"
seller_network_id: 13004
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: "iphone"
brand: "apple"
model: "iphone"
os_version {
major: 15
minor: 4
micro: 1
}
carrier_id: 0
screen_width: 320
screen_height: 568
screen_pixel_ratio_millis: 2000
screen_orientation: PORTRAIT
hardware_version: "iphone se"
limit_ad_tracking: true
app_tracking_authorization_status: DENIED
}
publisher_country: "LU"
publisher_id: "pub-1111111111111111"
response_deadline_ms: 1000
google_query_id: "ANy-zW75C5-D0LVOhJ2vDq8LO4jFC5U67H03586V4qT266yQ3fT6e99Z423l0A8N002W3n40"
auction_type: FIRST_PRICE
geo {
lat: 14.64
lon: 121.03
country: "PHL"
region: "PH-BUL"
accuracy: 37833
}
user_agent_data {
platform {
brand: "iPhone"
version: "15"
version: "4"
}
mobile: true
}
supply_chain {
complete: true
nodes {
advertising_system_identifier: "google.com"
seller_identifier: "pub-1111111111111111"
handles_payment: true
}
version: "1.0"
}
OpenRTB JSON
Show me the example
{
"id": "V6Am5Gh79t2Rt6RT29M83Q",
"imp": [
{
"id": "1",
"tagid": "3842604078",
"bidfloor": 0.01,
"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
]
},
"metric": [
{
"type": "click_through_rate",
"value": 0.006147981155663729,
"vendor": "EXCHANGE"
},
{
"type": "viewability",
"value": 0.09,
"vendor": "EXCHANGE"
}
],
"ext": {
"billing_id": [
88614039966
],
"publisher_settings_list_id": [
6223873691032744823,
7604499079668787635
],
"allowed_vendor_type": [
4680,
144
],
"ampad": 2,
"creative_enforcement_settings": {
"policy_enforcement": 2,
"publisher_blocks_enforcement": 1,
"is_default": 1
},
"auction_environment": 0
}
}
],
"app": {
"name": "Test App",
"bundle": "com.google.testapp",
"publisher": {
"id": "pub-4626489062500069",
"ext": {
"country": "KR"
}
},
"content": {
"url": "https://www.google.com",
"userrating": "3.6",
"livestream": 0,
"language": "ko"
},
"storeurl": "https://www.google.com"
},
"device": {
"ua": "Mozilla/5.0 (Linux; Android 12; LM-Q920N Build/SKQ1.211103.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/101.0.4951.41 Mobile Safari/537.36 (Mobile; afma-sdk-a-v221514037.221514037.0)",
"ip": "192.168.1.0",
"geo": {
"lat": 0.0,
"lon": 0.0,
"country": "KOR",
"region": "KR-41",
"city": "Goyang",
"type": 2,
"accuracy": 10806
},
"make": "lg",
"model": "lm-q920n",
"os": "android",
"osv": "12",
"devicetype": 4,
"lmt": 0,
"w": 412,
"h": 860,
"pxratio": 2.625,
"ext": {
"user_agent_data": {
"platform": {
"brand": "Android",
"version": [
"12"
]
},
"mobile": 1,
"model": "lm-q920n",
"browsers": [
{
"brand": "Chrome",
"version": [
"101",
"0"
]
},
{
"brand": "Mozilla",
"version": [
"5",
"0"
]
},
{
"brand": "AppleWebKit",
"version": [
"537",
"36"
]
}
],
"bitness": "64"
}
}
},
"user": {
"ext": {}
},
"at": 1,
"tmax": 1000,
"cur": [
"USD"
],
"bcat": [
"IAB8-9",
"IAB7-39"
],
"source": {
"ext": {
"omidpn": "Google",
"omidpv": "afma-sdk-a-v221310999.213806000.1",
"schain": {
"complete": 1,
"nodes": [
{
"asi": "google.com",
"sid": "pub-7489786450482809",
"hp": 1
}
],
"ver": "1.0"
}
}
},
"ext": {
"google_query_id": "ANy-z4vD20-460FA4gaLeMZEXWHMV8V6N97203Vn52si06i2ZlnFa58OhWZ8393ul08KW215",
"fcap_scope": 2,
"privacy_treatments": {
"non_personalized_ads_reason": [
3
],
"allow_user_data_collection": 0
}
}
}
OpenRTB Protobuf
Show me the example
id: "378836oi92t144hpA8Nv3X"
imp {
id: "1"
tagid: "9447491934"
bidfloor: 0.13
bidfloorcur: "USD"
secure: true
native {
ver: "1.2"
api: MRAID_1
api: MRAID_2
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
}
}
}
metric {
type: "click_through_rate"
value: 0.08372055739164352
vendor: "EXCHANGE"
}
metric {
type: "viewability"
value: 0.99
vendor: "EXCHANGE"
}
[com.google.doubleclick.imp] {
billing_id: 30755077280
billing_id: 27584178565
publisher_settings_list_id: 9018519571485408159
publisher_settings_list_id: 1956791562920567580
allowed_vendor_type: 489
allowed_vendor_type: 4374
ampad: AMP_AD_NOT_ALLOWED
skadn {
version: "2.2"
sourceapp: "314415651"
skadnetids: "v67f3gYX"
skadnetids: "TI127M68"
versions: "2.0"
versions: "2.1"
fidelities: STOREKIT_RENDERED_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: "314415651"
publisher {
id: "pub-8927593002710190"
[com.google.doubleclick.publisher] {
country: "US"
}
}
content {
url: "https://www.google.com"
livestream: false
language: "en"
}
storeurl: "https://www.google.com"
[com.google.doubleclick.app] {
}
}
device {
ua: "Mozilla/5.0 (iPad; CPU OS 15_5 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: "USA"
region: "IA"
metro: "682"
city: "Lost Nation"
zip: "52254"
}
make: "apple"
model: "ipad"
os: "iOS"
osv: "15.5"
devicetype: TABLET
ifa: "b\"\\xdc\\xd0G\\xb3r\\x12]\\n}\\x08q\'}\\xeaj\\xb9\""
lmt: false
hwv: "2017"
w: 1024
h: 768
pxratio: 2.0
[com.google.doubleclick.device] {
user_agent_data {
platform {
brand: "iPad"
version: "15"
version: "5"
}
mobile: false
model: "iPad"
}
atts: 3
}
}
user {
id: "DN5f538h01HNP5oQt5IMaQk0I31"
[com.google.doubleclick.user] {
}
}
at: FIRST_PRICE
tmax: 1000
cur: "USD"
bcat: "IAB26"
bcat: "IAB23-2"
source {
[com.google.doubleclick.source] {
omidpn: "Google"
omidpv: "afma-sdk-i-v9.4.0"
schain {
complete: 1
nodes {
asi: "google.com"
sid: "pub-7445570562761953"
hp: 1
}
ver: "1.0"
}
}
}
[com.google.doubleclick.bid_request] {
google_query_id: "ANy-zp09u8-d20rQ521040dqz39K771Lr9102b031Z15C45Q9q7AB414SnDWG5Rj96Z77W66"
fcap_scope: FREQUENCY_CAPPING_SCOPE_DEVICE
}
Web video
Google
Show me the example
id: "1\272\357Q\220w>ZQO\355\250\325\ndD\202\0213fLy\316"
ip: "\300\250"
user_agent: "Mozilla/5.0 (Linux; Android 10; SM-G960U Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/101.0.4951.41 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/365.0.0.30.112;]"
url: "https://www.google.com"
detected_language: "en"
adslot {
id: 1
width: 166
height: 94
excluded_attribute: 14
excluded_attribute: 26
allowed_vendor_type: 3
allowed_vendor_type: 42
excluded_sensitive_category: 19
excluded_sensitive_category: 30
matching_ad_data {
billing_id: 69912419885
billing_id: 64336816832
minimum_cpm_micros: 30000
direct_deal {
direct_deal_id: 50710611
fixed_cpm_micros: 48000000
deal_type: PROGRAMMATIC_GUARANTEED
publisher_blocks_overridden: true
must_bid: true
creative_source: CREATIVE_SOURCE_ADVERTISER
}
}
matching_ad_data {
billing_id: 43527442035
billing_id: 10315966153
minimum_cpm_micros: 30000
}
slot_visibility: ABOVE_THE_FOLD
excluded_product_category: 10080
excluded_product_category: 10127
ad_block_key: 6168579851
publisher_settings_list_id: 3882883120755102835
publisher_settings_list_id: 7659581614481559441
allowed_restricted_category: 33
iframing_state: NO_IFRAME
viewability: 87
allowed_restricted_category_for_deals: 33
click_through_rate: 0.0007804370252415538
renderer: GOOGLE
video_completion_rate: 0.8786420226097107
allowed_ad_types: ALLOWED_AD_TYPE_VIDEO
is_amp_page: DIALECT_HTML
amp_ad_requirement_type: AMP_AD_NOT_ALLOWED
session_depth: 1
api: OMID_1
only_deal_bids_accepted: true
omidpn: "Google1"
omidpv: "h.3.516.0"
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
}
is_test: false
cookie_version: 1
google_user_id: "2x418984bz4X120M019rz014PC8"
mobile {
app_id: "com.google.testapp"
is_app: false
is_mobile_web_optimized: true
}
video {
videoad_start_delay: 0
max_ad_duration: 30000
video_ad_skippable: BLOCK_SKIPPABLE
allowed_video_formats: VIDEO_MP4
allowed_video_formats: VPAID_JS
companion_slot {
height: 0
width: 0
creative_format: IMAGE_CREATIVE
}
is_embedded_offsite: true
playback_method: AUTO_PLAY_SOUND_OFF
is_clickable: true
placement: INSTREAM
protocols: VAST_2_0
protocols: VAST_3_0
is_livestream: false
}
cookie_age_seconds: 54432000
postal_code: "10011"
hosted_match_data: "G\3232\213K8\267U(.\337\315e\0011C*[q"
geo_criteria_id: 9020971
encrypted_hyperlocal_set: "cA\310\253\362\344\303%=U\302K\205\007\276\323)\257\261\327\204\311yM\323\320\004c\261\036\027Z\363\215\320nv!\007\364#\253\3603\024\236-4\021-\341K\234\361`x\271\256\332(\366\241\021MX\351\321\362\251\036\340\240gml\363 \374\343\251\023\361\341er\337\251\016\330\272\337"
seller_network_id: 1095
bid_response_feedback {
request_id: "\263\003\332\ru\031\3370X\356\351^\205\375\315\312"
creative_status_code: 80
event_notification_token: "token"
buyer_creative_id: "test_creative_id_765250"
minimum_bid_to_win: 1280000
bid_cpm_micros: 2388
}
bid_response_feedback {
request_id: "\027E\272\220\0069\310@<\320\334\364\216\312RH"
creative_status_code: 80
event_notification_token: "token"
buyer_creative_id: "test_creative_id_765250"
minimum_bid_to_win: 1450000
bid_cpm_micros: 1971
}
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-g960u"
os_version {
major: 10
}
carrier_id: 0
screen_width: 1440
screen_height: 2960
screen_pixel_ratio_millis: 1000
limit_ad_tracking: false
}
publisher_country: "US"
publisher_id: "pub-1111111111111111"
response_deadline_ms: 300
google_query_id: "ANy-zW75C5-D0LVOhJ2vDq8LO4jFC5U67H03586V4qT266yQ3fT6e99Z423l0A8N002W3n40"
auction_type: FIRST_PRICE
geo {
lat: 47.43
lon: -101.19
country: "USA"
region: "ND"
metro: "687"
city: "Underwood"
zip: "58576"
accuracy: 18602
}
user_agent_data {
platform {
brand: "Android"
version: "10"
}
mobile: true
model: "sm-g960u"
}
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_BROWSER
OpenRTB JSON
Show me the example
{
"id": "23f704c7wuT5fZmbM6d314",
"imp": [
{
"id": "1",
"video": {
"mimes": [
"video/mp4",
"application/javascript"
],
"linearity": 1,
"maxduration": 120,
"w": 328,
"h": 185,
"startdelay": 0,
"playbackmethod": [
5
],
"pos": 1,
"companionad": [
{
"w": 0,
"h": 0,
"mimes": [
"image/jpeg",
"image/png"
],
"format": [
{
"w": 0,
"h": 0
}
]
}
],
"api": [
1,
2
],
"companiontype": [
1
],
"protocols": [
2,
3
],
"skip": 1,
"placement": 1
},
"displaymanager": "GOOGLE",
"tagid": "8219062493",
"bidfloor": 3.73,
"bidfloorcur": "EUR",
"secure": 1,
"metric": [
{
"type": "click_through_rate",
"value": 0.0028715089429169893,
"vendor": "EXCHANGE"
},
{
"type": "video_completion_rate",
"value": 0.7689520120620728,
"vendor": "EXCHANGE"
}
],
"ext": {
"billing_id": [
99209644360
],
"dfp_ad_unit_code": "/8310990/google/test",
"ampad": 2,
"open_bidding": {
"is_open_bidding": 1
},
"creative_enforcement_settings": {
"policy_enforcement": 1,
"publisher_blocks_enforcement": 2,
"is_default": 1
},
"auction_environment": 0
}
}
],
"site": {
"page": "https://www.google.com",
"publisher": {
"id": "pub-1111111111111111",
"ext": {
"country": "CH"
}
},
"content": {
"livestream": 0,
"language": "de"
},
"mobile": 1,
"ext": {
"amp": 0,
"page_visibility": 1,
"inventorypartnerdomain": ""
}
},
"device": {
"ua": "Mozilla/5.0 (Linux; Android 11; M2101K7BNY) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Mobile Safari/537.36",
"ip": "192.168.1.0",
"geo": {
"lat": 0.0,
"lon": 0.0,
"country": "GBR",
"region": "GB-ENG",
"city": "Birmingham",
"zip": "B18"
},
"make": "xiaomi",
"model": "m2101k7bny",
"os": "android",
"osv": "11",
"devicetype": 4,
"lmt": 0,
"w": 1080,
"h": 2400,
"pxratio": 1,
"ext": {
"user_agent_data": {
"platform": {
"brand": "Android",
"version": [
"11"
]
},
"mobile": 1,
"model": "m2101k7bny",
"browsers": [
{
"brand": "Chrome",
"version": [
"101",
"0"
]
},
{
"brand": "Mozilla",
"version": [
"5",
"0"
]
},
{
"brand": "AppleWebKit",
"version": [
"537",
"36"
]
}
]
}
}
},
"user": {
"id": "68v2ABV3v01gK7Z072a9d48wNB6",
"buyeruid": "00hj48783Hsjh3x17YeZ44LT0w241K60",
"customdata": "9KC9lj8WRL30B6ftXT2lS6vC31R694va5L7zm674w8uMun0E",
"ext": {
"consented_providers_settings": {
"additional_consent": ""
},
"consent": "OMITTED"
}
},
"at": 1,
"tmax": 300,
"cur": [
"EUR"
],
"regs": {
"ext": {
"gdpr": 1
}
},
"source": {
"ext": {
"omidpn": "Google1",
"omidpv": "h.3.516.0",
"schain": {
"complete": 0,
"nodes": [
{
"asi": "google.com",
"sid": "pub-5617098146054077",
"hp": 1
}
],
"ver": "1.0"
}
}
},
"ext": {
"bid_feedback": [
{
"request_id": "S85fv679m8JqfDe9981pJ8",
"creative_status_code": 79,
"event_notification_token": {
"payload": "token"
},
"buyer_creative_id": "test_creative_id_976289",
"minimum_bid_to_win": 0.28
}
],
"google_query_id": "ANy-z6Ea56-0S0597bYX6331kQp9s49u1H2Ai586c2r7q8lMQ2d7JsGW327LYXyT2Ux5798c",
"fcap_scope": 2,
"privacy_treatments": {}
}
}
OpenRTB Protobuf
Show me the example
id: "378836oi92t144hpA8Nv3X"
imp {
id: "1"
video {
mimes: "application/javascript"
mimes: "video/mp4"
linearity: LINEAR
maxduration: 30
w: 375
h: 211
startdelay: 0
playbackmethod: ENTER_SOUND_ON
pos: ABOVE_THE_FOLD
companionad {
w: 0
h: 0
mimes: "image/gif"
mimes: "image/jpeg"
format {
w: 0
h: 0
}
}
api: VPAID_1
api: VPAID_2
companiontype: STATIC
protocols: VAST_2_0
protocols: VAST_3_0
skip: false
placement: IN_STREAM_PLACEMENT
}
displaymanager: "GOOGLE"
tagid: "5698568547"
bidfloor: 0.01
bidfloorcur: "USD"
secure: true
metric {
type: "click_through_rate"
value: 0.05373544618487358
vendor: "EXCHANGE"
}
metric {
type: "video_completion_rate"
value: 0.612488329410553
vendor: "EXCHANGE"
}
[com.google.doubleclick.imp] {
billing_id: 97512515836
dfp_ad_unit_code: "/5847528/google/test"
ampad: AMP_AD_NOT_ALLOWED
open_bidding {
is_open_bidding: true
}
creative_enforcement_settings {
policy_enforcement: POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_OVERRIDDEN
is_default: true
}
auction_environment: SERVER_SIDE_AUCTION
}
}
site {
page: "https://www.google.com"
publisher {
id: "pub-1111111111111111"
[com.google.doubleclick.publisher] {
country: "CL"
}
}
content {
livestream: false
language: "es"
}
mobile: true
[com.google.doubleclick.site] {
amp: DIALECT_HTML
page_visibility: VISIBILITY_STATE_VISIBLE
}
}
device {
ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/19E258 [FBAN/FBIOS;FBDV/iPhone10,4;FBMD/iPhone;FBSN/iOS;FBSV/15.4.1;FBSS/2;FBID/phone;FBLC/es_LA;FBOP/5]"
ip: "192.168.1.0"
geo {
lat: 0.0
lon: 0.0
country: "CHL"
region: "CL-RM"
}
make: "apple"
model: "iphone"
os: "iOS"
osv: "15.4.4"
devicetype: HIGHEND_PHONE
lmt: false
w: 640
h: 1136
pxratio: 1.0
[com.google.doubleclick.device] {
user_agent_data {
platform {
brand: "iPhone"
version: "15"
version: "4"
}
mobile: true
}
}
}
user {
[com.google.doubleclick.user] {
}
}
at: FIRST_PRICE
tmax: 300
cur: "USD"
source {
[com.google.doubleclick.source] {
omidpn: "Google1"
omidpv: "h.3.516.0"
schain {
complete: 1
nodes {
asi: "google.com"
sid: "pub-4583457764612266"
hp: 1
}
ver: "1.0"
}
}
}
[com.google.doubleclick.bid_request] {
bid_feedback {
request_id: "ZirVuSi0D423DsA69fZ358"
creative_status_code: 79
event_notification_token {
payload: "token"
}
buyer_creative_id: "test_creative_id_236865"
minimum_bid_to_win: 0.81
}
google_query_id: "ANy-zp09u8-d20rQ521040dqz39K771Lr9102b031Z15C45Q9q7AB414SnDWG5Rj96Z77W66"
fcap_scope: FREQUENCY_CAPPING_SCOPE_NONE
}
Mobile web banner for exchange bidder
OpenRTB Protobuf
Show me the example
id: "378836oi92t144hpA8Nv3X"
imp {
id: "1"
video {
mimes: "video/mp4"
linearity: LINEAR
w: 300
h: 50
playbackmethod: ENTER_SOUND_OFF
pos: BELOW_THE_FOLD
protocols: VAST_2_0
protocols: VAST_3_0
skip: true
placement: IN_ARTICLE_PLACEMENT
playbackend: LEAVING_OR_USER
}
displaymanager: "GOOGLE"
tagid: "4289794984"
bidfloor: 0.01
bidfloorcur: "USD"
secure: true
metric {
type: "click_through_rate"
value: 0.0009654165478423238
vendor: "EXCHANGE"
}
metric {
type: "viewability"
value: 0.13
vendor: "EXCHANGE"
}
[com.google.doubleclick.imp] {
billing_id: 84853182681
dfp_ad_unit_code: "/5847528/google/test"
ampad: AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
open_bidding {
is_open_bidding: true
}
creative_enforcement_settings {
policy_enforcement: POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_OVERRIDDEN
is_default: false
}
auction_environment: SERVER_SIDE_AUCTION
}
}
site {
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_HIDDEN
}
}
device {
ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1"
ip: "192.168.1.0"
geo {
lat: 0.0
lon: 0.0
country: "USA"
region: "CA"
metro: "804"
city: "Palm Desert"
zip: "92211"
type: IP
utcoffset: -420
accuracy: 4592
}
make: "apple"
model: "iphone"
os: "iOS"
osv: "15.4.4"
devicetype: HIGHEND_PHONE
lmt: false
w: 414
h: 896
pxratio: 3.0
sua {
browsers {
brand: "Safari"
version: "15"
version: "4"
}
platform {
brand: "iPhone"
version: "15"
version: "4"
}
mobile: true
}
}
user {
[com.google.doubleclick.user] {
}
}
at: FIRST_PRICE
tmax: 300
cur: "USD"
source {
[com.google.doubleclick.source] {
schain {
complete: 0
nodes {
asi: "google.com"
sid: "pub-8501674430909082"
hp: 1
}
ver: "1.0"
}
}
}
[com.google.doubleclick.bid_request] {
google_query_id: "ANy-zp09u8-d20rQ521040dqz39K771Lr9102b031Z15C45Q9q7AB414SnDWG5Rj96Z77W66"
}