Skip to content

feat(schema): add DOOH structured selling-unit fields to placements - #5623

Open
garvitkaushik-123 wants to merge 1 commit into
adcontextprotocol:mainfrom
garvitkaushik-123:feat/dooh-placement-attributes
Open

feat(schema): add DOOH structured selling-unit fields to placements#5623
garvitkaushik-123 wants to merge 1 commit into
adcontextprotocol:mainfrom
garvitkaushik-123:feat/dooh-placement-attributes

Conversation

@garvitkaushik-123

@garvitkaushik-123 garvitkaushik-123 commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Summary

Implements #5537 — adds structured DOOH selling-unit metadata to placements so buyers can evaluate screen characteristics during product discovery.

  • dooh_placement_attributes object on both placement.json and placement-definition.json with four optional fields:
    • slot_duration_seconds — duration of one ad slot
    • loop_duration_seconds — full loop rotation (canonical source, supersedes pricing-layer field)
    • screen_resolution — physical { width, height } in pixels
    • motionfull_motion, partial_motion, or static (new dooh-motion-type enum)
  • identifiers[] array on both placement schemas — reuses the { type, value } pattern from property identifiers for DOOH venue_id, screen_id, openooh_venue_type, etc.
  • dooh-motion-type.json enum — full_motion, partial_motion, static
  • identifier-types.json title updated from "Property Identifier Types" to channel-neutral "Identifier Types"
  • flat-rate-option.json loop_duration_seconds description updated with superseded note
  • Docs — DOOH placement attributes section added to media-products.mdx

Design decisions

  • Follows the existing channel-overlay pattern (video_placement_types, audio_distribution_types, etc.) — new fields sit alongside those in the same position
  • additionalProperties: true on dooh_placement_attributes to allow future field additions without breaking changes
  • identifiers[] is channel-neutral by design — reuses the same enum already used for property identifiers
  • motion enum values align with industry conventions (OpenOOH/OAAA terminology)

Test plan

  • All 4232 unit tests pass
  • TypeScript typecheck passes
  • Schema build (build:schemas) succeeds
  • Verify DOOH placement example validates against updated schema

Closes #5537

@aao-release-bot aao-release-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Argus review could not complete

The automated review encountered an issue (possibly reached max turns, timed out, or failed to post the final gh pr review). A human reviewer should take this PR.

View workflow run

This is an automated message from the Argus AI review workflow.

@bokelley

Copy link
Copy Markdown
Contributor

This contribution still appears directionally useful, but it has been idle since June and main plus the active 3.2 OOH work have moved substantially. Please confirm you want to continue and rebase/reconcile it with the current OOH contract. If there is no response by August 17, we will close it as stale; the work can be reopened when an implementer is ready to carry it.

@garvitkaushik-123

Copy link
Copy Markdown
Contributor Author

Hey @bokelley — yep, still on this! Got sidetracked but I'm picking it back up now. I see main has moved quite a bit with the 3.2 OOH work and the static OOH draft (#6146) — will rebase and reconcile over the next few days. Should have it updated well before the 17th.

@garvitkaushik-123
garvitkaushik-123 force-pushed the feat/dooh-placement-attributes branch from 2019177 to 4597efc Compare August 10, 2026 07:21
@garvitkaushik-123

Copy link
Copy Markdown
Contributor Author

Rebased onto current main. No conflicts — the placement schema additions (identifiers[], dooh_placement_attributes) slot in after the social_placement_surfaces block that landed since June.

Reviewed the static OOH draft (#6146) — that work is architectural for classic/printed OOH and doesn't overlap with the DOOH selling-unit fields here. The dooh_placement_attributes pattern stays consistent with the existing channel-overlay approach (video_placement_types, audio_distribution_types, etc.).

No schema shape changes from the original — just a clean rebase. Ready for review whenever it makes sense in the 3.2 cycle.

Add dooh_placement_attributes (slot_duration_seconds, loop_duration_seconds,
screen_resolution, motion) and identifiers[] to both placement.json and
placement-definition.json. Create dooh-motion-type enum. Update identifier-types
title to channel-neutral language. Add superseded note to flat-rate-option
loop_duration_seconds. Document DOOH placement attributes in media-products docs.

identifiers[] items use additionalProperties: true to match the property.json
identifier pattern. Add test coverage for DOOH placement attributes and
identifiers on both placement and placement-definition schemas.

Closes adcontextprotocol#5537
@garvitkaushik-123
garvitkaushik-123 force-pushed the feat/dooh-placement-attributes branch from 4597efc to 76c4d86 Compare August 10, 2026 07:38
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.

DOOH: Add structured selling-unit fields to placements (slot_duration, share_of_time, screen_resolution, delivery_unit)

2 participants