Skip to content

AdCP 3.3: reporting rules (optional impressions, multi-qualifier totals, property rollups, custody) #1669

Closed

Description

@bokelley

Spec (tag v3.3.0-beta.0)

Reporting rules that touch adcp.reporting and adcp-reporting-storage:

  • impressions optional on every delivery row except aggregated_totals. Readers and row codecs must treat absence as "not measured", never zero, and derive no impression-based rates (#8108).
  • Multi-qualifier metrics omit flat totals in buy and window totals (#8055); also listed on AdCP 3.3: media-buy and webhook rules (provisional buys, revisions from any origin, optional webhook authentication, totals) #1644.
  • by_property / by_installment_property rollups when the seller declares supports_property_breakdown / supports_installment_property_breakdown; storyboards property_delivery_reporting and installment_property_delivery_reporting.
  • source.custody (system_of_record / upstream_derived) on Reliable Reporting report definitions.
  • Superseded snapshot compaction notice: reads of compacted content return REFERENCE_NOT_FOUND with field: "reporting_revision_id"; unowed revisions are REVISION_UNREADABLE. Not permitted under 3.3 itself; plan for the next minor.

Work (after #1662)

Audit the reporting readers, ledger and storage codecs for each rule; fix and test; run the two property storyboards if the reference seller can declare the capability.

Inventory: docs/adcp-3.3-sdk-inventory.md §3 "Reporting and delivery", §7. Batch C.

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 29, 2026

    @bokelley
    ContributorAuthor

    Merged into next:

    Still open:

    • 3.2 downgrade (AdCP 3.3: semantic downgrade rules for 3.3-only fields toward 3.2 peers #1667, other workspace): a 3.3 delivery row without impressions sent to a 3.2 peer should be dropped, but the generic downgrade likely refuses the whole response instead (not tested).
    • Webhook sender: create_media_buy_delivery_webhook_payload doesn't stop aggregated_totals, which senders must not include.
    • Property storyboards: the reference seller's simulate_delivery doesn't accept the property row arrays, so property_delivery_reporting and installment_property_delivery_reporting can't run against it yet.
    • REFERENCE_NOT_FOUND: errors don't carry field: "reporting_revision_id" yet; needed for compaction in the next minor.
  3. bokelley commented on Nov 1, 2026

    @bokelley
    ContributorAuthor

    Status:

    When #1796 merges, every 3.3 item here is done. Compaction itself isn't permitted under 3.3 and waits for the next minor (plan in docs/reporting-release-notes.md).

  4. bokelley commented on Nov 2, 2026

    @bokelley
    ContributorAuthor

    Done on next. #1796 (8cc8818a) merged the last 3.3 item: REFERENCE_NOT_FOUND with field: "reporting_revision_id" for an unknown revision.

    Item PRs
    Optional impressions #1707, #1709, #1717 (3.2 downgrade)
    Multi-qualifier totals #1709
    aggregated_totals #1707 (receivers), #1716 (sender)
    Property rollups #1707, #1715
    Custody #1707

    Snapshot compaction isn't permitted under 3.3; the plan for the next minor is in docs/reporting-release-notes.md.

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