OpenRTB 2.6 Bid Request Reference

The objects that make up a bid request, with their fields, types and requirement levels — and, separately, what each one actually means when something is not working. Field data comes from the IAB Tech Lab specification; the practitioner notes are marked as such.

A bid request carries exactly one of site, app or dooh — never two. Integrations that read site unconditionally simply find nothing on in-app traffic, which is one of the more common causes of an inventory type appearing to be missing entirely.

Objects

Required does not mean sufficient

The specification's required fields are the minimum for the protocol to function technically, not the minimum for anyone to want to bid. A request carrying only an id and a bare imp is perfectly valid and will be ignored by essentially every buyer, because there is nothing in it to value — no domain, no device, no geo, no floor. The fields marked recommended are where the commercial requirements live, and thin requests are one of the quieter reasons a supply integration underperforms.

The spec is also explicit that implementations must tolerate unexpected fields rather than rejecting them. Since 2.6-202211 the version number only increments on breaking changes, so additive updates arrive continuously under the same 2.6 label — a parser that rejects unknown fields will break on a perfectly conformant request at some point.