OpenRTB 3.0
What this release is
OpenRTB 3.0 is not an upgrade of 2.x but a layered redesign: an Openrtb envelope carrying Request and Response transport objects, with all domain objects (what is for sale, what the ad is) delegated to AdCOM. It formalized billing and loss event notifications and specified ads.cert signed requests. Adoption remains narrow; most production traffic still runs 2.6.
Validation note: RTBlint validates the full 3.0 transport layer (envelope, Request, Item, Deal, Source, Response, Seatbid, Bid). AdCOM domain objects under item.spec and bid.media are accepted as opaque until an AdCOM catalog ships.
What changed in 3.0
inventory_authentication.ads.certAdded behaviorOpenRTB 3.0 added signed bid request and inventory-authentication guidance via ads.cert.event.pendingAdded objectOpenRTB 3.0 formalized pending, billing, and loss event notifications.request.itemStructural shiftOpenRTB 3.0 replaced the 2.x impression-centric payload shape with Item objects inside the request.response.macroAdded objectOpenRTB 3.0 introduced a Macro object within the response model.openrtbStructural shiftOpenRTB 3.0 introduced the Openrtb root object as the container for transport and payload metadata.requestStructural shiftOpenRTB 3.0 split the transaction into Request and Response payload objects under the layered architecture.header.x-openrtb-versionAdded headerOpenRTB 3.0 retained explicit version headers as part of the transport layer.Validate against 3.0
The tester can pin validation to this exact revision, so deprecated, moved, and not-yet-available findings reflect what 3.0 actually says. The same pin works in the CLI: rtblint validate --version 3.0 request.json.
Adjacent versions
- Previous: OpenRTB 2.6-202606
- All versions: version index
- Migrating across the big steps: 2.5 vs 2.6 and 2.6 vs 3.0