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 serialized in either OpenRTB JSON or Protobuf
formats, attached as the payload of an HTTP POST request. The format received
depends on the configuration of your
[endpoint](https://developers.google.com/authorized-buyers/apis/guides/rtb-api/endpoints). See
[Example bid request](https://developers.google.com/authorized-buyers/rtb/get-started/request-guide#example-bid-request) for an example.

You must parse this request to receive the serialized
`BidRequest`. If you are using the Protobuf format, you must
download `openrtb.proto` and `openrtb-adx.proto` from the
[reference data](https://developers.google.com/authorized-buyers/rtb/data) page, and use them to
generate a library that can be used to parse the `BidRequest`
message. 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++ iterating through deals in an OpenRTB \`BidRequest\` could look like
the following:

```
for (const BidRequest::Imp::Pmp::Deal& deal : pmp.deals()) {
  DoSomething(deal.id(), deal.wseat());
}
```

### Billing IDs

You receive a bid request when a publisher's ad inventory is targeted by
one or more of your [pretargeting configurations](https://support.google.com/authorizedbuyers/answer/2961277). `BidRequest.imp.ext.billing_id`
will be populated with the billing IDs of any eligible buyers, and relevant
pretargeting configurations. Additionally, for
[deal
inventory](https://support.google.com/authorizedbuyers/answer/6224755), you can find billing IDs associated with the relevant buyers
using `BidRequest.imp.pmp.deal.ext.billing_id`. Only billing IDs of
buyers included in the bid request may be specified when placing a bid.

If multiple billing IDs are included in the bid request, you must specify
the billing ID of the buyer you intend to attribute your bid to with the
`BidResponse.seatbid.bid.ext.billing_id` field.

```
imp {
  ext {
    // The billing IDs of all of your matching pretargeting configs and eligible child seats are
    // stored in a flat list here.
    billing_id: 123
    billing_id: 456
    billing_id: 789
  }
  pmp {
    // All eligible deals are stored in a single flat list.
    deal {
      id: 1000
      ext {
        // The specific billing IDs eligible to bid on this deal are indicated here.
        billing_id: 789
      }
      ...
    }
    deal {
      id: 2000
      ext {
        billing_id: 123
        billing_id: 456
      }
      ...
    }
  }
  ...
}
...
```

### Determine blocked categories

When you place a bid, the included creative must not have detected categories that the publisher
blocked. Otherwise the bid is filtered from the auction.

You can find the blocked categories for an impression by reviewing the
`BidRequest.bcat` field, which is populated with categories in the
[taxonomy](https://developers.google.com/authorized-buyers/rtb/openrtb-guide#select-an-ad-category-taxonomy)
configured for your account.

The following example shows blocked categories based on a configured ad category taxonomy:

#### IAB Content Taxonomy 1.0

```
// Bid request
{
  // Indicates the blocked categories using IAB Content 1.0 Taxonomy.
  "bcat": [
    "IAB9-9",  // Cigars
    "IAB8-18"  // Wine
  ]
  "imp": {
    ...
  }
}
      
```

#### Google Ad Category Taxonomy

```
// Bid request
{
  // Indicates the blocked categories using Google Ad Category Taxonomy.
  "bcat": [
    "10138",  // Cigar and tobacco collecting
    "10080",  // Tobacco
    "11649",  // Wine
    "10674",  // Wine collecting
    "13008"   // Wine clubs
  ]
  "imp": {
    ...
  }
}
      
```

> [!IMPORTANT]
> **Important:** To determine which categories are detected for your creatives, use the `creatives` resource in the Real-time Bidding API. For details on detected categories, see [REST Resource: bidders.creatives](https://developers.google.com/authorized-buyers/apis/realtimebidding/reference/rest/v1/bidders.creatives#Creative.CreativeServingDecision.FIELDS.detected_categories).

### Determine contextual categories

Bid requests can include contextual category fields that describe the website or app where an
impression takes place. These fields also use ad category taxonomies, but represent the
context of the impression, rather than restrictions on the creative. These fields might not use the
same taxonomy as the `BidRequest.bcat` field. Google or the publisher can provide
these contextual categories. Using contextual categories might improve your impression
evaluation, contextual targeting, and brand safety.

#### Google-detected contextual categories

Google populates the following fields with detected IAB content categories for the
site, app, or page:

| Field | Description |
|---|---|
| `BidRequest.site.cat` | An array of content category IDs describing the site. |
| `BidRequest.site.pagecat` | An array of content category IDs describing the current page or view of the site. |
| `BidRequest.app.cat` | An array of content category IDs describing the app. |
| `BidRequest.app.pagecat` | An array of content category IDs describing the current page or view of the app. |

You can find the exact taxonomy used for these fields for a given bid request in the
`BidRequest.site.cattax` or `BidRequest.app.cattax` fields. Contextual
category fields might not always be populated due to publisher preferences or regulatory concerns.
For more information, see
[OpenRTB contextual
categories in Google Ad Manager](https://support.google.com/authorizedbuyers/answer/18080947).

#### Publisher-provided signals

In addition to Google-detected contextual categories, bid requests might also contain
publisher-provided signals, which also describe the context of an impression. Unlike
Google-detected contextual categories, these signals are only populated when provided by the
publisher. These signals are sent in the `BidRequest.site.content` and
`BidRequest.app.content` objects, such as `content.data.segment` and
`content.genre`. The taxonomy used for `content.data.segment`
entries is reported in `content.data.ext.segtax`. For more information, see
[Publisher provided signals
(PPS) for Real-time Bidding (RTB)](https://support.google.com/authorizedbuyers/answer/14934703).

### Dictionary files

The bid request uses identifiers defined in dictionary files, which are
available on the [reference data](https://developers.google.com/authorized-buyers/rtb/data)
page.

### Bidder URL macros

Optionally, some information from the `BidRequest` can be
inserted into bidding endpoint URLs using macros. If you configure an endpoint
URL with one or more macros, they will be expanded if that information is
present in the bid request. This can be useful, for example, if you would like
to perform load balancing based on information in the `BidRequest`.
Contact your account manager to request support for new macros.

| Macro | Description |
|---|---|
| `%%GOOGLE_USER_ID%%` | Replaced with the Google User ID found in `BidRequest.user.id`. For example, the bidder URL `http://google.bidder.com/path?gid=%%GOOGLE_USER_ID%%` will be replaced with 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` to indicate that the bid request is from a mobile device, or `0` otherwise. This is based on the value of `BidRequest.device.devicetype`, where mobile devices are indicated by `HIGHEND_PHONE` (`4`) or `Tablet` (`5`). |
| `%%HAS_VIDEO%%` | Replaced with `1` to indicate that the bid request contains video inventory, or `0` otherwise. This is based on whether `BidRequest.imp.video` is populated in the bid request. |
| `%%IS_CTV%%` | Replaced with `1` to indicate that the bid request is from a CTV device, or `0` otherwise. This is based on the value of `BidRequest.device.devicetype`. For Protobuf, CTV devices are `CONNECTED_TV`, `CONNECTED_DEVICE`, or `SET_TOP_BOX`, which correspond to integer values `3`, `6`, or `7` for JSON. |
| `%%HOSTED_MATCH_DATA%%` | Replaced with a value based on `BidRequest.user.buyeruid`. |
| `%%MOBILE_IS_APP%%` | Replaced with `1` to indicate that the bid request is for mobile app inventory, or `0` otherwise. This is based on whether `BidRequest.app` is populated. |

### 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](https://www.simplycalc.com/base32-decode.php), 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** .

<br />

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** .

<br />

### 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](https://play.google.com/store/apps/details?id=air.com.hypah.io.slither).

<br />

### 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 | Details |
|---|---|
| `BidRequest.imp.ext.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` | 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:

1. Some vendors don't need to be declared; these vendors are listed in [Ad Manager Certified External
   Vendors](https://developers.google.com/third-party-ads/adx-vendors).
2. Other vendors can only participate if they are declared in the `BidRequest`:
   - In the `BidRequest`, the `BidRequest.imp.ext.allowed_vendor_type` field specifies which vendors the seller allows. Vendors that will be sent in the `allowed_vendor_type` are listed in the [`vendors.txt`](https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt) dictionary file.

## Example bid request

The following examples represent human-readable samples of the Protobuf and
JSON requests.

### OpenRTB Protobuf

#### Show me the example

[Serialized request](https://developers.google.com/authorized-buyers/rtb/data/request-response/openrtb_protobuf_html_snippet_ad_request.bin)  

```
id: "REeB4ju54C6FZq9Q3Vtd5u"
imp {
  id: "1"
  banner {
    w: 395
    h: 62
    pos: ABOVE_THE_FOLD
    api: MRAID_1
    api: MRAID_2
    wmax: 395
    hmax: 62
    wmin: 265
    hmin: 47
    format {
      w: 395
      h: 62
    }
    format {
      w: 375
      h: 50
    }
    [com.google.doubleclick.banner_ext] {
      flexslot {
        wmin: 265
        wmax: 395
        hmin: 47
        hmax: 62
      }
    }
  }
  displaymanager: "GoogleMobileAds-iOS"
  displaymanagerver: "12.6.0"
  tagid: "5317800401"
  bidfloor: 0.01
  bidfloorcur: "USD"
  secure: true
  exp: 3600
  clickbrowser: true
  metric {
    type: "click_through_rate"
    value: 0.000626864901278168
    vendor: "EXCHANGE"
  }
  metric {
    type: "viewability"
    value: 0.99
    vendor: "EXCHANGE"
  }
  [com.google.doubleclick.imp] {
    billing_id: 40355106859
    publisher_settings_list_id: 8109573582699753738
    publisher_settings_list_id: 8638559414314918844
    allowed_vendor_type: 0
    allowed_vendor_type: 704
    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
    }
    jsver: "test-sdk_123456789"
  }
}
app {
  name: "Test App"
  ver: "1.28.0"
  bundle: "com.google.testapp"
  publisher {
    id: "pub-8346480615367211"
    [com.google.doubleclick.publisher] {
      country: "CY"
    }
  }
  content {
    url: "https://www.google.com"
    language: "en"
  }
  storeurl: "https://www.google.com"
}
device {
  ua: "OMITTED"
  ip: "192.168.1.0"
  geo {
    lat: 0.0
    lon: 0.0
    country: "MEX"
    region: "MX-DF"
    city: "Mexico City"
    type: IP
    utcoffset: -360
    accuracy: 3850
    [com.google.doubleclick.geo] {
      geo_criteria_id: 9047093
    }
  }
  language: "en"
  make: "Apple"
  model: "iPhone18,3"
  os: "iOS"
  osv: "26.1.0"
  connectiontype: WIFI
  devicetype: HIGHEND_PHONE
  ifa: "151ca1fc-db4d-43e2-965f-fa852009b289"
  hwv: "iPhone18,3"
  w: 402
  h: 874
  pxratio: 3.0
  sua {
    browsers {
      brand: "Mozilla"
      version: "5"
      version: "0"
    }
    browsers {
      brand: "AppleWebKit"
      version: "605"
      version: "1"
    }
    platform {
      brand: "iPhone"
      version: "26"
      version: "1"
    }
    mobile: true
    bitness: "64"
    model: "iPhone"
    source: USER_AGENT_STRING
  }
  [com.google.doubleclick.device] {
    atts: 3
    audioout: AUDIO_SILENT
    ifa_type: "idfa"
  }
}
user {
  id: "wj7Z37qUTc46fR30FQ6u68sM7jT"
  [com.google.doubleclick.user] {
    session {
      duration: 900
      depth: 874
      requestssinceappopen: 874
      priorclicks: 0
    }
    idage: 12960000
  }
}
at: FIRST_PRICE
tmax: 1300
cur: "USD"
bcat: "3"
bcat: "4"
regs {
  gpp: "OMITTED"
  gpp_sid: USPV1
}
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-v12.6.0"
  }
}
cattax: GOOGLE_CATEGORIES
[com.google.doubleclick.bid_request] {
  google_query_id: "ANy-z07Q3Z-pyK06g4JZGaM8H6Yqs353k2c94sC55T84KSH6J59gNR3e1XDHBrk51P6H2B9g"
  fcap_scope: FREQUENCY_CAPPING_SCOPE_DEVICE
  privacy_treatments {
    allow_user_data_collection: true
  }
}
```

### OpenRTB JSON

#### Show me the example

```
{
  "id": "REeB4ju54C6FZq9Q3Vtd5u",
  "imp": [
    {
      "id": "1",
      "banner": {
        "w": 395,
        "h": 62,
        "pos": 1,
        "api": [
          3,
          5
        ],
        "wmax": 395,
        "hmax": 62,
        "wmin": 265,
        "hmin": 47,
        "format": [
          {
            "w": 395,
            "h": 62
          },
          {
            "w": 375,
            "h": 50
          }
        ],
        "ext": {
          "flexslot": {
            "wmin": 265,
            "wmax": 395,
            "hmin": 47,
            "hmax": 62
          }
        }
      },
      "displaymanager": "GoogleMobileAds-iOS",
      "displaymanagerver": "12.6.0",
      "tagid": "5317800401",
      "bidfloor": 0.01,
      "bidfloorcur": "USD",
      "secure": 1,
      "exp": 3600,
      "clickbrowser": 1,
      "metric": [
        {
          "type": "click_through_rate",
          "value": 0.000626864901278168,
          "vendor": "EXCHANGE"
        },
        {
          "type": "viewability",
          "value": 0.99,
          "vendor": "EXCHANGE"
        }
      ],
      "ext": {
        "billing_id": [
          "40355106859"
        ],
        "publisher_settings_list_id": [
          "8109573582699753738",
          "8638559414314918844"
        ],
        "allowed_vendor_type": [
          0,
          704
        ],
        "ampad": 2,
        "excluded_creatives": [
          {
            "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
          }
        ],
        "creative_enforcement_settings": {
          "policy_enforcement": 2,
          "publisher_blocks_enforcement": 1
        },
        "jsver": "test-sdk_123456789"
      }
    }
  ],
  "app": {
    "name": "Test App",
    "ver": "1.28.0",
    "bundle": "com.google.testapp",
    "publisher": {
      "id": "pub-8346480615367211",
      "ext": {
        "country": "CY"
      }
    },
    "content": {
      "url": "https://www.google.com",
      "language": "en"
    },
    "storeurl": "https://www.google.com"
  },
  "device": {
    "ua": "OMITTED",
    "ip": "192.168.1.0",
    "geo": {
      "lat": 0.0,
      "lon": 0.0,
      "country": "MEX",
      "region": "MX-DF",
      "city": "Mexico City",
      "type": 2,
      "utcoffset": -360,
      "accuracy": 3850,
      "ext": {
        "geo_criteria_id": 9047093
      }
    },
    "language": "en",
    "make": "Apple",
    "model": "iPhone18,3",
    "os": "iOS",
    "osv": "26.1.0",
    "connectiontype": 2,
    "devicetype": 4,
    "ifa": "151ca1fc-db4d-43e2-965f-fa852009b289",
    "hwv": "iPhone18,3",
    "w": 402,
    "h": 874,
    "pxratio": 3.0,
    "sua": {
      "browsers": [
        {
          "brand": "Mozilla",
          "version": [
            "5",
            "0"
          ]
        },
        {
          "brand": "AppleWebKit",
          "version": [
            "605",
            "1"
          ]
        }
      ],
      "platform": {
        "brand": "iPhone",
        "version": [
          "26",
          "1"
        ]
      },
      "mobile": 1,
      "bitness": "64",
      "model": "iPhone",
      "source": 3
    },
    "ext": {
      "atts": 3,
      "audioout": 3,
      "ifa_type": "idfa"
    }
  },
  "user": {
    "id": "wj7Z37qUTc46fR30FQ6u68sM7jT",
    "ext": {
      "session": {
        "duration": 900,
        "depth": 874,
        "requestssinceappopen": 874,
        "priorclicks": 0
      },
      "idage": 12960000
    }
  },
  "at": 1,
  "tmax": 1300,
  "cur": [
    "USD"
  ],
  "bcat": [
    "3",
    "4"
  ],
  "regs": {
    "gpp": "OMITTED",
    "gpp_sid": [
      6
    ]
  },
  "source": {
    "schain": {
      "complete": 1,
      "nodes": [
        {
          "asi": "testssp.com",
          "sid": "pub-1111111111111111",
          "hp": 1
        }
      ],
      "ver": "1.0"
    },
    "ext": {
      "omidpn": "Google",
      "omidpv": "afma-sdk-i-v12.6.0"
    }
  },
  "cattax": 500,
  "ext": {
    "google_query_id": "ANy-z07Q3Z-pyK06g4JZGaM8H6Yqs353k2c94sC55T84KSH6J59gNR3e1XDHBrk51P6H2B9g",
    "fcap_scope": 3,
    "privacy_treatments": {
      "allow_user_data_collection": 1
    }
  }
}
```

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
  }
}
```

## Real-time feedback

Real-time feedback is available to Authorized Buyers, as well
as exchanges and networks using Open Bidding.

Real-time feedback populates `BidRequest.ext.bid_feedback` based
on the outcome of one or more bids you placed earlier, and can be used to find
details such as whether the bid won the auction, or the minimum bid needed to
have won the auction. Contact your account manager to enable real-time
feedback.

In addition to the default fields sent in Bid Response Feedback, you can
also send custom data in the bid response using the
`BidResponse.seatbid.bid.ext.event_notification_token` field. 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 the
[OpenRTB Extensions Protocol Buffer file](https://developers.google.com/authorized-buyers/rtb/downloads/openrtb-adx-proto).

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 `BidFeedback` message:

```
message BidFeedback {
  // The unique id from BidRequest.id.
  optional string request_id = 1;

  // 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 = 2;

  // Deprecated. This field is not populated and will be removed after March,
  // 2025. 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 double price = 3 [deprecated = true];

  // The minimum bid value necessary to have won the auction, in 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 didn't 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 double minimum_bid_to_win = 6;

  // 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 = 13 [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 your account currency.
  optional double sampled_mediation_cpm_ahead_of_auction_winner = 8;

  message EventNotificationToken {
    // The contents of the token.
    optional string payload = 1;
  }

  // The token included in the corresponding bid.
  optional EventNotificationToken event_notification_token = 4;

  // The creative ID included in the corresponding bid.
  optional string buyer_creative_id = 5;
}
```

From this message, the first field you should check is
`bid_feedback.creative_status_code`; you can find the code
meaning in [creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/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](https://support.google.com/authorizedbuyers/answer/3213668).

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 ([creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/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 `83`, 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](https://developers.google.com/authorized-buyers/rtb/get-started/request-guide#first-price-auctions). |

### Sample

The following is a sample of real-time feedback as seen in supported
protocols:

### OpenRTB Protobuf

#### Show me the example

[Serialized request](https://developers.google.com/authorized-buyers/rtb/data/request-response/openrtb_protobuf_banner_bid_feedback_min_bid_to_win_request.bin)  

```
id: "5wvJU9203l9r567n7Ka9TS"
imp {
  id: "1"
  banner {
    w: 1176
    h: 431
    pos: AD_POSITION_FULLSCREEN
    battr: VIDEO_IN_BANNER_AUTO_PLAY
    battr: VIDEO_IN_BANNER_USER_INITIATED
    format {
      w: 1176
      h: 431
    }
    format {
      w: 750
      h: 200
    }
  }
  video {
    mimes: "video/mp4"
    linearity: LINEAR
    w: 1176
    h: 431
    battr: VIDEO_IN_BANNER_AUTO_PLAY
    battr: VIDEO_IN_BANNER_USER_INITIATED
    playbackmethod: ENTER_SOUND_ON
    pos: AD_POSITION_FULLSCREEN
    companionad {
      w: 1176
      h: 431
      mimes: "image/png"
      mimes: "image/gif"
      format {
        w: 1176
        h: 431
      }
      vcm: true
    }
    api: OMID_1
    companiontype: STATIC
    protocols: VAST_2_0
    protocols: VAST_3_0
    skip: true
    placement: FLOATING_PLACEMENT
    playbackend: COMPLETION_OR_USER
    plcmt: PLCMT_INTERSTITIAL
    [com.google.doubleclick.video] {
      inferredplcmt: PLCMT_INTERSTITIAL
    }
  }
  displaymanager: "GOOGLE"
  instl: true
  tagid: "9725345911"
  bidfloor: 9.0
  bidfloorcur: "JPY"
  pmp {
    deals {
      id: "65061755"
      bidfloor: 8.553933
      bidfloorcur: "JPY"
      [com.google.doubleclick.deal] {
        deal_type: AUCTION_PACKAGE
        billing_id: 68470360571
        billing_id: 43516115440
      }
    }
  }
  secure: true
  exp: 3600
  metric {
    type: "click_through_rate"
    value: 0.010739230550825596
    vendor: "EXCHANGE"
  }
  metric {
    type: "viewability"
    value: 0.92
    vendor: "EXCHANGE"
  }
  [com.google.doubleclick.imp] {
    billing_id: 99565241899
    billing_id: 62840772940
    publisher_settings_list_id: 8326391344801492893
    publisher_settings_list_id: 1949843853073948330
    allowed_vendor_type: 0
    ampad: AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
    buyer_generated_request_data {
      data: "Test Data"
    }
    buyer_generated_request_data {
      data: "Test Data"
    }
    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
    }
    gpid: "/4653013/example.com/homepage/image_top"
  }
}
site {
  page: "https://www.google.com"
  publisher {
    id: "pub-1111111111111111"
    [com.google.doubleclick.publisher] {
      country: "US"
    }
  }
  content {
    language: "en"
  }
  [com.google.doubleclick.site] {
    amp: DIALECT_HTML
    page_visibility: VISIBILITY_STATE_VISIBLE
    uact {
      wasact: true
      isact: true
    }
    ntype: NAVIGATION_TYPE_NAVIGATE
  }
}
device {
  ua: "OMITTED"
  ip: "192.168.1.0"
  geo {
    lat: 0.0
    lon: 0.0
    country: "MYS"
    region: "MY-14"
    city: "Kuala Lumpur"
    type: IP
    utcoffset: 480
    accuracy: 8784
    [com.google.doubleclick.geo] {
      geo_criteria_id: 1010274
    }
  }
  language: "en"
  os: "Windows"
  devicetype: PERSONAL_COMPUTER
  w: 1536
  h: 864
  pxratio: 1.25
  sua {
    browsers {
      brand: "Microsoft Edge"
      version: "149"
      version: "0"
    }
    browsers {
      brand: "Chromium"
      version: "149"
      version: "0"
    }
    platform {
      brand: "Windows"
      version: "19"
      version: "0"
    }
    mobile: false
    architecture: "x86"
    bitness: "64"
    source: CLIENT_HINTS_HIGH_ENTROPY
  }
}
user {
  id: "W23o8H9037R25u2cZk295JT6p8w"
  [com.google.doubleclick.user] {
    eids {
      source: "OMITTED_SOURCE"
      uids {
        id: "OMITTED_ID"
      }
    }
    eids {
      source: "OMITTED_SOURCE"
      uids {
        id: "OMITTED_ID"
      }
    }
    idage: 7776000
  }
}
at: FIRST_PRICE
tmax: 500
cur: "BRL"
cur: "AUD"
bcat: "4"
bcat: "5"
regs {
  gpp: "OMITTED"
}
source {
  schain {
    complete: true
    nodes {
      asi: "testssp.com"
      sid: "pub-1111111111111111"
      hp: true
    }
    ver: "1.0"
  }
}
cattax: GOOGLE_CATEGORIES
[com.google.doubleclick.bid_request] {
  bid_feedback {
    request_id: "9hh992h0221aej3WZL7ON2"
    creative_status_code: 80
    event_notification_token {
      payload: "token"
    }
    buyer_creative_id: "test_creative_id_646075"
    minimum_bid_to_win: 29.67
  }
  bid_feedback {
    request_id: "WdKk81t60Z5I20Lxz0nTvZ"
    creative_status_code: 80
    event_notification_token {
      payload: "token"
    }
    buyer_creative_id: "test_creative_id_646075"
    minimum_bid_to_win: 4.75
    billable_event_rate_bid_adjustment: 0.6922306
  }
  google_query_id: "ANy-zh1Vmb-h06yN54Z58J7U4aq4og9HDAYG45zMF0B05ZCs59tu4GOsfw5Rd2W7OlaV7I7C"
  fcap_scope: FREQUENCY_CAPPING_SCOPE_NONE
  privacy_treatments {
    ip: IP_FULL
    allow_user_data_collection: true
  }
}
```

### OpenRTB JSON

#### Show me the example

```
{
  "id": "5wvJU9203l9r567n7Ka9TS",
  "imp": [
    {
      "id": "1",
      "banner": {
        "w": 1176,
        "h": 431,
        "pos": 7,
        "battr": [
          6,
          7
        ],
        "format": [
          {
            "w": 1176,
            "h": 431
          },
          {
            "w": 750,
            "h": 200
          }
        ]
      },
      "video": {
        "mimes": [
          "video/mp4"
        ],
        "linearity": 1,
        "w": 1176,
        "h": 431,
        "battr": [
          6,
          7
        ],
        "playbackmethod": [
          5
        ],
        "pos": 7,
        "companionad": [
          {
            "w": 1176,
            "h": 431,
            "mimes": [
              "image/png",
              "image/gif"
            ],
            "format": [
              {
                "w": 1176,
                "h": 431
              }
            ],
            "vcm": 1
          }
        ],
        "api": [
          7
        ],
        "companiontype": [
          1
        ],
        "protocols": [
          2,
          3
        ],
        "skip": 1,
        "placement": 5,
        "playbackend": 1,
        "plcmt": 3,
        "ext": {
          "inferredplcmt": 3
        }
      },
      "displaymanager": "GOOGLE",
      "instl": 1,
      "tagid": "9725345911",
      "bidfloor": 9.0,
      "bidfloorcur": "JPY",
      "pmp": {
        "deals": [
          {
            "id": "65061755",
            "bidfloor": 8.553933,
            "bidfloorcur": "JPY",
            "ext": {
              "deal_type": 4,
              "billing_id": [
                "68470360571",
                "43516115440"
              ]
            }
          }
        ]
      },
      "secure": 1,
      "exp": 3600,
      "metric": [
        {
          "type": "click_through_rate",
          "value": 0.010739230550825596,
          "vendor": "EXCHANGE"
        },
        {
          "type": "viewability",
          "value": 0.92,
          "vendor": "EXCHANGE"
        }
      ],
      "ext": {
        "billing_id": [
          "99565241899",
          "62840772940"
        ],
        "publisher_settings_list_id": [
          "8326391344801492893",
          "1949843853073948330"
        ],
        "allowed_vendor_type": [
          0
        ],
        "ampad": 3,
        "buyer_generated_request_data": [
          {
            "data": "Test Data"
          },
          {
            "data": "Test Data"
          }
        ],
        "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
        },
        "gpid": "/4653013/example.com/homepage/image_top"
      }
    }
  ],
  "site": {
    "page": "https://www.google.com",
    "publisher": {
      "id": "pub-1111111111111111",
      "ext": {
        "country": "US"
      }
    },
    "content": {
      "language": "en"
    },
    "ext": {
      "amp": 0,
      "page_visibility": 1,
      "uact": {
        "wasact": 1,
        "isact": 1
      },
      "ntype": 1
    }
  },
  "device": {
    "ua": "OMITTED",
    "ip": "192.168.1.0",
    "geo": {
      "lat": 0.0,
      "lon": 0.0,
      "country": "MYS",
      "region": "MY-14",
      "city": "Kuala Lumpur",
      "type": 2,
      "utcoffset": 480,
      "accuracy": 8784,
      "ext": {
        "geo_criteria_id": 1010274
      }
    },
    "language": "en",
    "os": "Windows",
    "devicetype": 2,
    "w": 1536,
    "h": 864,
    "pxratio": 1.25,
    "sua": {
      "browsers": [
        {
          "brand": "Microsoft Edge",
          "version": [
            "149",
            "0"
          ]
        },
        {
          "brand": "Chromium",
          "version": [
            "149",
            "0"
          ]
        }
      ],
      "platform": {
        "brand": "Windows",
        "version": [
          "19",
          "0"
        ]
      },
      "mobile": 0,
      "architecture": "x86",
      "bitness": "64",
      "source": 2
    }
  },
  "user": {
    "id": "W23o8H9037R25u2cZk295JT6p8w",
    "ext": {
      "eids": [
        {
          "source": "OMITTED_SOURCE",
          "uids": [
            {
              "id": "OMITTED_ID"
            }
          ]
        },
        {
          "source": "OMITTED_SOURCE",
          "uids": [
            {
              "id": "OMITTED_ID"
            }
          ]
        }
      ],
      "idage": 7776000
    }
  },
  "at": 1,
  "tmax": 500,
  "cur": [
    "BRL",
    "AUD"
  ],
  "bcat": [
    "4",
    "5"
  ],
  "regs": {
    "gpp": "OMITTED"
  },
  "source": {
    "schain": {
      "complete": 1,
      "nodes": [
        {
          "asi": "testssp.com",
          "sid": "pub-1111111111111111",
          "hp": 1
        }
      ],
      "ver": "1.0"
    }
  },
  "cattax": 500,
  "ext": {
    "bid_feedback": [
      {
        "request_id": "9hh992h0221aej3WZL7ON2",
        "creative_status_code": 80,
        "event_notification_token": {
          "payload": "token"
        },
        "buyer_creative_id": "test_creative_id_646075",
        "minimum_bid_to_win": 29.67
      },
      {
        "request_id": "WdKk81t60Z5I20Lxz0nTvZ",
        "creative_status_code": 80,
        "event_notification_token": {
          "payload": "token"
        },
        "buyer_creative_id": "test_creative_id_646075",
        "minimum_bid_to_win": 4.75,
        "billable_event_rate_bid_adjustment": 0.6922306
      }
    ],
    "google_query_id": "ANy-zh1Vmb-h06yN54Z58J7U4aq4og9HDAYG45zMF0B05ZCs59tu4GOsfw5Rd2W7OlaV7I7C",
    "fcap_scope": 1,
    "privacy_treatments": {
      "ip": 1,
      "allow_user_data_collection": 1
    }
  }
}
```

### 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](https://support.google.com/admanager/answer/7391294), 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\\). <br /> |

##### 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\\}\\) |

#### Example with a simple mediation chain

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.seatbid[].bid[].burl`---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. When a bid request is flattened, you can tell which bid requests
were part of the original because they will have an identical value in the
`BidRequest.ext.google_query_id` field.

Bid flattening is enabled by default, but you can contact your account
manager if you would prefer to disable it.

### Ad formats

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

#### Ad format flattening example

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.

### Skippability and Video Duration

The OpenRTB spec doesn't have separate fields for specifying the maximum
video durations of skippable and non-skippable ads. Google's implementation
uses bid flattening to distinguish between these using the existing
`BidRequest.video.maxduration` and
`BidRequest.video.skip` fields.

The following is an example of how video inventory is flattened when the
maximum duration of a non-skippable ad is `15` and the maximum
duration of a skippable ad is `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 skippable and non-skippable videos are allowed, and the two respective max durations differ in value.
- This request is Private Auction or Open Auction-eligible.

You can opt out from this type of flattening by contacting your technical
account manager. When disabled, and the publisher allows both skippable and
non-skippable video ads with different maximum durations based on skippability,
`skip` would be set to `true` and
`maxduration` would be set to whichever duration is shorter between
skippable and non-skippable ad constraints.

### 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](https://storage.googleapis.com/adx-rtb-dictionaries/publisher-excludable-creative-attributes.txt). This would be found under the `battr`
attribute for [Banner](https://developers.google.com/authorized-buyers/rtb/openrtb-guide#banner)
or [Video](https://developers.google.com/authorized-buyers/rtb/openrtb-guide#video), depending
on the format.

For more information on how to interpret bid requests containing Open
Measurement signals, refer to the [Open Measurement
SDK](https://support.google.com/authorizedbuyers/answer/9115752) Help Center article.

## Sample bid requests

The following sections show sample bid requests for different ad types.

> [!NOTE]
> **Note:** The Protobuf samples include download links to similar serialized bid requests. They are not guaranteed to be identical.

### App banner

### OpenRTB Protobuf

#### Show me the example

[Serialized request](https://developers.google.com/authorized-buyers/rtb/data/request-response/openrtb_protobuf_mobile_app_banner_ad_request.bin)  

```
id: "r62rR50p18m734jE66sjMh"
imp {
  id: "1"
  banner {
    w: 390
    h: 60
    pos: ABOVE_THE_FOLD
    api: MRAID_1
    api: MRAID_2
    format {
      w: 390
      h: 60
    }
    format {
      w: 320
      h: 50
    }
  }
  displaymanager: "GoogleMobileAds-iOS"
  displaymanagerver: "13.1.0"
  tagid: "1517243285"
  bidfloor: 0.01
  bidfloorcur: "USD"
  secure: true
  exp: 3600
  clickbrowser: true
  metric {
    type: "click_through_rate"
    value: 0.0022201044484972954
    vendor: "EXCHANGE"
  }
  metric {
    type: "viewability"
    value: 0.85
    vendor: "EXCHANGE"
  }
  [com.google.doubleclick.imp] {
    billing_id: 61131625086
    publisher_settings_list_id: 3084399357070124199
    publisher_settings_list_id: 2015309895740864662
    allowed_vendor_type: 0
    allowed_vendor_type: 4513
    ampad: AMP_AD_NOT_ALLOWED
    creative_enforcement_settings {
      policy_enforcement: POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
      publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
    }
    billable_event_rate_bid_adjustment {
      bid_adjustment: 0.83615476
      creative_type: HTML_SNIPPET
    }
    jsver: "test-sdk_123456789"
  }
}
app {
  name: "Test App"
  ver: "15.3.0"
  bundle: "com.google.testapp"
  publisher {
    id: "pub-7606296363872502"
    [com.google.doubleclick.publisher] {
      country: "IN"
    }
  }
  content {
    url: "https://www.google.com"
    language: "en"
  }
  storeurl: "https://www.google.com"
}
device {
  ua: "OMITTED"
  ip: "192.168.1.0"
  geo {
    lat: 0.0
    lon: 0.0
    country: "IND"
    region: "IN-KA"
    city: "Bangalore"
    type: IP
    utcoffset: 330
    accuracy: 22850
    [com.google.doubleclick.geo] {
      geo_criteria_id: 1007768
    }
  }
  make: "Apple"
  model: "iPhone14,7"
  os: "iOS"
  osv: "26.2.0"
  connectiontype: CELL_4G
  devicetype: HIGHEND_PHONE
  hwv: "iPhone14,7"
  w: 390
  h: 844
  pxratio: 3.0
  sua {
    browsers {
      brand: "Mozilla"
      version: "5"
      version: "0"
    }
    browsers {
      brand: "AppleWebKit"
      version: "605"
      version: "1"
    }
    platform {
      brand: "iPhone"
      version: "26"
      version: "2"
    }
    mobile: true
    bitness: "64"
    model: "iPhone"
    source: USER_AGENT_STRING
  }
  [com.google.doubleclick.device] {
    atts: 2
    audioout: AUDIO_SILENT
    ifv: "4560af07-e42a-4e13-9d2a-e20c5dece20d"
  }
}
user {
  [com.google.doubleclick.user] {
    session {
      depth: 0
      requestssinceappopen: 63
      priorclicks: 0
    }
  }
}
at: FIRST_PRICE
tmax: 1200
cur: "USD"
bcat: "IAB7-39"
bcat: "IAB8-5"
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-v13.1.0"
  }
}
cattax: IAB_CONTENT_1_0
[com.google.doubleclick.bid_request] {
  google_query_id: "ANy-zp8d05-258Q9Xl73205d81rJ2KB33AQst39b484640WP22Yh94sQR3W3UA7U2P3vH994"
  fcap_scope: FREQUENCY_CAPPING_SCOPE_APP
  privacy_treatments {
    allow_user_data_collection: true
  }
}
```

### OpenRTB JSON

#### Show me the example

```
{
  "id": "r62rR50p18m734jE66sjMh",
  "imp": [
    {
      "id": "1",
      "banner": {
        "w": 390,
        "h": 60,
        "pos": 1,
        "api": [
          3,
          5
        ],
        "format": [
          {
            "w": 390,
            "h": 60
          },
          {
            "w": 320,
            "h": 50
          }
        ]
      },
      "displaymanager": "GoogleMobileAds-iOS",
      "displaymanagerver": "13.1.0",
      "tagid": "1517243285",
      "bidfloor": 0.01,
      "bidfloorcur": "USD",
      "secure": 1,
      "exp": 3600,
      "clickbrowser": 1,
      "metric": [
        {
          "type": "click_through_rate",
          "value": 0.0022201044484972954,
          "vendor": "EXCHANGE"
        },
        {
          "type": "viewability",
          "value": 0.85,
          "vendor": "EXCHANGE"
        }
      ],
      "ext": {
        "billing_id": [
          "61131625086"
        ],
        "publisher_settings_list_id": [
          "3084399357070124199",
          "2015309895740864662"
        ],
        "allowed_vendor_type": [
          0,
          4513
        ],
        "ampad": 2,
        "creative_enforcement_settings": {
          "policy_enforcement": 2,
          "publisher_blocks_enforcement": 1
        },
        "billable_event_rate_bid_adjustment": [
          {
            "bid_adjustment": 0.83615476,
            "creative_type": 1
          }
        ],
        "jsver": "test-sdk_123456789"
      }
    }
  ],
  "app": {
    "name": "Test App",
    "ver": "15.3.0",
    "bundle": "com.google.testapp",
    "publisher": {
      "id": "pub-7606296363872502",
      "ext": {
        "country": "IN"
      }
    },
    "content": {
      "url": "https://www.google.com",
      "language": "en"
    },
    "storeurl": "https://www.google.com"
  },
  "device": {
    "ua": "OMITTED",
    "ip": "192.168.1.0",
    "geo": {
      "lat": 0.0,
      "lon": 0.0,
      "country": "IND",
      "region": "IN-KA",
      "city": "Bangalore",
      "type": 2,
      "utcoffset": 330,
      "accuracy": 22850,
      "ext": {
        "geo_criteria_id": 1007768
      }
    },
    "make": "Apple",
    "model": "iPhone14,7",
    "os": "iOS",
    "osv": "26.2.0",
    "connectiontype": 6,
    "devicetype": 4,
    "hwv": "iPhone14,7",
    "w": 390,
    "h": 844,
    "pxratio": 3.0,
    "sua": {
      "browsers": [
        {
          "brand": "Mozilla",
          "version": [
            "5",
            "0"
          ]
        },
        {
          "brand": "AppleWebKit",
          "version": [
            "605",
            "1"
          ]
        }
      ],
      "platform": {
        "brand": "iPhone",
        "version": [
          "26",
          "2"
        ]
      },
      "mobile": 1,
      "bitness": "64",
      "model": "iPhone",
      "source": 3
    },
    "ext": {
      "atts": 2,
      "audioout": 3,
      "ifv": "4560af07-e42a-4e13-9d2a-e20c5dece20d"
    }
  },
  "user": {
    "ext": {
      "session": {
        "depth": 0,
        "requestssinceappopen": 63,
        "priorclicks": 0
      }
    }
  },
  "at": 1,
  "tmax": 1200,
  "cur": [
    "USD"
  ],
  "bcat": [
    "IAB7-39",
    "IAB8-5"
  ],
  "source": {
    "schain": {
      "complete": 1,
      "nodes": [
        {
          "asi": "testssp.com",
          "sid": "pub-1111111111111111",
          "hp": 1
        }
      ],
      "ver": "1.0"
    },
    "ext": {
      "omidpn": "Google",
      "omidpv": "afma-sdk-i-v13.1.0"
    }
  },
  "cattax": 1,
  "ext": {
    "google_query_id": "ANy-zp8d05-258Q9Xl73205d81rJ2KB33AQst39b484640WP22Yh94sQR3W3UA7U2P3vH994",
    "fcap_scope": 4,
    "privacy_treatments": {
      "allow_user_data_collection": 1
    }
  }
}
```

### App interstitial

### OpenRTB Protobuf

#### Show me the example

[Serialized request](https://developers.google.com/authorized-buyers/rtb/data/request-response/openrtb_protobuf_mobile_app_interstitial_ad_request.bin)  

```
id: "iPwd6qWwe759U5389nKgZ2"
imp {
  id: "1"
  banner {
    w: 390
    h: 764
    pos: AD_POSITION_FULLSCREEN
    api: MRAID_1
    api: MRAID_2
    format {
      w: 390
      h: 764
    }
    format {
      w: 160
      h: 600
    }
  }
  displaymanager: "GoogleMobileAds-iOS"
  displaymanagerver: "12.1.0"
  instl: true
  tagid: "6515547538"
  bidfloor: 0.01
  bidfloorcur: "USD"
  secure: true
  exp: 3600
  clickbrowser: true
  metric {
    type: "click_through_rate"
    value: 0.071259871125221252
    vendor: "EXCHANGE"
  }
  metric {
    type: "viewability"
    value: 0.93
    vendor: "EXCHANGE"
  }
  [com.google.doubleclick.imp] {
    billing_id: 20458168637
    publisher_settings_list_id: 7415902580159294065
    publisher_settings_list_id: 3858265210976003530
    allowed_vendor_type: 0
    allowed_vendor_type: 4513
    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: "jLL135hf"
      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
    }
    jsver: "test-sdk_123456789"
    highengagement: true
  }
}
app {
  name: "Test App"
  ver: "18.6.0"
  bundle: "com.google.testapp"
  publisher {
    id: "pub-5899129488172801"
    [com.google.doubleclick.publisher] {
      country: "IL"
    }
  }
  content {
    url: "https://www.google.com"
    language: "en"
  }
  storeurl: "https://www.google.com"
}
device {
  ua: "OMITTED"
  geo {
    lat: 0
    lon: 0
    country: "COL"
    region: "CO-DC"
    city: "Bogota"
    zip: "110851"
    type: IP
    utcoffset: -300
    accuracy: 1236
    [com.google.doubleclick.geo] {
      geo_criteria_id: 9216139
    }
  }
  ipv6: "2800:e2:5780::"
  language: "es"
  make: "Apple"
  model: "iPhone14,7"
  os: "iOS"
  osv: "18.7"
  connectiontype: WIFI
  devicetype: HIGHEND_PHONE
  hwv: "iPhone14,7"
  w: 390
  h: 844
  pxratio: 3
  sua {
    browsers {
      brand: "Mozilla"
      version: "5"
      version: "0"
    }
    browsers {
      brand: "AppleWebKit"
      version: "605"
      version: "1"
    }
    platform {
      brand: "iPhone"
      version: "18"
      version: "7"
    }
    mobile: true
    bitness: "64"
    model: "iPhone"
    source: USER_AGENT_STRING
  }
  [com.google.doubleclick.device] {
    atts: 2
    audioout: AUDIO_SPEAKER
    ifv: "5fcebf5e-462f-47fe-a528-e982d9512348"
  }
}
user {
  [com.google.doubleclick.user] {
    session {
      depth: 0
      requestssinceappopen: 5
      priorclicks: 0
    }
  }
}
at: FIRST_PRICE
tmax: 700
cur: "USD"
bcat: "32"
bcat: "33"
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-v12.1.0"
  }
}
cattax: GOOGLE_CATEGORIES
[com.google.doubleclick.bid_request] {
  google_query_id: "ANy-z7CT2R-7uB8g5aR7v8neLD9N5p9e04ON1C2ob93u7SZlV346yw69237l5d6p2bZ43x62"
  fcap_scope: FREQUENCY_CAPPING_SCOPE_APP
  privacy_treatments {
    allow_user_data_collection: true
  }
}
```

### OpenRTB JSON

#### Show me the example

```
{
  "id": "iPwd6qWwe759U5389nKgZ2",
  "imp": [
    {
      "id": "1",
      "banner": {
        "w": 390,
        "h": 764,
        "pos": 7,
        "api": [
          3,
          5
        ],
        "format": [
          {
            "w": 390,
            "h": 764
          },
          {
            "w": 160,
            "h": 600
          }
        ]
      },
      "displaymanager": "GoogleMobileAds-iOS",
      "displaymanagerver": "12.1.0",
      "instl": 1,
      "tagid": "6515547538",
      "bidfloor": 0.01,
      "bidfloorcur": "USD",
      "secure": 1,
      "exp": 3600,
      "clickbrowser": 1,
      "metric": [
        {
          "type": "click_through_rate",
          "value": 0.07125987112522125,
          "vendor": "EXCHANGE"
        },
        {
          "type": "viewability",
          "value": 0.93,
          "vendor": "EXCHANGE"
        }
      ],
      "ext": {
        "billing_id": [
          "20458168637"
        ],
        "publisher_settings_list_id": [
          "7415902580159294065",
          "3858265210976003530"
        ],
        "allowed_vendor_type": [
          0,
          4513
        ],
        "ampad": 2,
        "excluded_creatives": [
          {
            "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
          },
          {
            "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
          }
        ],
        "skadn": {
          "sourceapp": "com.google.testapp",
          "skadnetids": [
            "jLL135hf"
          ],
          "versions": [
            "2.0",
            "2.1"
          ],
          "fidelities": [
            1,
            0
          ]
        },
        "creative_enforcement_settings": {
          "policy_enforcement": 2,
          "publisher_blocks_enforcement": 1
        },
        "jsver": "test-sdk_123456789",
        "highengagement": 1
      }
    }
  ],
  "app": {
    "name": "Test App",
    "ver": "18.6.0",
    "bundle": "com.google.testapp",
    "publisher": {
      "id": "pub-5899129488172801",
      "ext": {
        "country": "IL"
      }
    },
    "content": {
      "url": "https://www.google.com",
      "language": "en"
    },
    "storeurl": "https://www.google.com"
  },
  "device": {
    "ua": "OMITTED",
    "geo": {
      "lat": 0.0,
      "lon": 0.0,
      "country": "COL",
      "region": "CO-DC",
      "city": "Bogota",
      "zip": "110851",
      "type": 2,
      "utcoffset": -300,
      "accuracy": 1236,
      "ext": {
        "geo_criteria_id": 9216139
      }
    },
    "ipv6": "2800:e2:5780::",
    "language": "es",
    "make": "Apple",
    "model": "iPhone14,7",
    "os": "iOS",
    "osv": "18.7",
    "connectiontype": 2,
    "devicetype": 4,
    "hwv": "iPhone14,7",
    "w": 390,
    "h": 844,
    "pxratio": 3.0,
    "sua": {
      "browsers": [
        {
          "brand": "Mozilla",
          "version": [
            "5",
            "0"
          ]
        },
        {
          "brand": "AppleWebKit",
          "version": [
            "605",
            "1"
          ]
        }
      ],
      "platform": {
        "brand": "iPhone",
        "version": [
          "18",
          "7"
        ]
      },
      "mobile": 1,
      "bitness": "64",
      "model": "iPhone",
      "source": 3
    },
    "ext": {
      "atts": 2,
      "audioout": 1,
      "ifv": "5fcebf5e-462f-47fe-a528-e982d9512348"
    }
  },
  "user": {
    "ext": {
      "session": {
        "depth": 0,
        "requestssinceappopen": 5,
        "priorclicks": 0
      }
    }
  },
  "at": 1,
  "tmax": 700,
  "cur": [
    "USD"
  ],
  "bcat": [
    "32",
    "33"
  ],
  "source": {
    "schain": {
      "complete": 1,
      "nodes": [
        {
          "asi": "testssp.com",
          "sid": "pub-1111111111111111",
          "hp": 1
        }
      ],
      "ver": "1.0"
    },
    "ext": {
      "omidpn": "Google",
      "omidpv": "afma-sdk-i-v12.1.0"
    }
  },
  "cattax": 500,
  "ext": {
    "google_query_id": "ANy-z7CT2R-7uB8g5aR7v8neLD9N5p9e04ON1C2ob93u7SZlV346yw69237l5d6p2bZ43x62",
    "fcap_scope": 4,
    "privacy_treatments": {
      "allow_user_data_collection": 1
    }
  }
}
```

### App interstitial video

### OpenRTB Protobuf

#### Show me the example

[Serialized request](https://developers.google.com/authorized-buyers/rtb/data/request-response/openrtb_protobuf_mobile_app_interstitial_video_ad_request.bin)  

```
id: "4504597n09E4gg5xCE3gtC"
imp {
  id: "1"
  video {
    mimes: "video/mp4"
    linearity: LINEAR
    maxduration: 30
    w: 393
    h: 734
    startdelay: 0
    playbackmethod: CLICK_TO_PLAY
    pos: AD_POSITION_FULLSCREEN
    companionad {
      w: 393
      h: 734
      mimes: "text/html"
      mimes: "image/jpeg"
      format {
        w: 393
        h: 734
      }
      vcm: true
    }
    api: MRAID_1
    api: MRAID_2
    companiontype: STATIC
    companiontype: HTML
    protocols: VAST_2_0
    protocols: VAST_3_0
    skip: false
    placement: FLOATING_PLACEMENT
    playbackend: COMPLETION_OR_USER
    maxseq: 2
    poddur: 30
    plcmt: PLCMT_INTERSTITIAL
    [com.google.doubleclick.video] {
      inferredplcmt: PLCMT_INTERSTITIAL
    }
  }
  displaymanager: "GoogleMobileAds-iOS"
  displaymanagerver: "11.13.0"
  instl: true
  tagid: "5915789270"
  bidfloor: 0.01
  bidfloorcur: "USD"
  pmp {
    deals {
      id: "93662870"
      bidfloor: 0.01
      bidfloorcur: "USD"
      [com.google.doubleclick.deal] {
        deal_type: AUCTION_PACKAGE
      }
    }
    deals {
      id: "19575739"
      bidfloor: 0.01
      bidfloorcur: "USD"
      [com.google.doubleclick.deal] {
        deal_type: AUCTION_PACKAGE
        billing_id: 36851326411
      }
    }
  }
  secure: true
  exp: 3600
  clickbrowser: true
  metric {
    type: "click_through_rate"
    value: 0.17778901755809784
    vendor: "EXCHANGE"
  }
  metric {
    type: "video_completion_rate"
    value: 0.7673559784889221
    vendor: "EXCHANGE"
  }
  rwdd: true
  [com.google.doubleclick.imp] {
    billing_id: 35842063629
    publisher_settings_list_id: 8667304380123260035
    publisher_settings_list_id: 1973283475267632849
    allowed_vendor_type: 0
    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"
    }
    skadn {
      sourceapp: "com.google.testapp"
      skadnetids: "4YP85S89"
      versions: "2.0"
      versions: "2.1"
      fidelities: VIEW_THROUGH_ADS
      fidelities: STOREKIT_RENDERED_ADS
      skoverlay: true
    }
    creative_enforcement_settings {
      policy_enforcement: POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
      publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
    }
    jsver: "test-sdk_123456789"
  }
}
app {
  name: "Test App"
  ver: "189.5.0"
  bundle: "com.google.testapp"
  publisher {
    id: "pub-4877031945088742"
    [com.google.doubleclick.publisher] {
      country: "IL"
    }
  }
  content {
    url: "https://www.google.com"
    livestream: false
    language: "en"
  }
  storeurl: "https://www.google.com"
}
device {
  ua: "OMITTED"
  ip: "192.168.1.0"
  geo {
    lat: 0.0
    lon: 0.0
    country: "NLD"
    region: "NL-ZE"
    city: "Sas-Van-Gent"
    zip: "4551"
    type: IP
    utcoffset: 120
    accuracy: 2408
    [com.google.doubleclick.geo] {
      geo_criteria_id: 9102830
    }
  }
  language: "nl"
  make: "Apple"
  model: "iPhone15,4"
  os: "iOS"
  osv: "26.4.2"
  connectiontype: WIFI
  devicetype: HIGHEND_PHONE
  hwv: "iPhone15,4"
  w: 393
  h: 852
  pxratio: 3.0
  sua {
    browsers {
      brand: "Mozilla"
      version: "5"
      version: "0"
    }
    browsers {
      brand: "AppleWebKit"
      version: "605"
      version: "1"
    }
    platform {
      brand: "iPhone"
      version: "26"
      version: "4"
    }
    mobile: true
    bitness: "64"
    model: "iPhone"
    source: USER_AGENT_STRING
  }
  [com.google.doubleclick.device] {
    atts: 2
    audioout: AUDIO_SILENT
  }
}
user {
  consent: "OMITTED"
  [com.google.doubleclick.user] {
    consented_providers_settings {
      consented_providers: 2571
      consented_providers: 1716
      additional_consent: "OMITTED"
    }
    consent: "OMITTED"
    session {
      duration: 13
      depth: 52
      requestssinceappopen: 52
      priorclicks: 0
    }
  }
}
at: FIRST_PRICE
tmax: 300
cur: "USD"
bcat: "3"
bcat: "4"
regs {
  [com.google.doubleclick.regs] {
    gdpr: true
  }
}
bapp: "1636235979"
bapp: "519817714"
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-v11.13.0"
  }
}
cattax: GOOGLE_CATEGORIES
[com.google.doubleclick.bid_request] {
  google_query_id: "ANy-z63427-98351nM99R00x3m9745l85LDndw4k24CEzkbpo76Sw05F43ZwQeax500JKdp7"
  fcap_scope: FREQUENCY_CAPPING_SCOPE_APP
  privacy_treatments {
    allow_user_data_collection: true
  }
}
```

### OpenRTB JSON

#### Show me the example

```
{
  "id": "4504597n09E4gg5xCE3gtC",
  "imp": [
    {
      "id": "1",
      "video": {
        "mimes": [
          "video/mp4"
        ],
        "linearity": 1,
        "maxduration": 30,
        "w": 393,
        "h": 734,
        "startdelay": 0,
        "playbackmethod": [
          3
        ],
        "pos": 7,
        "companionad": [
          {
            "w": 393,
            "h": 734,
            "mimes": [
              "text/html",
              "image/jpeg"
            ],
            "format": [
              {
                "w": 393,
                "h": 734
              }
            ],
            "vcm": 1
          }
        ],
        "api": [
          3,
          5
        ],
        "companiontype": [
          1,
          2
        ],
        "protocols": [
          2,
          3
        ],
        "skip": 0,
        "placement": 5,
        "playbackend": 1,
        "maxseq": 2,
        "poddur": 30,
        "plcmt": 3,
        "ext": {
          "inferredplcmt": 3
        }
      },
      "displaymanager": "GoogleMobileAds-iOS",
      "displaymanagerver": "11.13.0",
      "instl": 1,
      "tagid": "5915789270",
      "bidfloor": 0.01,
      "bidfloorcur": "USD",
      "pmp": {
        "deals": [
          {
            "id": "93662870",
            "bidfloor": 0.01,
            "bidfloorcur": "USD",
            "ext": {
              "deal_type": 4
            }
          },
          {
            "id": "19575739",
            "bidfloor": 0.01,
            "bidfloorcur": "USD",
            "ext": {
              "deal_type": 4,
              "billing_id": [
                "36851326411"
              ]
            }
          }
        ]
      },
      "secure": 1,
      "exp": 3600,
      "clickbrowser": 1,
      "metric": [
        {
          "type": "click_through_rate",
          "value": 0.17778901755809784,
          "vendor": "EXCHANGE"
        },
        {
          "type": "video_completion_rate",
          "value": 0.7673559784889221,
          "vendor": "EXCHANGE"
        }
      ],
      "rwdd": 1,
      "ext": {
        "billing_id": [
          "35842063629"
        ],
        "publisher_settings_list_id": [
          "8667304380123260035",
          "1973283475267632849"
        ],
        "allowed_vendor_type": [
          0,
          566
        ],
        "ampad": 2,
        "excluded_creatives": [
          {
            "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
          },
          {
            "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
          }
        ],
        "skadn": {
          "sourceapp": "com.google.testapp",
          "skadnetids": [
            "4YP85S89"
          ],
          "versions": [
            "2.0",
            "2.1"
          ],
          "fidelities": [
            0,
            1
          ],
          "skoverlay": 1
        },
        "creative_enforcement_settings": {
          "policy_enforcement": 2,
          "publisher_blocks_enforcement": 1
        },
        "jsver": "test-sdk_123456789"
      }
    }
  ],
  "app": {
    "name": "Test App",
    "ver": "189.5.0",
    "bundle": "com.google.testapp",
    "publisher": {
      "id": "pub-4877031945088742",
      "ext": {
        "country": "IL"
      }
    },
    "content": {
      "url": "https://www.google.com",
      "livestream": 0,
      "language": "en"
    },
    "storeurl": "https://www.google.com"
  },
  "device": {
    "ua": "OMITTED",
    "ip": "192.168.1.0",
    "geo": {
      "lat": 0.0,
      "lon": 0.0,
      "country": "NLD",
      "region": "NL-ZE",
      "city": "Sas-Van-Gent",
      "zip": "4551",
      "type": 2,
      "utcoffset": 120,
      "accuracy": 2408,
      "ext": {
        "geo_criteria_id": 9102830
      }
    },
    "language": "nl",
    "make": "Apple",
    "model": "iPhone15,4",
    "os": "iOS",
    "osv": "26.4.2",
    "connectiontype": 2,
    "devicetype": 4,
    "hwv": "iPhone15,4",
    "w": 393,
    "h": 852,
    "pxratio": 3.0,
    "sua": {
      "browsers": [
        {
          "brand": "Mozilla",
          "version": [
            "5",
            "0"
          ]
        },
        {
          "brand": "AppleWebKit",
          "version": [
            "605",
            "1"
          ]
        }
      ],
      "platform": {
        "brand": "iPhone",
        "version": [
          "26",
          "4"
        ]
      },
      "mobile": 1,
      "bitness": "64",
      "model": "iPhone",
      "source": 3
    },
    "ext": {
      "atts": 2,
      "audioout": 3
    }
  },
  "user": {
    "consent": "OMITTED",
    "ext": {
      "consented_providers_settings": {
        "consented_providers": [
          "2571",
          "1716"
        ],
        "additional_consent": "OMITTED"
      },
      "consent": "OMITTED",
      "session": {
        "duration": 13,
        "depth": 52,
        "requestssinceappopen": 52,
        "priorclicks": 0
      }
    }
  },
  "at": 1,
  "tmax": 300,
  "cur": [
    "USD"
  ],
  "bcat": [
    "3",
    "4"
  ],
  "regs": {
    "ext": {
      "gdpr": 1
    }
  },
  "bapp": [
    "1636235979",
    "519817714"
  ],
  "source": {
    "schain": {
      "complete": 1,
      "nodes": [
        {
          "asi": "testssp.com",
          "sid": "pub-1111111111111111",
          "hp": 1
        }
      ],
      "ver": "1.0"
    },
    "ext": {
      "omidpn": "Google",
      "omidpv": "afma-sdk-i-v11.13.0"
    }
  },
  "cattax": 500,
  "ext": {
    "google_query_id": "ANy-z63427-98351nM99R00x3m9745l85LDndw4k24CEzkbpo76Sw05F43ZwQeax500JKdp7",
    "fcap_scope": 4,
    "privacy_treatments": {
      "allow_user_data_collection": 1
    }
  }
}
```

### App native

### OpenRTB Protobuf

#### Show me the example

[Serialized request](https://developers.google.com/authorized-buyers/rtb/data/request-response/openrtb_protobuf_mobile_app_native_ad_request.bin)  

```
id: "7D9g851a2H23U2F7pD6W14"
imp {
  id: "1"
  displaymanager: "NextGenGoogleMobileAds-Android"
  displaymanagerver: "1.0.1"
  tagid: "2380414869"
  bidfloor: 232.0
  bidfloorcur: "JPY"
  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
        img {
          type: ICON
          wmin: 100
          hmin: 100
        }
      }
      eventtrackers {
        event: IMPRESSION
        methods: IMG
      }
      privacy: true
    }
  }
  exp: 43200
  clickbrowser: true
  metric {
    type: "click_through_rate"
    value: 0.002078480552881956
    vendor: "EXCHANGE"
  }
  metric {
    type: "session_depth"
    value: 1.0
    vendor: "EXCHANGE"
  }
  [com.google.doubleclick.imp] {
    billing_id: 92863611773
    billing_id: 64428541796
    publisher_settings_list_id: 8437350150687518918
    publisher_settings_list_id: 4829490296375653153
    allowed_vendor_type: 0
    allowed_vendor_type: 550
    ampad: AMP_AD_NOT_ALLOWED
    excluded_creatives {
      buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
    }
    excluded_creatives {
      buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
    }
    allowed_restricted_category: 32
    creative_enforcement_settings {
      policy_enforcement: POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
      publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
    }
    jsver: "test-sdk_123456789"
  }
}
app {
  name: "Test App"
  bundle: "com.google.testapp"
  publisher {
    id: "pub-2028169628540128"
    [com.google.doubleclick.publisher] {
      country: "SE"
    }
  }
  content {
    url: "https://www.google.com"
    userrating: "4.5"
    language: "en"
  }
  storeurl: "https://www.google.com"
}
device {
  ua: "OMITTED"
  geo {
    lat: 0.0
    lon: 0.0
    country: "USA"
    region: "MS"
    metro: "746"
    city: "Gulfport"
    zip: "39503"
    type: IP
    utcoffset: -300
    accuracy: 9773
    [com.google.doubleclick.geo] {
      geo_criteria_id: 9014039
    }
  }
  ipv6: "2600:1702:5574:b280:9c15:4df1:287e:31a4"
  language: "en"
  make: "Motorola"
  model: "motorola razr 2025"
  os: "android"
  osv: "16"
  connectiontype: WIFI
  devicetype: HIGHEND_PHONE
  ifa: "237d5f4f-8c52-4465-8e1a-106ffd5a35eb"
  w: 320
  h: 783
  pxratio: 3.375
  sua {
    browsers {
      brand: "Mozilla"
      version: "5"
      version: "0"
    }
    browsers {
      brand: "AppleWebKit"
      version: "537"
      version: "36"
    }
    platform {
      brand: "Android"
      version: "16"
    }
    mobile: true
    bitness: "64"
    model: "motorola razr 2025"
    source: USER_AGENT_STRING
  }
  [com.google.doubleclick.device] {
    metereddata: false
    chargelevel: 0.89
    charging: false
    diskspace: 183300
    audioout: AUDIO_SPEAKER
    ifa_type: "aaid"
  }
}
user {
  id: "00t992x3943h7m1gx4vQdsXr6R7"
  [com.google.doubleclick.user] {
    session {
      duration: 136260
      depth: 110
      requestssinceappopen: 110
      priorclicks: 0
    }
    idage: 20736000
  }
}
at: FIRST_PRICE
tmax: 1300
cur: "BRL"
cur: "INR"
bcat: "33"
source {
  schain {
    complete: true
    nodes {
      asi: "testssp.com"
      sid: "pub-1111111111111111"
      hp: true
    }
    ver: "1.0"
  }
}
cattax: GOOGLE_CATEGORIES
[com.google.doubleclick.bid_request] {
  bid_feedback {
    request_id: "481I20Z85L1WCdosYYEUaR"
    creative_status_code: 80
    event_notification_token {
      payload: "token"
    }
    buyer_creative_id: "test_creative_id_397059"
    minimum_bid_to_win: 31.97
  }
  bid_feedback {
    request_id: "W1D6A811JLpA63CR893GC0"
    creative_status_code: 80
    event_notification_token {
      payload: "token"
    }
    buyer_creative_id: "test_creative_id_397059"
    minimum_bid_to_win: 3.13
  }
  google_query_id: "ANy-zg8X03-Zq419TS6242989i82bU52q1o28k863G72S66pLMwx92Hg3K795kaiN985QXNM"
  fcap_scope: FREQUENCY_CAPPING_SCOPE_DEVICE
  privacy_treatments {
    allow_user_data_collection: true
  }
}
```

### OpenRTB JSON

#### Show me the example

```
{
  "id": "7D9g851a2H23U2F7pD6W14",
  "imp": [
    {
      "id": "1",
      "displaymanager": "NextGenGoogleMobileAds-Android",
      "displaymanagerver": "1.0.1",
      "tagid": "2380414869",
      "bidfloor": 232.0,
      "bidfloorcur": "JPY",
      "secure": 1,
      "native": {
        "ver": "1.2",
        "api": [
          3,
          5
        ],
        "request": "{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"len\":25}},{\"id\":2,\"required\":1,\"img\":{\"type\":1,\"wmin\":100,\"hmin\":100}}],\"eventtrackers\":[{\"event\":1,\"methods\":[1]}],\"privacy\":1}"
      },
      "exp": 43200,
      "clickbrowser": 1,
      "metric": [
        {
          "type": "click_through_rate",
          "value": 0.002078480552881956,
          "vendor": "EXCHANGE"
        },
        {
          "type": "session_depth",
          "value": 1.0,
          "vendor": "EXCHANGE"
        }
      ],
      "ext": {
        "billing_id": [
          "92863611773",
          "64428541796"
        ],
        "publisher_settings_list_id": [
          "8437350150687518918",
          "4829490296375653153"
        ],
        "allowed_vendor_type": [
          0,
          550
        ],
        "ampad": 2,
        "excluded_creatives": [
          {
            "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
          },
          {
            "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
          }
        ],
        "allowed_restricted_category": [
          32
        ],
        "creative_enforcement_settings": {
          "policy_enforcement": 2,
          "publisher_blocks_enforcement": 1
        },
        "jsver": "test-sdk_123456789"
      }
    }
  ],
  "app": {
    "name": "Test App",
    "bundle": "com.google.testapp",
    "publisher": {
      "id": "pub-2028169628540128",
      "ext": {
        "country": "SE"
      }
    },
    "content": {
      "url": "https://www.google.com",
      "userrating": "4.5",
      "language": "en"
    },
    "storeurl": "https://www.google.com"
  },
  "device": {
    "ua": "OMITTED",
    "geo": {
      "lat": 0.0,
      "lon": 0.0,
      "country": "USA",
      "region": "MS",
      "metro": "746",
      "city": "Gulfport",
      "zip": "39503",
      "type": 2,
      "utcoffset": -300,
      "accuracy": 9773,
      "ext": {
        "geo_criteria_id": 9014039
      }
    },
    "ipv6": "2600:1702:5574:b280:9c15:4df1:287e:31a4",
    "language": "en",
    "make": "Motorola",
    "model": "motorola razr 2025",
    "os": "android",
    "osv": "16",
    "connectiontype": 2,
    "devicetype": 4,
    "ifa": "237d5f4f-8c52-4465-8e1a-106ffd5a35eb",
    "w": 320,
    "h": 783,
    "pxratio": 3.375,
    "sua": {
      "browsers": [
        {
          "brand": "Mozilla",
          "version": [
            "5",
            "0"
          ]
        },
        {
          "brand": "AppleWebKit",
          "version": [
            "537",
            "36"
          ]
        }
      ],
      "platform": {
        "brand": "Android",
        "version": [
          "16"
        ]
      },
      "mobile": 1,
      "bitness": "64",
      "model": "motorola razr 2025",
      "source": 3
    },
    "ext": {
      "metereddata": 0,
      "chargelevel": 0.89,
      "charging": 0,
      "diskspace": 183300,
      "audioout": 1,
      "ifa_type": "aaid"
    }
  },
  "user": {
    "id": "00t992x3943h7m1gx4vQdsXr6R7",
    "ext": {
      "session": {
        "duration": 136260,
        "depth": 110,
        "requestssinceappopen": 110,
        "priorclicks": 0
      },
      "idage": 20736000
    }
  },
  "at": 1,
  "tmax": 1300,
  "cur": [
    "BRL",
    "INR"
  ],
  "bcat": [
    "33"
  ],
  "source": {
    "schain": {
      "complete": 1,
      "nodes": [
        {
          "asi": "testssp.com",
          "sid": "pub-1111111111111111",
          "hp": 1
        }
      ],
      "ver": "1.0"
    }
  },
  "cattax": 500,
  "ext": {
    "bid_feedback": [
      {
        "request_id": "481I20Z85L1WCdosYYEUaR",
        "creative_status_code": 80,
        "event_notification_token": {
          "payload": "token"
        },
        "buyer_creative_id": "test_creative_id_397059",
        "minimum_bid_to_win": 31.97
      },
      {
        "request_id": "W1D6A811JLpA63CR893GC0",
        "creative_status_code": 80,
        "event_notification_token": {
          "payload": "token"
        },
        "buyer_creative_id": "test_creative_id_397059",
        "minimum_bid_to_win": 3.13
      }
    ],
    "google_query_id": "ANy-zg8X03-Zq419TS6242989i82bU52q1o28k863G72S66pLMwx92Hg3K795kaiN985QXNM",
    "fcap_scope": 3,
    "privacy_treatments": {
      "allow_user_data_collection": 1
    }
  }
}
```

### Web video

### OpenRTB Protobuf

#### Show me the example

[Serialized request](https://developers.google.com/authorized-buyers/rtb/data/request-response/openrtb_protobuf_web_video_ad_request.bin)  

```
id: "9B5K1zj5T61jRM80t25s13"
imp {
  id: "1"
  video {
    mimes: "application/javascript"
    mimes: "video/mp4"
    linearity: LINEAR
    maxduration: 60
    w: 306
    h: 156
    startdelay: 0
    playbackmethod: ENTER_SOUND_OFF
    pos: ABOVE_THE_FOLD
    companionad {
      w: 0
      h: 0
      mimes: "image/png"
      mimes: "image/gif"
      format {
        w: 0
        h: 0
      }
    }
    api: VPAID_1
    api: VPAID_2
    companiontype: STATIC
    protocols: VAST_2_0
    protocols: VAST_3_0
    skip: true
    placement: IN_STREAM_PLACEMENT
    durfloors {
      maxdur: 121
      bidfloor: 628.6151504524262
    }
    [com.google.doubleclick.video] {
      inferredplcmt: PLCMT_ACCOMPANYING_CONTENT
      embeddedoffsite: true
    }
  }
  displaymanager: "GOOGLE"
  tagid: "1064104152"
  bidfloor: 628.6151504524262
  bidfloorcur: "JPY"
  pmp {
    deals {
      id: "45957820"
      bidfloor: 628.615151
      bidfloorcur: "JPY"
      [com.google.doubleclick.deal] {
        deal_type: AUCTION_PACKAGE
        billing_id: 34409190968
        billing_id: 31520375265
      }
    }
  }
  secure: true
  exp: 3600
  metric {
    type: "click_through_rate"
    value: 0.061625368893146515
    vendor: "EXCHANGE"
  }
  metric {
    type: "video_completion_rate"
    value: 0.6049572825431824
    vendor: "EXCHANGE"
  }
  [com.google.doubleclick.imp] {
    billing_id: 63495119434
    billing_id: 33073577463
    publisher_settings_list_id: 2610320062869254712
    publisher_settings_list_id: 3579681458579529403
    allowed_vendor_type: 0
    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
  }
}
site {
  page: "https://www.google.com"
  publisher {
    id: "pub-1111111111111111"
    [com.google.doubleclick.publisher] {
      country: "IL"
    }
  }
  content {
    livestream: false
    language: "en"
  }
  mobile: true
  [com.google.doubleclick.site] {
    amp: DIALECT_HTML
    page_visibility: VISIBILITY_STATE_VISIBLE
    ntype: NAVIGATION_TYPE_UNKNOWN
  }
}
device {
  ua: "OMITTED"
  ip: "192.168.1.0"
  geo {
    lat: 0.0
    lon: 0.0
    country: "USA"
    region: "OH"
    metro: "558"
    city: "Lima"
    zip: "45806"
    type: IP
    utcoffset: -240
    accuracy: 6877
    [com.google.doubleclick.geo] {
      geo_criteria_id: 9015962
    }
  }
  make: "Samsung"
  model: "sm-s921u"
  os: "android"
  osv: "15"
  devicetype: HIGHEND_PHONE
  w: 1080
  h: 2340
  sua {
    browsers {
      brand: "Chromium"
      version: "140"
      version: "0"
    }
    browsers {
      brand: "Not=A?Brand"
      version: "24"
      version: "0"
    }
    platform {
      brand: "Android"
      version: "15"
      version: "0"
    }
    mobile: true
    model: "SM-S921U"
    source: CLIENT_HINTS_HIGH_ENTROPY
  }
}
user {
  id: "2P499L961q5433F3W7910N24dm6"
  buyeruid: "d1f6LSo115M9T6r3wjcX397Iu6231g73"
  customdata: "98f88k2F7Q9e99vqQIs7eH5OEch4603AQ1e4zo9vP0259ZWI"
  [com.google.doubleclick.user] {
    idage: 432000
  }
}
at: FIRST_PRICE
tmax: 350
cur: "TRY"
cur: "JPY"
bcat: "32"
bcat: "33"
source {
  schain {
    complete: false
    nodes {
      asi: "testssp.com"
      sid: "pub-1111111111111111"
      hp: true
    }
    nodes {
      asi: "testssp.com"
      sid: "pub-1111111111111111"
      hp: true
    }
    ver: "1.0"
  }
  [com.google.doubleclick.source] {
    omidpn: "Google1"
    omidpv: "h.3.719.1"
  }
}
cattax: GOOGLE_CATEGORIES
[com.google.doubleclick.bid_request] {
  bid_feedback {
    request_id: "iC415EO28u2s07s8qn220h"
    creative_status_code: 80
    event_notification_token {
      payload: "token"
    }
    buyer_creative_id: "test_creative_id_459586"
    minimum_bid_to_win: 0.69
    feedbacktype: BID_FEEDBACK
  }
  google_query_id: "ANy-zk4xW4-6F6LW16t4c1LRx767c3V2OC7z3d7Z9TROv5359i3VMG9aT5b136WKCued3457"
  fcap_scope: FREQUENCY_CAPPING_SCOPE_BROWSER
  privacy_treatments {
    allow_user_data_collection: true
  }
}
```

### OpenRTB JSON

#### Show me the example

```
{
  "id": "9B5K1zj5T61jRM80t25s13",
  "imp": [
    {
      "id": "1",
      "video": {
        "mimes": [
          "application/javascript",
          "video/mp4"
        ],
        "linearity": 1,
        "maxduration": 60,
        "w": 306,
        "h": 156,
        "startdelay": 0,
        "playbackmethod": [
          6
        ],
        "pos": 1,
        "companionad": [
          {
            "w": 0,
            "h": 0,
            "mimes": [
              "image/png",
              "image/gif"
            ],
            "format": [
              {
                "w": 0,
                "h": 0
              }
            ]
          }
        ],
        "api": [
          1,
          2
        ],
        "companiontype": [
          1
        ],
        "protocols": [
          2,
          3
        ],
        "skip": 1,
        "placement": 1,
        "durfloors": [
          {
            "maxdur": 121,
            "bidfloor": 628.6151504524262
          }
        ],
        "ext": {
          "inferredplcmt": 2,
          "embeddedoffsite": 1
        }
      },
      "displaymanager": "GOOGLE",
      "tagid": "1064104152",
      "bidfloor": 628.6151504524262,
      "bidfloorcur": "JPY",
      "pmp": {
        "deals": [
          {
            "id": "45957820",
            "bidfloor": 628.615151,
            "bidfloorcur": "JPY",
            "ext": {
              "deal_type": 4,
              "billing_id": [
                "34409190968",
                "31520375265"
              ]
            }
          }
        ]
      },
      "secure": 1,
      "exp": 3600,
      "metric": [
        {
          "type": "click_through_rate",
          "value": 0.061625368893146515,
          "vendor": "EXCHANGE"
        },
        {
          "type": "video_completion_rate",
          "value": 0.6049572825431824,
          "vendor": "EXCHANGE"
        }
      ],
      "ext": {
        "billing_id": [
          "63495119434",
          "33073577463"
        ],
        "publisher_settings_list_id": [
          "2610320062869254712",
          "3579681458579529403"
        ],
        "allowed_vendor_type": [
          0
        ],
        "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
        },
        "auction_environment": 0,
        "ae": 0
      }
    }
  ],
  "site": {
    "page": "https://www.google.com",
    "publisher": {
      "id": "pub-1111111111111111",
      "ext": {
        "country": "IL"
      }
    },
    "content": {
      "livestream": 0,
      "language": "en"
    },
    "mobile": 1,
    "ext": {
      "amp": 0,
      "page_visibility": 1,
      "ntype": 0
    }
  },
  "device": {
    "ua": "OMITTED",
    "ip": "192.168.1.0",
    "geo": {
      "lat": 0.0,
      "lon": 0.0,
      "country": "USA",
      "region": "OH",
      "metro": "558",
      "city": "Lima",
      "zip": "45806",
      "type": 2,
      "utcoffset": -240,
      "accuracy": 6877,
      "ext": {
        "geo_criteria_id": 9015962
      }
    },
    "make": "Samsung",
    "model": "sm-s921u",
    "os": "android",
    "osv": "15",
    "devicetype": 4,
    "w": 1080,
    "h": 2340,
    "sua": {
      "browsers": [
        {
          "brand": "Chromium",
          "version": [
            "140",
            "0"
          ]
        },
        {
          "brand": "Not=A?Brand",
          "version": [
            "24",
            "0"
          ]
        }
      ],
      "platform": {
        "brand": "Android",
        "version": [
          "15",
          "0"
        ]
      },
      "mobile": 1,
      "model": "SM-S921U",
      "source": 2
    }
  },
  "user": {
    "id": "2P499L961q5433F3W7910N24dm6",
    "buyeruid": "d1f6LSo115M9T6r3wjcX397Iu6231g73",
    "customdata": "98f88k2F7Q9e99vqQIs7eH5OEch4603AQ1e4zo9vP0259ZWI",
    "ext": {
      "idage": 432000
    }
  },
  "at": 1,
  "tmax": 350,
  "cur": [
    "TRY",
    "JPY"
  ],
  "bcat": [
    "32",
    "33"
  ],
  "source": {
    "schain": {
      "complete": 0,
      "nodes": [
        {
          "asi": "testssp.com",
          "sid": "pub-1111111111111111",
          "hp": 1
        },
        {
          "asi": "testssp.com",
          "sid": "pub-1111111111111111",
          "hp": 1
        }
      ],
      "ver": "1.0"
    },
    "ext": {
      "omidpn": "Google1",
      "omidpv": "h.3.719.1"
    }
  },
  "cattax": 500,
  "ext": {
    "bid_feedback": [
      {
        "request_id": "iC415EO28u2s07s8qn220h",
        "creative_status_code": 80,
        "event_notification_token": {
          "payload": "token"
        },
        "buyer_creative_id": "test_creative_id_459586",
        "minimum_bid_to_win": 0.69,
        "feedbacktype": 1
      }
    ],
    "google_query_id": "ANy-zk4xW4-6F6LW16t4c1LRx767c3V2OC7z3d7Z9TROv5359i3VMG9aT5b136WKCued3457",
    "fcap_scope": 2,
    "privacy_treatments": {
      "allow_user_data_collection": 1
    }
  }
}
```

### Mobile web banner for exchange bidder

### OpenRTB Protobuf

#### Show me the example

[Serialized request](https://developers.google.com/authorized-buyers/rtb/data/request-response/openrtb_protobuf_eb_callout_request.bin)  

```
id: "7Kochz7969Il5xN0Kq76R4"
imp {
  id: "1"
  banner {
    w: 320
    h: 50
    pos: BELOW_THE_FOLD
    expdir: LEFT
    expdir: RIGHT
    expdir: UP
    expdir: DOWN
    format {
      w: 320
      h: 50
    }
  }
  tagid: "8010657363"
  bidfloor: 0.08
  bidfloorcur: "USD"
  secure: true
  exp: 3600
  metric {
    type: "click_through_rate"
    value: 0.0
    vendor: "EXCHANGE"
  }
  metric {
    type: "viewability"
    value: 0.4
    vendor: "EXCHANGE"
  }
  [com.google.doubleclick.imp] {
    billing_id: 98128982291
    dfp_ad_unit_code: "/2929493/google/test"
    ampad: AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
    buyer_generated_request_data {
      data: "Test Data"
    }
    buyer_generated_request_data {
      data: "Test Data"
    }
    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
    }
  }
}
site {
  page: "https://www.google.com"
  publisher {
    id: "pub-1111111111111111"
    [com.google.doubleclick.publisher] {
      country: "US"
      directpay: true
    }
  }
  content {
    language: "en"
  }
  mobile: true
  [com.google.doubleclick.site] {
    amp: DIALECT_HTML
    page_visibility: VISIBILITY_STATE_VISIBLE
    ntype: NAVIGATION_TYPE_NAVIGATE
  }
}
device {
  ua: "OMITTED"
  ip: "192.168.1.0"
  geo {
    lat: 0.0
    lon: 0.0
    country: "ZAF"
    region: "ZA-WC"
    city: "Plettenberg Bay"
    zip: "6600"
    type: IP
    utcoffset: 120
    accuracy: 2234
    [com.google.doubleclick.geo] {
      geo_criteria_id: 1029017
    }
  }
  language: "en"
  make: "Samsung"
  model: "sm-a125f"
  os: "android"
  osv: "10"
  devicetype: HIGHEND_PHONE
  w: 385
  h: 854
  pxratio: 1.875
  sua {
    browsers {
      brand: "Chromium"
      version: "148"
      version: "0"
    }
    browsers {
      brand: "Google Chrome"
      version: "148"
      version: "0"
    }
    platform {
      brand: "Android"
      version: "10"
      version: "0"
    }
    mobile: true
    model: "SM-A125F"
    source: CLIENT_HINTS_HIGH_ENTROPY
  }
  [com.google.doubleclick.device] {
    chargelevel: 0.17
    charging: false
  }
}
user {
  id: "2d0N0v83y0TfL6bV4d6escird8p"
  buyeruid: "3R1R7Gh932V16812h316l76o6V0Ya86b"
  customdata: "7C8z4R1w49mkBt84FLv43471bf8H2881FmMPsXRk4mp3w44N"
  [com.google.doubleclick.user] {
    eids {
      source: "OMITTED_SOURCE"
      uids {
        id: "OMITTED_ID"
      }
    }
    eids {
      source: "OMITTED_SOURCE"
      uids {
        id: "OMITTED_ID"
      }
    }
    idage: 18144000
  }
}
at: FIRST_PRICE
tmax: 400
cur: "USD"
source {
  schain {
    complete: true
    ver: "1.0"
  }
}
cattax: IAB_CONTENT_1_0
[com.google.doubleclick.bid_request] {
  google_query_id: "ANy-zAz8fH-C8K6JMrXF32m9oHR9m28z670r0E76tiy6FiikW31BBQ411V3igKF018cL90ny"
  fcap_scope: FREQUENCY_CAPPING_SCOPE_NONE
}
```

### OpenRTB JSON

#### Show me the example

```
{
  "id": "7Kochz7969Il5xN0Kq76R4",
  "imp": [
    {
      "id": "1",
      "banner": {
        "w": 320,
        "h": 50,
        "pos": 3,
        "expdir": [
          1,
          2,
          3,
          4
        ],
        "format": [
          {
            "w": 320,
            "h": 50
          }
        ]
      },
      "tagid": "8010657363",
      "bidfloor": 0.08,
      "bidfloorcur": "USD",
      "secure": 1,
      "exp": 3600,
      "metric": [
        {
          "type": "click_through_rate",
          "value": 0.0,
          "vendor": "EXCHANGE"
        },
        {
          "type": "viewability",
          "value": 0.4,
          "vendor": "EXCHANGE"
        }
      ],
      "ext": {
        "billing_id": [
          "98128982291"
        ],
        "dfp_ad_unit_code": "/2929493/google/test",
        "ampad": 3,
        "buyer_generated_request_data": [
          {
            "data": "Test Data"
          },
          {
            "data": "Test Data"
          }
        ],
        "excluded_creatives": [
          {
            "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
          },
          {
            "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
          }
        ],
        "open_bidding": {
          "is_open_bidding": 1
        },
        "creative_enforcement_settings": {
          "policy_enforcement": 1,
          "publisher_blocks_enforcement": 2
        }
      }
    }
  ],
  "site": {
    "page": "https://www.google.com",
    "publisher": {
      "id": "pub-1111111111111111",
      "ext": {
        "country": "US",
        "directpay": 1
      }
    },
    "content": {
      "language": "en"
    },
    "mobile": 1,
    "ext": {
      "amp": 0,
      "page_visibility": 1,
      "ntype": 1
    }
  },
  "device": {
    "ua": "OMITTED",
    "ip": "192.168.1.0",
    "geo": {
      "lat": 0.0,
      "lon": 0.0,
      "country": "ZAF",
      "region": "ZA-WC",
      "city": "Plettenberg Bay",
      "zip": "6600",
      "type": 2,
      "utcoffset": 120,
      "accuracy": 2234,
      "ext": {
        "geo_criteria_id": 1029017
      }
    },
    "language": "en",
    "make": "Samsung",
    "model": "sm-a125f",
    "os": "android",
    "osv": "10",
    "devicetype": 4,
    "w": 385,
    "h": 854,
    "pxratio": 1.875,
    "sua": {
      "browsers": [
        {
          "brand": "Chromium",
          "version": [
            "148",
            "0"
          ]
        },
        {
          "brand": "Google Chrome",
          "version": [
            "148",
            "0"
          ]
        }
      ],
      "platform": {
        "brand": "Android",
        "version": [
          "10",
          "0"
        ]
      },
      "mobile": 1,
      "model": "SM-A125F",
      "source": 2
    },
    "ext": {
      "chargelevel": 0.17,
      "charging": 0
    }
  },
  "user": {
    "id": "2d0N0v83y0TfL6bV4d6escird8p",
    "buyeruid": "3R1R7Gh932V16812h316l76o6V0Ya86b",
    "customdata": "7C8z4R1w49mkBt84FLv43471bf8H2881FmMPsXRk4mp3w44N",
    "ext": {
      "eids": [
        {
          "source": "OMITTED_SOURCE",
          "uids": [
            {
              "id": "OMITTED_ID"
            }
          ]
        },
        {
          "source": "OMITTED_SOURCE",
          "uids": [
            {
              "id": "OMITTED_ID"
            }
          ]
        }
      ],
      "idage": 18144000
    }
  },
  "at": 1,
  "tmax": 400,
  "cur": [
    "USD"
  ],
  "source": {
    "schain": {
      "complete": 1,
      "ver": "1.0"
    }
  },
  "cattax": 1,
  "ext": {
    "google_query_id": "ANy-zAz8fH-C8K6JMrXF32m9oHR9m28z670r0E76tiy6FiikW31BBQ411V3igKF018cL90ny",
    "fcap_scope": 1
  }
}
```

### Multiformat Native and Video

### OpenRTB Protobuf

#### Show me the example

[Serialized request](https://developers.google.com/authorized-buyers/rtb/data/request-response/openrtb_protobuf_multiformat_video_and_native_ad_request.bin)  

```
id: "rKxPN2rc298433R68335M1"
imp {
  id: "1"
  banner {
    w: 320
    h: 480
    pos: SIDEBAR
    battr: VIDEO_IN_BANNER_AUTO_PLAY
    battr: VIDEO_IN_BANNER_USER_INITIATED
    wmax: 384
    hmax: 480
    wmin: 300
    hmin: 50
    format {
      w: 320
      h: 480
    }
    format {
      w: 320
      h: 50
    }
    [com.google.doubleclick.banner_ext] {
      flexslot {
        wmin: 300
        wmax: 384
        hmin: 50
        hmax: 480
      }
    }
  }
  video {
    mimes: "video/mp4"
    linearity: LINEAR
    w: 320
    h: 480
    battr: VIDEO_IN_BANNER_AUTO_PLAY
    battr: VIDEO_IN_BANNER_USER_INITIATED
    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
    plcmt: PLCMT_NO_CONTENT_STANDALONE
    [com.google.doubleclick.video] {
      inferredplcmt: PLCMT_NO_CONTENT_STANDALONE
    }
  }
  displaymanager: "GOOGLE"
  tagid: "9536033828"
  bidfloor: 241.70793093803206
  bidfloorcur: "JPY"
  pmp {
    deals {
      id: "52277873"
      bidfloor: 1397.489002
      bidfloorcur: "JPY"
      at: FIXED_PRICE
      [com.google.doubleclick.deal] {
        deal_type: PREFERRED_DEAL
        publisher_blocks_overridden: true
        creative_constraints {
          mtypes: CREATIVE_MARKUP_BANNER
        }
        billing_id: 75764464008
        billing_id: 72269403729
      }
    }
    deals {
      id: "75438087"
      bidfloor: 399.282572
      bidfloorcur: "JPY"
      at: FIXED_PRICE
      [com.google.doubleclick.deal] {
        deal_type: PREFERRED_DEAL
        publisher_blocks_overridden: true
        creative_constraints {
          mtypes: CREATIVE_MARKUP_BANNER
        }
        billing_id: 54698438246
        billing_id: 73896418461
      }
    }
  }
  secure: true
  native {
    ver: "1.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
        }
      }
      plcmttype: IN_FEED
      eventtrackers {
        event: IMPRESSION
        methods: IMG
      }
      privacy: true
      [com.google.doubleclick.native_ext] {
        pos: BELOW_THE_FOLD
      }
    }
  }
  exp: 3600
  metric {
    type: "click_through_rate"
    value: 0.0041323439218103886
    vendor: "EXCHANGE"
  }
  metric {
    type: "viewability"
    value: 0.34
    vendor: "EXCHANGE"
  }
  [com.google.doubleclick.imp] {
    billing_id: 73015827208
    billing_id: 49611563199
    publisher_settings_list_id: 8800547900990823335
    publisher_settings_list_id: 7288715008664845891
    allowed_vendor_type: 0
    ampad: AMP_AD_ALLOWED_AND_EARLY_RENDERED
    excluded_creatives {
      buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
    }
    excluded_creatives {
      buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
    }
    allowed_restricted_category: 32
    allowed_restricted_category: 33
    creative_enforcement_settings {
      policy_enforcement: POLICY_ENFORCEMENT_PLATFORM_POLICY
      publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
    }
    auction_environment: SERVER_SIDE_AUCTION
    ae: SERVER_SIDE_AUCTION
  }
}
site {
  page: "https://www.google.com"
  publisher {
    id: "pub-1111111111111111"
    [com.google.doubleclick.publisher] {
      country: "GB"
    }
  }
  content {
    livestream: false
    language: "en"
  }
  mobile: true
  [com.google.doubleclick.site] {
    amp: DIALECT_HTML_AMP
    page_visibility: VISIBILITY_STATE_HIDDEN
    ntype: NAVIGATION_TYPE_UNKNOWN
  }
}
device {
  ua: "OMITTED"
  geo {
    lat: 0.0
    lon: 0.0
    country: "GBR"
    region: "GB-ENG"
    city: "London"
    zip: "SE1"
    type: IP
    utcoffset: 60
    accuracy: 1437
    [com.google.doubleclick.geo] {
      geo_criteria_id: 9045888
    }
  }
  ipv6: "2a00:23ee:2870::"
  carrier: "70062"
  make: "Samsung"
  model: "sm-a326b"
  os: "android"
  osv: "12"
  devicetype: HIGHEND_PHONE
  w: 385
  h: 854
  pxratio: 1.875
  sua {
    browsers {
      brand: "Chromium"
      version: "136"
    }
    browsers {
      brand: "Google Chrome"
      version: "136"
    }
    platform {
      brand: "Android"
      version: "12"
      version: "0"
    }
    mobile: true
    model: "SM-A326B"
    source: CLIENT_HINTS_HIGH_ENTROPY
  }
}
user {
  id: "91b09w734L84717xiK05zAZf5n0"
  buyeruid: "8vo3pY3AoGtGr33C3l7675sM26SB7NB8"
  customdata: "868uz0uj2AjUDOD604yq2d8KwN8dhQyH2Qlulc9m2oF4f866"
  consent: "OMITTED"
  [com.google.doubleclick.user] {
    consented_providers_settings {
      consented_providers: 1725
      consented_providers: 2922
      additional_consent: "OMITTED"
    }
    consent: "OMITTED"
    idage: 20736000
  }
}
at: FIRST_PRICE
tmax: 350
cur: "GBP"
cur: "TRY"
bcat: "5"
bcat: "8"
regs {
  [com.google.doubleclick.regs] {
    gdpr: true
  }
}
source {
  schain {
    complete: true
    nodes {
      asi: "testssp.com"
      sid: "pub-1111111111111111"
      hp: true
    }
    ver: "1.0"
  }
}
cattax: GOOGLE_CATEGORIES
[com.google.doubleclick.bid_request] {
  google_query_id: "ANy-zAo260-k5UV8JFUsGCH92VU2O823b532U1q8Gzs72ny20W3Tnhi3rod972Z990D7324m"
  fcap_scope: FREQUENCY_CAPPING_SCOPE_BROWSER
  privacy_treatments {
    allow_user_data_collection: true
  }
}
```

### OpenRTB JSON

#### Show me the example

```
{
  "id": "rKxPN2rc298433R68335M1",
  "imp": [
    {
      "id": "1",
      "banner": {
        "w": 320,
        "h": 480,
        "pos": 6,
        "battr": [
          6,
          7
        ],
        "wmax": 384,
        "hmax": 480,
        "wmin": 300,
        "hmin": 50,
        "format": [
          {
            "w": 320,
            "h": 480
          },
          {
            "w": 320,
            "h": 50
          }
        ],
        "ext": {
          "flexslot": {
            "wmin": 300,
            "wmax": 384,
            "hmin": 50,
            "hmax": 480
          }
        }
      },
      "video": {
        "mimes": [
          "video/mp4"
        ],
        "linearity": 1,
        "w": 320,
        "h": 480,
        "battr": [
          6,
          7
        ],
        "playbackmethod": [
          6
        ],
        "pos": 3,
        "protocols": [
          2,
          3
        ],
        "skip": 1,
        "placement": 3,
        "playbackend": 2,
        "plcmt": 4,
        "ext": {
          "inferredplcmt": 4
        }
      },
      "displaymanager": "GOOGLE",
      "tagid": "9536033828",
      "bidfloor": 241.70793093803206,
      "bidfloorcur": "JPY",
      "pmp": {
        "deals": [
          {
            "id": "52277873",
            "bidfloor": 1397.489002,
            "bidfloorcur": "JPY",
            "at": 3,
            "ext": {
              "deal_type": 1,
              "publisher_blocks_overridden": 1,
              "creative_constraints": {
                "mtypes": [
                  1
                ]
              },
              "billing_id": [
                "75764464008",
                "72269403729"
              ]
            }
          },
          {
            "id": "75438087",
            "bidfloor": 399.282572,
            "bidfloorcur": "JPY",
            "at": 3,
            "ext": {
              "deal_type": 1,
              "publisher_blocks_overridden": 1,
              "creative_constraints": {
                "mtypes": [
                  1
                ]
              },
              "billing_id": [
                "54698438246",
                "73896418461"
              ]
            }
          }
        ]
      },
      "secure": 1,
      "native": {
        "ver": "1.2",
        "battr": [
          6,
          7
        ],
        "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}}],\"plcmttype\":1,\"eventtrackers\":[{\"event\":1,\"methods\":[1]}],\"privacy\":1,\"ext\":{\"pos\":3}}"
      },
      "exp": 3600,
      "metric": [
        {
          "type": "click_through_rate",
          "value": 0.0041323439218103886,
          "vendor": "EXCHANGE"
        },
        {
          "type": "viewability",
          "value": 0.34,
          "vendor": "EXCHANGE"
        }
      ],
      "ext": {
        "billing_id": [
          "73015827208",
          "49611563199"
        ],
        "publisher_settings_list_id": [
          "8800547900990823335",
          "7288715008664845891"
        ],
        "allowed_vendor_type": [
          0
        ],
        "ampad": 4,
        "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": 1,
          "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": 1,
      "page_visibility": 2,
      "ntype": 0
    }
  },
  "device": {
    "ua": "OMITTED",
    "geo": {
      "lat": 0.0,
      "lon": 0.0,
      "country": "GBR",
      "region": "GB-ENG",
      "city": "London",
      "zip": "SE1",
      "type": 2,
      "utcoffset": 60,
      "accuracy": 1437,
      "ext": {
        "geo_criteria_id": 9045888
      }
    },
    "ipv6": "2a00:23ee:2870::",
    "carrier": "70062",
    "make": "Samsung",
    "model": "sm-a326b",
    "os": "android",
    "osv": "12",
    "devicetype": 4,
    "w": 385,
    "h": 854,
    "pxratio": 1.875,
    "sua": {
      "browsers": [
        {
          "brand": "Chromium",
          "version": [
            "136"
          ]
        },
        {
          "brand": "Google Chrome",
          "version": [
            "136"
          ]
        }
      ],
      "platform": {
        "brand": "Android",
        "version": [
          "12",
          "0"
        ]
      },
      "mobile": 1,
      "model": "SM-A326B",
      "source": 2
    }
  },
  "user": {
    "id": "91b09w734L84717xiK05zAZf5n0",
    "buyeruid": "8vo3pY3AoGtGr33C3l7675sM26SB7NB8",
    "customdata": "868uz0uj2AjUDOD604yq2d8KwN8dhQyH2Qlulc9m2oF4f866",
    "consent": "OMITTED",
    "ext": {
      "consented_providers_settings": {
        "consented_providers": [
          "1725",
          "2922"
        ],
        "additional_consent": "OMITTED"
      },
      "consent": "OMITTED",
      "idage": 20736000
    }
  },
  "at": 1,
  "tmax": 350,
  "cur": [
    "GBP",
    "TRY"
  ],
  "bcat": [
    "5",
    "8"
  ],
  "regs": {
    "ext": {
      "gdpr": 1
    }
  },
  "source": {
    "schain": {
      "complete": 1,
      "nodes": [
        {
          "asi": "testssp.com",
          "sid": "pub-1111111111111111",
          "hp": 1
        }
      ],
      "ver": "1.0"
    }
  },
  "cattax": 500,
  "ext": {
    "google_query_id": "ANy-zAo260-k5UV8JFUsGCH92VU2O823b532U1q8Gzs72ny20W3Tnhi3rod972Z990D7324m",
    "fcap_scope": 2,
    "privacy_treatments": {
      "allow_user_data_collection": 1
    }
  }
}
```