From cfaa3fba03912ee40ddf2b7ce040874f077f9ca4 Mon Sep 17 00:00:00 2001 From: Oleksandr Halushchak Date: Tue, 23 Jun 2026 20:30:19 +0200 Subject: [PATCH] docs(trusted-match): close two narrative-vs-schema drifts in TMP spec MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ContextMatchRequest property_type prose enum: add linear_tv, which has been a valid value in the property-type enum schema (with the description "Linear television stations and networks…") but was missing from the inline list at the field table. Readers relying on the prose would not know linear_tv is acceptable. - ContextMatchResponse field table: add a row for cache_ttl. The field is already normatively defined in the Caching section ("Providers MAY include a cache_ttl field… Routers MUST respect this value when present") and emitted by the reference implementation, but the response field table did not list it. The new row documents the override semantics, the 0-disables-caching convention, the schema-enforced 86400s ceiling, and links to the Caching section for the full TTL rules. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/trusted-match/specification.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/trusted-match/specification.mdx b/docs/trusted-match/specification.mdx index 8f412663f6..b41cfc9457 100644 --- a/docs/trusted-match/specification.mdx +++ b/docs/trusted-match/specification.mdx @@ -51,7 +51,7 @@ Sent by the publisher (via router) to buyer agents. Contains content context. MU | `request_id` | string | Yes | Unique request identifier for logging. MUST NOT correlate with any Identity Match request_id. | | `property_rid` | UUID | Yes | Property catalog UUID (v7). Globally unique, stable. | | `property_id` | string | No | Publisher's human-readable slug. Optional when `property_rid` is present. | -| `property_type` | enum | Yes | One of: `website`, `mobile_app`, `ctv_app`, `desktop_app`, `dooh`, `podcast`, `radio`, `streaming_audio`, `ai_assistant`. See `property-type` enum. | +| `property_type` | enum | Yes | One of: `website`, `mobile_app`, `ctv_app`, `desktop_app`, `dooh`, `podcast`, `radio`, `linear_tv`, `streaming_audio`, `ai_assistant`. See `property-type` enum. | | `placement_id` | string | Yes | Placement identifier from the publisher's placement registry in `adagents.json`. One placement per request. | | `seller_agent_url` | string (URI) | Yes | API endpoint URL of the seller agent issuing this request. The provider resolves the active package set it has synced for this seller against it; an unsynced seller MUST yield an empty offer set, never a fall-back to another seller's set. A single per-placement value carrying no user identity. Compared with AdCP URL canonicalization. Consistent with `seller_agent_url` on the Identity Match request and `agent_url` in `adagents.json`. | | `artifact` | Artifact | No | Full content artifact adjacent to this ad opportunity. Same schema as content standards evaluation. The publisher sends the full artifact when they want the buyer to evaluate the actual content. Contractual protections govern buyer use. TEE deployment upgrades contractual trust to cryptographic verification. | @@ -133,6 +133,7 @@ Returned by the buyer agent. Contains offers for matched packages and optional r | `type` | string | Yes | `"context_match_response"`. Message type discriminator for deserialization. | | `request_id` | string | Yes | Echo of the request's `request_id`. | | `offers` | List\ | Yes | Offers from the buyer, one per activated package. Empty list means no packages matched. | +| `cache_ttl` | integer | No | Provider override (in seconds) for the router's default Context Match response cache TTL. When present, routers MUST use this value instead of their default. `0` disables caching (e.g., when targeting configuration has just changed); schema-enforced maximum is 86400 seconds. See [Caching](#caching). | | `signals` | Signals | No | Response-level targeting signals for ad server pass-through. Not per-offer — applies to the response as a whole. In the GAM case, these carry the key-value pairs that trigger line items. | #### Offer