Skip to content

Measurement source attribution on delivery reports #2041

@bokelley

Description

@bokelley

Parent: #1919
Related: #2039 (measurement maturation windows), #1972 (measurement agents)

Problem

Broadcast measurement data is assembled from multiple sources — set-top box (STB) data, smart TV automatic content recognition (ACR), panel extrapolation, and potentially return-path data from MVPDs. The measurement vendor (VideoAmp, Nielsen, Comscore) deduplicates across these feeds ("fed-duplicated" per Greg @ O-N-X) and delivers a unified number.

Buyers currently have no visibility into what went into a measurement number. A report that says "1.2M impressions" doesn't tell the buyer whether that's panel-projected, census-level STB data, or a blend. This matters for:

  • Confidence assessment — Census STB data is more reliable than panel projections for smaller markets
  • Apples-to-apples comparison — A buyer comparing broadcast reach to CTV reach needs to know the methodologies differ
  • Audit and verification — When numbers are disputed, knowing the source composition helps diagnose discrepancies

Proposal

measurement_sources on delivery metrics

Add an optional measurement_sources array to delivery reports:

{
  "measurement_window": "c7",
  "impressions": 1120000,
  "measurement_sources": [
    {
      "source_type": "set_top_box",
      "description": "Return-path data from MVPD set-top boxes"
    },
    {
      "source_type": "acr",
      "description": "Automatic content recognition from smart TVs"
    },
    {
      "source_type": "panel",
      "description": "Panel-based projection for unmeasured households"
    }
  ],
  "is_deduplicated": true
}

Source type enum

Value Description
set_top_box Return-path data from cable/satellite set-top boxes
acr Automatic content recognition from smart TV manufacturers
panel Statistical panel sample projected to universe
server_logs Server-side ad insertion or delivery logs (CTV/digital)
sdk In-app or player SDK measurement
census Full census-level tracking (every impression counted)

is_deduplicated flag

Boolean indicating whether the vendor has deduplicated across the listed sources. This is the "fed-duplicated" concept Greg described — multiple data feeds unified into a single impression count.

Where it lives

On the delivery response, alongside delivery metrics. This is metadata about how the numbers were produced, not the numbers themselves. Optional — digital sellers with server logs and pixel tracking don't need to declare sources (it's implicit).

Scope

Additive. New optional fields on delivery response. New enum for source types. No breaking changes.

Open questions

  • Should source types be an enum or freeform strings? Enum is cleaner but may not cover every vendor's methodology.
  • Do we need per-source impression breakdowns? (e.g., "600K from STB, 300K from ACR, 220K from panel projection") This is probably vendor-proprietary and not ours to expose.
  • Should is_deduplicated be a field or just implied when multiple sources are listed?

Metadata

Metadata

Assignees

No one assigned

    Labels

    claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.rfcProtocol change — auto-adds to roadmap board

    Type

    No type

    Projects

    Status

    No status

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions