Blog · Programmatic advertising

What is OpenRTB? How bid requests and responses work

Published Updated 4 min read
Short answerOpenRTB is an open protocol from the IAB Tech Lab that defines how platforms trade ad impressions in real time. An SSP or exchange sends a bid request describing an impression, a DSP answers with a bid response containing its price and ad, and both sides use the same field names, so any two compliant platforms can connect.
Contents
  1. What is OpenRTB?
  2. What is inside a bid request?
  3. What is inside a bid response?
  4. Which versions of OpenRTB are in use?
  5. Why does OpenRTB matter for advertisers and publishers?
  6. How do platforms connect through OpenRTB?
  7. Frequently asked questions

Every programmatic auction is a short conversation between machines. OpenRTB is the language of that conversation. You do not need to read the specification to buy or sell traffic, but knowing what is inside a bid request helps you understand targeting, reporting and integration questions.

What is OpenRTB?

OpenRTB (Open Real-Time Bidding) is a specification maintained by the IAB Tech Lab. It standardizes the messages exchanged during real-time bidding:

  • the bid request, sent by the seller side (SSP or exchange) to buyers;
  • the bid response, returned by the buyer side (DSP).

Messages are usually JSON sent over HTTP. Because the format is shared, a DSP that supports OpenRTB can connect to many SSPs without building a custom integration for each one.

What is inside a bid request?

A bid request describes one auction. The main objects are:

Object What it describes
imp The impression(s) for sale: banner or video, size, floor price (bidfloor)
site or app Where the ad will appear: domain, page, categories
device Device type, operating system, browser user agent, IP-based country
user Anonymous user identifiers and consent information
regs Regulatory signals, for example GDPR applicability
source Supply chain information (the schain object)
tmax How many milliseconds buyers have to respond
at Auction type: 1 = first price, 2 = second price

A simplified example:

{
  "id": "auction-123",
  "imp": [{ "id": "1", "banner": { "w": 300, "h": 250 }, "bidfloor": 0.5 }],
  "site": { "domain": "example.com", "page": "https://example.com/article" },
  "device": { "ua": "Mozilla/5.0 ...", "os": "Android", "geo": { "country": "BRA" } },
  "tmax": 300,
  "at": 1
}

The numbers above are only an illustration of the format, not real prices.

What is inside a bid response?

If the DSP wants the impression, it replies with:

  • seatbid → bid — one or more bids;
  • price — the bid, usually as CPM;
  • adm — the ad markup (HTML, or VAST XML for video), or nurl — a URL that returns it on win;
  • crid and adomain — creative ID and advertiser domain, used for quality and blocking rules.

If the DSP does not want the impression, it returns an empty response (HTTP 204). Silence is a valid answer, and most requests in a busy system end that way.

Which versions of OpenRTB are in use?

  • OpenRTB 2.5 (2016) — still the most widely supported version.
  • OpenRTB 2.6 (2022) — adds fields for connected TV, ad pods in video and moves the supply chain object from an extension into the standard source.schain field.
  • OpenRTB 3.0 (2018) — a redesign that separates the transaction layer from the ad object model (AdCOM). Adoption has been limited, and most of the market continues on 2.x.

When two platforms connect, they agree on a version and on any extensions (ext fields) they use.

Why does OpenRTB matter for advertisers and publishers?

  • Targeting is only as good as the request. If the SSP does not send the OS or the country, the DSP cannot target it.
  • Transparency. The schain object and the domain in the request let buyers check the path of the impression against sellers.json and ads.txt.
  • Privacy. Consent signals for GDPR and other regulations travel in the request, so buyers know what they may do with the data.
  • Speed. tmax sets a hard deadline. Late bids lose, so integrations are tuned for low latency.

How do platforms connect through OpenRTB?

A typical integration looks like this:

  1. Both sides agree on the OpenRTB version, endpoints, formats (banner, video, popunder) and GEOs.
  2. The seller side starts sending a share of traffic to the buyer's endpoint.
  3. Both sides compare their numbers — requests, bids, wins, impressions — and fix discrepancies.
  4. Traffic is scaled once the numbers match and quality is confirmed.

Wizads supports OpenRTB integrations: DSPs and SSPs can connect to the platform to buy or sell traffic. If you are interested, contact the team to discuss formats and GEOs. Partners can also receive their statistics through the Wizads API.

Frequently asked questions

Is OpenRTB only for big platforms?

The protocol itself is free and open. In practice it is used by platforms — DSPs, SSPs, exchanges and ad networks — rather than by individual advertisers, who access OpenRTB supply through a DSP.

What is the difference between OpenRTB and header bidding?

OpenRTB is a protocol for server-to-server bidding. Header bidding is a way for a website to collect bids from several demand partners in the browser (or on a server) before calling its ad server. Many header bidding partners use OpenRTB behind the scenes.

Where can I learn the terms used in bid requests?

Our ad tech glossary explains CPM, floor price, fill rate, first-price auction and other terms in plain language.

About the author

Wizads team

Wizads is an advertising network with its own DSP, SSP and ad server. Our team writes about programmatic advertising, website monetization and buying traffic.

Related articles