Skip to content

feat(v3-ref-seller): implement 4 spec-required sales-* methods (get_media_buys, provide_performance_feedback, list_creative_formats, list_creatives) #376

@bokelley

Description

@bokelley

Context

The v3 reference seller declares specialisms=("sales-non-guaranteed",) in its DecisioningCapabilities, but is missing four methods that the sales-non-guaranteed specialism contract requires. In v6.0 rc.1 validate_platform() will reject these adopters at boot.

Refs:

  • examples/v3_reference_seller/src/platform.py
  • src/adcp/decisioning/specialisms/sales.py:184-227 (specialism contract)

Missing methods

  1. get_media_buys — list media buys scoped to the dispatching buyer/principal. Returns the spec get-media-buys-response shape.
  2. provide_performance_feedback — accept buyer-side performance signals attached to a media buy or package. Persist for downstream optimization. Returns the spec provide-performance-feedback-response shape.
  3. list_creative_formats — return the formats the seller supports (with channel + dimensions + asset slots). Returns the spec list-creative-formats-response shape.
  4. list_creatives — list previously-synced creatives for the dispatching principal, with filtering. Returns the spec list-creatives-response shape.

Acceptance Criteria

  • All 4 methods implemented in examples/v3_reference_seller/src/platform.py
  • Persist to existing or new ORM tables (no in-memory only)
  • Return spec-shaped responses validated against the AdCP JSON schemas
  • Smoke tests (or storyboard runs) cover each new method
  • validate_platform() passes with specialisms=("sales-non-guaranteed",)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions