Execute AdCP Creative Protocol operations with creative agents - build creatives from briefs or existing assets, preview renderings, and discover format specifications. Use when users want to generate or transform ad creatives, preview how ads will look, or understand creative format requirements.
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
skills listSkill Instructions
name: adcp-creative description: Execute AdCP Creative Protocol operations with creative agents - build creatives from briefs or existing assets, preview renderings, and discover format specifications. Use when users want to generate or transform ad creatives, preview how ads will look, or understand creative format requirements.
AdCP Creative Protocol
This skill enables you to execute the AdCP Creative Protocol with creative agents. Use the call_adcp_agent tool to send requests to creative agents.
Overview
The Creative Protocol provides 3 standardized tasks for building and previewing advertising creatives:
| Task | Purpose | Response Time |
|---|---|---|
list_creative_formats | View format specifications | ~1s |
build_creative | Generate or transform creatives | ~30s-5m |
preview_creative | Get visual previews | ~5s |
Typical Workflow
- Discover formats:
list_creative_formatsto see available format specs - Build creative:
build_creativeto generate or transform a manifest - Preview:
preview_creativeto see how it renders - Sync: Use
sync_creatives(media-buy task) to traffic the creative
Task Reference
list_creative_formats
Discover creative formats and their specifications.
Request:
{
"type": "video",
"asset_types": ["image", "text"]
}
Key fields:
format_ids(array, optional): Request specific format IDstype(string, optional): Filter by type:video,display,audio,doohasset_types(array, optional): Filter by accepted asset typesmax_width,max_height(integer, optional): Dimension constraintsis_responsive(boolean, optional): Filter for responsive formatsname_search(string, optional): Search formats by name
Response contains:
formats: Array of format definitions withformat_id,name,type,assets_required,renderscreative_agents: Optional array of other creative agents providing additional formats
build_creative
Generate a creative from scratch or transform an existing creative to a different format.
Pure Generation (from brief):
{
"message": "Create a banner promoting our winter sale with a warm, inviting feel",
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250_generative"
},
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250_generative"
},
"assets": {
"promoted_offerings": {
"brand_manifest": {
"url": "https://mybrand.com",
"name": "My Brand",
"colors": { "primary": "#FF5733" }
},
"inline_offerings": [
{
"name": "Winter Sale Collection",
"description": "50% off all winter items"
}
]
}
}
}
}
Transformation (resize/reformat):
{
"message": "Adapt this leaderboard to a 300x250 banner",
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_728x90"
},
"assets": {
"banner_image": {
"asset_type": "image",
"url": "https://cdn.mybrand.com/leaderboard.png",
"width": 728,
"height": 90
},
"headline": {
"asset_type": "text",
"content": "Spring Sale - 30% Off"
}
}
},
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
}
}
Key fields:
message(string, optional): Natural language instructions for generation/transformationcreative_manifest(object, optional): Source manifest - minimal for generation, complete for transformationtarget_format_id(object, required): Format to generate -{ agent_url, id }
Response contains:
creative_manifest: Complete manifest ready forpreview_creativeorsync_creatives
preview_creative
Generate visual previews of creative manifests.
Single preview:
{
"request_type": "single",
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
},
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
},
"assets": {
"banner_image": {
"asset_type": "image",
"url": "https://cdn.example.com/banner.png",
"width": 300,
"height": 250
}
}
}
}
With device variants:
{
"request_type": "single",
"format_id": { "agent_url": "...", "id": "native_responsive" },
"creative_manifest": { /* ... */ },
"inputs": [
{ "name": "Desktop", "macros": { "DEVICE_TYPE": "desktop" } },
{ "name": "Mobile", "macros": { "DEVICE_TYPE": "mobile" } }
]
}
Batch preview (5-10x faster):
{
"request_type": "batch",
"requests": [
{ "format_id": {...}, "creative_manifest": { /* creative 1 */ } },
{ "format_id": {...}, "creative_manifest": { /* creative 2 */ } }
]
}
Key fields:
request_type(string, required):"single"or"batch"format_id(object, required for single): Format identifiercreative_manifest(object, required): Complete creative manifestinputs(array, optional): Generate variants with different macros/contextsoutput_format(string, optional):"url"(default) or"html"
Response contains:
previews: Array of preview objects withpreview_urlorpreview_htmlexpires_at: When preview URLs expire
Key Concepts
Format IDs
All format references use structured objects:
{
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
}
}
The agent_url specifies the creative agent authoritative for this format.
Creative Manifests
Manifests pair format specifications with actual assets:
{
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
},
"assets": {
"banner_image": {
"asset_type": "image",
"url": "https://cdn.example.com/banner.png",
"width": 300,
"height": 250
},
"headline": {
"asset_type": "text",
"content": "Shop Now"
},
"clickthrough_url": {
"asset_type": "url",
"url": "https://brand.com/sale"
}
}
}
Asset Types
Common asset types:
image: Static images (JPEG, PNG, WebP)video: Video files (MP4, WebM) or VAST tagsaudio: Audio files (MP3, M4A) or DAAST tagstext: Headlines, descriptions, CTAshtml: HTML5 creatives or third-party tagsjavascript: JavaScript tagsurl: Tracking pixels, clickthrough URLs
Brand Manifest
For generative creatives, provide brand context:
{
"brand_manifest": {
"url": "https://brand.com",
"name": "Brand Name",
"colors": { "primary": "#FF0000", "secondary": "#0000FF" }
}
}
Generative vs Transformation
- Pure Generation: Minimal manifest with
promoted_offeringsin assets. Creative agent generates all output assets from scratch. - Transformation: Complete manifest with existing assets. Creative agent adapts to target format, following
messageguidance.
Error Handling
Common error patterns:
- 400 Bad Request: Invalid manifest or format_id
- 404 Not Found: Format not supported by this agent
- 422 Validation Error: Manifest doesn't match format requirements
Error responses include:
{
"error": {
"code": "INVALID_FORMAT_ID",
"message": "format_id must be a structured object with 'agent_url' and 'id' fields"
}
}
More by adcontextprotocol
View allExecute AdCP Media Buy Protocol operations with sales agents - discover advertising products, create and manage campaigns, sync creatives, and track delivery. Use when users want to buy advertising, create media buys, interact with ad sales agents, or test advertising APIs.
Execute AdCP Signals Protocol operations with signal agents - discover audience signals using natural language and activate them on DSPs or sales agents. Use when users want to find targeting data, activate audience segments, or work with signal providers.
