Open RTB 2.5 Bid Request
Suggested Bid Request Headers
- OpenRTB Version HTTP Header: x-openrtb-version: 2.5
- Keep-Alive HTTP Header: Connection: Keep-Alive
- Content JSON: Content-Type: application/json
The following objects should be sent encoded as JSON in the request body:
Bid Request
| Attribute | Required? | Description | 
|---|---|---|
| at | Yes | Auction type, first price = 1 (int) | 
| id | Yes | Unique bid request ID (string) | 
| imp | Yes | Array of Imp objects representing the impressions offered(object). | 
| site | Yes | Details via a Site object about the publisher’s website(object). | 
| device | Yes | Details via a Device object about the user’s device to which the impression will be delivered(object). | 
| user | No | Details via a User object about the human user of the device; the advertising audience(object). | 
| bcat | No | Blocked advertiser categories using the IAB content categories (string array) | 
| ext | No | Placeholder for extensions to OpenRTB. | 
imp
| Attribute | Required? | Description | 
|---|---|---|
| id | Yes | Unique impression ID within this bid request (string) | 
| bidfloor | No | Minimum bid for this impression (CPM) / click (CPC) and account currency, optional (float). | 
| banner | Only for banner imps | A banner object ; required if this impression is offered as a banner ad opportunity(object). | 
| secure | No; Recommended 1 | Flag to indicate if the impression requires secure HTTPS URL creative assets and markup, where 0 = non-secure, 1 = secure. If omitted, the secure state is unknown, but non-secure HTTP support can be assumed, optional (integer) | 
imp.banner
| Attribute | Required? | Description | 
|---|---|---|
| w | Yes | Width of the banner (integer) | 
| h | Yes | Height of the banner (integer) | 
imp.full-page-interstitial
| Attribute | Required? | Description | 
|---|---|---|
| w | Yes | Width of the banner (integer) | 
| h | Yes | Height of the banner (integer) | 
| mimes | Yes | Mimes types - image/jpg, image/png, video/mp4 or image/webp | 
site
| Attribute | Required? | Description | 
|---|---|---|
| id | Recommended | Unique Site ID (string) | 
| name | No* | Site name (string) | 
| domain | Recommended | Domain name of the site (string) | 
| cat | No | IAB category ID (string array) | 
| page | Recommended | Full URL of the page where the ad will be shown (string) | 
| keywords | No | Keywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words | 
* Recommended when RTB Inventory is enabled.
site.ext
| Attribute | Required? | Description | 
|---|---|---|
| exchangecat | No | Custom EXADS category ID (integer) | 
| idzone | No | Custom EXADS Ad Zone ID (integer) | 
app
| Attribute | Required? | Description | 
|---|---|---|
| id | Recommended | Unique App ID (string) | 
| name | No* | App name (string) | 
| domain | Recommended | Domain name of the app (string) | 
| cat | No | IAB category ID (string array) | 
| pagecat | No | IAB category ID (string array) | 
| keywords | No | Keywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words (string) | 
| publisher | No | Details about the Publisher (object) | 
Note: Only one of the objects {site, app} should be present in each request.
* Recommended when RTB Inventory is enabled.
device
| Attribute | Required? | Description | 
|---|---|---|
| ua | Yes | Browser user agent (string) | 
| sua | No | Structured user agent information, which can be used when a client supports User-Agent Client Hints (object) | 
| geo | No | Location of the device assumed to be the user’s current location defined by a Geo object. | 
| ip | Conditional* | IPv4 address of the user (string) | 
| ipv6 | Conditional* | IPv6 address of the user (string) | 
| language | Recommended | Browser language (string) | 
| os | No | Operating System (string) | 
| js | No | Support for JavaScript, where 0 = no, 1 = yes (integer) | 
| ext | No | Placeholder for exchange-specific extensions to OpenRTB | 
*Condition: Exactly one of ip or ipv6 must be included in the request (not both).
device.geo
| Attribute | Required? | Description | 
|---|---|---|
| country | No | Country ISO3 | 
device.ext
| Attribute | Required? | Description | 
|---|---|---|
| remote_addr | No | Main IP address of the user (string) | 
| x_forwarded_for | No | X-FORWARDED-FOR IP address of the user or empty if not set (string) | 
device.sua
Structured User Agent information. Once provided device.sua is considered the more accurate representation of
the device attributes.
| Attribute | Required? | Description | 
|---|---|---|
| browsers | Recommended | Implementers should send brands and versions derived from the Sec-CH-UA-Full-Version-List header. (Array of BrandVersionobjects) | 
| platform | Recommended | Implementers should send a brand derived from the Sec-CH-UA-Platform header, and version derived from the Sec-CH-UA-Platform-Version header. ( BrandVersionObject) | 
| mobile | Recommended | Implementers should derive this value from the Sec-CH-UA-Mobile header. (integer) | 
| architecture | Recommended | Implementers should retrieve this value from the Sec-CH-UA-Arch header. (string) | 
| bitness | Recommended | Implementers should retrieve this value from the Sec-CH-UA-Bitness header. (string) | 
| model | Recommended | Implementers should retrieve this value from the Sec-CH-UA-Model header. (string) | 
| source | Recommended | The source of data used to create this object, List: User-Agent Source in AdCOM 1.0 (integer; default 0) | 
device.sua.browsers.BrandVersion | device.sua.platform.BrandVersion
| Attribute | Required? | Description | 
|---|---|---|
| brand | Required | The value may be sourced from the User-Agent Client Hints headers, representing either the user agent brand (from the Sec-CH-UA-Full-Version header) or the platform brand (from the Sec-CH-UA-Platform header). (string) | 
| version | Recommended | A sequence of version components, in descending hierarchical order [major, minor, micro, …] (array of string) | 
user
| Attribute | Required? | Description | 
|---|---|---|
| id | No | Unique user ID (string) | 
user.ext
| Attribute | Description | 
|---|---|
| consent | user.ext.consent: This is the consent string required by the IAB standards. Negative consent only for now (string) | 
regs.ext
| Attribute | Description | 
|---|---|
| gdpr | regs.ext.gdpr: This is 0 if the caller believes that the user is not under GDPR, and 1 if the user is under GDPR. If neither, this parameter will be undefined. | 
ext
| Attribute | Required? | Description | 
|---|---|---|
| sub | No | The Sub ID. This should be a number between six and ten digits: Do not use zeroes at the beginning of Sub IDs. | 
Examples
Banner
{
   "id": "d4b5c697-41f3-4c1c-a3d5-5fd01b5ef2aa",
   "at": 1,
   "imp": [
      {
         "id": "974090632",
         "banner": {
            "w": 300,
            "h": 250
         }
      }
   ],
   "site": {
      "id": "12345",
      "domain": "sitedomain.com",
      "cat": [
         "IAB25-3"
      ],
      "page": "https://sitedomain.com/page",
      "keywords": "lifestyle, humour"
   },
   "device": {
      "ua": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36",
      "sua": {
         "architecture": "x86",
         "bitness": "64",
         "model": "Windows",
         "mobile": 0,
         "source": 2,
         "platform": {
            "brand": "Windows",
            "version": [
               "10",
               "0",
               "0"
            ]
         },
         "browsers": [
            {
               "brand": "Chromium",
               "version": [
                  "136",
                  "0",
                  "7103",
                  "93"
               ]
            },
            {
               "brand": "Microsoft Edge",
               "version": [
                  "136",
                  "0",
                  "3240",
                  "64"
               ]
            },
            {
               "brand": "Not.A\/Brand",
               "version": [
                  "99",
                  "0",
                  "0",
                  "0"
               ]
            }
         ]
      },
      "ip": "131.34.123.159",
      "geo": {
         "country": "IRL"
      },
      "language": "en",
      "os": "Linux & UNIX",
      "js": 0,
      "ext": {
         "remote_addr": "131.34.123.159",
         "x_forwarded_for": "",
         "accept_language": "en-GB;q=0.8,pt-PT;q=0.6,en;q=0.4,en-US;q=0.2,de;q=0.2,es;q=0.2,fr;q=0.2"
      }
   },
   "user": {
      "id": "57592f333f8983.043587162282415065",
      "ext": {
         "consent": "CO9A8QHPAbnHWBcADBENBJCoAAAAAAAAAAqIHKJU9VybLh0Dq4A170B0OAEYN_r_v40zigeds-8Myd-X3DsX50M7vFy6pr4AuR4km3CBIQFkHOmcTUmw6IkVrRPsak2Mr7NKJ7PEinsbe2dYEHtfn9VTuZKZr97s___zf_-___3_75f__-3_3_vp9UAAAABA5QAkgkDYAKAQRAAJIwKhQAhAuJDoBAAUUIwtE1hASuCmYVAR-ggYAIDUBGAECDEEGIIIAAAAAkgiAkAPBAAgCIBAACAFSAhAARoAgsAJAwCAAUA0LACKAIQJCDI4KjlICAiRaKCeSMASi72MMIQSigAAAAAAAA"
      }
   },
   "ext": {
      "sub": 1221
   }
}
Banner Bid Request Structure
Desktop Full Page Interstitial
{
    "id": "d4b5c697-41f3-4c1c-a3d5-5fd01b5ef2aa",
    "at":1,
    "imp": [
        {
            "id": "974090632",
            "instl": 1,
             "banner": {
                "w": 1600,
                "h": 900,
                "mimes": [
                  "image/jpg",
                  "image/png",
                  "video/mp4",
                  "image/webp"
                ]
            }
        }
    ],
    "site": {
        "id": "12345",
        "domain": "sitedomain.com",
        "name": "site domain",  
        "cat": ["IAB25-3"],
        "page": "https://sitedomain.com/page",
        "keywords": "lifestyle, humour"
    },
    "device": {
        "ua": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36",
        "ip": "131.34.123.159",
        "geo": {
            "country": "PRT"
        },
        "language": "en",
        "os": "Linux & UNIX",
        "js": 0,
        "ext": {
            "remote_addr": "131.34.123.159",
            "x_forwarded_for": "131.34.123.159"
        }
    },
    "user": {
        "id": "57592f333f8983.043587162282415065"
    },
    "ext": {
        "sub": 1221
    }
}
Full Page Interstitial
Mobile Full Page Interstitial
{
    "id": "d4b5c697-41f3-4c1c-a3d5-5fd01b5ef2aa",
    "at":1,
    "imp": [
        {
            "id": "974090632",
            "instl": 1,
             "banner": {
                "w": 900,
                "h": 1600,
                "mimes": [
                  "image/jpg",
                  "image/png",
                  "video/mp4",
                  "image/webp"
                ]
            }
        }
    ],
    "site": {
        "id": "12345",
        "domain": "sitedomain.com",
        "name": "site domain",  
        "cat": ["IAB25-3"],
        "page": "https://sitedomain.com/page",
        "keywords": "lifestyle, humour"
    },
    "device": {
        "ua": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36",
        "ip": "131.34.123.159",
        "geo": {
            "country": "PRT"
        },
        "language": "en",
        "os": "Linux & UNIX",
        "js": 0,
        "ext": {
            "remote_addr": "131.34.123.159",
            "x_forwarded_for": "131.34.123.159"
        }
    },
    "user": {
        "id": "57592f333f8983.043587162282415065"
    },
    "ext": {
        "sub": 1221
    }
}
Full Page Interstitial