Skip to main content
AdCP 3.2: products use canonical format_options[], manifests use format_kind plus optional format_option_ref, and creative agents declare operations through get_adcp_capabilities.creative.supported_formats[].
One upload, every format. This guide explains how creatives work in AdCP, from defining format requirements to assembling and delivering ads.

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 in adagents.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
Examples:
  • 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 canonical format_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
Creative agents are capability providers, not the authority for publisher acceptance or seller deliverability.

How They Fit Together

The Workflow

1. Discovery - “What formats do you support?”

Buyers read publisher acceptance from adagents.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
See Asset Types for detailed specifications.

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[].
Standard vs. Custom Formats:
  • Canonical formats use a registered format_kind and its shared parameter/slot vocabulary.
  • Custom formats use format_kind: "custom" with required format_shape and digest-pinned format_schema.
  • A renderer is discovered separately; its endpoint-local capability_id never becomes portable manifest identity.
See the Channel Guides for format examples and patterns across video, display, audio, DOOH, and carousels.

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.
See Universal Macros for complete reference.

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
This affects measurement and reporting only and does not change creative format classification or asset requirements. See the DOOH Channel Guide for DOOH-specific macro details.

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

  1. Discover formats: Read canonical format_options[] on products and publisher declarations when referenced
  2. Choose your channel guide: Pick the guide that matches your campaign type
  3. Build your manifest: Follow the format requirements
  4. Use universal macros: Add tracking with standardized macros
  5. Preview: Use preview_creative to see how it looks
  6. Submit: Include manifests in your create_media_buy request

Additional Resources