adcp-media-buy 是一项用于与广告销售代理执行 AdCP Media Buy Protocol 操作的工具技能。它通过所连接代理暴露的标准 MCP 工具(get_products、create_media_buy、sync_creatives 等)来工作。买家侧的基础能力——幂等重放、oneOf 变体、异步 status:'submitted' 轮询、基于 adcp_error.issues[] 的错误恢复——位于 call-adcp-agent 技能中;本技能仅覆盖各任务的具体语义。
主要能力
Media Buy Protocol 提供以下标准化任务:
- list_products:读取匹配的报价,无需卖方策展,约 1-5 秒
- request_proposals:请求卖方撰写的草案计划,约 60 秒或异步
- refine_proposals:修订草案,或将未变更条款最终化为库存预留,约 60 秒或异步
- decline_proposals:记录买方终止处置,约 1-5 秒
- accept_proposal:接受已最终化的提案,生成 MediaBuy,耗时数分钟至数天
- get_products:使用 3.x 兼容门面进行发现和提案,约 60 秒
- get_adcp_capabilities:查看代理能力、支持的协议和发布商属性,约 1 秒
- create_media_buy:创建直接购买或使用 3.x 提案适配器,耗时数分钟至数天
- update_media_buy:修改广告活动,耗时数分钟至数天
- get_media_buys:获取广告活动状态,约 1-5 秒
- sync_creatives:上传创意素材,耗时数分钟至数天
- sync_catalogs:同步产品 feed 和目录,耗时数分钟至数天
- list_creatives:查询创意库,约 1 秒
- get_media_buy_delivery:获取性能数据,约 60 秒
- provide_performance_feedback:与发布商共享结果,约 1-5 秒
典型工作流
- 发现产品:使用 list_products,或携带 brief 的 request_proposals
- 验证报价:检查 formats、pricing、forecast、overlay_support 以及任何 targeting_resolution
- 谈判并预留:按需修订草案,然后在不变更条款的情况下最终化
- 接受或拒绝:对持有的快照调用 accept_proposal,或在买方停止推进时调用 decline_proposals
- 上传创意:使用 sync_creatives 添加创意素材
- 监控投放:使用 get_media_buy_delivery 跟踪性能
规范化格式(AdCP 3.2)
产品携带 format_options[]:一组 ProductFormatDeclaration 条目,描述产品接受的创意形态。每条声明包含 format_kind(15 种规范化格式之一,如 image、html5、display_tag、image_carousel、video_hosted、video_vast、audio_hosted、audio_vast、audio_daast、sponsored_placement、native_in_feed、responsive_creative、agent_placement、seller_rendered_stateful_display、coordinated_placements;custom 仅与 format_shape 和 format_schema 配合使用)、params(按规范化格式收窄的参数字段)、可选的 format_option_id、可选的 v1_format_ref、可选的 seller_preference。
多格式产品:一个灵活的发布商广告位是一个产品带 N 个 format_options 条目。尺寸灵活性:展示类规范化格式以三种模式之一声明尺寸:fixed、multi-size、responsive,三种模式互斥。
发现发布商目录:调用 GET https://agenticadvertising.org/api/registry/publisher?domain=<publisher_domain>,可添加 &include=placements。不要从卖方的产品目录推断发布商权限。卖方特定的可投放性来自该卖方的 Product.format_options[]。
转化跟踪位于别处:像素触发、转化事件和归因属于 sync_event_sources / event_log(按活动范围),而非创意格式声明。
特定于规范化格式的错误码:FORMAT_PROJECTION_FAILED、FORMAT_DECLARATION_DIVERGENT、FORMAT_DECLARATION_V1_AMBIGUOUS、FORMAT_CAPABILITY_UNRESOLVED、FORMAT_DECLARATION_V1_LOSSY_MULTI_SIZE——均为通过 response errors[] 数组呈现的非致命提示。
使用方式与任务要点
get_products
发现可购买的产品配置。按含义选择请求面:brief(目标、上下文、语义受众意图、偏好与要求)、filters(硬性报价过滤器)、targeting_overlay(当前已知的精确投放约束)、required_overlay_support(后续将在 package 上独立选择的定向维度)。只要存在结构化字段就优先使用结构化字段。返回包含 products 数组、overlay_support、targeting_resolution.modifications 和 targeting_resolution.brief_targeting。将 product_id 视为该配置报价的不透明标识。
create_media_buy
从选定的产品创建广告活动。请求包含 brand(必填)、packages(必填,含 product_id、pricing_option_id、budget、bid_price、targeting_overlay、creative_ids 或 creatives)、start_time(必填)、end_time(必填)。响应包含 media_buy_id、status(pending_creatives、pending_start 或 active)以及 packages。
update_media_buy
修改现有广告活动。请求包含 media_buy_id(必填)、updates(budget_change、end_time、status、targeting 等)。
sync_catalogs
将产品目录、门店位置、职位发布等结构化 feed 同步到卖方账户。支持内联条目或外部 feed URL。无 catalogs 调用时返回现有目录(发现模式)。type 值包括 offering、product、inventory、store、promotion、hotel、flight、job、vehicle、real_estate、education、destination、app。
sync_creatives
上传和管理创意素材。请求包含 creatives 数组(含 creative_id、format_kind、format_option_ref、assets)、assignments(将 creative_id 映射到 package ID)、dry_run、delete_missing。
list_creatives
使用过滤条件查询创意库。
get_media_buys
获取媒体购买状态:status、valid_actions、创意审批、待处理格式,以及可选的投放快照或修订历史。
关系范围内的指标
在查询指标前,先读取 get_adcp_capabilities.media_buy.supported_indicator_types。指标可出现在三个层级:buy、package、assignment。指标被省略表示未知;存在数组时要求 indicator_types_evaluated 和 indicators_as_of。创意库卖方在 relationship_notifications.projection_tasks 中声明 list_creatives。所有卖方都通过 get_media_buys 进行修复。
组合发现:调用 list_creatives 时使用 filters.indicator_types、include_assignments: true、assignment_projection: "matching"、有界的 assignment_limit、fields: ["creative_id", "assignments"] 以及游标分页。检查 assignments_truncated。切勿仅凭过滤后消失或失败来清除状态。
适用场景与限制
该技能适用于需要以程序化方式与广告销售代理交互、执行媒体购买协议、管理广告活动生命周期、同步创意与目录以及跟踪投放的买方或代理工作流。
部分 3.2 定向感知字段仅在卖方提供 AdCP 3.2+ 且已安装 SDK 暴露 3.2 schema 时可用。缺少版本精度声明、3.1 或更早的结果、或仅主版本声明,均不构成支持的证据:应省略 3.2 字段并使用旧版定向过滤器或显式 brief 文字。不要通过发送未知字段来探测,因为旧版开放 schema 可能接受并忽略它们。
其余未在资料中说明的功能、收费、价格、平台或效果暂未提供。