Skip to content

Build1 publisher2 min readPublished

Accepted OpenProposal terms can drift before they reach the OpenRTB bid request

IAB Tech Lab's OpenProposal draft standardizes how buyer agents score ad products against a brief, with public comment open until October 22. Because OpenRTB has no field pointing back to the accepted proposal, a programmatic deal can run on looser terms than the agents agreed.

The Engineer · Build desk

Drafted by a language model from the sources cited here and checked against its claim ledger before publication. How we use AISend a correction

Illustration accompanying Accepted OpenProposal terms can drift before they reach the OpenRTB bid request
Generated illustration

What happened

  • IAB Tech Lab shipped OpenProposal as part of AAMP 3.0 on September 22, 2026.
  • The draft plugs into transaction specs Tech Lab already publishes: AdCOM, OpenDirect and the Deals API.
  • When a programmatic path wins, the deal still executes as an ordinary OpenRTB bid request and response on the exchange the buyer already runs.
  • In a hypothetical CTV case posted on dev.to, an agent accepts 15 and 30 second pods, then sends a 5 to 60 second range that lets DSPs bid 6, 12 or 45 second tags.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • exposure Live sports and news CTV pods are the most exposed: a 29 second ad in a 30 second slot is dead air, and downstream quartile and podding logic assumes the tighter contract.
  • constraint Early pilots will not exercise the failing hop, since IAB Australia's sandbox covers discovery and proposal flows on synthetic data with live spend out of scope.
  • decision Ad-tech teams that want a proposal_id or brief-version field carried into the auction have to ask while the draft is open; otherwise each buyer keeps its own map from proposal to bid request.

OpenProposal lives in planning. The buyer agent holds a brief covering channel, geography, budget band and format constraints. Seller agents return structured products, and the buyer agent scores fit [17]. Execution is a second document, written after that decision [6]. According to the dev.to post, nothing in OpenRTB names which OpenProposal response won [7]. There is no proposal_id, no pointer back to the brief version, and no guarantee that imp.video still carries the duration or placement semantics the comparison used [7].

Connected TV shows where that breaks. OpenRTB 2.6 added rqddurs, an array of exact acceptable durations in seconds, and made it mutually exclusive with minduration and maxduration [9]. The template in the post's example uses the range fields anyway [11]. Of the 56 whole-second lengths that range admits, 54 are lengths the proposal never scored [1]. The fix on the wire is one field, "rqddurs": [15, 30], with both range fields removed [12].

Validation does not catch the drift [16]. The range request is well-formed JSON [20]. A check against OpenRTB alone has no way to know the proposal asked for 15 and 30 [7]. The post recommends rtblint, a bid request and response validator it describes as independent of IAB Tech Lab and not required by the spec [13]. The post also says plainly that the tool validates the auction object, not the RFP story [16]. What rtblint does catch is the opposite mistake. Against the 2.6-202303 snapshot, a request carrying rqddurs alongside minduration returns an error: "rqddurs is mutually exclusive with minduration and maxduration" [15]. Leave out the optional version argument on its MCP validate_bid_request call and it checks against the latest tracked 2.6 release in the build, not necessarily the snapshot the SSP pinned [14].

Other agent protocols carry agreement inside the message. In AdCP, buyer and seller settle the version message by message, and a mismatch between them comes back as a typed error. AAMP 2.3 added trust verification on price-moving paths [8]. OpenRTB records its dated snapshot in onboarding documents, not in the JSON [21].

OpenProposal's encoding layer is good work on a real problem. Software cannot compare thousands of RFP responses unless every seller describes its products the same way [18]. I think the missing piece is small. A proposal handle and a brief version in the bid request would let a buyer or an exchange diff the emitted imp.video against the scored product before the request goes out.

What to watch

  • Whether Tech Lab's post-comment revision of OpenProposal adds a proposal identifier or brief-version reference that survives into OpenRTB requests.
  • Whether IAB Australia's sandbox, or a successor, extends past discovery and proposals to live spend and the programmatic auction hop.
  • Whether OpenRTB itself gains in-message version or proposal fields along the lines of AdCP's per-message negotiation.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories