diff --git a/.changeset/add-creative-revision-identity.md b/.changeset/add-creative-revision-identity.md new file mode 100644 index 0000000000..aa86763a0b --- /dev/null +++ b/.changeset/add-creative-revision-identity.md @@ -0,0 +1,7 @@ +--- +"adcontextprotocol": minor +--- + +Add buyer-authored immutable creative revision identity across sync, review, +library readback, and delivery attribution, plus agent-unique served variant +identity for unambiguous post-flight preview replay. diff --git a/.changeset/creative-delivery-contracts.md b/.changeset/creative-delivery-contracts.md new file mode 100644 index 0000000000..2f9bd3165e --- /dev/null +++ b/.changeset/creative-delivery-contracts.md @@ -0,0 +1,5 @@ +--- +"adcontextprotocol": minor +--- + +Add explicit creative delivery contracts for inline display tags, atomic paired redirects, and revision-bound creative representation sets. A complete representation set is one immutable buyer revision; deterministic selection identifies one `representation_id` without creating a build or served variant and carries the complete revision digest into the seller-bound manifest. Define exact VAST asset versions versus product and seller acceptance sets, VAST MediaFile delivery/MIME/container/codec/dimension/bitrate/byte requirements, decimal file-size units, and declaration-level technical completeness. Add declared macro dialect, resolver ownership, encoding depth, capability matching, per-token validation results, structured rejection errors, documentation, and conformance vectors for issues #6761–#6764. diff --git a/docs/contributing/x-entity-annotation.md b/docs/contributing/x-entity-annotation.md index 9393e0164d..75e7ef075d 100644 --- a/docs/contributing/x-entity-annotation.md +++ b/docs/contributing/x-entity-annotation.md @@ -106,7 +106,7 @@ High-level groupings (see the registry for full descriptions). *Categories below | Brand & rights | `advertiser_brand`, `rights_holder_brand`, `rights_grant` | | Account & party | `account`, `operator` | | Media buy | `media_buy`, `package`, `product`, `proposal`, `product_pricing_option`, `spot_airing` | -| Creative | `creative`, `creative_format` | +| Creative | `creative`, `creative_revision`, `creative_representation`, `macro_declaration`, `creative_locale_variant`, `creative_format`, `build_variant`, `served_variant` | | Data & targeting | `audience`, `audience_evidence`, `audience_evidence_snapshot`, `signal`, `signal_activation_id`, `demographic_interval_id`, `event_source` | | Lists & catalogs | `collection_list`, `property_list`, `catalog`, `catalog_generation`, `catalog_item`, `property` | | Plans & governance | `media_plan`, `governance_plan`, `governance_registry_policy`, `governance_inline_policy`, `governance_check`, `governance_delivery_statement`, `governance_delivery_observation`, `governance_outcome`, `governance_adjustment`, `governance_adjustment_evidence`, `seller_adjustment`, `content_standards`, `task`, `attestation_credential` | diff --git a/docs/creative/asset-types.mdx b/docs/creative/asset-types.mdx index 4745308c90..90b4706ca2 100644 --- a/docs/creative/asset-types.mdx +++ b/docs/creative/asset-types.mdx @@ -63,6 +63,8 @@ For payload schemas (the structure of the actual asset data supplied in creative - `duration_ms` (when applicable) - `format` (declared container type) +File-size limits use decimal, exact units throughout AdCP: `*_kb` means 1 KB = 1,000 bytes, `*_mb` means 1 MB = 1,000,000 bytes, and `*_bytes` is an exact byte count. Do not interpret KB/MB fields as KiB/MiB. + ## Asset Type Schema The official JSON schema for asset types is available at: @@ -97,7 +99,7 @@ Video assets represent video files with specific technical requirements. - `acceptable_codecs`: Video codecs (h264, h265, vp8, vp9, av1) - `acceptable_resolutions`: List of width x height strings - `aspect_ratio`: Required aspect ratio (16:9, 9:16, 1:1, etc.) -- `max_file_size_mb`: Maximum file size in megabytes +- `max_file_size_mb`: Maximum file size in decimal megabytes (1 MB = 1,000,000 bytes) - `min_bitrate_mbps` / `max_bitrate_mbps`: Bitrate range in Mbps - `features`: Additional requirements (e.g., ["non-skippable", "sound on"]) @@ -123,7 +125,7 @@ Static image assets for banners, logos, and visual content. - `min_width` / `min_height`: Minimum dimensions (px; typically used by responsive/sizeless formats) - `aspect_ratio`: Required aspect ratio - `acceptable_formats`: Image formats (jpg, png, gif, webp, svg) -- `max_file_size_kb`: Maximum file size in kilobytes +- `max_file_size_kb`: Maximum file size in decimal kilobytes (1 KB = 1,000 bytes) - `transparency`: Whether transparency is required/supported - `animation_allowed`: Whether animated GIFs are accepted - `notes`: Additional requirements (e.g., "Must be free of text") @@ -175,6 +177,7 @@ Senders **SHOULD** include `url_type` on every URL asset. The valid values are: | Value | Mechanism | |---|---| | `clickthrough` | User-click destination (landing page or ad-tech redirector) | +| `ad_request` | Invokes a third-party display creative endpoint at impression time | | `tracker_pixel` | Fires HTTP GET, expects 1×1 pixel or 204 response (impression / event / 3P trackers) | | `tracker_script` | Loads as a `