Skip to content

AdCP 3.3: seller-side rules in decisioning (version literals, sales-fixed-rate, measurement terms, domain identifiers, domain list bounds) #1668

Closed

Description

@bokelley

Spec (tag v3.3.0-beta.0, migration guide §Required to claim 3.3 behavior)

Seller-side rules the decisioning framework owns or should help with:

  • Version literals: audit every "3.2" / startswith("3.2") check (accounts.py, decisioning/dispatch.py, signing/*, server/principal.py accepted_async_adcp_versions) for 3.3 inclusion (inventory §1, "Handler gate").
  • sales-fixed-rate specialism: adcp.decisioning.specialisms support and the sales_fixed_rate storyboard. Provisional buys (confirmed_at: null) stay pending_start, overlapping AdCP 3.3: media-buy and webhook rules (provisional buys, revisions from any origin, optional webhook authentication, totals) #1644.
  • Advertise only accepted measurement terms: TERMS_REJECTED must not fire for replayed advertised terms, and an advertised measurement_window references a declared window_id. Add a framework check on advertised products.
  • Property domain identifiers: lowercase ASCII hostnames; invalid values are INVALID_REQUEST. Add a sender-side normalizer ("explicit conversion before submission") for property-list helpers.
  • Counterparty-asserted domain lists: 100 entries, 253 characters each, a byte budget of 8 KiB per field and 16 KiB combined, plus the *_complete flags. A truncation helper for capability builders. Buyers never deny on absence.
  • build_creative refinement: carries compliance forward (COMPLIANCE_UNSATISFIED) where the SDK owns creative refinement.
  • CREATIVE_MERGE_REJECTED / RIGHTS_CHANNEL_VIOLATION: error-detail narrowing and minting helpers.
  • evaluator_id: remove any SDK helper that still mints it.

Work (after #1662)

Triage each item against the code; implement the framework parts with tests, and split out any item that grows.

Inventory: docs/adcp-3.3-sdk-inventory.md §1, §5, §8. Batch C/D.

Activity

  1. added
    no-triageSkip the Claude triage bot — human or designated agent will handle this issue
    sdk-10SDK 10 (next branch, AdCP 3.3)
    on Oct 27, 2026
  2. bokelley commented on Oct 30, 2026

    @bokelley
    ContributorAuthor

    Shipped in #1720 (merge fbf13c9) and #1721 (change_term_id for 3.3 prereleases), both into next. Not applicable: build_creative refinement (the SDK doesn't own it) and evaluator_id (no SDK helper mints it). The sales_fixed_rate storyboard isn't in the packaged compliance assets; the provisional-buy flight-start rule stays with #1644.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    no-triageSkip the Claude triage bot — human or designated agent will handle this issuesdk-10SDK 10 (next branch, AdCP 3.3)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions