AdCP 3.1.13 · Decisioning and serving layer
AdCP Trusted Match
AdCP Trusted Match is a schema group of the Ad Context Protocol holding 2 of the 64 operations in release 3.1.13, the serve-time layer: context_match and identity_match, evaluating pre-negotiated packages at request time.
Trusted Match is the only group that does not run over MCP or A2A. Its 2 operations use a direct HTTP profile, because the latency budget for a serve-time decision is a single impression. Both are marked experimental.
Their request schemas are the most tightly constrained in the release. context-match-request.json states that the request MUST NOT carry user identity; identity-match-request.json states the same about page context. Neither accepts a request_id that correlates with the other's, and neither accepts ext or context extension fields, so nothing either schema admits can rejoin the two halves of a decision. Neither ships with a bundled/ copy.
What the 2 trusted match operations do
| Operation | Request fields | Response fields | What it does |
|---|---|---|---|
context_match | 16 | 18 | Sent by publisher to router or provider to evaluate packages against contextual signals. |
identity_match | 12 | 19 | Sent by publisher to evaluate user eligibility for packages using an opaque identity token. |
context_match
Sent by publisher to router or provider to evaluate packages against contextual signals.
Every field and edge case for context_match
| Field | Type | Required | Description |
|---|---|---|---|
$schema | string | Optional schema URI for validation. | |
adcp_version | string | Release-precision AdCP version (VERSION.RELEASE, e.g. | |
adcp_major_version | integer | DEPRECATED in favor of adcp_version. | |
type | string | required | Message type discriminator for deserialization. |
protocol_version | string | TMP protocol version. | |
request_id | string | required | Unique request identifier. |
property_rid | string | required | Property catalog UUID (UUID v7). |
property_id | property-id | Publisher's human-readable property slug (e.g., 'cnn_homepage'). | |
property_type | property-type | required | Type of the publisher property One of: website, mobile_app, ctv_app, desktop_app, dooh, podcast, radio, linear_tv, streaming_audio, ai_assistant. |
placement_id | string | required | Placement identifier from the publisher's placement registry in adagents.json. |
seller_agent_url | string | required | API endpoint URL of the seller agent issuing this request. |
artifact | artifact | Full content artifact adjacent to this ad opportunity. | |
artifact_refs | object[] | Public content references adjacent to this ad opportunity. | |
geo | object | Coarse geographic location of the viewer. | |
context_signals | object | Pre-computed classifier outputs for the content environment. | |
package_ids | string[] | Restrict evaluation to specific packages. |
| Field | Type | Required | Description |
|---|---|---|---|
adcp_version | string | Release-precision AdCP version (VERSION.RELEASE, e.g. | |
adcp_major_version | integer | DEPRECATED in favor of adcp_version (release-precision string). | |
context_id | string | Session/conversation identifier for tracking related operations across multiple task invocations. | |
context | context | Per-request opaque caller-supplied correlation object echoed unchanged in the response. | |
task_id | string | Unique identifier for tracking asynchronous operations. | |
status | task-status | required | Current task execution state. One of: submitted, working, input-required, completed, canceled, failed, rejected, auth-required, unknown. |
message | string | Human-readable summary of the task result. | |
timestamp | string | ISO 8601 timestamp when the response was generated. | |
replayed | boolean | Set to true when this response was returned from the idempotency cache rather than from a fresh execution. | |
adcp_error | error | Transport-envelope error signal for fatal task failures. | |
push_notification_config | push-notification-config | Push notification configuration for async task updates (A2A and REST protocols). | |
governance_context | string | Governance context token issued by the account's governance agent during check_governance. | |
payload | object | Conceptual grouping for the task-specific response data defined by individual task response schemas (e.g., get-products-response.json, create-media-buy-response.json). | |
type | string | required | Message type discriminator for deserialization. |
request_id | string | required | Echoed request identifier from the context match request |
offers | offer[] | required | Offers from the buyer, one per activated package. |
cache_ttl | integer | Optional override for the default 5-minute cache TTL, in seconds. | |
signals | object | Response-level targeting signals for ad server pass-through. |
identity_match
Sent by publisher to evaluate user eligibility for packages using an opaque identity token.
Every field and edge case for identity_match
| Field | Type | Required | Description |
|---|---|---|---|
$schema | string | Optional schema URI for validation. | |
adcp_version | string | Release-precision AdCP version (VERSION.RELEASE, e.g. | |
adcp_major_version | integer | DEPRECATED in favor of adcp_version. | |
type | string | required | Message type discriminator for deserialization. |
protocol_version | string | TMP protocol version. | |
request_id | string | required | Unique request identifier. |
seller_agent_url | string | required | API endpoint URL of the seller agent issuing this request. |
identities | object[] | required | Identity tokens for the user, each tagged with its type. |
consent | object | Privacy consent signals. | |
package_ids | string[] | Optional. | |
country | string | ISO 3166-1 alpha-2 country code. | |
sealed_credentials | object[] | Optional HPKE-sealed credentials addressed to specific audiences — the network-as-RP ("issuer-as-RP"/Mechanism B) carrier. |
identity_match response — 19 fields, 5 required
| Field | Type | Required | Description |
|---|---|---|---|
adcp_version | string | Release-precision AdCP version (VERSION.RELEASE, e.g. | |
adcp_major_version | integer | DEPRECATED in favor of adcp_version (release-precision string). | |
context_id | string | Session/conversation identifier for tracking related operations across multiple task invocations. | |
context | context | Per-request opaque caller-supplied correlation object echoed unchanged in the response. | |
task_id | string | Unique identifier for tracking asynchronous operations. | |
status | task-status | required | Current task execution state. One of: submitted, working, input-required, completed, canceled, failed, rejected, auth-required, unknown. |
message | string | Human-readable summary of the task result. | |
timestamp | string | ISO 8601 timestamp when the response was generated. | |
replayed | boolean | Set to true when this response was returned from the idempotency cache rather than from a fresh execution. | |
adcp_error | error | Transport-envelope error signal for fatal task failures. | |
push_notification_config | push-notification-config | Push notification configuration for async task updates (A2A and REST protocols). | |
governance_context | string | Governance context token issued by the account's governance agent during check_governance. | |
payload | object | Conceptual grouping for the task-specific response data defined by individual task response schemas (e.g., get-products-response.json, create-media-buy-response.json). | |
type | string | required | Message type discriminator for deserialization. |
request_id | string | required | Echoed request identifier from the identity match request |
eligible_package_ids | string[] | required | Package IDs the user is eligible for. |
serve_window_sec | integer | required | Per-package single-shot fcap window, in seconds. |
tmpx | string | DEPRECATED in favor of tmpx_providers. | |
tmpx_providers | object | Router-populated: ordered TMPX chunk/value pairs grouped by the originating identity provider's `provider_id`. |
The other 9 AdCP areas
- Media Buy — 11 operations
- Creative — 8 operations
- Signals — 2 operations
- Protocol — 3 operations
- Accounts — 5 operations
- Brand Protocol — 6 operations
- Governance — 22 operations
- Sponsored Intelligence — 4 operations
- Compliance — 1 operation