Repository navigation
Linear TV: book and report position in break (first/last in break) #8009
Description
Problem
Linear TV buyers pay extra for where a spot sits inside a commercial break: first in break, second, second-to-last, last. In the Netherlands these "preferred positions" (A1, A2, E1, E2 in the industry tool) are a standard surcharged option at every sales house. The same idea exists in most TV markets and in radio.
AdCP can't express any of this:
- Booking. A buyer cannot ask for a position, and a product cannot offer one or price it.
- Reporting.
by_spot[](3.2) reportsspot_id,aired_at,network,station,daypartandcreative_id, but not where in the break the spot aired. A buyer cannot check that a surcharged position was delivered.
The only related things in the schema are the POD_POSITION creative macro and DOOH loop_position. Neither is a booking or reporting field. I found no open issue for this. #5686 covers a placement taxonomy for print, which is the closest analogue.
Proposed shape
-
Reporting. Add optional
break_positiontoby_spot[]items:position_in_break(integer, 1-based)spots_in_break(integer)break_id(optional string)
That lets a buyer derive first or last without a market-specific enum.
-
Booking. Let a product declare position options a buyer can select (
first,second,second_last,last, plusany), and price them through the price-adjustment mechanism in RFC: declare price adjustments for buyer-selectable product dimensions #7659 rather than a new pricing model. -
Capability.
spot_reporting.available_fields(or similar) declares whether the seller reports break position, so buyers don't treat a missing field as "not delivered".
Relationship to other work
- Linear TV: preemption notice + replacement offer / accept-reject workflow #5683 adds
spot_statusand makegood linkage toby_spot[]. Break position should land in the same item shape. - RFC: declare price adjustments for buyer-selectable product dimensions #7659 gives the pricing mechanism.
- Print: shared placement/position taxonomy (cover positions, section, page) #5686 is the print position taxonomy. Worth checking whether one shared position vocabulary covers both.
Milestone: 3.3.0. The reporting half is small and doesn't depend on the booking half.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsNo status
Activity
bokelley commentedon Oct 8, 2026
Blocked-on: #7659 — the booking half (position pricing) depends on the price-adjustment mechanism; resurfaces on merge. The reporting half (
break_positioninby_spot[]) is independent but shares theby_spot[]item shape with #5683; recommend coordinating when either opens a PR.Generated by Claude Code
feat(media-buy): spot lifecycle, makegood linkage and break position …
bokelley commentedon Oct 31, 2026
Part of this shipped: the reporting half,
break_positiononby_spot[]andsupports_break_position, in #8017 (3.3.0-beta.0, experimentalmedia_buy.spot_lifecycle).The booking half (position options priced through price adjustments) was kept on 3.4 in #8017 and was blocked on #7659, whose
price_adjustments(#7955, 3.3.0-beta.1) has no break-position dimension. Per the WG rule ('anything not decided moves to 3.4') only the booking half moves to 3.4. Objections by Fri 2026-11-06. The milestone stays 3.3.0 for now; it will be moved after Nov 6.