Skip to main content
This guide covers how AdCP represents carousel and multi-asset advertising formats that display multiple items in sequence: product carousels, image slideshows, story sequences, and video playlists. Carousel formats use repeatable asset groups to represent:
  • Product Carousels - Multiple products with images, titles, and prices
  • Image Slideshows - Series of images with optional captions
  • Story Sequences - Sequential narrative frames (mobile stories)
  • Video Playlists - Multiple video clips displayed in sequence
All carousel formats use asset_group_id with item_type: "repeatable_group", min_count, and max_count to define the structure. A card’s media may be an image or a video. Where a card carries video, platforms can cap the per-card video file size via card_video_max_file_size_kb (the video counterpart to card_image_max_file_size_kb), alongside the per-card card_video_max_duration_ms duration cap. The authoritative per-card field list lives in the image_carousel schema.

Repeatable Asset Groups

Basic Structure

Carousel formats define a repeatable asset group containing the assets for each item:

Image Slideshow

Story Sequence (Mobile)

Video Playlist

Creative Manifests

Naming Convention

Assets in manifests use the pattern: {group_id}_{index}_{asset_id} Indexing is zero-based: product_0_image, product_1_image, product_2_image Example: For a format with asset_group_id: "product" and asset_id: "image", the manifest provides:
  • First item: product_0_image
  • Second item: product_1_image
  • Third item: product_2_image
All assets for a given index must be provided together (you cannot have product_0_image without product_0_title if title is required).

Story Sequence Manifest

Manifest Validation Rules

Complete Groups Required

Each group instance must include all required assets defined in the format:

Count Constraints

Manifests must provide between min_count and max_count instances:

Optional Assets

Individual assets within a group can be marked "required": false:
Optional assets can be provided for some instances but not others:

Zero-Based Indexing

Always use sequential zero-based indexing starting from 0:

Clickthrough URL Patterns

Single Landing URL

All carousel items link to the same destination:

Per-Item Landing URLs

Each carousel item can have its own clickthrough URL (if supported by format):
The format definition specifies whether per-item URLs are supported. In addition to universal macros, some platforms support carousel-specific macros:
  • {CAROUSEL_INDEX} - Zero-based index of current carousel item
  • {CAROUSEL_POSITION} - One-based position (for user display)
  • {CAROUSEL_TOTAL} - Total number of items in carousel
Example tracking URL:

Complete Example

Format Definition

Manifest