request-signing | RFC 9421 request-signing profile: canonical signature base, covered components, signature params, tag namespace, alg allowlist, adcp_use discriminator, replay dedup, revocation, content-digest semantics, and URL canonicalization | static/compliance/source/test-vectors/request-signing/ | /compliance/latest/test-vectors/request-signing/ |
webhook-signing | RFC 9421 webhook-signing profile: required covered components (content-digest mandatory — no forbidden opt-out), adcp/webhook-signing/v1 tag, webhook-valid adcp_use set (request-signing plus deprecated webhook-signing), webhook_signature_* error taxonomy; shares @target-uri canonicalization with request-signing | static/compliance/source/test-vectors/webhook-signing/ | /compliance/latest/test-vectors/webhook-signing/ |
plan-hash | JCS canonicalization of the plan_hash preimage: required-only baseline, full-optional, bookkeeping-stripped, omitted-vs-explicit-null, array-order sensitivity, ext.trace_id distinctness, Unicode non-normalization (RFC 8785 §3.2.5) | static/compliance/source/test-vectors/plan-hash/ | /compliance/latest/test-vectors/plan-hash/ |
governance-authorization | Cross-role governed-payload JCS/SHA-256 hashes, authorization decisions, and 27 byte-exact Ed25519 compact-JWS fixtures. Signed cases cover critical headers, audience/caller/task/payload bindings, commitment currency and ceiling, time bounds, replay identifiers, signature tampering, and zero-cost authorization. The published private component is test-only and MUST NOT be installed as a production trust anchor. | static/compliance/source/test-vectors/governance-authorization.json | /compliance/latest/test-vectors/governance-authorization.json |
webhook-receiver-envelope | Receiver-side replay vectors for full MCP webhook POST envelopes: canonical delivery-report envelope acceptance, retry idempotency preservation, and rejection of bare result payloads or malformed envelopes | static/compliance/source/test-vectors/webhook-receiver-envelope.json | /compliance/latest/test-vectors/webhook-receiver-envelope.json |
catalog-macro-substitution | Catalog-item macro substitution safety: NFC normalization, RFC 3986 percent-encoding, nested-expansion preservation, CRLF neutralization, bidi override neutralization, and URL-scheme injection neutralization | static/compliance/source/test-vectors/catalog-macro-substitution.json | /compliance/latest/test-vectors/catalog-macro-substitution.json |
universal-macro-translation | Producer-side universal-macro translation: RFC 3986 unreserved-whitelist value encoding, verbatim native insertion, unmapped-macro param dropping, privacy/consent macro advisory, suspect native-value detection, single-pass substitution, and control-character rejection in native mappings | static/compliance/source/test-vectors/universal-macro-translation.json | /compliance/latest/test-vectors/universal-macro-translation.json |
creative-representation-resolution | Deterministic creative-representation selection across product and seller capability intersections: paired redirects, highest-compatible VAST selection, representation-order tie breaking, retained alternatives, and exhaustive rejection output when no representation is compatible | static/compliance/source/test-vectors/creative-representation-resolution.json | /compliance/latest/test-vectors/creative-representation-resolution.json |
macro-processing | Creative macro-processing capability matching: byte-preserving unknown tokens, exact dialect/namespace/registry-revision/operation/context/owner/depth checks, seller-side universal-token translation, and the required two RFC 3986 encoding passes for nested click values | static/compliance/source/test-vectors/macro-processing.json | /compliance/latest/test-vectors/macro-processing.json |
tracker-execution-contracts | Product and package tracker execution commitments: normalized pixel/VAST/DAAST selectors, exact event/version/actor/path matching, completeness semantics, package snapshot digests, and narrowing rules | static/compliance/source/test-vectors/tracker-execution-contracts.json | /compliance/latest/test-vectors/tracker-execution-contracts.json |
attestations | Portable attestation trust and resolution: allowlist checks, delivery selection, validity windows, revocation, subject and digest comparison, stable outcomes, and the no-network rule for off-policy inputs. Uses a fictional proof format; cryptographic verification bytes are format-specific and tested by each format’s own suite | static/compliance/source/test-vectors/attestations/ | /compliance/latest/test-vectors/attestations/ |
rights-attestations | Rights-grant profile composed with portable attestations: holder/claim/resolver policy, rights-subject checks, JWKS purpose binding, issuer-bound status evidence, constraint-digest comparison, and fail-closed outcomes for paused, revoked, stale, or untrusted grants | static/compliance/source/test-vectors/rights-attestations/ | /compliance/latest/test-vectors/rights-attestations/ |
governance-runtime-attestations | check_governance signal-activation with portable attestations: normalized outcome and governance verdict, binding-digest computation, deactivation negative-policy, and cache-reuse validity constraints | static/compliance/source/test-vectors/governance-runtime-attestations/ | /compliance/latest/test-vectors/governance-runtime-attestations/ |
audience-evidence | Population-level audience-evidence contract: product evidence snapshot validation, RFC 8785 content-digest recomputation, requirement-mode enforcement (required excludes, preferred ranks), when_available presence handling, and provider/methodology exclusion lists | static/compliance/source/test-vectors/audience-evidence/ | /compliance/latest/test-vectors/audience-evidence/ |
brand-response-signing | Brand-authorization cross-check for verify_brand_claim and verify_brand_claims envelopes: advisory binding produces verifier-local untrusted results without hard-rejecting the response or rewriting signer-asserted verification_status. Mandatory cryptographic brand authorization is deferred to 4.0 | static/compliance/source/test-vectors/brand-response-signing/ | /compliance/latest/test-vectors/brand-response-signing/ |
oauth-setup | OAuth metadata-graph conformance: deterministic network fixtures for oauth_metadata_graph checks, redirect validation, graph-budget enforcement, and fail-closed behavior for missing fixture responses. No live network access permitted | static/compliance/source/test-vectors/oauth-setup/ | /compliance/latest/test-vectors/oauth-setup/ |
trusted-match-context-merge | Context Match targeting key-value merge: router attribution from publisher-controlled provider registration, bucket-key derivation, provider signals.targeting_kvs pass-through, shared-key multi-provider contribution, and dropped unmapped/case-mismatched tuples | static/compliance/source/test-vectors/trusted-match-context-merge/ | /compliance/latest/test-vectors/trusted-match-context-merge/ |
products-only-brief-compatibility | Products-only brief flow across AdCP 2.5, 3.0, 3.1: compact projection without invented proposals, fail-closed legacy-create continuation with named fences, seller-fenced listed_purchase feed/pricing propagation, and 3.2 reverse-compatibility facades | static/compliance/source/test-vectors/products-only-brief-compatibility/ | /compliance/latest/test-vectors/products-only-brief-compatibility/ |
relationship-scoped-indicators | Indicator snapshot semantics and invalidation lifecycle: scope containment validation, snapshot freshness, and relationship-scoped invalidation behavior | static/compliance/source/test-vectors/relationship-scoped-indicators.json | /compliance/latest/test-vectors/relationship-scoped-indicators.json |
transport-error-mapping | Transport-layer error envelope shapes: the JSON-RPC (error.code / data) and A2A (task status.message) carriers for each documented AdCP transport error | static/test-vectors/transport-error-mapping.json | /test-vectors/transport-error-mapping.json |
mcp-response-extraction | Client extraction of the AdCP payload from MCP tools/call envelopes | static/test-vectors/mcp-response-extraction.json | /test-vectors/mcp-response-extraction.json |
a2a-response-extraction | Client extraction of the AdCP payload from A2A task statuses and artifacts | static/test-vectors/a2a-response-extraction.json | /test-vectors/a2a-response-extraction.json |
a2a-profile-extension-v3 | A2A 1.0 profile advertisement and activation, { skill, input } invocation, advisory TextParts, completed-Task mapping for AdCP Submitted responses, metadata-duplication rejection, and get_task_status polling | static/test-vectors/a2a-profile-extension-v3.json | /test-vectors/a2a-profile-extension-v3.json |
webhook-payload-extraction | Receiver-side format detection and payload extraction for inbound AdCP webhooks | static/test-vectors/webhook-payload-extraction.json | /test-vectors/webhook-payload-extraction.json |
webhook-hmac-sha256 (legacy) | HMAC-SHA-256 signature computation and byte-equality invariants for the legacy HMAC webhook profile. Deprecated in 3.x, removed in 4.0 per Webhook callbacks; new integrations use webhook-signing | static/test-vectors/webhook-hmac-sha256.json | /test-vectors/webhook-hmac-sha256.json |
canonical-image-pixel-ratio | Canonical image logical-size versus intrinsic-pixel validation, top-level/slot density intersection, accepted and required rendition sets, mismatch failures, and parameterized legacy projection | static/test-vectors/canonical-image-pixel-ratio.json | /test-vectors/canonical-image-pixel-ratio.json |
v1-canonical-mapping | Literal v1 format-ID projection plus positive and negative vectors for the normative one-way v2-narrows-v1 relation | static/test-vectors/v1-canonical-mapping.json | /test-vectors/v1-canonical-mapping.json |
adagents-discovery-redirects | adagents.json discovery redirect handling: same-registrable-domain following with eTLD+1 (including PSL private section), HTTPS preservation, per-hop SSRF revalidation, 3-hop cap, cross-registrable-domain refusal, and zero-redirect authoritative_location policy | static/test-vectors/adagents-discovery-redirects.json | /test-vectors/adagents-discovery-redirects.json |
canonical-format-classification | Canonical format classification from realistic publisher-spec descriptions: classification follows creative payload and rendering responsibility, not placement behavior richness | static/test-vectors/canonical-format-classification.json | /test-vectors/canonical-format-classification.json |
media-buy | Media-buy lifecycle vectors: package-status targeting-overlay echo and status_as_of temporal query semantics | static/test-vectors/media-buy/ | package-status-targeting-overlay-echo.json, status-as-of.json |