Native ads are ads formatted to fit the surrounding content and visual
design, making them more likely to be viewed and clicked by users. Native ad
inventory is available on mobile apps as well as desktop and mobile websites.
For more information on native ads, see [Overview of native
ads](https://support.google.com/admob/answer/6239795).

Native ads are supported for both Authorized Buyers and
Open Bidding.


Here's the workflow for native ads:

1. A call for a native ad is made to Google. The call specifies one or both of the following native ad templates, each specifying the preferred native fields.
2. Google sends buyers an RTB bid request containing a list of the fields being requested.
3. Interested buyers respond with the requested fields.
4. Google runs an auction to select the winning bid and sends the buyer's supplied creative assets to the publisher.
5. The publisher assembles the assets into a native ad and styles them to fit the site's design.

## Message formats

Google supports the
[OpenRTB specification](https://github.com/InteractiveAdvertisingBureau/openrtb2.x)
in both JSON and Protobuf.

For OpenRTB Protobuf native ads, the following fields differ from the
[specification](https://www.iab.com/wp-content/uploads/2018/03/OpenRTB-Native-Ads-Specification-Final-1.2.pdf):

| JSON | JSON type | Protobuf | Protobuf type |
|---|---|---|---|
| `BidRequest.imp[].native.request` | `string` | `BidRequest.imp[].native.request_native` | `NativeRequest` |
| `BidResponse.seatbid[].bid[].adm` | `string` | `BidResponse.seatbid[].bid[].adm_native` | `NativeResponse` |

The OpenRTB Protobuf fields are Protobuf messages rather than strings.


If you use the OpenRTB Protobuf implementation, your endpoint receives bid
requests containing `BidRequest.imp.native.request_native`
rather than `BidRequest.imp.native.request`. Additionally,
your endpoint must return bid responses that populate
`BidResponse.seatbid.bid.adm_native` rather than
`BidResponse.seatbid.bid.adm`, otherwise it will be filtered
from the auction.

When placing a bid including a native ad, your bidding endpoint must
specify the required assets and any optional assets you choose to include
in the `BidResponse.seatbid.bid.{adm/adm_native}.assets` field.
Assets sent in the response must include the corresponding `id`
value specified in the bid request. The `id` is used to
structure the template and distinguish similar kinds of assets such as main
images and icons. The following example shows how
`NativeRequest` and `NativeResponse` objects are
populated in OpenRTB and JSON formats:

### OpenRTB JSON (parsed)

**NativeRequest**

```
{
  "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,
      "img": {
        "type": 3,
        "wmin": 1200,
        "hmin": 627
      }
    },
    {
      "id": 5,
      "required": 1,
      "img": {
        "type": 1,
        "wmin": 100,
        "hmin": 100
      }
    },
    {
      "id": 6,
      "data": {
        "type": 3,
        "len": 5
      }
    },
    {
      "id": 7,
      "data": {
        "type": 6
      }
    }
  ],
  "eventtrackers": [
    {
      "event": 1,
      "methods": [
        1
      ]
    }
  ]
}
```

**NativeResponse**

```
{
  "ver": "1.2",
  "assets": [
    {
      "id": 1,
      "title": {
        "text": "Luxury Mars Cruises"
      }
    },
    {
      "id": 2,
      "data": {
        "value": "Visit the planet in a luxury spaceship."
      }
    },
    {
      "id": 3,
      "data": {
        "value": "Book today"
      }
    },
    {
      "id": 4,
      "img": {
        "url": "https://native.test.com/image?id=123456",
        "w": 100,
        "h": 100
      }
    },
    {
      "id": 5,
      "img": {
        "url": "https://native.test.com/icon?id=123456",
        "w": 200,
        "h": 200
      }
    }
  ],
  "link": {
    "url": "https://www.google.com",
    "clicktrackers": [
      "https://native.test.com/click?id=123456"
    ]
  },
  "imptrackers": [
    "https://test.com/impression?id=123456&amt=${AUCTION_PRICE}"
  ]
}
```

### OpenRTB Protobuf

**NativeRequest**

```
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
    img {
      type: MAIN
      wmin: 1200
      hmin: 627
    }
  }
  assets {
    id: 5
    required: true
    img {
      type: ICON
      wmin: 100
      hmin: 100
    }
  }
  assets {
    id: 6
    data {
      type: RATING
      len: 5
    }
  }
  assets {
    id: 7
    data {
      type: PRICE
    }
  }
  eventtrackers {
    event: IMPRESSION
    methods: IMG
  }
}
```

**NativeResponse**

```
adm_native {
  assets {
    id: 1
    required: true
    title {
      text: "Luxury Mars Cruises"
    }
  }
  assets {
    id: 2
    required: true
    data {
      value: "Visit the planet in a luxury spaceship."
    }
  }
  assets {
    id: 3
    data {
      value: "Book today"
    }
  }
  assets {
    id: 4
    required: true
    img {
      url: "https://native.test.com/image?id=123456"
      w: 1200
      h: 627
    }
  }
  assets {
    id: 5
    required: true
    img {
      url: "https://native.test.com/icon?id=123456"
      w: 128
      h: 128
    }
  }
  assets {
    id: 6
    data {
      value: "5"
    }
  }
  link {
    url: "https://www.google.com"
    clicktrackers: "https://native.test.com/click?id=123456"
  }
  imptrackers: "https://test.com/impression?id=123456&amt=${AUCTION_PRICE}"
}
```


If you use a [buyer SDK](https://developers.google.com/authorized-buyers/rtb/buyer-sdk-ads.md.txt) to render native ads,
you must include an image `type` in the [`declared_ad`](https://developers.google.com/authorized-buyers/rtb/buyer-sdk-ads.md.txt#bid_response) when you
[submit creatives for review](https://developers.google.com/authorized-buyers/rtb/buyer-sdk-ads.md.txt#creative_review).

## Native ad templates

Native ad templates describe the components of a native ad, and determine
the contents and structure of the `NativeRequest` in the bid
request. Google supports the two most common native ad templates for non-video
and video native ads:

- [App install ad template](https://developers.google.com/authorized-buyers/rtb/native-ads.md.txt#app-install-ad-template) - Promote and drive mobile app installs.
- [Content ad template](https://developers.google.com/authorized-buyers/rtb/native-ads.md.txt#content-ad-template) - More generic combination of text and images for brand or web ads.
- [Video app install ad template](https://developers.google.com/authorized-buyers/rtb/native-ads.md.txt#video-app-install-ad-template)
- [Video content ad template](https://developers.google.com/authorized-buyers/rtb/native-ads.md.txt#video-content-ad-template)

Other templates exist, and may have a different set of requirements for
fields, dimensions, and sizes.

### App install ad template

![](https://developers.google.com/static/authorized-buyers/rtb/images/app_install_ad.png)

### Required and recommended fields

The following tables show fields labeled **Required** or **Recommended**.
The following rules apply:

- Fields marked **Required** are required by the bidder.
- Fields marked **Recommended** are not required by the bidder, and the publisher may or may not display them if supplied (for example, star rating).
- Call to Action (CTA) is always marked as **Recommended** because a default is assigned if one is not sent by the bidder, but it will always be displayed if sent.

The following table lists the fields of an app install ad template.
Mobile apps use these fields to create native app install ads.

| Field | Description | Required or Recommended? | Always displayed? | Recommended image size/max number of chars | Example |
|---|---|---|---|---|---|
| Headline | The app title | Required | Yes | 25 chars | Flood-It! |
| Image | A screenshot from the app, or another relevant image | Required | No | 1,200px x 627px or 600px x 600px depending on the aspect ratio required by the publisher. | \<A screenshot from the game Flood-It!\> |
| Body | Main text of the app | Required | No | 90 chars | Deceptively simple + tantalizingly challenging = delightfully addictive! |
| App icon | The app icon | Required | No | 128 x 128 px | \<Flood-it! app icon\> |
| Call to action | Preferred user action | Recommended | Yes | 15 chars | Install |
| Star rating | Number of stars (0 - 5) representing the app's rating in the app store | Recommended | No | 0 - 5 | 4.5 |
| Price | The cost of the app | Recommended | No | 15 chars | Free |

#### Notes about text length

If a buyer sends a text asset (body text, for example) longer than the
suggested maximum number of characters, the text may be truncated and
ellipsized by Google or the publisher. Note that the truncation
limits are half the size in Chinese, Japanese, and Korean. For example, the
headline limit is 90 for English and 45 for Chinese.

#### Notes about image size

Publishers are allowed to:

- Crop the main image symmetrically by up to 20% in one dimension (height or width).
- Scale the image without changing its aspect ratio.
- Images that have aspect ratios substantially different than those implied by the height and width may be filtered.

### Content ad template

![](https://developers.google.com/static/authorized-buyers/rtb/images/content_ad.png)

The following table lists the fields of a content ad template. Publishers
use these fields to create native content ads.

| Field | Description | Required or Recommended? | Always displayed? | Recommended image size/max number of chars [\*](https://developers.google.com/authorized-buyers/rtb/native-ads.md.txt#note) | Example |
|---|---|---|---|---|---|
| Headline | The ad header | Required | Yes | 25 chars | Lowest mortgage rates |
| Image | The ad's primary image | Required | No | 1,200px x 627px or 600px x 600px depending on the aspect ratio required by the publisher. | \<Ad's main image\> |
| Body | The ad content | Required | No | 90 chars | Your home sweet Brooklyn home - cheaper and sooner than you think! |
| Logo | Advertiser's logo or another relevant small image | Recommended | No | 128 x 128 px | \<NY Mortgage Inc.'s logo\> |
| Call to action | User's preferred action | Recommended | No | 15 chars | Get a quote |
| Advertiser | Text that identifies the advertiser or brand | Required | No | 25 chars | NY Mortgage Inc. |

### Video app install ad template

| Field | Description | Required or Recommended? | Always displayed? | Recommended image size/max number of chars [\*](https://developers.google.com/authorized-buyers/rtb/native-ads.md.txt#restrictions) | Example |
|---|---|---|---|---|---|
| Video | The video VAST response containing all necessary assets to play back a video ad. | Required | No | - | *A URL to VAST XML containing a Flood-It! Video ad* |
| Headline | The app title | Required | Yes | 25 chars | Flood-It! |
| Image | Image (thumbnail) shown in the player before the video ad is clicked or while it is loading. | Required | No | Should match aspect ratio of video (for example: 1280x720 for 16x9 video, 4x3 for 640x480 video). | *A screenshot from the game Flood-It! Or from the video* |
| Body | Main text of the app | Required | No | 90 chars | Deceptively simple + tantalizingly challenging = delightfully addictive! |
| App icon | The app icon | Required | No | 128 x 128 px | *Flood-it! app icon* |
| Call to action | Preferred user action | Required | Yes | 15 chars | Install |
| Star rating | Number of stars (0 - 5) representing the app's rating in the app store | Recommended | No | 0 - 5 | 4.5 |
| Price | The cost of the app | Recommended | No | 15 chars | Free |

#### Restrictions

- **Video** : All video must be in the form of a [VAST URL](https://www.iab.com/wp-content/uploads/2016/04/VAST4.0_Updated_April_2016.pdf)
  or a VAST Tag. A raw video file such as a WebM, MP4, etc *cannot* be specified.

- **Text length** : If a buyer specifies a text asset such as the
  `body` in the response, it may be truncated and ellipsized by
  Google or the publisher. Note that truncation limits are half the size in
  Chinese, Japanese, and Korean. For example, the headline limit is 90 in English
  and 45 for Chinese.

- **Image size**: Publishers are allowed to:

  - Crop the main image symmetrically by up to 20% in one dimension (height or width.
  - Scale the image without changing its aspect ratio.

#### App install ad example

![native video](https://developers.google.com/static/authorized-buyers/images/native-video.png)

### Video content ad template

| Field | Description | Required or Recommended? | Always displayed? | Recommended image size/max number of chars [\*](https://developers.google.com/authorized-buyers/rtb/native-ads.md.txt#restrictions) | Example |
|---|---|---|---|---|---|
| Video | The video VAST response containing all necessary assets to play back a video ad. | Required | Yes | - | *A URL to VAST XML containing a Flood-It! Video ad* |
| Headline | The ad header | Required | Yes | 25 chars | Lowest mortgage rates |
| Image | Image (thumbnail) shown in the player before the video ad is clicked or while it is loading. | Required | No | Should match aspect ratio of video (for example: 1280x720 for 16x9 video, 4x3 for 640x480 video). | *A screenshot from the video* |
| Body | The ad content | Required | No | 90 chars | Your home sweet Brooklyn home - cheaper and sooner than you think! |
| Logo | Advertiser's logo or another relevant small image | Recommended | No | 128 x 128 px | *NY Mortgage Inc.'s logo* |
| Call to action | User's preferred action | Required | No | 15 chars | Get a quote |
| Advertiser | Text that identifies the advertiser or brand | Required | No | 25 chars | NY Mortgage Inc. |

### Meta fields

The following meta fields are shared by all supported ad templates:

| Field | Description |
|---|---|
| `BidResponse.seatbid.bid.{adm/adm_native}.link.url` | The URL of the final landing page that the user will be directed to after they click the ad. It is required to use this field in the case of dynamic landing pages. |
| `BidResponse.seatbid.bid.{adm/adm_native}.link.clicktrackers` | Optional. Additional URLs that allow advertisers to track user clicks on the ad. |
| `BidResponse.seatbid.bid.{adm/adm_native}.privacy` | Link to an ad preferences or opt-out page. If present, a standard AdChoices icon is added to the native creative and linked to this URL. |
| `BidResponse.seatbid.bid.{adm/adm_native}.eventtrackers` | Impression tracking can be performed by including `eventtrackers` in the native response, where `event` is set to `IMPRESSION`. |

## Representation of the native ad template in the bid request

When receiving a bid request containing native inventory, it will contain
the native ad template represented with OpenRTB's
[`NativeRequest`](https://developers.google.com/authorized-buyers/rtb/openrtb-guide.md.txt#nativerequest)
message. It provides the following information about the native ad inventory:

- Assets that are optional or required.
- Dimensions for images, logos, and app icons.
- Specifications for the style in which the ad is rendered.

**Note:** For `BidRequest.imp.native.{request/request_native}.ext.style_layout_type`, `PIXEL` indicates that the native unit is of a fixed size, while `FLUID` means it scales to fill the width of the enclosing column and adjusts the height to retain the aspect ratio. When `FLUID` is specified, the height and width may come through as 1x1.

### Optional and required assets

You can find the optional and required assets for a native ad impression in
`BidRequest.imp.native.{request/request_native}.assets`. This
describes components of the native ad--such as the headline, body, or logo.
Each asset included in the request has a distinct `id`, and
populates `required` as `True` for those that must be
included in the bid response.

## Representation of a native ad in the bid response

When bidding on native inventory, you must include a
[`NativeResponse`](https://developers.google.com/authorized-buyers/rtb/openrtb-guide.md.txt#nativeresponse)
populated with the required assets indicated in the bid request, and may also
include any optional assets that were specified. You can include these in a bid
response with `BidResponse.seatbid.bid.{adm/adm_native}.assets`.
When you populate `assets` in the response, each must include the
`id` corresponding to that asset from the bid request.

## Example bid requests

### OpenRTB Protobuf

#### Show me the example

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

```
id: "a7gs668pOD71593174WD18"
imp {
  id: "1"
  tagid: "7726142771"
  bidfloor: 3.0
  bidfloorcur: "JPY"
  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: 50
        }
      }
      assets {
        id: 2
        required: true
        data {
          type: DESC
          len: 150
        }
      }
      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: ICON
        }
      }
      eventtrackers {
        event: IMPRESSION
        methods: IMG
      }
      privacy: true
      [com.google.doubleclick.native_ext] {
        style_height: 1
        style_width: 1
        style_layout_type: FLUID
        pos: BELOW_THE_FOLD
      }
    }
  }
  exp: 3600
  metric {
    type: "click_through_rate"
    value: 0.0013161331880837679
    vendor: "EXCHANGE"
  }
  metric {
    type: "viewability"
    value: 0.19
    vendor: "EXCHANGE"
  }
  [com.google.doubleclick.imp] {
    billing_id: 38603336997
    billing_id: 47507501249
    publisher_settings_list_id: 9289903210874537962
    publisher_settings_list_id: 6708162754299115972
    allowed_vendor_type: 0
    ampad: AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
    excluded_creatives {
      buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
    }
    excluded_creatives {
      buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
    }
    creative_enforcement_settings {
      policy_enforcement: POLICY_ENFORCEMENT_PLATFORM_POLICY
      publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
    }
    adlocx: 1181
    adlocy: 4033
    iframeorigin: IFRAME_ORIGIN_CROSS_DOMAIN
  }
}
site {
  pagecat: "IAB11"
  pagecat: "IAB12"
  page: "https://www.google.com"
  publisher {
    id: "pub-1111111111111111"
    [com.google.doubleclick.publisher] {
      country: "KR"
    }
  }
  content {
    language: "ko"
  }
  cattax: IAB_CONTENT_1_0
  [com.google.doubleclick.site] {
    amp: DIALECT_HTML
    page_visibility: VISIBILITY_STATE_VISIBLE
    ntype: NAVIGATION_TYPE_NAVIGATE
  }
}
device {
  ua: "OMITTED"
  ip: "210.103.83.0"
  geo {
    lat: 0.0
    lon: 0.0
    country: "KOR"
    region: "KR-26"
    city: "Busan"
    type: IP
    utcoffset: 540
    accuracy: 3076
    [com.google.doubleclick.geo] {
      geo_criteria_id: 9196748
    }
  }
  language: "ko"
  os: "Windows"
  devicetype: PERSONAL_COMPUTER
  w: 1920
  h: 1080
  pxratio: 1.0
  sua {
    browsers {
      brand: "Microsoft Edge"
      version: "155"
      version: "0"
    }
    browsers {
      brand: "Chromium"
      version: "155"
      version: "0"
    }
    platform {
      brand: "Windows"
      version: "19"
      version: "0"
    }
    mobile: false
    architecture: "x86"
    bitness: "64"
    source: CLIENT_HINTS_HIGH_ENTROPY
  }
  [com.google.doubleclick.device] {
    memory: 16384
    scrollposx: 0
    scrollposy: 0
  }
}
user {
  id: "t2V4X1j21X7dPujU0hCi1F3464d"
  buyeruid: "65y1395x4H34c41A2LY13OqR7mx7a94x"
  customdata: "q0ayp134g2DrY7aXW8oXi438hAH196W654gJK5L8304N5d9Y"
  [com.google.doubleclick.user] {
    idage: 18144000
  }
}
at: FIRST_PRICE
tmax: 350
cur: "GBP"
cur: "BRL"
bcat: "4"
bcat: "5"
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-zL23dM-K888C926iz54pL02I4wa4sXX04N9233701g8h787afvX78G815DcjFi573537"
  fcap_scope: FREQUENCY_CAPPING_SCOPE_BROWSER
  privacy_treatments {
    allow_user_data_collection: true
  }
}
```

### OpenRTB JSON

#### Show me the example

```
{
  "id": "a7gs668pOD71593174WD18",
  "imp": [
    {
      "id": "1",
      "tagid": "7726142771",
      "bidfloor": 3.0,
      "bidfloorcur": "JPY",
      "secure": 1,
      "native": {
        "ver": "1.2",
        "battr": [
          6,
          7
        ],
        "request": "{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"len\":50}},{\"id\":2,\"required\":1,\"data\":{\"type\":2,\"len\":150}},{\"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\":1}}],\"eventtrackers\":[{\"event\":1,\"methods\":[1]}],\"privacy\":1,\"ext\":{\"style_height\":1,\"style_width\":1,\"style_layout_type\":1,\"pos\":3}}"
      },
      "exp": 3600,
      "metric": [
        {
          "type": "click_through_rate",
          "value": 0.0013161331880837679,
          "vendor": "EXCHANGE"
        },
        {
          "type": "viewability",
          "value": 0.19,
          "vendor": "EXCHANGE"
        }
      ],
      "ext": {
        "billing_id": [
          "38603336997",
          "47507501249"
        ],
        "publisher_settings_list_id": [
          "9289903210874537962",
          "6708162754299115972"
        ],
        "allowed_vendor_type": [
          0
        ],
        "ampad": 3,
        "excluded_creatives": [
          {
            "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
          },
          {
            "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
          }
        ],
        "creative_enforcement_settings": {
          "policy_enforcement": 1,
          "publisher_blocks_enforcement": 1
        },
        "adlocx": 1181,
        "adlocy": 4033,
        "iframeorigin": 2
      }
    }
  ],
  "site": {
    "pagecat": [
      "IAB11",
      "IAB12"
    ],
    "page": "https://www.google.com",
    "publisher": {
      "id": "pub-1111111111111111",
      "ext": {
        "country": "KR"
      }
    },
    "content": {
      "language": "ko"
    },
    "cattax": 1,
    "ext": {
      "amp": 0,
      "page_visibility": 1,
      "ntype": 1
    }
  },
  "device": {
    "ua": "OMITTED",
    "ip": "210.103.83.0",
    "geo": {
      "lat": 0.0,
      "lon": 0.0,
      "country": "KOR",
      "region": "KR-26",
      "city": "Busan",
      "type": 2,
      "utcoffset": 540,
      "accuracy": 3076,
      "ext": {
        "geo_criteria_id": 9196748
      }
    },
    "language": "ko",
    "os": "Windows",
    "devicetype": 2,
    "w": 1920,
    "h": 1080,
    "pxratio": 1.0,
    "sua": {
      "browsers": [
        {
          "brand": "Microsoft Edge",
          "version": [
            "155",
            "0"
          ]
        },
        {
          "brand": "Chromium",
          "version": [
            "155",
            "0"
          ]
        }
      ],
      "platform": {
        "brand": "Windows",
        "version": [
          "19",
          "0"
        ]
      },
      "mobile": 0,
      "architecture": "x86",
      "bitness": "64",
      "source": 2
    },
    "ext": {
      "memory": 16384,
      "scrollposx": 0,
      "scrollposy": 0
    }
  },
  "user": {
    "id": "t2V4X1j21X7dPujU0hCi1F3464d",
    "buyeruid": "65y1395x4H34c41A2LY13OqR7mx7a94x",
    "customdata": "q0ayp134g2DrY7aXW8oXi438hAH196W654gJK5L8304N5d9Y",
    "ext": {
      "idage": 18144000
    }
  },
  "at": 1,
  "tmax": 350,
  "cur": [
    "GBP",
    "BRL"
  ],
  "bcat": [
    "4",
    "5"
  ],
  "source": {
    "schain": {
      "complete": 1,
      "nodes": [
        {
          "asi": "testssp.com",
          "sid": "pub-1111111111111111",
          "hp": 1
        }
      ],
      "ver": "1.0"
    }
  },
  "cattax": 500,
  "ext": {
    "google_query_id": "ANy-zL23dM-K888C926iz54pL02I4wa4sXX04N9233701g8h787afvX78G815DcjFi573537",
    "fcap_scope": 2,
    "privacy_treatments": {
      "allow_user_data_collection": 1
    }
  }
}
```

## Example bid responses

### OpenRTB Protobuf

#### Show me the example

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

```
id: "DRwnt322cRi7u1T634W122"
seatbid {
  bid {
    id: "701eVj9OsVYY150G028"
    impid: "1"
    price: 3.01774001121521
    crid: "test_creative_id_168019"
    dealid: "0"
    adm_native {
      ver: "1.2"
      assets {
        id: 5
        img {
          url: "https://native.test.com/image?id=123456"
          w: 800
          h: 800
          type: MAIN
        }
      }
      assets {
        id: 4
        data {
          value: "Galactic Luxury Cruises"
          type: SPONSORED
        }
      }
      assets {
        id: 3
        data {
          value: "Book today"
          type: CTATEXT
        }
      }
      assets {
        id: 1
        title {
          text: "Luxury Mars Cruises"
        }
      }
      assets {
        id: 2
        data {
          value: "Visit the planet in a luxury spaceship."
          type: DESC
        }
      }
      link {
        url: "https://www.google.com"
        clicktrackers: "https://native.test.com/click?id=123456"
      }
    }
    [com.google.doubleclick.bid] {
      impression_tracking_url: "https://test.com/impression?id=123456"
      impression_tracking_url: "https://test.com/impression?id=123456"
      ad_choices_destination_url: "https://test.com/preferences"
      event_notification_token {
        payload: "token"
      }
      billing_id: 38603336997
      dsa {
        adrender: true
      }
      clickurl: "google.com"
    }
  }
}
cur: "JPY"
[com.google.doubleclick.bid_response] {
  processing_time_ms: 40
}
```

### OpenRTB JSON

#### Show me the example

```
{
  "id": "DRwnt322cRi7u1T634W122",
  "seatbid": [
    {
      "bid": [
        {
          "id": "701eVj9OsVYY150G028",
          "impid": "1",
          "price": 3.01774001121521,
          "crid": "test_creative_id_168019",
          "dealid": "0",
          "ext": {
            "impression_tracking_url": [
              "https://test.com/impression?id=123456",
              "https://test.com/impression?id=123456"
            ],
            "ad_choices_destination_url": "https://test.com/preferences",
            "event_notification_token": {
              "payload": "token"
            },
            "billing_id": "38603336997",
            "dsa": {
              "adrender": 1
            },
            "clickurl": [
              "google.com"
            ]
          },
          "adm": "{\"ver\":\"1.2\",\"assets\":[{\"id\":5,\"img\":{\"url\":\"https://native.test.com/image?id=123456\",\"w\":800,\"h\":800,\"type\":3}},{\"id\":4,\"data\":{\"value\":\"Galactic Luxury Cruises\",\"type\":1}},{\"id\":3,\"data\":{\"value\":\"Book today\",\"type\":12}},{\"id\":1,\"title\":{\"text\":\"Luxury Mars Cruises\"}},{\"id\":2,\"data\":{\"value\":\"Visit the planet in a luxury spaceship.\",\"type\":2}}],\"link\":{\"url\":\"https://www.google.com\",\"clicktrackers\":[\"https://native.test.com/click?id=123456\"]}}"
        }
      ]
    }
  ],
  "cur": "JPY",
  "ext": {
    "processing_time_ms": 40
  }
}
```