adcp-creative

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

AdCP Creative Protocol

AdCP Creative Protocol

This skill enables you to execute the AdCP Creative Protocol with creative agents. Use the standard MCP tools (
list_creative_formats
,
build_creative
,
preview_creative
) exposed by the connected agent.
该技能可让你借助创意代理执行AdCP Creative Protocol操作。使用已连接代理提供的标准MCP工具(
list_creative_formats
build_creative
preview_creative
)。

Overview

概述

The Creative Protocol provides 3 standardized tasks for building and previewing advertising creatives:
TaskPurposeResponse Time
list_creative_formats
View format specifications~1s
build_creative
Generate or transform creatives~30s-5m
preview_creative
Get visual previews~5s
创意协议提供3项标准化任务,用于构建和预览广告创意:
任务用途响应时间
list_creative_formats
查看格式规范~1秒
build_creative
生成或转换创意内容~30秒-5分钟
preview_creative
获取视觉预览~5秒

Typical Workflow

典型工作流

  1. Discover formats:
    list_creative_formats
    to see available format specs
  2. Build creative:
    build_creative
    to generate or transform a manifest
  3. Preview:
    preview_creative
    to see how it renders
  4. Sync: Use
    sync_creatives
    (media-buy task) to traffic the creative

  1. 了解格式:调用
    list_creative_formats
    查看可用的格式规范
  2. 构建创意:调用
    build_creative
    生成或转换创意清单
  3. 预览效果:调用
    preview_creative
    查看渲染效果
  4. 同步创意:使用
    sync_creatives
    (媒体采购任务)投放创意

Task Reference

任务参考

list_creative_formats

list_creative_formats

Discover creative formats and their specifications.
Request:
json
{
  "type": "video",
  "asset_types": ["image", "text"]
}
Key fields:
  • format_ids
    (array, optional): Request specific format IDs
  • type
    (string, optional): Filter by type:
    video
    ,
    display
    ,
    audio
    ,
    dooh
  • asset_types
    (array, optional): Filter by accepted asset types
  • max_width
    ,
    max_height
    (integer, optional): Dimension constraints
  • is_responsive
    (boolean, optional): Filter for responsive formats
  • name_search
    (string, optional): Search formats by name
Response contains:
  • formats
    : Array of format definitions with
    format_id
    ,
    name
    ,
    type
    ,
    assets_required
    ,
    renders
  • creative_agents
    : Optional array of other creative agents providing additional formats

查看创意格式及其规范。
请求示例:
json
{
  "type": "video",
  "asset_types": ["image", "text"]
}
关键字段:
  • format_ids
    (数组,可选):请求特定格式ID
  • type
    (字符串,可选):按类型过滤:
    video
    display
    audio
    dooh
  • asset_types
    (数组,可选):按支持的素材类型过滤
  • max_width
    max_height
    (整数,可选):尺寸限制
  • is_responsive
    (布尔值,可选):过滤自适应格式
  • name_search
    (字符串,可选):按名称搜索格式
响应包含:
  • formats
    :格式定义数组,包含
    format_id
    name
    type
    assets_required
    renders
  • creative_agents
    (可选):提供额外格式的其他创意代理数组

build_creative

build_creative

Generate a creative from scratch or transform an existing creative to a different format.
Pure Generation (from brief):
json
{
  "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"
  },
  "brand": {
    "domain": "mybrand.com"
  }
}
Transformation (resize/reformat):
json
{
  "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/transformation
  • creative_manifest
    (object, optional): Source manifest - minimal for generation, complete for transformation
  • target_format_id
    (object, required): Format to generate -
    { agent_url, id }
Response contains:
  • creative_manifest
    : Complete manifest ready for
    preview_creative
    or
    sync_creatives

从零生成创意内容,或将现有创意转换为其他格式。
纯生成(基于创意简报):
json
{
  "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"
  },
  "brand": {
    "domain": "mybrand.com"
  }
}
转换(调整尺寸/格式):
json
{
  "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"
  }
}
关键字段:
  • message
    (字符串,可选):生成/转换的自然语言指令
  • creative_manifest
    (对象,可选):源创意清单——生成时可简化,转换时需完整
  • target_format_id
    (对象,必填):目标生成格式——
    { agent_url, id }
响应包含:
  • creative_manifest
    :可用于
    preview_creative
    sync_creatives
    的完整创意清单

preview_creative

preview_creative

Generate visual previews of creative manifests.
Single preview:
json
{
  "request_type": "single",
  "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:
json
{
  "request_type": "single",
  "creative_manifest": { /* includes format_id, assets */ },
  "inputs": [
    { "name": "Desktop", "macros": { "DEVICE_TYPE": "desktop" } },
    { "name": "Mobile", "macros": { "DEVICE_TYPE": "mobile" } }
  ]
}
Batch preview (5-10x faster):
json
{
  "request_type": "batch",
  "requests": [
    { "creative_manifest": { /* creative 1 */ } },
    { "creative_manifest": { /* creative 2 */ } }
  ]
}
Key fields:
  • request_type
    (string, required):
    "single"
    or
    "batch"
  • format_id
    (object, optional): Format identifier. Defaults to
    creative_manifest.format_id
    if omitted.
  • creative_manifest
    (object, required): Complete creative manifest
  • inputs
    (array, optional): Generate variants with different macros/contexts
  • output_format
    (string, optional):
    "url"
    (default) or
    "html"
Response contains:
  • previews
    : Array of preview objects with
    preview_url
    or
    preview_html
  • expires_at
    : When preview URLs expire

生成创意清单的视觉预览。
单份预览:
json
{
  "request_type": "single",
  "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
      }
    }
  }
}
包含设备变体:
json
{
  "request_type": "single",
  "creative_manifest": { /* includes format_id, assets */ },
  "inputs": [
    { "name": "Desktop", "macros": { "DEVICE_TYPE": "desktop" } },
    { "name": "Mobile", "macros": { "DEVICE_TYPE": "mobile" } }
  ]
}
批量预览(快5-10倍):
json
{
  "request_type": "batch",
  "requests": [
    { "creative_manifest": { /* creative 1 */ } },
    { "creative_manifest": { /* creative 2 */ } }
  ]
}
关键字段:
  • request_type
    (字符串,必填):
    "single"
    "batch"
  • format_id
    (对象,可选):格式标识符。若省略,默认使用
    creative_manifest.format_id
  • creative_manifest
    (对象,必填):完整的创意清单
  • inputs
    (数组,可选):使用不同宏/上下文生成变体
  • output_format
    (字符串,可选):
    "url"
    (默认)或
    "html"
响应包含:
  • previews
    :预览对象数组,包含
    preview_url
    preview_html
  • expires_at
    :预览URL的过期时间

Key Concepts

核心概念

Format IDs

格式ID

All format references use structured objects:
json
{
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "display_300x250"
  }
}
The
agent_url
specifies the creative agent authoritative for this format.
所有格式引用均使用结构化对象:
json
{
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "display_300x250"
  }
}
agent_url
指定了该格式的权威创意代理。

Creative Manifests

创意清单

Manifests pair format specifications with actual assets:
json
{
  "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"
    }
  }
}
创意清单将格式规范与实际素材配对:
json
{
  "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 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
常见素材类型:
  • image
    :静态图片(JPEG、PNG、WebP)
  • video
    :视频文件(MP4、WebM)或VAST标签
  • audio
    :音频文件(MP3、M4A)或DAAST标签
  • text
    :标题、描述、行动号召(CTA)
  • html
    :HTML5创意或第三方标签
  • javascript
    :JavaScript标签
  • url
    :追踪像素、跳转URL

Brand identity

品牌标识

For generative creatives, provide brand context by domain:
json
{
  "brand": {
    "domain": "acmecorp.com"
  }
}
The agent resolves the domain to retrieve the brand's identity (name, colors, guidelines, etc.) from its
brand.json
file.
对于生成式创意,可通过域名提供品牌上下文:
json
{
  "brand": {
    "domain": "acmecorp.com"
  }
}
代理会解析域名,从其
brand.json
文件中获取品牌标识(名称、颜色、规范等)。

Generative vs Transformation

生成式与转换式

  • Pure Generation: Provide
    target_format_id
    ,
    brand
    , and a natural language
    message
    . Creative agent generates all output assets from scratch.
  • Transformation: Complete manifest with existing assets. Creative agent adapts to target format, following
    message
    guidance.

  • 纯生成:提供
    target_format_id
    brand
    和自然语言
    message
    。创意代理从零生成所有输出素材。
  • 转换式:提供包含现有素材的完整创意清单。创意代理会根据
    message
    的指导,将其适配到目标格式。

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:
json
{
  "error": {
    "code": "INVALID_FORMAT_ID",
    "message": "format_id must be a structured object with 'agent_url' and 'id' fields"
  }
}
常见错误类型:
  • 400 Bad Request:无效的创意清单或format_id
  • 404 Not Found:该代理不支持此格式
  • 422 Validation Error:创意清单不符合格式要求
错误响应示例:
json
{
  "error": {
    "code": "INVALID_FORMAT_ID",
    "message": "format_id must be a structured object with 'agent_url' and 'id' fields"
  }
}