Migration to canonical formats
AdCP 3.2 is canonical-first end to end. New implementations use portable format declarations rather than agent-owned named formats. Fields named exactlyformat_ids are deprecated in 3.2 and removed in AdCP 4.0; singular format_id, named-format definitions, and list_creative_formats follow separate compatibility schedules.
The deprecated fields and task remain parseable during the 3.x compatibility window. They are not an alternative authoring model in 3.2: if exposed, they should be projections derived from canonical data. Exact plural
format_ids must not be emitted after upgrading to AdCP 4.0.
Seller migration
- Move each product’s creative contract into
format_options[]. - Give each option a stable
format_option_idand full canonicalformatdeclaration. - Publish reusable publisher options in
/.well-known/adagents.jsonand reference them withpublisher_domainplusformat_option_id. - Return the applicable options from
get_products; product-, placement-, account-, and inventory-specific constraints belong there. - Stop advertising
list_creative_formatsas a required sales task.
Creative-agent migration
- Keep
list_creative_formatsonly when older clients require it. - Add
creative.supported_formats[]toget_adcp_capabilities. - Assign each producible contract an agent-local, stable
capability_id. - Declare the canonical
formatand supportedoperations(build,validate,preview). - Accept
target_capability_id(s)inbuild_creativeand return canonical manifests. - Declare transformer outputs with
output_capability_ids.
Buyer migration
- Discover seller products with
get_productsand readformat_options[]. - When starting from a publisher, read its
adagents.json.formats[]or the AgenticAdvertising.org community mirror. - Find candidate creative agents in the registry by exact
{publisher_domain, format_option_id}or compatible canonical constraints. - Confirm a candidate directly through
get_adcp_capabilities. - Select its
capability_id, callbuild_creative, and carry the returned canonical manifest through preview, sync, and delivery.
capability_id with format_option_id; compare their canonical declarations. The identifiers serve different namespaces.
Compatibility projection
An implementation serving older 3.x peers may derive named formats from canonical declarations. Keep the projection one-way:Completion checklist
- New examples contain no named format IDs.
- Sales-agent workflows do not call
list_creative_formats. - Creative-agent discovery uses
get_adcp_capabilities.creative.supported_formats[]. - Builds target capability IDs and return canonical manifests.
- Preview, sync, library, and delivery paths preserve
format_kindandformat_option_ref. - Registry records can be queried by canonical kind and publisher option.
- Legacy fields are labeled deprecated and tested only as compatibility behavior.