list_creative_formats, build_creative, sync_creatives, get_creative_delivery) work identically for CTV as for any other format. The CTV-specific details are in format definitions, asset requirements, and delivery models covered below. For distributing CTV creatives across multiple sellers, see Multi-agent creative orchestration.
Delivery models
CTV ads reach the screen through two delivery paths. The delivery model determines what kind of creative asset the seller’s format requires.SSAI (server-side ad insertion)
With SSAI, the ad server stitches the video ad directly into the content stream before it reaches the player. The viewer’s device receives a single continuous video — it never knows where content ends and the ad begins. SSAI formats require muxed video files (MP4/MOV) with strict encoding constraints. The ad’s GOP structure, frame rate, and audio configuration must align precisely with the content stream for seamless splicing. Key requirements for SSAI compatibility:- Closed GOP with 1-2 second keyframe intervals
- Constant frame rate matching the content (typically 29.97 or 30 fps)
- moov atom at file start for progressive download
- 48 kHz stereo audio with loudness normalized to -24 LUFS
CSAI (client-side ad insertion)
With CSAI, the player on the CTV device fetches and renders the ad separately from the content. The player requests a VAST tag, parses the XML, and plays the enclosed media files or loads an interactive experience. CSAI formats typically require a VAST tag URL or inline VAST XML. The player handles rendering, which opens the door to interactive features like companion banners, QR code overlays, and remote-control navigation.CTV format definitions
SSAI instream video with companion
This format represents a 30-second SSAI pre-roll/mid-roll with an optional companion display banner. Therenders array defines both the primary video and the companion placement.
Interactive CTV overlay
This format supports CSAI delivery with clickable overlay elements. The viewer navigates using a TV remote D-pad, and the overlay can include a QR code for second-screen engagement.VAST tag generation
When a buyer has a video creative and needs to deliver it as a VAST tag for CSAI environments, they usebuild_creative to produce the tag.
Request
The buyer references an existing creative bycreative_id and targets the seller’s CTV format:
Response
The creative agent returns a manifest with a VAST asset. Macros that depend on runtime context remain as placeholders:{CACHEBUSTER}) and IAB VAST macros ([IFA]). The seller’s ad server resolves the IAB macros at serve time, while the creative agent resolved the AdCP macros it could (like CLICK_URL) during build.
Companion ads
A companion ad is a secondary creative element that displays alongside the primary video. In AdCP, companion ads are modeled as multiple entries in the format’srenders array — one render per distinct visual piece.
How renders map to assets
The format defines the visual layout. The manifest provides the content for each piece.| Render role | Dimensions | Corresponding assets |
|---|---|---|
primary | 1920x1080 (16:9 video) | video_file or vast_tag |
companion | 300x250 (display banner) | companion_image, click_url |
Companion manifest example
CTV-specific considerations
Remote control navigation
CTV devices use a D-pad (directional pad) with up/down/left/right and select buttons. There is no mouse cursor, no touch, and no hover state. Interactive CTV creatives must:- Define a clear focus order for navigable elements
- Provide visible focus indicators (highlight, border, scale change)
- Keep navigation simple — 2-4 focusable elements maximum
- Ensure the default focus lands on the primary CTA
tabindex, :focus-visible CSS). The CTV player maps D-pad input to keyboard navigation events.
QR code overlays
QR codes bridge the CTV screen to the viewer’s phone. They work because CTV is a lean-back, sound-on environment where viewers have their phones nearby. Effective QR code placement in CTV ads:- Display for 8 seconds minimum so the viewer has time to pick up their phone
- Position in the bottom-right quadrant to avoid overlapping with player controls
- Include a clear label: “Scan to shop” or “Scan for offer”
- Use a separate landing URL from the main click-through so you can attribute QR scans independently
Co-viewing context
CTV is a shared screen. Multiple people may be watching the same ad. This affects creative strategy but also has protocol implications:- Frequency means household frequency, not individual frequency
- Device ID is the TV’s identifier, not a personal device
- Content rating and genre metadata from the publisher helps the buyer agent assess brand safety for a shared viewing context
Content metadata
CTV sellers provide content context through macros that the buyer can use in tracking URLs:{CONTENT_GENRE}— Comedy, drama, sports, news, etc.{CONTENT_RATING}— TV-G, TV-PG, TV-14, TV-MA{VIDEO_TITLE}— Title of the content being watched{VIDEO_CATEGORY}— IAB content category{POD_POSITION}— Position within the ad break (1st, 2nd, 3rd ad){POD_SIZE}— Total number of ads in the break
End-to-end workflow
1. Discover CTV formats
The buyer agent callslist_creative_formats on the seller to see available CTV placements:
ctv_30s_ssai_companion and ctv_30s_interactive along with their full renders and assets arrays. The buyer agent inspects the requirements to understand what assets it needs to provide.
2. Build the creative
The buyer agent sends the source creative to its creative agent with the seller’s target format:target_format_ids produces manifests for both SSAI and CSAI delivery in a single call. The creative agent adapts the source video to each format’s requirements — encoding a muxed file for SSAI and generating a VAST tag for CSAI.
3. Preview in CTV context
Thebuild_creative response includes preview renders when include_preview is true. For CTV formats with companions, the preview includes multiple render pieces:
4. Create the media buy
Once the creative looks right, the buyer agent creates a media buy with the seller, referencing the creative manifests:nova_spring_ctv_30s) is attached in both SSAI and CSAI formats. The seller selects the appropriate version based on the delivery environment at serve time.
5. Review delivered variants
After the campaign runs, the buyer agent can review delivery data to understand which format and context combinations performed. CTV-specific metrics to watch:- Completion rate — Should be 95%+ for non-skippable CTV. Lower rates indicate technical delivery issues, not creative problems.
- Companion click-through rate — Measures engagement with the companion banner.
- QR scan rate — Requires the QR landing URL to be trackable. Low single-digit percentages are normal.
- Content genre breakdown — Which content environments drove the most completions and companion clicks.
6. Review delivery data
Callget_creative_delivery on the seller to see variant-level CTV performance:
Related documentation
- Video ads — Video format specs, codecs, and encoding details
- Display ads — Companion banner format patterns
- Multi-agent creative orchestration — Distributing CTV creatives across multiple sellers
- Universal macros — Complete macro reference including CTV-specific macros
- Creative manifests — Manifest structure and asset specifications