Native Ads

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.

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 in both JSON and Protobuf.

For OpenRTB Protobuf native ads, the following fields differ from the specification:

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.

If you use a buyer SDK to render native ads, you must include an image type in the declared_ad when you submit creatives for review.

Native ad templates

Native ad templates describe the components of a native ad, and determine the contents and structure of OpenRTB's NativeRequest or the deprecated Google RTB protocol's NativeAdTemplate in the bid request. Google supports the two most common native ad templates for non-video and video native ads:

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

App install ad template

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

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

Video content ad template

Field Description Required or Recommended? Always displayed? Recommended image size/max number of chars * 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:

Google RTB protocol OpenRTB Equivalent Description
NativeAd.click_link_url Link.url The URL that will be called by the browser when the user clicks the ad. Can be the first step of a redirect chain that eventually leads to the landing page. For native ads, we recommend using click_link_url as the field to set the destination where the user will ultimately go. It is required to use this field in the case of dynamic landing pages.
Ad.click_through_url Bid.adomain

Must be set if the bidder intends to bid. This is the set of destination URLs for the snippet, including the URLs that the user will go to if they click the displayed ad, and any URLs that are visible in the rendered ad. Don't include intermediate calls to the adserver that are unrelated to the final landing page. A BidResponse that returns a snippet or video ad but declares no click_through_url will be discarded. Only set this field if html_snippet, video_url, or native_ad are set. This data is used as a destination URL declaration, for example for post-filtering of publisher-blocked URLs or ad categorization. Refer to NativeAd.click_link_url when using native ads.

For non-native ads, it is not used for click tracking or any other ad functionality; it is only used as a destination URL declaration.

For native ads, if NativeAd.click_link_url is not set, the first value of click_through_url is used to direct the user to the landing page. In addition, all values are used as destination URL declarations (similar to the non-native case).

NativeAd.click_tracking_urls Link.clicktrackers Optional. Additional URLs that allow advertisers to track user clicks on the ad.
Ad.ad_choices_destination_url BidExt.ad_choices_destination_url 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. This is supported for native ads but is not part of the native message in the bid response.
Ad.impression_tracking_url NativeResponse.imptrackers The native impression should be tracked with impression_tracking_url in Authorized Buyers real-time bidding proto or Native imptrackers in OpenRTB.

required_fields and recommended_fields are specified by the publisher. We show how to translate these bit fields to determine if a field is required or recommended.

A bit field uses each bit of a binary value to store a true or false statement, equivalent to sending many boolean signals such as is_logo_required or is_header_required, but all packed together.

Example

For this example we'll use a required_fields value of 1085.

First, find the equivalent binary value: 10000111101

Once you have the binary value, you can check the bits to see if a field is required (1) or not required (0).

The following table maps the fields to their place in the binary value. Read the binary from right to left, with the 1-bit corresponding to the right-most place in the binary value.

Field Binary value placement (right to left)
HEADLINE 1
BODY 2
CALL_TO_ACTION 4
ADVERTISER 8
IMAGE 16
LOGO 32
APP_ICON 64
STAR_RATING 128
PRICE 256
STORE 512
VIDEO 1024

Looking at the example binary value 10000111101, the 1-bit (rightmost) is 1, signifying a required value. According to the table, the 1-bit corresponds to HEADLINE.

The 2-bit (second value from the right) is 0 signifying not required. The 2-bit corresponds to BODY.

Here are all the interpreted required fields in our example:

Value Description Required?
1 VIDEO Yes
0 STORE No
0 PRICE No
0 STAR_RATING No
0 APP_ICON No
1 LOGO Yes
1 IMAGE Yes
1 ADVERTISER Yes
1 CALL_TO_ACTION Yes
0 BODY No
1 HEADLINE Yes

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 in different forms depending on the protocol used. We recommend using OpenRTB because the Google protocol is deprecated.

In OpenRTB, the native ad template is described with the NativeRequest message. In the Google RTB protocol, it is described with NativeAdTemplate. These messages provide the following details about the native ad inventory:

  • Fields that are required or recommended.
  • Dimensions for images, logos, and app icons.
  • Specifications for the style in which the ad is rendered.

OpenRTB asset IDs

OpenRTB passes an array of assets in the bid request that describe the structure of the native ad you should return in the response. Each asset in the request will have an ID that must specified for the corresponding asset in the response. For an example of how these IDs correspond between the request and response, see the native bid request sample and native bid response sample.

Representation of a native ad in the bid response

When bidding on native inventory, a buyer must populate required fields that were identified in the bid request. In OpenRTB, you can do this with BidResponse.seatbid.bid.adm_native when using Protobuf, or BidResponse.seatbid.bid.adm for JSON. For the deprecated Google protocol, this is done with the BidResponse.ad.native_ad field.

Example bid requests

Non-video bid requests

Serialized request
id: "l6210s8bS8Uc726V81B821"
imp {
  id: "1"
  tagid: "3019814809"
  bidfloor: 0.06
  bidfloorcur: "USD"
  secure: true
  native {
    ver: "1.2"
    request_native {
      ver: "1.2"
      assets {
        id: 1
        required: true
        title {
          len: 25
        }
      }
      assets {
        id: 2
        required: true
        data {
          type: DESC
          len: 90
        }
      }
      assets {
        id: 3
        data {
          type: CTATEXT
          len: 15
        }
      }
      assets {
        id: 4
        required: true
        img {
          type: MAIN
          wmin: 1200
          hmin: 627
        }
      }
      assets {
        id: 5
        img {
          type: LOGO
          wmin: 100
          hmin: 100
        }
      }
      eventtrackers {
        event: IMPRESSION
        methods: IMG
      }
      privacy: true
      [com.google.doubleclick.native_ext] {
        style_id: 497439
        style_height: 1
        style_width: 1
        style_layout_type: FLUID
      }
    }
  }
  exp: 3600
  metric {
    type: "click_through_rate"
    value: 0.0006697923527099192
    vendor: "EXCHANGE"
  }
  metric {
    type: "viewability"
    value: 0.05
    vendor: "EXCHANGE"
  }
  [com.google.doubleclick.imp] {
    billing_id: 50577321529
    dfp_ad_unit_code: "/3711494/google/test"
    ampad: AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
    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
    }
    auction_environment: SERVER_SIDE_AUCTION
    ae: SERVER_SIDE_AUCTION
  }
}
site {
  page: "https://www.google.com"
  publisher {
    id: "pub-1111111111111111"
    [com.google.doubleclick.publisher] {
      country: "FR"
    }
  }
  content {
    livestream: false
    language: "fr"
  }
  [com.google.doubleclick.site] {
    amp: DIALECT_HTML
    page_visibility: VISIBILITY_STATE_VISIBLE
    inventorypartnerdomain: ""
    ntype: NAVIGATION_TYPE_NAVIGATE
  }
}
device {
  ua: "OMITTED"
  geo {
    lat: 0.0
    lon: 0.0
    country: "FRA"
    region: "FR-C"
    zip: "63120"
    type: IP
    utcoffset: 120
    accuracy: 6948
    [com.google.doubleclick.geo] {
      geo_criteria_id: 9112278
    }
  }
  ipv6: "2a01:cb14:8183::"
  os: "Windows"
  devicetype: PERSONAL_COMPUTER
  lmt: false
  pxratio: 1.0
  sua {
    browsers {
      brand: "Chromium"
      version: "130"
      version: "0"
    }
    browsers {
      brand: "Microsoft Edge"
      version: "130"
      version: "0"
    }
    platform {
      brand: "Windows"
      version: "15"
      version: "0"
    }
    mobile: false
    architecture: "x86"
    bitness: "64"
    source: CLIENT_HINTS_HIGH_ENTROPY
  }
}
user {
  [com.google.doubleclick.user] {
    consented_providers_settings {
      consented_providers: 1712
      consented_providers: 2316
      additional_consent: "OMITTED"
    }
    consent: "OMITTED"
    eids {
      source: "OMITTED"
      uids {
        id: "12JD92JD8078S8J29SDOAKC0EF230337"
      }
    }
  }
}
at: FIRST_PRICE
tmax: 350
cur: "USD"
regs {
  gpp: "OMITTED"
  [com.google.doubleclick.regs] {
    gdpr: true
  }
}
source {
  schain {
    complete: true
    nodes {
      asi: "testssp.com"
      sid: "pub-1111111111111111"
      hp: true
    }
    ver: "1.0"
  }
  [com.google.doubleclick.source] {
    schain {
      complete: 1
      nodes {
        asi: "testssp.com"
        sid: "pub-1111111111111111"
        hp: 1
      }
      ver: "1.0"
    }
  }
}
[com.google.doubleclick.bid_request] {
  google_query_id: "ANy-zyo598-4J62UYQ5J70Wm78t166uKD8322K98ik4X5496cn305Sp16t94Mhegp514jh1v"
  fcap_scope: FREQUENCY_CAPPING_SCOPE_NONE
}
{
  "id": "l6210s8bS8Uc726V81B821",
  "imp": [
    {
      "id": "1",
      "tagid": "3019814809",
      "bidfloor": 0.06,
      "bidfloorcur": "USD",
      "secure": 1,
      "native": {
        "ver": "1.2",
        "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,\"img\":{\"type\":3,\"wmin\":1200,\"hmin\":627}},{\"id\":5,\"img\":{\"type\":2,\"wmin\":100,\"hmin\":100}}],\"eventtrackers\":[{\"event\":1,\"methods\":[1]}],\"privacy\":1,\"ext\":{\"style_id\":497439,\"style_height\":1,\"style_width\":1,\"style_layout_type\":1}}"
      },
      "exp": 3600,
      "metric": [
        {
          "type": "click_through_rate",
          "value": 0.0006697923527099192,
          "vendor": "EXCHANGE"
        },
        {
          "type": "viewability",
          "value": 0.05,
          "vendor": "EXCHANGE"
        }
      ],
      "ext": {
        "billing_id": [
          "50577321529"
        ],
        "dfp_ad_unit_code": "/3711494/google/test",
        "ampad": 3,
        "buyer_generated_request_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
        },
        "auction_environment": 0,
        "ae": 0
      }
    }
  ],
  "site": {
    "page": "https://www.google.com",
    "publisher": {
      "id": "pub-1111111111111111",
      "ext": {
        "country": "FR"
      }
    },
    "content": {
      "livestream": 0,
      "language": "fr"
    },
    "ext": {
      "amp": 0,
      "page_visibility": 1,
      "inventorypartnerdomain": "OMITTED",
      "ntype": 1
    }
  },
  "device": {
    "ua": "OMITTED",
    "geo": {
      "lat": 0.0,
      "lon": 0.0,
      "country": "FRA",
      "region": "FR-C",
      "zip": "63120",
      "type": 2,
      "utcoffset": 120,
      "accuracy": 6948,
      "ext": {
        "geo_criteria_id": 9112278
      }
    },
    "ipv6": "2a01:cb14:8183::",
    "os": "Windows",
    "devicetype": 2,
    "lmt": 0,
    "pxratio": 1.0,
    "sua": {
      "browsers": [
        {
          "brand": "Chromium",
          "version": [
            "130",
            "0"
          ]
        },
        {
          "brand": "Microsoft Edge",
          "version": [
            "130",
            "0"
          ]
        }
      ],
      "platform": {
        "brand": "Windows",
        "version": [
          "15",
          "0"
        ]
      },
      "mobile": 0,
      "architecture": "x86",
      "bitness": "64",
      "source": 2
    }
  },
  "user": {
    "ext": {
      "consented_providers_settings": {
        "consented_providers": [
          "1712",
          "2316"
        ],
        "additional_consent": "OMITTED"
      },
      "consent": "OMITTED",
      "eids": [
        {
          "source": "OMITTED",
          "uids": [
            {
              "id": "12JD92JD8078S8J29SDOAKC0EF230337"
            }
          ]
        }
      ]
    }
  },
  "at": 1,
  "tmax": 350,
  "cur": [
    "USD"
  ],
  "regs": {
    "gpp": "OMITTED",
    "ext": {
      "gdpr": 1
    }
  },
  "source": {
    "schain": {
      "complete": 1,
      "nodes": [
        {
          "asi": "testssp.com",
          "sid": "pub-1111111111111111",
          "hp": 1
        }
      ],
      "ver": "1.0"
    },
    "ext": {
      "schain": {
        "complete": 1,
        "nodes": [
          {
            "asi": "testssp.com",
            "sid": "pub-1111111111111111",
            "hp": 1
          }
        ],
        "ver": "1.0"
      }
    }
  },
  "ext": {
    "google_query_id": "ANy-zyo598-4J62UYQ5J70Wm78t166uKD8322K98ik4X5496cn305Sp16t94Mhegp514jh1v",
    "fcap_scope": 1
  }
}
Serialized request
id: "\213\371#\236Mh\214uJ\356\225qW88=7|\2448\315Wx"
ip: "\300\250"
user_agent: "OMITTED"
url: "https://www.google.com"
detected_language: "it"
adslot {
  id: 1
  excluded_attribute: 14
  excluded_attribute: 32
  allowed_vendor_type: 42
  allowed_vendor_type: 144
  excluded_sensitive_category: 36
  excluded_sensitive_category: 19
  matching_ad_data {
    billing_id: 74792558829
    billing_id: 11204117851
    minimum_cpm_micros: 390000
  }
  matching_ad_data {
    billing_id: 44428418146
    billing_id: 91112044263
    minimum_cpm_micros: 110000
  }
  slot_visibility: BELOW_THE_FOLD
  excluded_product_category: 10366
  excluded_product_category: 11504
  ad_block_key: 8767661977
  publisher_settings_list_id: 7807286827624818876
  publisher_settings_list_id: 8186380472781289268
  allowed_restricted_category: 32
  allowed_restricted_category: 33
  excluded_creatives {
    buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
  }
  excluded_creatives {
    buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
  }
  iframing_state: UNKNOWN_IFRAME_STATE
  viewability: 6
  allowed_restricted_category_for_deals: 32
  allowed_restricted_category_for_deals: 33
  click_through_rate: 0.0010397299
  allowed_ad_types: ALLOWED_AD_TYPE_NATIVE
  is_amp_page: DIALECT_HTML
  amp_ad_requirement_type: AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
  secure_signals {
    data: "Test Data: bw44G12BFZ"
    source: "OMITTED"
  }
  consented_providers_settings {
    tcf_consent_string: "OMITTED"
    additional_consent_string: "OMITTED"
  }
  regs_gdpr: true
  native_ad_template {
    required_fields: 17
    recommended_fields: 0
    headline_max_safe_length: 90
    body_max_safe_length: 90
    call_to_action_max_safe_length: 15
    advertiser_max_safe_length: 25
    image_width: 1200
    image_height: 627
    style_id: 749853
    style_layout_type: FLUID
    style_height: 1
    style_width: 1
  }
  creative_enforcement_settings {
    policy_enforcement: POLICY_ENFORCEMENT_PLATFORM_POLICY
    publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
  }
  auction_environment: SERVER_SIDE_AUCTION
  impression_expiration_seconds: 3600
  supported_auction_environment: SERVER_SIDE_AUCTION
}
is_test: false
timezone_offset: 120
geo_criteria_id: 1008463
bid_response_feedback {
  request_id: "\314\354d\177=@0\271\226a^\250\302u\037\301"
  creative_status_code: 1
  event_notification_token: "token"
  buyer_creative_id: "test_creative_id_744913"
  minimum_bid_to_win: 220000
  feedback_type: BID_FEEDBACK
}
bid_response_feedback {
  request_id: "\2354\335\340\347!\341~\265\n\206\327\300\005\370G"
  creative_status_code: 80
  event_notification_token: "token"
  buyer_creative_id: "test_creative_id_744913"
  minimum_bid_to_win: 3450000
  feedback_type: BID_FEEDBACK
}
publisher_type: PUBLISHER_OWNED_AND_OPERATED
device {
  device_type: PERSONAL_COMPUTER
  platform: "Windows"
  screen_pixel_ratio_millis: 1000
  limit_ad_tracking: false
}
publisher_country: "IT"
publisher_id: "pub-1111111111111111"
response_deadline_ms: 350
google_query_id: "ANy-zJXQF6-ob5v09r508m39543114QNHDY20RX67Ajs996K62nkEpcMuvWam950XP9486e6"
auction_type: FIRST_PRICE
geo {
  lat: 0.0
  lon: 0.0
  country: "ITA"
  region: "IT-MI"
  city: "Milan"
  utcoffset: 120
  accuracy: 6821
}
user_agent_data {
  platform {
    brand: "Windows"
    version: "10"
    version: "0"
  }
  mobile: false
  architecture: "x86"
  browsers {
    brand: "Chromium"
    version: "128"
    version: "0"
  }
  browsers {
    brand: "Not;A=Brand"
    version: "24"
    version: "0"
  }
  bitness: "64"
  source: CLIENT_HINTS_HIGH_ENTROPY
}
page_visibility: VISIBILITY_STATE_VISIBLE
supply_chain {
  complete: true
  nodes {
    advertising_system_identifier: "testdomain.com"
    seller_identifier: "pub-1111111111111111"
    handles_payment: true
  }
  version: "1.0"
}
frequency_capping_scope: FREQUENCY_CAPPING_SCOPE_NONE
privacy_treatments {
  allow_user_data_collection: true
}
inventory_partner_domain: "OMITTED"

Video bid requests

{
  id: "\\\123/f\000\t\456&\n\789\1234\"\001a\123",
  ip: "\0338\355",
  google_user_id: "CAESEJ1ur2l94_8ruuu",
  cookie_version: 1,
  cookie_age_seconds: 5184000,
  hosted_match_data: "W9ABDAAAAGR67nl0",
  user_agent: "Mozilla/5.0 (Linux; Android 5.1; CP8298_I00) Mobile Safari/537.36",
  publisher_country: "IN",
  geo_criteria_id: 1007796,
  timezone_offset: 330,
  publisher_id: "pub-2230723027927371",
  seller_network_id: 989,
  url: "https://m.example.com",
  detected_language: [en],
  google_query_id: "ANy-zJEgdus4l0MishbSmH0eOcXUA1Fbo4_tKROsbR37q",
  auction_type: "SECOND_PRICE",
  device: {
    device_type: "HIGHEND_PHONE",
    platform: "android",
    brand: "coolpad",
    model: "cp8298_i00",
    os_version: {
      major: 5,
      minor: 1
    },
    carrier_id: 70210,
    screen_width: 360,
    screen_height: 640,
    screen_pixel_ratio_millis: 2000
  },
  mobile: {
    is_app: false,
    is_mobile_web_optimized: true,
    DEPRECATED_platform: "android",
    DEPRECATED_mobile_device_type: "HIGHEND_PHONE",
    DEPRECATED_brand: "coolpad",
    DEPRECATED_model: "cp8298_i00",
    DEPRECATED_os_version: {
      os_version_major: 5,
      os_version_minor: 1
    },
    DEPRECATED_screen_width: 360,
    DEPRECATED_screen_height: 640,
    DEPRECATED_carrier_id: 70210,
    DEPRECATED_device_pixel_ratio_millis: 2000
  },
  publisher_type: "ADX_PUBLISHER_OWNED_AND_OPERATED",
  adslot: [{
    id: 1,
    ad_block_key: 2882274820,
    width:   [300,250],
    height:   [250,250],
    excluded_attribute:   [114,22,34,25,27,13,14,15,16,17,18,19,20,25,27,22],
    allowed_vendor_type:   [42,144,575,698,704,743,776,785,793,797,808,828,832,885],
    excluded_sensitive_category:   [36,27,19,4,23,30,10,3,31,5,8,37,18],
    excluded_product_category:   [10031,11669,13423,13525,13566,13589,13612,13740],
    excluded_creatives:   [{
      buyer_creative_id: "1234567.1234567890-ssl"
    }],
    matching_ad_data:   [{
      billing_id:     [6629616415,51386650457],
      minimum_cpm_micros: 1380000,
      direct_deal:     [{
        direct_deal_id: 410401,
        fixed_cpm_micros: 1360000,
        deal_type: "PREFERRED_DEAL",
        publisher_blocks_overridden: true
      },{
        direct_deal_id: 240644,
        fixed_cpm_micros: 1500000,
        deal_type: "PREFERRED_DEAL",
        publisher_blocks_overridden: true
      }]
    },{
      billing_id:     [1234567890],
      minimum_cpm_micros: 1380000
    }],
    publisher_settings_list_id:   [12109930661871909476,11138951146123409010],
    slot_visibility: "BELOW_THE_FOLD",
    viewability: 30,
    click_through_rate: 0.0010072842,
    iframing_state: "UNKNOWN_IFRAME_STATE",
    native_ad_template:   [{
      required_fields: 1065,
      recommended_fields: 4,
      headline_max_safe_length: 25,
      body_max_safe_length: 90,
      call_to_action_max_safe_length: 15,
      advertiser_max_safe_length: 25,
      logo_width: 100,
      logo_height: 100,
      style_id: 199892,
      style_height: 250,
      style_width: 300
    }],
    sticky_settings: {

    },
    renderer: "GOOGLE",
    is_amp_page: "DIALECT_HTML",
    amp_ad_requirement_type: "AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED",
    allowed_ad_types:   [ALLOWED_AD_TYPE_BANNER,ALLOWED_AD_TYPE_NATIVE],
    session_depth: 1,
    internal_data: {

    }
  }],
  response_deadline_ms: 122,
  is_test: false
}

Example bid responses

Non-video bid responses

Serialized response
id: "22i22S9494PQl819H7Ld5K"
seatbid {
  bid {
    id: "2GTnPXOn76gg1C6574T"
    impid: "1"
    price: 0.24
    adid: "test_creative_id_713312"
    adomain: "google.com"
    crid: "test_creative_id_713312"
    exp: 300
    language: "xx"
    adm_native {
      ver: "1.2"
      assets {
        id: 1
        title {
          text: "Luxury Mars Cruises"
        }
      }
      assets {
        id: 2
        data {
          value: "Visit the planet in a luxury spaceship."
        }
      }
      assets {
        id: 3
        data {
          value: "Book today"
        }
      }
      assets {
        id: 4
        img {
          url: "https://native.test.com/image?id=123456"
          w: 1200
          h: 627
        }
      }
      assets {
        id: 5
        img {
          url: "https://native.test.com/logo?id=123456"
          w: 1200
          h: 1200
        }
      }
      link {
        url: "https://www.google.com"
        clicktrackers: "https://native.test.com/click?id=123456"
      }
      eventtrackers {
        event: IMPRESSION
        method: IMG
        url: "https://test.com/event?id=123456"
      }
      eventtrackers {
        event: IMPRESSION
        method: IMG
        url: "https://test.com/event?id=123456"
      }
      privacy: "https://adssettings.google.com/whythisad?source=display&reasons=OMITTED"
    }
    [com.google.doubleclick.bid] {
      event_notification_token {
        payload: "token"
      }
      billing_id: 50577321529
      third_party_buyer_token: "4G79rr82Ah8r51859j2XT2RBR1BW2808IQrAa2nRjf63oo5w71y8q929t794MO75n4642HmE5HQ2B1jj9a03w6BFxc4D0mVReL1NgZ42aj7l308820m77pg004705U32AC81b7nkghu7"
    }
  }
  seat: "5249:9218:332606"
}
cur: "USD"
{
  "id": "22i22S9494PQl819H7Ld5K",
  "seatbid": [
    {
      "bid": [
        {
          "id": "2GTnPXOn76gg1C6574T",
          "impid": "1",
          "price": 0.24,
          "adid": "test_creative_id_713312",
          "adomain": [
            "google.com"
          ],
          "crid": "test_creative_id_713312",
          "exp": 300,
          "language": "xx",
          "ext": {
            "event_notification_token": {
              "payload": "token"
            },
            "billing_id": "50577321529",
            "third_party_buyer_token": "4G79rr82Ah8r51859j2XT2RBR1BW2808IQrAa2nRjf63oo5w71y8q929t794MO75n4642HmE5HQ2B1jj9a03w6BFxc4D0mVReL1NgZ42aj7l308820m77pg004705U32AC81b7nkghu7"
          },
          "adm": "{\"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\":1200,\"h\":627}},{\"id\":5,\"img\":{\"url\":\"https://native.test.com/logo?id=123456\",\"w\":1200,\"h\":1200}}],\"link\":{\"url\":\"https://www.google.com\",\"clicktrackers\":[\"https://native.test.com/click?id=123456\"]},\"eventtrackers\":[{\"event\":1,\"method\":1,\"url\":\"https://test.com/event?id=123456\"},{\"event\":1,\"method\":1,\"url\":\"https://test.com/event?id=123456\"}],\"privacy\":\"https://adssettings.google.com/whythisad?source=display&reasons=OMITTED\"}"
        }
      ],
      "seat": "5249:9218:332606"
    }
  ],
  "cur": "USD"
}
Serialized response
ad {
  adslot {
    id: 1
    max_cpm_micros: 110734
    min_cpm_micros: 0
    billing_id: 74792558829
    deal_id: 0
  }
  click_through_url: "google.com"
  attribute: 47
  attribute: 8
  buyer_creative_id: "test_creative_id_907643"
  advertiser_name: "Google"
  native_ad {
    headline: "Luxury Mars Cruises"
    body: "Visit the planet in a luxury spaceship."
    call_to_action: "Book today"
    advertiser: "Galactic Luxury Cruises"
    image {
      url: "https://native.test.com/image?id=123456"
      width: 800
      height: 800
    }
    logo {
      url: "https://native.test.com/logo?id=123456"
      width: 200
      height: 200
    }
    price: "\342\202\254 225"
    click_link_url: "https://www.google.com"
  }
  impression_tracking_url: "https://test.com/imp?id=123456"
  impression_tracking_url: "https://test.com/imp?id=123456"
  ad_choices_destination_url: "https://test.com/preferences"
  event_notification_token: "token"
  dsa_transparency {
    buyer_render: true
  }
}
processing_time_ms: 27

Video bid responses

bid_response {
  ad {
    ...
    click_through_url: "https://www.exampleDomain.com"
    impression_tracking_url: "https://my_impression_tracking_url.com/"
    ad_choices_destination_url: "https://my_ad_choices_destination_url.com/"
    ...
    native_ad {
      headline: "Lowest mortgage rates"
      video_url: "https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast"
      call_to_action: "Get a quote"
      advertiser: "NY Mortgage Inc."
      image {
        url: "https://www.example.net/mypromoimage.png"
        width: 1200
        height: 700
      }
      logo {
        url: "https://www.example.net/mylogo.png"
        width: 200
        height: 200
      }
      click_link_url: "https://r1.example.com/r/u1dhfh3cow00/b1_googleadx/830/41972/ ?_b_ctrl=1"
      click_tracking_urls: "https://my_click_tracking_url.com/"
    }
  }
}