Guides · 26
OpenRTB guides
Task-focused walkthroughs on the OpenRTB protocol and on validating it: how a bid request is built, where versions differ, why bids get dropped, and how to catch all of it before production. For object-by-object reference, see the docs; for single questions, answers and the FAQ.
Most read
Start here
The working loop: validate a payload, recognise what usually breaks, and keep it from regressing.
- How to validate an OpenRTB bid requestStep-by-step: validate a bid request in the browser or the CLI, read rule IDs and JSON paths, and fix what the spec says is wrong.
- Common OpenRTB bid request mistakesTen spec-grounded mistakes that drop bid requests: missing imp, string at, stale placement, gdpr in the wrong path, schain drift, and more.
- OpenRTB bid request best practicesA spec-grounded checklist for sending clean bid requests: keep-alive and gzip transport, required fields, first-class privacy signals, schain, floors and tmax, versioning, and payload discipline.
- OpenRTB validation in CIGate builds on bid request validity: RTBlint in GitHub Actions, machine-readable JSON output, pinned spec snapshots, and rule-ID gating.
How the market fits together
Who the parties are, which layer each standard occupies, and where OpenRTB does the actual talking.
- What is programmatic advertising? A plain-English explainerProgrammatic advertising is the automated buying and selling of ads through real-time auctions. The players, how an auction works, the deal types, and where OpenRTB makes it interoperable.
- SSP, DSP, and ad exchange: the OpenRTB ecosystem, explainedWhat SSPs, DSPs, and ad exchanges actually are, how they map to the exchange, bidder, seat, and publisher roles in an OpenRTB auction, and why the lines between them keep blurring.
- OpenRTB vs Prebid and header bidding: how they fit togetherOpenRTB, header bidding, and Prebid are not competitors: one is a protocol, one is an auction technique, one is software. How they layer, and where OpenRTB does the actual talking.
- What is AdCOM? The object model behind OpenRTB 2.6 and 3.0AdCOM is the Advertising Common Object Model. Why OpenRTB 2.6 moved all its enumerated lists there, what AdCOM defines, and how it underpins OpenRTB 3.0.
- VAST and OpenRTB: how video ad creatives are deliveredOpenRTB runs the video auction; VAST describes the video ad. Where the two IAB specs meet, how VAST XML travels in bid.adm, and which imp.video fields constrain the creative.
Debugging the auction
Why a bid never arrives, never wins, or never renders: reason codes, deadlines, and creative delivery.
- OpenRTB no-bid reason codes (nbr)The full nbr code table, HTTP 204 versus an empty response, and how to debug a bidder that stops bidding.
- OpenRTB loss reason codes (lurl)The full loss reason code table: 0 Bid Won through 215 App Bundle Exclusions, plus how lurl, AUCTION_LOSS, and AUCTION_MIN_TO_WIN tell a DSP why its bid lost.
- tmax and bidder timeouts: why OpenRTB bids arrive too lateWhat BidRequest.tmax means, why it includes network latency, how a timeout differs from a no-bid, typical values, and how to debug a bidder that keeps missing the deadline.
- bid.adm vs nurl: how the winning ad gets delivered in OpenRTBThe two ways a bidder delivers creative markup, inline adm versus the nurl win notice, plus burl and lurl, the mtype field, and where macros expand across the win, billing, and loss notice flow.
Pricing and deals
How the price is decided and how private supply is expressed in the request.
- First-price vs second-price auctions in OpenRTBWhat the OpenRTB at field means, how first-price and second-price auctions differ, why the industry moved to first-price, and how bidders read the clearing price through auction macros.
- OpenRTB deals and PMP, explained: preferred, private auction, programmatic guaranteedThe four programmatic deal types and how OpenRTB expresses them through imp.pmp, private_auction, and the Deal object (id, at, guar, bidfloor, wseat), mapped field by field.
Versions and migration
What changed between releases, and the field migrations that are still half-finished across the industry.
- OpenRTB 2.5 vs 2.6: what changedGPP, first-class gdpr and consent, plcmt, ad pods, duration floors, and AdCOM enum lists: the full 2.5 to 2.6 delta with a migration checklist.
- OpenRTB 2.6 vs 3.03.0 is a layered redesign built on AdCOM, not an upgrade of 2.x. How the two models differ and why most traffic still runs 2.6.
- placement vs plcmt in OpenRTB videovideo.placement was superseded by video.plcmt in 2.6. The enums do not map 1:1. Both value tables and how to migrate.
Identity, privacy, and supply chain
The signals that say who the user is and who is entitled to sell the impression.
- OpenRTB user identity: eids, buyeruid, and the cookieless transitionHow user identity travels in a bid request: legacy user.id and buyeruid from cookie syncs, the modern user.eids array of extended IDs (source, uids, atype), and the move past third-party cookies.
- sellers.json, ads.txt, and schain: the OpenRTB supply chain trust stackHow ads.txt, sellers.json, and the OpenRTB schain object work together to make the programmatic supply path auditable, how they cross-check, and where adagents.json now fits.
- Migrating to SupplyChain v1.1: hp=0 custody nodes, checklist and pitfallsA working checklist for SupplyChain v1.1: what changes on hp, ver and complete, which existing schain checks stop being correct, how ads.txt and sellers.json apply to custody nodes, and what to do on each side of an integration.
Agentic advertising
The 2026 agent stacks (AAMP, AdCP, MCP) and exactly where they meet the bid stream they run on.
- Agentic buying and OpenRTB: how AI ad agents meet the bid streamHow agentic media buying (AdCP, AAMP, MCP, A2A) connects to the bid stream: what agents negotiate above OpenRTB, what still executes as a bid request, the trust stack, and how to validate the output.
- IAB Tech Lab's agentic advertising standards, explained: AAMP, ARTF, Agentic AudiencesA plain-English map of IAB Tech Lab's agentic program: the AAMP umbrella and its three pillars, the Agentic RTB Framework, Agentic Audiences, and the strategy of extending OpenRTB rather than replacing it.
- ARTF explained: the Agentic RTB Framework and where it sits in the auctionWhat the Agentic RTB Framework specifies: containerized agent services beside the exchange, a gRPC request and response pair, eight mutation intents against a live OpenRTB payload, and how it relates to AAMP, AdCP and the bid stream you already run.
- The Ad Context Protocol (AdCP), explainedWhat AdCP is, who runs it (AgenticAdvertising.org), how it uses MCP and A2A, the negotiation and Trusted Match layers, the Prebid Sales Agent, adagents.json, and where it meets OpenRTB.
- From an AdCP media buy to an OpenRTB bid request: the mappingThe field-level handoff from an agentic media buy to the bid stream: video_placement_types to video.plcmt, audio_distribution_types to audio.feed, packages to imp.pmp deals, adagents.json alongside schain, AXE segment lookups, and where the mapping silently breaks.
Working from a payload instead?
Paste a bid request or bid response into the tester and read the findings; each one names a rule id that links to its own page. The same checks run in CI from the CLI, in Node through rtblint-core, and over MCP for AI agents.