Skip to content

[codex] Unify package targeting resolution - #6220

Draft
bokelley wants to merge 1 commit into
mainfrom
review-issue-6132
Draft

[codex] Unify package targeting resolution#6220
bokelley wants to merge 1 commit into
mainfrom
review-issue-6132

Conversation

@bokelley

@bokelley bokelley commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Closes #6132.

What changed

  • Adds package placement selection under targeting_overlay, with selected and default modes.
  • Introduces a unified per-package targeting_resolution for complete seller-applied targeting.
  • Resolves properties, placements, and collections jointly, preserving each placement's effective property and collection scope.
  • Moves demographic execution readback under targeting_resolution.demographics while preserving exact requested/applied predicates.
  • Adds update_placements, PLACEMENT_SELECTION_INVALID, lifecycle documentation, compliance paths, and shared SDK vectors.

Why

Placement selection, property targeting, and demographic resolution previously used inconsistent package surfaces even though they are evaluated together. The unified model separates complete buyer intent from complete seller-applied state and requires sellers to reject invalid or non-equivalent intersections instead of silently dropping targeting.

Impact

Buyers send all targeting intent through package.targeting_overlay. Package responses return the requested overlay plus targeting_resolution; placement-targeted packages include resolved placements and the properties and collections where each can run.

Validation

  • node tests/schema-validation.test.cjs
  • node tests/composed-schema-validation.test.cjs
  • node --test tests/placement-selection-schema.test.cjs
  • node --test tests/demographic-targeting.test.cjs
  • node --test tests/media-buy-targeting-overlay-vectors.test.cjs
  • node scripts/build-schemas.cjs
  • node scripts/build-compliance.cjs
  • error-code, drift, oneOf, schema-link, docs-nav, changed-doc JSON, and snippet checks

TypeScript typechecking was unavailable because this workspace has no local dependency installation and its npm version does not satisfy the repository's npm@10.9.4 requirement.

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.

update_media_buy: add first-class purchased-placement selection to PackageUpdate

1 participant