You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#3307 lands the 11 v2 canonicals (image, html5, display_tag, image_carousel, video_hosted, video_vast, audio_hosted, audio_daast, sponsored_placement, responsive_creative, agent_placement). They cover atomic creative shapes — they don't cover composed / coordinated / sponsorship shapes that high-end publishers and broadcast networks sell as headline products.
Surfaced during PR #3307 review (Pia Malovrh's adoption-pass): adopters want a clean way to express custom creative structures like multi-placement takeover, roadblock, branded content. Real ad-industry product types that aren't going away.
Decision (revised)
Don't add custom / format_shape; use ext as vehicle (the original recommendation in this issue) — wrong, and reversed. ext-only puts interesting structure in a free-form bag with no schema and no defined semantics. Buyer agents can see the blob but can't interpret it reliably, forcing human-in-the-loop. That regresses from v1's worst case (named formats with their own JSON schema) and breaks v2's load-bearing claim that buyer agents reason structurally without per-seller integration code.
Adopters with shapes the 11 canonicals don't cover ship via format_kind: \"custom\" with two required structured fields:
format_shape — recognized global pattern from this registry: /schemas/core/format-shape-vocabulary.json. Gives buyer agents a classifier they can reason about ("this is some flavor of multi_placement_takeover").
format_schema — URI+digest reference to a fetchable schema describing the actual params and slots. Same hosting model as platform_extensions (publisher-hosted for open ecosystem, AAO-mirror-translated for walled gardens, immutable per digest, aggressive caching). Buyer agents fetch by uri@digest and validate manifests structurally.
ext stays for genuinely experimental shapes that don't even fit a format_shape entry yet — but that's the rare case, not the default.
This issue tracks the format_shape registry → canonical promotion queue. As format_shape entries see adoption signal, the working group promotes them to first-class canonicals.
Promotion rubric
A format_shape registry entry is promoted to a format_kind canonical when:
At least 2 production adopters ship it via format_kind: \"custom\" + format_schema
90 consecutive days without a breaking change to the shape adopters converged on
The shape has a defined tracking model (which signals fire, which trackers attach, what the impression contract is)
The working group opens a per-canonical promotion issue, drafts a canonical schema (/schemas/formats/canonical/<name>.json), adds the value to canonical-format-kind.json, lands a fixture, and ships in the next minor release. The format_shape registry entry is retired at that point.
Same governance pattern that produced the 11 canonicals from the v1 audit — adopter-driven, accountable.
multi_placement_takeover — coordinated buy targeting several placements at once (homepage skin + banner + preroll + sponsorship lockup, sold as a unit). Used by NYT, WSJ, Hulu, premium publishers.
roadblock — single advertiser owns all spots in a content unit (every commercial break in a half-hour show, every banner on a section page).
branded_content — publisher-produced editorial sponsorship (advertorial, sponsored articles, paid features). Distinct from agent_placement (AI-surface composition) and audio_hosted host-read.
cross_screen_sponsorship — synchronized buys across linear TV / CTV / display / audio. Frequency-capped at the user, not the screen.
live_event_sponsorship — sponsorship attached to a specific live broadcast (sports, concert, breaking-news window).
This list is open. Add candidates as they emerge in adopter feedback. Comment on this issue with the shape, the seller(s) using it, and a link to their format_schema URI.
How adopters add new shapes
If a shape isn't in the registry yet:
Ship via format_kind: \"custom\" with a non-canonical format_shape value (validators may soft-warn but don't reject). format_schema is still required.
File a vocabulary PR adding the shape to /schemas/core/format-shape-vocabulary.json with description, typical_use, and tracking_model_hint. Vocabulary PRs are governance-light — same level of review as asset-group-vocabulary.json additions, not a major-version bump.
Once 2+ adopters converge on the shape, the entry becomes a promotion candidate per the rubric above.
What this issue is NOT
A spec change. The schema additions live in #3307. This issue is the canonical-promotion roadmap.
A commitment to canonicalize any specific shape on a calendar. Promotion is adopter-driven.
A complete enumeration. The list will grow as adopters surface novel shapes.
Context
#3307 lands the 11 v2 canonicals (
image,html5,display_tag,image_carousel,video_hosted,video_vast,audio_hosted,audio_daast,sponsored_placement,responsive_creative,agent_placement). They cover atomic creative shapes — they don't cover composed / coordinated / sponsorship shapes that high-end publishers and broadcast networks sell as headline products.Surfaced during PR #3307 review (Pia Malovrh's adoption-pass): adopters want a clean way to express custom creative structures like multi-placement takeover, roadblock, branded content. Real ad-industry product types that aren't going away.
Decision (revised)
Don't add custom / format_shape; use ext as vehicle(the original recommendation in this issue) — wrong, and reversed. ext-only puts interesting structure in a free-form bag with no schema and no defined semantics. Buyer agents can see the blob but can't interpret it reliably, forcing human-in-the-loop. That regresses from v1's worst case (named formats with their own JSON schema) and breaks v2's load-bearing claim that buyer agents reason structurally without per-seller integration code.Actual decision (landed in adcp@1cc7e2016):
Adopters with shapes the 11 canonicals don't cover ship via
format_kind: \"custom\"with two required structured fields:format_shape— recognized global pattern from this registry:/schemas/core/format-shape-vocabulary.json. Gives buyer agents a classifier they can reason about ("this is some flavor of multi_placement_takeover").format_schema— URI+digest reference to a fetchable schema describing the actual params and slots. Same hosting model asplatform_extensions(publisher-hosted for open ecosystem, AAO-mirror-translated for walled gardens, immutable per digest, aggressive caching). Buyer agents fetch byuri@digestand validate manifests structurally.extstays for genuinely experimental shapes that don't even fit aformat_shapeentry yet — but that's the rare case, not the default.This issue tracks the format_shape registry → canonical promotion queue. As
format_shapeentries see adoption signal, the working group promotes them to first-class canonicals.Promotion rubric
A
format_shaperegistry entry is promoted to aformat_kindcanonical when:format_kind: \"custom\"+format_schema/schemas/formats/canonical/<name>.json), adds the value tocanonical-format-kind.json, lands a fixture, and ships in the next minor release. The format_shape registry entry is retired at that point.Same governance pattern that produced the 11 canonicals from the v1 audit — adopter-driven, accountable.
Candidate shapes (the queue)
Currently in the format-shape vocabulary registry as
format_shapeentries:multi_placement_takeover— coordinated buy targeting several placements at once (homepage skin + banner + preroll + sponsorship lockup, sold as a unit). Used by NYT, WSJ, Hulu, premium publishers.roadblock— single advertiser owns all spots in a content unit (every commercial break in a half-hour show, every banner on a section page).branded_content— publisher-produced editorial sponsorship (advertorial, sponsored articles, paid features). Distinct fromagent_placement(AI-surface composition) and audio_hosted host-read.cross_screen_sponsorship— synchronized buys across linear TV / CTV / display / audio. Frequency-capped at the user, not the screen.sponsorship_lockup— persistent brand presence (Hulu's commercial-free experience presented by Brand X, podcast network sponsorship lockups).newsletter_sponsorship— email-embedded creative with newsletter-issue-keyed measurement.ar_lens— interactive AR creative (Snap lens, Meta camera filter, TikTok effect).playable— interactive HTML5 mini-game or experience (Unity playable, IAB MRAID 3.0 playable).live_event_sponsorship— sponsorship attached to a specific live broadcast (sports, concert, breaking-news window).This list is open. Add candidates as they emerge in adopter feedback. Comment on this issue with the shape, the seller(s) using it, and a link to their
format_schemaURI.How adopters add new shapes
If a shape isn't in the registry yet:
format_kind: \"custom\"with a non-canonicalformat_shapevalue (validators may soft-warn but don't reject).format_schemais still required./schemas/core/format-shape-vocabulary.jsonwith description, typical_use, and tracking_model_hint. Vocabulary PRs are governance-light — same level of review asasset-group-vocabulary.jsonadditions, not a major-version bump.What this issue is NOT
Refs