Skip to content

§ 2.1, § 5.2 — Placement: what each impression is (#89) - #120

Draft
KonstantinMirin wants to merge 2 commits into
IABTechLab:mainfrom
KonstantinMirin:impression-placement-attributes
Draft

KonstantinMirin wants to merge 2 commits into
IABTechLab:mainfrom
KonstantinMirin:impression-placement-attributes

Conversation

@KonstantinMirin

@KonstantinMirin KonstantinMirin commented Oct 25, 2026 •

Copy link
Copy Markdown

Draft. Do not merge until the working group confirms the disposition of #89.

What this changes

A line item can now state what every impression is: rewarded, interstitial, video placement subtype, skippability, playback, API frameworks, and refresh. placement (§ 5.2, § 5.2.1) is a seller-set object keyed to AdCOM 1.0 Placement and OpenRTB 2.6 Imp. A present key holds for every impression, and an absent key doesn't constrain. The seller MUST NOT deliver the line item to an impression that doesn't match a present key, and the text says what a match is for each key. plcmt is REQUIRED for video ads. In app_mobile and ctv, a line item that commits viewable_rate SHOULD NOT offer a third-party measurement_source unless api[] includes OMID 1.0 (7). The Summary Representation (§ 2.1) carries reward, instl, plcmt, and skip when present.

Related issue

Refs #89, a change request from Postindustria (IAB Tech Lab member).

Type

  • Editorial — no normative effect
  • Normative — changes what the spec requires
  • Breaking — would break an implementation already built to this draft
  • Examples / schema / docs only

Checklist

  • The body section is updated — § 2.1, § 5.2 and new § 5.2.1, new § 6.5
  • Appendix A (field index) matches the body — one row, placement seller-set; scripts/check_appendix.py passes
  • Appendix B (fields by marker, and the counts) matches the body — seller-set 29 → 30; 71 → 72 fields
  • Any affected example in examples/ is updated and still parses — the CTV example gains placement: { plcmt: 1 } (Instream (1)), which REQUIRED plcmt needs; new line-item-rewarded-video.yaml (§ 6.5)
  • RFC 2119 keywords used deliberately — MUST / SHOULD / MAY are not synonyms
  • The no-inheritance rule (§ 2) still holds — placement sits on the line item; nothing comes from the proposal or a property
  • Anything selectable declares available[] and included[]; anything settable declares bounds (§ 3.1, § 3.2) — no new selectable or settable fields
  • No confidential or commercially sensitive content

Knock-on effects

For the working group

Open on #89 and its supporting material:

  1. Should the OM SDK rule also cover a non-seller counter in controlling_measurement (#95), or stay limited to measurement_source? (#89, question 2, without the removed connected_device value)
  2. When @unreconciled's interactive and verification format spec keys on #5 and placement.api[] disagree, which governs, or should the spec carry only one? (#89, question 4)
  3. Should creative review check MRAID and SIMID creatives against placement.api[], although #32 limits review to content and policy? (#89 supporting material, question 1)
  4. Should app-open ads get a value in AdCOM, or stay a registry format id with instl: 1? (#89 supporting material, question 2)
  5. Should plcmt be REQUIRED on dooh video line items, and on native line items with video assets, which #90 assigns to those channels? The OpenRTB 2.6 implementation guide's DOOH video example sends no plcmt. (#89 supporting material, question 3)
  6. Should refresh stay one minimum interval, or also name the triggers in AdCOM List: Auto Refresh Triggers? (#89 supporting material, question 4)
  7. No field says whether a ctv line item sells video, which the REQUIRED condition on plcmt depends on. Should the condition key on the format ids in formats.available[], or should plcmt be RECOMMENDED on ctv? (#89, question 6)
  8. Should plcmt stay one value, so that a video line item whose impressions differ in plcmt splits, or become plcmt[], like playmethod[]? (#89, question 7)

By opening this pull request I agree my contribution may be published under this
repository's licence, as set out in CONTRIBUTING.md.

Analyzed and generated with the help of Claude, fully reviewed by me.

Move the summary rule out of the § 2.1 key list, drop skip from the CTV example, and mark the CHANGELOG entry as breaking.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant