Native.request

The native ad request, as defined by the IAB Native Ads specification, serialized into a JSON-encoded string. Required. The field is a string, not a nested object.

CurrentstringRequiredSince 2.3

Field facts

Path
imp.native.request
Object
Native
Type
string
Requirement
Required
Added
OpenRTB 2.3
Spec section
3.2.9

How it is used

Build the native request object, serialize it once, and put the resulting string here. Under Native 1.0 the decoded string is an object with a single native key that wraps the request. From Native 1.1 the decoded string is the request object itself, with ver, assets, and the other fields at its root. Buyers decode it, read the asset list, and answer with matching asset ids in the markup.

Example

Where the field sits in a payload, with everything else left out:

{
  "id": "req-1",
  "imp": [
    {
      "native": {
        "request": "{\"ver\":\"1.2\",\"context\":1,\"plcmttype\":1,\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"len\":90}},{\"id\":2,\"required\":1,\"img\":{\"type\":3,\"wmin\":300,\"hmin\":157}}]}"
      }
    }
  ]
}

Common mistakes

  • Sending the request as a JSON object instead of a string. Strict receivers reject the impression or drop native demand.
  • Encoding it twice, so the decoded value is another string. The validator reports openrtb.native.request.double_encoded.
  • Keeping the Native 1.0 wrapper while declaring a later version. The validator reports openrtb.native.request.legacy_wrapper.
  • A string that does not parse as JSON at all, reported as openrtb.native.request.unparseable.

Version history

Added in OpenRTB 2.3, and present in the latest snapshot. The table shows how each version's spec text types the field.

VersionsType in the specRequiredDeprecated
2.3 to 2.3.1stringYesNo
2.4stringYesNo
2.5 to 2.6-202606stringYesNo

Versioned rules that name this field

Related fields

Other Native fields

For a walkthrough of the whole object, read Native ads.