Optionaladcp_Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1", "3.1-beta"). On a request: the buyer's release pin — the seller validates against its supported_versions and returns VERSION_UNSUPPORTED on cross-major mismatch, or downshifts to the highest supported release within the same major. On a response: the release the seller actually served — clients SHOULD validate the response against that release's schema, not against their pin. Patches are not negotiated; surface them as build_version on capabilities for operational visibility. When omitted, falls back to adcp_major_version (deprecated) or server default. Buyers SHOULD emit both adcp_version and adcp_major_version through 3.x to remain compatible with sellers that only read the legacy field. NORMALIZATION: SDKs that read full-semver values from bundle metadata (e.g. ComplianceIndex.published_version = "3.1.0-beta.1") MUST normalize to release-precision ("3.1-beta.1") before emitting on the wire — meta-field values are NOT valid wire values.
Optionaladcp_DEPRECATED in favor of adcp_version (release-precision string). Servers MUST continue to honor this field through 3.x. Removed in 4.0. Original semantics: the AdCP major version the buyer's payloads conform to. Sellers validate against their supported major_versions and return VERSION_UNSUPPORTED if unsupported. When omitted, the seller assumes its highest supported version.
Campaign governance plan identifier. The plan uniquely scopes the account and operator; do not include a separate account field — the governance agent resolves account from the plan. Governance agents MUST treat any sibling account field as a contract violation and reject the request.
URL of the agent making the request.
Optionalpurchase_OptionaltoolThe AdCP tool being checked (e.g., 'create_media_buy', 'acquire_rights', 'activate_signal'). Present on intent checks (orchestrator). The governance agent uses the presence of tool+payload to identify an intent check.
OptionalpayloadThe full tool arguments as they would be sent to the seller. Present on intent checks. The governance agent can inspect any field to validate against the plan.
Optionalgovernance_Governance context token from a prior check_governance response. Pass this on subsequent checks for the same governed action so the governance agent can maintain continuity across the lifecycle. In 3.0 governance agents MUST emit a compact JWS per the AdCP JWS profile (see Security — Signed Governance Context); callers persist and forward the value verbatim.
OptionalphaseOptionalplanned_Optionaldelivery_Actual delivery performance data. MUST be present for 'delivery' phase. The governance agent compares these metrics against the planned delivery to detect drift.
Start and end timestamps for the reporting window.
Optionalspend?: numberTotal spend during the reporting period.
Optionalcumulative_spend?: numberTotal spend since the governed action started.
Optionalimpressions?: numberImpressions delivered during the reporting period.
Optionalcumulative_impressions?: numberTotal impressions since the governed action started.
Optionalgeo_distribution?: { [k: string]: number | undefined }Actual geographic distribution. Keys are ISO 3166-1 alpha-2 codes, values are percentages.
Optionalchannel_distribution?: { [k: string]: number | undefined }Actual channel distribution. Keys are channel enum values, values are percentages.
Optionalpacing?: "ahead" | "on_track" | "behind"Whether delivery is ahead of, on track with, or behind the planned pace.
Optionalaudience_distribution?: {Actual audience composition during the reporting period. Enables mid-flight drift detection when actual delivery skews from planned audience targeting.
Population baseline used for index calculation. 'census': national census or equivalent population data. 'platform': the seller's active user base. 'custom': a custom baseline defined by the seller (describe in baseline_description).
Optionalbaseline_description?: stringDescription of the baseline when baseline is 'custom' (e.g., 'US adults 18+ with broadband access').
Audience index values for the current reporting period. Keys are seller-defined dimension:value strings (e.g., 'age:25-34', 'gender:female', 'income:high'). The protocol does not mandate a taxonomy — dimensions and value labels vary by seller. Values are index relative to the declared baseline (1.0 = at parity, >1.0 = over-indexed, <1.0 = under-indexed).
Optionalcumulative_indices?: { [k: string]: number | undefined }Cumulative audience index values since the governed action started. Same key format as indices (dimension:value). Use for detecting sustained bias drift that may not appear in a single reporting period.
Optionalmodification_Human-readable summary of what changed. SHOULD be present for 'modification' phase.
Optionalinvoice_OptionalcontextOptionalext
Universal governance check for campaign actions. The governance agent infers the check type from the fields present: tool+payload = intent check (proposed, orchestrator-side). planned_delivery = execution check (committed, seller-side). governance_context maintains lifecycle continuity across either check type — its presence alone does not determine binding. To check budget availability without a specific action, omit tool and payload.