feat(schema): add DOOH structured selling-unit fields to placements - #5623
feat(schema): add DOOH structured selling-unit fields to placements#5623garvitkaushik-123 wants to merge 4 commits into
Conversation
There was a problem hiding this comment.
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.
This is an automated message from the Argus AI review workflow.
|
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. |
2019177 to
4597efc
Compare
|
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. |
4597efc to
76c4d86
Compare
76c4d86 to
f927f92
Compare
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated paths touched without required review approval.
This PR adds additive DOOH placement metadata: optional dooh_placement_attributes and identifiers[] on placement.json and placement-definition.json, a new closed dooh-motion-type enum, and a description-only supersession note on flat-rate-option.loop_duration_seconds. The reviewer classifies it as Normative/non-breaking with a correct minor changeset; schema/docs/tests cohere and identifier shapes match. No critical/high/medium findings were raised.
However, this PR modifies files under static/schemas/source/**, which are under a deterministic hard approval gate (gated_paths: true), and review_decision is REVIEW_REQUIRED — not APPROVED. Per decision table row 2, the gate is not satisfied and the outcome must be escalate. Human/CODEOWNERS review is required before merge.
Escalation reasons
- Touches gated schema-source files without required approval; human/CODEOWNERS review required.
Medium findings
- None.
Low (non-blocking)
- docs/media-buy/advanced-topics/pricing-models.mdx:469 — DOOH params not updated with supersession note (docs-coherence follow-up).
Why human review
- Modifies gated schema-source files (static/schemas/source/core/placement.json, placement-definition.json, enums/dooh-motion-type.json, enums/identifier-types.json, pricing-options/flat-rate-option.json) while review_decision is REVIEW_REQUIRED — human/CODEOWNERS approval required before merge.
- This PR touches a path under a hard, non-overridable approval gate (static/schemas/source/core/placement-definition.json (modified) matches
static/schemas/source/**; static/schemas/source/core/placement.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/dooh-motion-type.json (added) matchesstatic/schemas/source/**; static/schemas/source/enums/identifier-types.json (modified) matchesstatic/schemas/source/**; static/schemas/source/pricing-options/flat-rate-option.json (modified) matchesstatic/schemas/source/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.
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
f927f92 to
06bae33
Compare
|
Maintainer update pushed onto this branch. Key changes:
Validation: schema build passed; placement catalog tests pass (20/20); expert protocol, implementation, and workflow reviews found no remaining blocker. |
Summary
Implements #5537 — adds structured DOOH selling-unit metadata to placements so buyers can evaluate screen characteristics during product discovery.
dooh_placement_attributesobject on bothplacement.jsonandplacement-definition.jsonwith four optional fields:slot_duration_seconds— duration of one ad slotloop_duration_seconds— full loop rotation (canonical source, supersedes pricing-layer field)screen_resolution— physical{ width, height }in pixelsmotion—full_motion,partial_motion, orstatic(newdooh-motion-typeenum)identifiers[]array on both placement schemas — reuses the{ type, value }pattern from property identifiers for DOOHvenue_id,screen_id,openooh_venue_type, etc.dooh-motion-type.jsonenum —full_motion,partial_motion,staticidentifier-types.jsontitle updated from "Property Identifier Types" to channel-neutral "Identifier Types"flat-rate-option.jsonloop_duration_secondsdescription updated with superseded noteDesign decisions
video_placement_types,audio_distribution_types, etc.) — new fields sit alongside those in the same positionadditionalProperties: trueondooh_placement_attributesto allow future field additions without breaking changesidentifiers[]is channel-neutral by design — reuses the same enum already used for property identifiersmotionenum values align with industry conventions (OpenOOH/OAAA terminology)Test plan
build:schemas) succeedsCloses #5537