AdCP 3.2: products use canonicalOne upload, every format. This guide explains how creatives work in AdCP, from defining format requirements to assembling and delivering ads.format_options[], manifests useformat_kindplus optionalformat_option_ref, and creative agents declare operations throughget_adcp_capabilities.creative.supported_formats[].
The Four Key Concepts
1. Assets
Assets are the individual building blocks used to compose a creative. Each asset has a defined type that determines how it is used and validated. Examples:- An image file (PNG, JPG, WebP)
- A video file (MP4, WebM, MOV)
- A block of text (headline or CTA)
- An audio file (MP3, M4A)
- An HTML or JavaScript tag
- A tracking or clickthrough URL
2. Canonical format declarations
Canonical declarations define the buyer deliverable and its constraints. Publisher acceptance lives inadagents.json.formats[]; seller deliverability lives in each product’s format_options[]. A declaration specifies:
- Media family (e.g., Display, Video, Audio, Native)
- The required asset types
- Technical constraints (duration, dimensions, codecs, file size)
- Rendering and interaction expectations
- A Video format may require one video asset (MP4, 30 seconds, defined resolution and codec) and one clickthrough URL
- A Display format may require one or more image or HTML assets, optional text assets, and tracking URLs
3. Manifests
Manifests are portable creative payloads. They identify a canonicalformat_kind, optionally bind to a concrete product or publisher option with format_option_ref, and supply typed assets keyed by the declaration’s slots.
Example: A video_hosted manifest supplies video_main: { asset_type: "video", ... }, plus any declared landing-page and tracker assets.
4. Creative Agents
Creative agents are services that:- Declare which canonical contracts they can build, validate, or preview
- Explain and execute their renderer or production behavior
- Validate manifests against format requirements
- Generate previews showing how creatives will appear
- Optionally build manifests from natural-language briefs
How They Fit Together
The Workflow
1. Discovery - “What formats do you support?”
Buyers read publisher acceptance fromadagents.json.formats[] and seller deliverability from each product’s format_options[]. When they need production, they inspect a creative agent’s get_adcp_capabilities.creative.supported_formats[].
See Creative Formats for format discovery details.
2. Assembly - “Here are my assets”
Buyers create manifests that provide assets fulfilling the selected format’s requirements. Manifests pair format specifications with actual asset URLs, text, and tracking data. See Creative Manifests for manifest structure details.3. Validation - “Does this match the requirements?”
Creative agents validate manifests by checking:- Are all required assets present?
- Do assets meet technical constraints (duration, dimensions, file type, file size)?
- Are tracking URLs and macros correctly formatted?
4. Delivery - “Traffic this to the ad server”
Sales agents deliver validated creatives to their ad servers, translating AdCP universal concepts to platform-specific formats.Core Concepts
Assets & Asset Types
Assets are the raw materials of a creative. Each asset has a type that defines its role:- image: Static images (JPEG, PNG, WebP)
- video: Video files (MP4, WebM, MOV) or VAST tags
- audio: Audio files (MP3, M4A) or DAAST tags
- text: Headlines, descriptions, CTAs
- html: HTML5 creatives or third-party tags
- javascript: JavaScript tags
- url: Tracking pixels, clickthrough URLs, webhooks
Format authority and capability
Authority is contextual:- Publishers declare accepted inventory shapes in
adagents.json.formats[]. - Sales agents declare the closed executable set on
Product.format_options[]. - Creative agents self-declare build, validation, and preview operations in
creative.supported_formats[].
- Canonical formats use a registered
format_kindand its shared parameter/slot vocabulary. - Custom formats use
format_kind: "custom"with requiredformat_shapeand digest-pinnedformat_schema. - A renderer is discovered separately; its endpoint-local
capability_idnever becomes portable manifest identity.
Manifests
Manifests are JSON structures that pair format-defined asset IDs with actual asset content. They supply the URLs, text values, and tracking endpoints required to assemble a complete creative. See Creative Manifests for detailed documentation.Universal Macros
AdCP defines universal macros that work across platforms. Sales agents translate these macros into their ad server’s native syntax.- For impression tracking: Sales agents translate AdCP macros into the ad server’s native macro format before serving the impression tracking URL.
- For click tracking: In addition to macro translation, sales agents replace
{REDIRECT_URL}with the final destination click URL and serve the click tracking URL as the destination URL in the ad server, ensuring proper redirection after the click is recorded.
Common Patterns
Third-Party Tags
Some formats support creatives that are served by third-party systems rather than assembled from first-party media elements. In this pattern, the creative is provided as an HTML tag or a JavaScript tag. The format definition specifies the required element type and any applicable constraints (such as sandboxing or tracking expectations). Rendering, asset loading, and interaction logic are handled externally by the third-party system. This pattern is most commonly used with Display formats. See the Display Channel Guide for third-party tag examples.Repeatable Asset Groups
Some formats allow or require repeated sets of creative elements under a common structure. This pattern is used for creatives such as carousels, slideshows, story-style sequences, and playlists or product lists. Each repetition contains the same logical element roles (for example: image, text, and URL), with the number of repetitions defined or constrained by the format. Repeatable element groups describe structural patterns, not formats or layout guarantees, and may be used across Display, Native, or other compatible formats. See the Carousel & Multi-Asset Formats guide for detailed documentation.DOOH Impression Tracking
Digital Out-of-Home (DOOH) environments require different measurement semantics than personal-device environments. In this pattern:- Impressions are tracked using venue- or screen-level identifiers
- Device-based identifiers are not used
- Tracking relies on environment-specific macros
Channel-Specific Information
For detailed information on creatives by channel and format family, see Creative Manifests, including:- Video Ads - In-stream and outstream video formats (including CTV environments)
- Display Ads - Standard display formats (e.g., banners and interstitials)
- Audio Ads - In-stream audio formats (with optional companion display)
- DOOH - Digital out-of-home inventory and venue-based delivery environments
Getting Started
- Discover formats: Read canonical
format_options[]on products and publisher declarations when referenced - Choose your channel guide: Pick the guide that matches your campaign type
- Build your manifest: Follow the format requirements
- Use universal macros: Add tracking with standardized macros
- Preview: Use
preview_creativeto see how it looks - Submit: Include manifests in your
create_media_buyrequest
Additional Resources
get_adcp_capabilities- Creative-agent operation discovery- Generative Creative - AI-powered creative generation guide