{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://adcontextprotocol.org/schemas/3.3.0-beta.2/enums/collection-mechanism.json",
  "title": "Collection Mechanism",
  "description": "Collection mechanism a count is built from — what was observed and how. Not `measurement_source`, which names the provider. Not who observed it (a BrandRef carries the party), how an outcome was attributed (`attribution_methodology`), or the maturation or IVT stage (`measurement_window`). Neutral, not a quality ranking. Shared by `billing_measurement.counting_mechanisms[]` and `measurement_provenance.mechanisms[]`. Experimental in AdCP 3.3 (`media_buy.measurement_provenance`). Broadcast as-run logs and station affidavits are airing evidence (proof that a spot ran), not a counting source for audience measurement, so they are not values; delivery reports carry as-run data in `by_spot[]`, separately from audience rows. Ownership labels are not values: ad-server and publisher logs are both `server_logs`.",
  "type": "string",
  "enum": [
    "set_top_box",
    "acr",
    "panel",
    "server_logs",
    "client_tracker",
    "sdk"
  ],
  "enumDescriptions": {
    "set_top_box": "Set-top-box return-path tuning events from cable, satellite, or IPTV devices.",
    "acr": "Automatic content recognition from smart TVs or companion devices.",
    "panel": "Recruited respondent panel (meter or diary) projected to a population.",
    "server_logs": "Events observed server-side in the decision or delivery path (ad server, SSAI stitcher, publisher backend), including tracking URLs a server fires on the player's behalf. Not a render confirmation.",
    "client_tracker": "Declarative tracking URLs (pixels, beacons, VAST/DAAST tracking URLs) requested by the player or browser; no measurement code executes. Server-fired URLs are `server_logs`; executing code is `sdk`.",
    "sdk": "Measurement code executing in the player, app, or page (OM SDK, vendor JavaScript tags, mobile and CTV SDKs)."
  },
  "x-status": "experimental",
  "x-added-in": "3.3.0"
}
