OpenRTB examples

OpenRTB banner bid request example

A minimal, valid display bid request: one banner impression with primary and fallback sizes, a site object with publisher, and an explicit floor.

The payload

{
  "id": "req-banner-1",
  "at": 1,
  "cur": ["USD"],
  "tmax": 300,
  "site": {
    "id": "site-1",
    "domain": "news.example.com",
    "page": "https://news.example.com/article/123",
    "publisher": { "id": "pub-9" }
  },
  "device": {
    "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
    "devicetype": 2,
    "ip": "203.0.113.7"
  },
  "imp": [
    {
      "id": "1",
      "secure": 1,
      "bidfloor": 0.85,
      "bidfloorcur": "USD",
      "banner": {
        "w": 300,
        "h": 250,
        "format": [{ "w": 300, "h": 250 }, { "w": 336, "h": 280 }],
        "pos": 1
      }
    }
  ]
}

Open this payload in the tester to validate it live, change fields, and watch which rules fire.

What to notice

  • id and imp are the only required top-level fields; everything else here is what makes the request biddable in practice.
  • banner.format lists acceptable sizes beyond the primary w/h, so multi-size demand can compete.
  • secure: 1 requires HTTPS creative assets, which any site on HTTPS should declare explicitly.
  • bidfloorcur is spelled out even though USD is the default; implicit defaults are where floor bugs hide.

More examples