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

Trusted Match — 2 operations
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

context_match request — 16 fields, 6 required
FieldTypeRequiredDescription
$schemastringOptional schema URI for validation.
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version.
typestringrequiredMessage type discriminator for deserialization.
protocol_versionstringTMP protocol version.
request_idstringrequiredUnique request identifier.
property_ridstringrequiredProperty catalog UUID (UUID v7).
property_idproperty-idPublisher's human-readable property slug (e.g., 'cnn_homepage').
property_typeproperty-typerequiredType of the publisher property One of: website, mobile_app, ctv_app, desktop_app, dooh, podcast, radio, linear_tv, streaming_audio, ai_assistant.
placement_idstringrequiredPlacement identifier from the publisher's placement registry in adagents.json.
seller_agent_urlstringrequiredAPI endpoint URL of the seller agent issuing this request.
artifactartifactFull content artifact adjacent to this ad opportunity.
artifact_refsobject[]Public content references adjacent to this ad opportunity.
geoobjectCoarse geographic location of the viewer.
context_signalsobjectPre-computed classifier outputs for the content environment.
package_idsstring[]Restrict evaluation to specific packages.
context_match response — 18 fields, 4 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
context_idstringSession/conversation identifier for tracking related operations across multiple task invocations.
contextcontextPer-request opaque caller-supplied correlation object echoed unchanged in the response.
task_idstringUnique identifier for tracking asynchronous operations.
statustask-statusrequiredCurrent task execution state. One of: submitted, working, input-required, completed, canceled, failed, rejected, auth-required, unknown.
messagestringHuman-readable summary of the task result.
timestampstringISO 8601 timestamp when the response was generated.
replayedbooleanSet to true when this response was returned from the idempotency cache rather than from a fresh execution.
adcp_errorerrorTransport-envelope error signal for fatal task failures.
push_notification_configpush-notification-configPush notification configuration for async task updates (A2A and REST protocols).
governance_contextstringGovernance context token issued by the account's governance agent during check_governance.
payloadobjectConceptual grouping for the task-specific response data defined by individual task response schemas (e.g., get-products-response.json, create-media-buy-response.json).
typestringrequiredMessage type discriminator for deserialization.
request_idstringrequiredEchoed request identifier from the context match request
offersoffer[]requiredOffers from the buyer, one per activated package.
cache_ttlintegerOptional override for the default 5-minute cache TTL, in seconds.
signalsobjectResponse-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

identity_match request — 12 fields, 4 required
FieldTypeRequiredDescription
$schemastringOptional schema URI for validation.
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version.
typestringrequiredMessage type discriminator for deserialization.
protocol_versionstringTMP protocol version.
request_idstringrequiredUnique request identifier.
seller_agent_urlstringrequiredAPI endpoint URL of the seller agent issuing this request.
identitiesobject[]requiredIdentity tokens for the user, each tagged with its type.
consentobjectPrivacy consent signals.
package_idsstring[]Optional.
countrystringISO 3166-1 alpha-2 country code.
sealed_credentialsobject[]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
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
context_idstringSession/conversation identifier for tracking related operations across multiple task invocations.
contextcontextPer-request opaque caller-supplied correlation object echoed unchanged in the response.
task_idstringUnique identifier for tracking asynchronous operations.
statustask-statusrequiredCurrent task execution state. One of: submitted, working, input-required, completed, canceled, failed, rejected, auth-required, unknown.
messagestringHuman-readable summary of the task result.
timestampstringISO 8601 timestamp when the response was generated.
replayedbooleanSet to true when this response was returned from the idempotency cache rather than from a fresh execution.
adcp_errorerrorTransport-envelope error signal for fatal task failures.
push_notification_configpush-notification-configPush notification configuration for async task updates (A2A and REST protocols).
governance_contextstringGovernance context token issued by the account's governance agent during check_governance.
payloadobjectConceptual grouping for the task-specific response data defined by individual task response schemas (e.g., get-products-response.json, create-media-buy-response.json).
typestringrequiredMessage type discriminator for deserialization.
request_idstringrequiredEchoed request identifier from the identity match request
eligible_package_idsstring[]requiredPackage IDs the user is eligible for.
serve_window_secintegerrequiredPer-package single-shot fcap window, in seconds.
tmpxstringDEPRECATED in favor of tmpx_providers.
tmpx_providersobjectRouter-populated: ordered TMPX chunk/value pairs grouped by the originating identity provider's `provider_id`.

The other 9 AdCP areas

Related