← 返回
未分类

腾讯广告投放-更新广告

营销单元(原广告)/智投项目通用更新。支持修改营销单元或智投项目的多个字段(名称、日期、定向、时段、出价、预算、状态、深度转化、一键起量、创意增强等),支持单个营销单元/项目更新和多账号多营销单元/项目批量更新。
营销单元(原广告)/智投项目通用更新。支持修改营销单元或智投项目的多个字段(名称、日期、定向、时段、出价、预算、状态、深度转化、一键起量、创意增强等),支持单个营销单元/项目更新和多账号多营销单元/项目批量更新。
zxduan(段宗响)
未分类 community v0.5.5 3 版本 99719.4 Key: 无需
★ 0
Stars
📥 1,777
下载
💾 7
安装
3
版本
#latest

概述

广告/智投项目通用更新(Adgroup General Update)

单广告(或智投项目)多字段通用更新技能,支持一次调用中同时修改广告或智投项目的多个属性。使用腾讯广告同步 adgroups/update API。

适用场景:当用户需要修改广告或智投项目的出价、预算、定向、名称、日期、时段、状态、深度转化、一键起量、创意增强等属性时,使用本技能。

> 版本说明:本技能支持两种模式:

> - 单广告/项目更新update-adgroup-general.mjs,适用于单账号单个广告或智投项目的精细操作。

> - 批量更新update-adgroup-batch.mjs,适用于多账号多个广告/智投项目的异构字段批量操作(每个广告/项目可更新不同的字段组合)。


SOP 决策流程

脚本选择

场景使用脚本说明
----------------------
单账号单个广告/项目update-adgroup-general.mjs精细操作,详细日志
多个广告/项目(同/跨账号)update-adgroup-batch.mjs批量操作,每个广告/项目可更新不同字段

选择规则

  • 用户明确指定了 1 个广告或智投项目 -> 用 general
  • 用户指定了 2 个及以上广告/智投项目 -> 用 batch
  • 用户说"所有广告"/"全部广告"/"所有项目"/"全部项目" -> 先查询列表,然后用 batch

单广告/项目流程

步骤1                步骤2                  步骤3               步骤4           步骤5
意图识别  ─────→    参数构造    ─────→    执行脚本   ─────→   回查验证  ─────→  反思比对
是否使用本SKILL      account_id             update-adgroup-      脚本自动       Agent 对比
                     adgroup_id             general.mjs          回查           _verify 数据
                     + 更新字段             (智投项目同用)                       与用户预期

批量更新流程

步骤1                步骤2                  步骤3               步骤4           步骤5
意图识别  ─────→    参数构造    ─────→    执行脚本   ─────→   汇总回查  ─────→  反思比对
多广告/项目           构造 tasks 数组        update-adgroup-      脚本自动       Agent 对比
更新意图              每个 task 含             batch.mjs           批量回查       每个广告/项目
                     account_id +                                              的 _verify 数据
                     adgroup_id +
                     各自的更新字段

步骤 1:意图识别

当用户表达以下意图时,激活本 Skill:

用户意图示例说明
-------------------
"帮我把广告X的出价改为120元"单字段更新(绝对值)
"把广告X的预算调整为600元,出价改为50元"多字段更新(绝对值)
"广告X的出价下调10%" / "出价降低10%"出价百分比调整(用 bid_amount_adjustment: "-10%")
"广告X的预算提高2倍" / "预算翻倍"预算倍数调整(用 daily_budget_adjustment: "*2")
"广告X出价加0.5元"出价加减调整(用 bid_amount_adjustment: "+50",即加50分)
"帮我把广告X的定向改为不限"定向更新
"把广告X的名称改为ABC"名称更新
"暂停广告X" / "启用广告X"状态更新
"帮我把广告X的投放时段改为工作日9-18点"时段更新
"开启广告X的一键起量,预算500元"一键起量开启
"关闭广告X的一键起量"一键起量关闭(用 auto_acquisition_enabled: false)
"广告X的起量预算改为500元"一键起量已开启时调整预算绝对值(用 auto_acquisition_budget: 50000,即500元=50000分),脚本内部自动先关后开
"广告X的起量预算提升10%" / "起量预算增加200元"一键起量已开启时相对调整(用 auto_acquisition_budget_adjustment: "+10%""+20000",即加20000分),与 auto_acquisition_budget 二选一
"关闭广告X的创意增强"创意增强关闭
"开启广告X的创意增强,偏好AIGC"创意增强开启+偏好(用 auto_derived_creative_enabled: true + auto_derived_creative_method_type_list)
"把广告X的深度出价改为30元"深度转化出价绝对值
"广告X的深度出价下调15%"深度转化出价相对调整(用 deep_conversion_behavior_bid_adjustment: "-15%")
"广告X的ROI系数改为1.5"ROI系数绝对值(用 deep_conversion_worth_rate: 1.5)
"广告X的ROI上升10%"ROI系数相对调整(用 deep_conversion_worth_rate_adjustment: "+10%",百分比与用户表述一致)
"帮我把广告A和广告B的出价都调到50元"批量更新:用 update-adgroup-batch.mjs,tasks 包含两个广告,各自 bid_amount: 5000(50元=5000分)
"把这3个广告全部暂停"批量更新:用 update-adgroup-batch.mjs,tasks 各自 configured_status: "AD_STATUS_SUSPEND"
"广告A出价加10%,广告B预算改500,广告C暂停"异构批量更新:用 update-adgroup-batch.mjs,每个 task 更新不同字段
"帮我把项目X的出价改为120元"智投项目单字段更新(智投项目 ID 等同于 adgroup_id)
"暂停项目X" / "启用项目X"智投项目状态更新
"把这3个智投项目全部暂停"批量更新:用 update-adgroup-batch.mjs,tasks 各自 configured_status: "AD_STATUS_SUSPEND"
"项目X的预算调到800元,出价改为60元"智投项目多字段更新

步骤 2:参数构造

根据广告/智投项目数量选择对应模式(智投项目 ID 等同于 adgroup_id,参数构造方式完全一致):

单个更新(1 个广告或智投项目):

  • account_id:必填,广告主账号 ID
  • adgroup_id:必填,广告 ID 或智投项目 ID
  • 至少一个更新字段(见下方字段列表)

批量更新(2 个及以上广告/智投项目):

  • tasks:必填,数组,每个元素包含 account_idadgroup_id(广告 ID 或智投项目 ID)和要更新的字段
  • 每个 task 可更新完全不同的字段组合(异构批量)

步骤 3:执行脚本

单广告更新

node scripts/update-adgroup-general.mjs '<JSON参数>'

批量更新

node scripts/update-adgroup-batch.mjs '<JSON参数>'

步骤 4:回查验证

脚本执行后会自动输出 _verify 回查数据,包含广告更新后的实际字段值。

步骤 5:反思比对

Agent 必须基于 _verify 回查数据进行反思比对:

  1. 对比 _verify.adgroup 中的实际值与用户的修改预期
  2. 重点检查金额字段(API 返回分,用户期望元):如 bid_amount 12050 分 = 120.50 元
  3. 如有不一致,明确告知用户哪些字段未达预期
  4. 如回查失败,提醒用户手动确认

支持的更新字段

> ⚠️ 重要:智投项目和标准广告支持的字段不同,使用前请确认广告类型。脚本内置的前置查询 adgroups/get 会返回 smart_delivery_platform 字段——有该字段(且非 SMART_DELIVERY_PLATFORM_EDITION_STANDARD)即为智投项目,否则为标准广告。

公共字段(标准广告 + 智投项目均可用)

字段类型说明单位/格式
-----------------------------
adgroup_namestring广告/项目名称最大 120 等宽字符(中文=2,英文=1)
begin_datestring开始投放日期YYYY-MM-DD
end_datestring结束投放日期YYYY-MM-DD,空串=长期投放
delivery_time_rangesstring[]投放时段"Monday 09:00~18:00" 或 ["all"]
first_day_begin_timestring首日开始投放时间HH:MM:SS(默认 00:00:00)
bid_amountnumber出价(绝对值)(如 120.50元 → 12050)
bid_amount_adjustmentstring出价相对调整(与 bid_amount 二选一)表达式,如 "+20%"、"-10%"、"*2"、"+50"(加50分)
daily_budgetnumber日预算(绝对值)(0=不限,范围 5000~400,000,000)
daily_budget_adjustmentstring日预算相对调整(与 daily_budget 二选一)表达式,如 "+30%"、"*1.5"、"-10000"(减10000分)
configured_statusstring广告/项目状态AD_STATUS_NORMAL / AD_STATUS_SUSPEND
targetingobject定向设置传空对象 {} = 不限定向(智投可设置维度因场景不同,详见智投文档)
deep_conversion_behavior_bidnumber深度优化行为出价(绝对值)(如 50元 → 5000)
deep_conversion_behavior_bid_adjustmentstring深度优化行为出价相对调整表达式,如 "+15%"、"*0.8"
deep_conversion_worth_ratenumber深度优化期望ROI系数(绝对值)无单位,范围 0.001~1000
deep_conversion_worth_rate_adjustmentstring深度优化期望ROI系数相对调整表达式,如 "+10%"、"-5%"、"*1.2"、"+0.5"
auto_derived_creative_enabledboolean创意衍生开关true/false;开启时脚本自动查询可用衍生方式
auto_derived_creative_method_type_liststring[]创意衍生偏好(开启时可选)不传则自动使用默认推荐项
poi_listarray门店 ID 列表数组,传 [] 表示清空

仅标准广告可用字段

字段类型说明单位/格式
-----------------------------
auto_acquisition_enabledboolean一键起量开关(⚠️ 智投项目禁用)true/false
auto_acquisition_budgetnumber一键起量预算(绝对值)(范围 20000~10,000,000,即 200~100,000 元)
auto_acquisition_budget_adjustmentstring一键起量预算相对调整表达式,如 "+10%"、"-20%"、"+100";仅已开启时可用
re_open_auto_acquisitionnumber重新开启一键起量1 = 重新开启
rta_idstringRTA 策略 ID字符串,直接透传给 API
rta_target_idstringRTA 目标 ID字符串,直接透传给 API
aoi_optimization_strategystringAOI优化策略开关"AOI_OPTIMIZATION_STRATEGY_ENABLED" / "AOI_OPTIMIZATION_STRATEGY_DISABLED"
industry_value_exploreobject行业探索配置{"high_volume_exploration": true}

仅智投项目可用字段

字段类型说明单位/格式
-----------------------------
bid_adjustmentobject分版位出价格式 {"site_set_package": [{"site_set": ["SITE_SET_MOMENTS"], "bid_coefficient": 1.5, "deep_bid_coefficient": 1.5}]}
smart_delivery_aigc_creativeobject智投AIGC创意{"is_open": true, "supply_strategy_type": ["SUPPLY_STRATEGY_TYPE_AIGC"]}
smart_delivery_history_comp_reused_creativeobject全库智选{"is_open": true} / {"is_open": false}

> 金额字段统一使用分:bid_amount、daily_budget、deep_conversion_behavior_bid、auto_acquisition_budget 单位均为,与腾讯广告 API 及其他 skill(创建、查询、账户更新)保持一致。Agent 需将用户表达的元乘以 100 转为分后传入(如"1000元" → 100000)。

> deep_conversion_worth_rate 是比率,不是金额,不做转换。

> 相对调整表达式:4 个金额字段(bid_amount、daily_budget、deep_conversion_behavior_bid、auto_acquisition_budget)和 1 个比率字段(deep_conversion_worth_rate)均支持 _adjustment 伴随字段,用于基于当前值做相对调整(与绝对值字段二选一)。支持的格式:"+20%"(增加百分比)、"-10%"(减少百分比)、"*2"(乘以倍数)、"+50"(加 50 分)、"-30"(减 30 分)。调整后仍需满足各字段的范围约束。当前值为 0 时不支持相对调整。注意:auto_acquisition_budget_adjustment 仅在一键起量已开启时可用,新开启时必须使用 auto_acquisition_budget 传入绝对值。

定向更新 SOP(targeting 字段详细指引)

当用户要求修改广告定向时,按照以下流程构造 targeting 对象。

> 脚本已内置 resolveTargetingFields 枚举自动匹配,支持传入简化值(如 "本科""4G""ANDROID_10+"),脚本自动转为 API 标准枚举。

定向查询触发规则

命中任一项就必须先调用 get-targeting-lookup.mjs 查编码

  • 用户给了地域、省市区、常驻地 → type: "geo"
  • 用户给了设备品牌 / 型号 → type: "device"
# 地域编码查询(支持批量,keyword 用空格分隔)
node scripts/get-targeting-lookup.mjs '{"type":"geo","keyword":"北京 上海 广东"}'

# 设备品牌型号 ID 查询
node scripts/get-targeting-lookup.mjs '{"type":"device","keyword":"华为"}'

不需要调用 get-targeting-lookup.mjs 的定向维度(脚本自动匹配枚举)

  • 性别:直接用 ["MALE"] / ["FEMALE"] / 不传
  • 年龄:直接用 [{"min":25,"max":29}, {"min":30,"max":39}] 格式的数组。minmax 均为闭区间(包含边界值),按用户原始区间构造,不要合并连续段
  • 操作系统user_os):传 ["IOS"] / ["ANDROID"](全版本),或用简化格式如 ["ANDROID_10+"] 表示 Android 10 及以上,脚本自动展开为版本列表
  • 排除操作系统excluded_os):同 user_os 的简化格式,也支持 WINDOWSHARMONY 等直接枚举
  • 联网方式network_type):传 ["WIFI"]["4G"]["5G"],脚本自动匹配为 API 枚举(如 4GNET_4G
  • 学历education):传中文即可,如 ["本科", "硕士"],脚本自动匹配为 API 枚举(如 本科BACHELOR
  • 设备价格device_price):传简化描述即可,如 ["2500以上"]["1500-3500"],脚本自动展开为对应的价格区间枚举
  • 微信广告行为wechat_ad_behavior):传中文即可,脚本自动匹配为 API 枚举
  • 排除已转化:通过枚举查询后构造

枚举查询

# 查询单个/多个字段的枚举
node scripts/get-enum-options.mjs '{"fields":["education","device_price","network_type","user_os"]}'

# 按分类查询所有定向相关枚举
node scripts/get-enum-options.mjs '{"category":"targeting"}'

只有在以下情况才可跳过定向查询:用户完全没有给任何地域或设备定向约束。

> 通投(不限定向)时传 targeting: {}(空对象)

完整定向维度对照表

定向维度targeting 子字段说明获取方式
-------------------------------------------
地域geo_location.regions + geo_location.location_typesregions 通过地域查询获取;location_types 常见值 LIVE_IN(常住)get-targeting-lookup.mjs type:geo + 枚举查询
性别gender["MALE"] / ["FEMALE"]直接构造
年龄age[{"min":25,"max":29}](闭区间,不要合并连续段)直接构造
操作系统user_os支持简化格式如 ["ANDROID_10+"],脚本自动展开查枚举后直接构造
排除操作系统excluded_osuser_os 简化格式查枚举后直接构造
学历education传中文如 ["本科", "硕士"],脚本自动匹配枚举脚本自动匹配
婚恋状态marital_status枚举查询查枚举后直接构造
联网方式network_type["4G"]["5G"],脚本自动匹配枚举脚本自动匹配
设备价格device_price["2500以上"],脚本自动展开为价格区间枚举脚本自动匹配
设备品牌型号device_brand_model必须使用数字 ID,格式 {"included_list": [1,5], "excluded_list": []}get-targeting-lookup.mjs type:device
应用安装状态app_install_status仅推广 APP 时可用查枚举后直接构造
游戏消费能力game_consumption_level枚举查询查枚举后直接构造
兴趣分类interest_category_id_list兴趣分类 ID 列表通过 tencentads-targeting 获取
兴趣关键词interest_keyword_id_list兴趣关键词 ID 列表通过 tencentads-targeting 获取
行为分类behavior_category_id_list行为分类 ID 列表通过 tencentads-targeting 获取
行为关键词behavior_keyword_id_list行为关键词 ID 列表通过 tencentads-targeting 获取
自定义人群custom_audience人群包 ID 列表用户提供
排除人群excluded_custom_audience排除的人群包 ID用户提供
排除已转化excluded_converted_audience见下方格式说明查枚举后直接构造
微信广告行为wechat_ad_behavior见下方格式说明脚本自动匹配

excluded_converted_audience 格式(仅在用户明确提到"排除已转化"时才添加,禁止自行添加):

{
  "excluded_dimension": "<通过 get-enum-options.mjs 查 excluded_dimension>",
  "excluded_day": "<通过 get-enum-options.mjs 查 excluded_day>"
}

wechat_ad_behavior 格式(仅在用户明确提到微信广告行为定向/排除时才添加,禁止自行添加):

正向定向(actions):用户说"定向已关注公众号的用户"等;排除行为(excluded_actions):用户说"排除已关注公众号的用户"等。枚举分别通过 get-enum-options.mjs '{"fields":["wechat_ad_behavior_actions"]}''{"fields":["wechat_ad_behavior_excluded_actions"]}' 查询。

"wechat_ad_behavior": {
  "actions": ["GDT_WECHAT_OFFICIAL_ACCOUNT_FOLLOWED"],
  "wechat_official_account_id": ["wx18c408376c727a19"]
}
"wechat_ad_behavior": {
  "excluded_actions": ["GDT_WECHAT_OFFICIAL_ACCOUNT_FOLLOWED"],
  "wechat_official_account_id": ["wx18c408376c727a19"]
}
  • 涉及公众号行为时,需同时传 wechat_official_account_id(用户给的公众号 ID)
  • 涉及企业微信行为时,需同时传 corp_id

定向更新示例

示例 A:修改定向为北京+上海,25-45岁男性(需要先查地域编码)

# 步骤1:查地域编码
node scripts/get-targeting-lookup.mjs '{"type":"geo","keyword":"北京 上海"}'
# 返回 110000(北京)、310000(上海)

# 步骤2:构造 targeting 并更新
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"targeting":{"geo_location":{"location_types":["LIVE_IN"],"regions":[110000,310000]},"age":[{"min":25,"max":45}],"gender":["MALE"]}}'

示例 B:修改定向为本科以上、4G+5G、Android 10+(无需查编码,脚本自动匹配)

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"targeting":{"education":["本科","硕士","博士"],"network_type":["4G","5G"],"user_os":["ANDROID_10+"]}}'

示例 C:修改定向为不限(通投)

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"targeting":{}}'

示例 D:修改定向为指定设备品牌(苹果+华为)(需先查设备 ID)

# 步骤1:查设备品牌 ID
node scripts/get-targeting-lookup.mjs '{"type":"device","keyword":"苹果 华为"}'
# 返回 苹果=1, 华为=5

# 步骤2:构造 targeting 并更新(注意 device_brand_model 的嵌套格式)
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"targeting":{"device_brand_model":{"included_list":[1,5],"excluded_list":[]}}}'

定向强约束

  • 命中触发规则后,必须先调用 get-targeting-lookup.mjs 获取编码,再构造 targeting
  • 不要把自然语言直接翻成粗粒度占位值
  • 所有枚举值禁止凭记忆猜测,必须通过 get-enum-options.mjs 查询确认
  • targeting 中不能包含不可修改的字段(脚本会拦截):marketing_goal、marketing_sub_goal、marketing_target_type、marketing_carrier_type、marketing_asset_id、marketing_asset_outer_spec、subordinate_product_id、asset_name、site_set、bid_mode、optimization_goal

不支持修改的字段(创建时绑定)

以下字段在广告/智投项目创建后不可修改,如果用户要求修改这些字段,应建议到投放端手动操作或删除重建:

  • marketing_goal / marketing_sub_goal(营销目的)
  • marketing_target_type / marketing_carrier_type(推广产品/载体类型)
  • marketing_asset_id / marketing_asset_outer_spec(推广产品)
  • bid_mode / optimization_goal(出价方式/优化目标)
  • site_set(版位)
  • conversion_id(转化 ID)

脚本调用示例

示例 1:修改出价

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"bid_amount":12050}'

示例 2:同时修改出价和预算

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"bid_amount":12050,"daily_budget":60000}'

示例 3:修改定向为不限

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"targeting":{}}'

示例 3b:修改定向(地域+年龄+学历+联网方式)

> 地域编码需先通过 get-targeting-lookup.mjs 查询;学历和联网方式可直接传简化值,脚本自动匹配为 API 枚举。

# 先查地域编码
node scripts/get-targeting-lookup.mjs '{"type":"geo","keyword":"北京 上海 广州"}'
# 返回 110000, 310000, 440100

# 再执行更新
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"targeting":{"geo_location":{"location_types":["LIVE_IN"],"regions":[110000,310000,440100]},"age":[{"min":25,"max":45}],"education":["本科","硕士"],"network_type":["4G","5G"]}}'

示例 4:暂停广告

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"configured_status":"AD_STATUS_SUSPEND"}'

示例 5:开启一键起量

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"auto_acquisition_enabled":true,"auto_acquisition_budget":50000}'

示例 6:修改投放时段(工作日 9:00-18:00)

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"delivery_time_ranges":["Monday 09:00~18:00","Tuesday 09:00~18:00","Wednesday 09:00~18:00","Thursday 09:00~18:00","Friday 09:00~18:00"]}'

示例 6b:修改投放时段并指定首日开始时间

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"delivery_time_ranges":["Monday 09:00~18:00","Tuesday 09:00~18:00","Wednesday 09:00~18:00","Thursday 09:00~18:00","Friday 09:00~18:00"],"first_day_begin_time":"09:00:00"}'

示例 6c:仅修改首日开始时间(无需同时传投放时段)

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"first_day_begin_time":"11:00:00"}'

示例 7:多字段同时更新

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"adgroup_name":"Q2-电商-促销活动","bid_amount":8000,"daily_budget":100000,"begin_date":"2026-04-15","end_date":"2026-05-15","targeting":{"geo_location":{"location_types":["LIVE_IN"],"regions":[110000,310000,440100]},"age":[{"min":25,"max":45}]}}'

示例 8:出价下调 10%

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"bid_amount_adjustment":"-10%"}'

示例 9:预算翻倍

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"daily_budget_adjustment":"*2"}'

示例 10:出价加 0.5 元,预算增加 30%

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"bid_amount_adjustment":"+50","daily_budget_adjustment":"+30%"}'

示例 11:深度优化行为出价设为 30 元

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"deep_conversion_behavior_bid":3000}'

示例 12:深度优化行为出价下调 15%

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"deep_conversion_behavior_bid_adjustment":"-15%"}'

示例 13:深度优化期望ROI系数设为 1.5

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"deep_conversion_worth_rate":1.5}'

示例 14:深度优化期望ROI系数上调 10%

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"deep_conversion_worth_rate_adjustment":"+10%"}'

示例 15:关闭一键起量

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"auto_acquisition_enabled":false}'

示例 16:一键起量已开启时调整起量预算

> 用户说"起量预算改为500元",当前一键起量已开启。

> 直接传入新的 auto_acquisition_budget(单位:分,500元=50000分)即可,脚本内部自动完成"先关闭再用新预算重新开启"的流程。

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"auto_acquisition_budget":50000}'

示例 16a:一键起量已开启时用相对表达式调整起量预算

> 用户说"起量预算上调10%",当前一键起量已开启。

> 传入 auto_acquisition_budget_adjustment 表达式即可,脚本自动基于当前值计算目标绝对值,再执行先关后开流程。

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"auto_acquisition_budget_adjustment":"+10%"}'

示例 17:开启创意衍生(自动使用推荐衍生方式)

> 只需传 auto_derived_creative_enabled: true,脚本自动查询 muse_derive_switch_info/get 获取可用衍生方式并使用默认推荐项。

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"auto_derived_creative_enabled":true}'

示例 18:开启创意衍生并指定衍生方式

> 显式指定衍生方式列表,脚本会校验每项是否对该广告可用。

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"auto_derived_creative_enabled":true,"auto_derived_creative_method_type_list":["AUTO_DERIVED_CREATIVE_METHOD_TYPE_OUTPAINTING","AUTO_DERIVED_CREATIVE_METHOD_TYPE_TEMPLATE"]}'

示例 19:关闭创意衍生

node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"auto_derived_creative_enabled":false}'

注意事项

  1. targeting 中不能包含非法字段:完整清单见上方"定向强约束"章节,脚本会拦截报错。
  1. targeting 枚举自动匹配:脚本内置枚举简化值自动转换,详见上方"定向更新 SOP"章节。
  1. 定向辅助脚本get-targeting-lookup.mjsget-enum-options.mjs 在本 skill 的 scripts/ 目录下可直接调用(软链接指向共享实现)。
  1. first_day_begin_time 交叉校验:与 delivery_time_ranges 同时传入时脚本会校验首日时间槽是否在投放范围内,不兼容则报错。重要:用户未明确要求修改 first_day_begin_time 时,禁止自行添加该参数——多传会触发 API 对 begin_date 的连带校验,导致已投放广告更新失败。
  1. 无变化字段自动跳过:脚本会先查询广告当前值,如果某字段的目标值与当前值一致,该字段会被跳过(不调用更新 API),输出中会列出 skipped_fields。
  1. 广告存在性校验:脚本执行前会先查询广告是否存在、是否已删除。如果广告不存在或已删除,直接报错不调用更新 API。
  1. 搜索广告拦截:当前版本暂不支持搜索广告更新操作,脚本执行前会检查广告的 site_set 是否包含搜索版位(SITE_SET_WECHAT_SEARCHSITE_SET_QBSEARCHSITE_SET_SEARCH_MOBILE_UNION)。如果是搜索广告,脚本会直接报错并输出 is_search_ad: true 标识,不调用更新 API。
  1. 一键起量编辑规则
    • 智投项目不支持使用一键起量:如果目标广告是智投项目,不允许执行一键起量的开启、关闭或预算调整操作。应直接拒绝并告知用户:「智投项目不支持使用一键起量功能,一键起量仅适用于标准投放广告。」
    • 新开启(当前关闭 -> enabled=true):必须同时设置 auto_acquisition_budget,传入绝对值(分)
    • 新关闭(当前开启 -> enabled=false):不可同时设置 budget
    • 已开启时调整 budget:传入 auto_acquisition_budget(绝对值,分)或 auto_acquisition_budget_adjustment(相对表达式,如 "+10%"、"+20000")均可,脚本内部自动完成先关闭再用新预算重新开启的流程(见示例 16、16a)。
    • 已关闭时:不可单独调整 budget(如需设置请同时传 auto_acquisition_enabled: true
  1. 创意衍生编辑规则
    • 开启(enabled=true):脚本自动查询 muse_derive_switch_info/get 获取可用衍生方式。若广告不支持衍生(API 返回 show_derive_method=false 且无可用方式),脚本报错。可选传入 auto_derived_creative_method_type_list 指定偏好,不传则使用默认推荐。
    • 关闭(enabled=false):直接关闭,无需传 method_type_list
    • 仅更新偏好:不传 enabled,仅传 auto_derived_creative_method_type_list 可单独更新衍生偏好(不校验可用性,适用于已知合法值的场景)
    • 支持中文别名自动解析:如 ["AI模板", "扩图"] 自动转换为标准枚举 key

批量更新脚本(update-adgroup-batch.mjs)

多账号多广告/智投项目异构字段批量更新,每个广告/项目可更新完全不同的字段组合。

适用场景

  • 用户需要同时修改 2 个及以上广告或智投项目
  • 不同广告/项目需要更新不同的字段(异构)
  • 跨账号批量操作

入参格式

{
  "tasks": [
    { "account_id": 123, "adgroup_id": "111", "bid_amount": 12050 },
    { "account_id": 123, "adgroup_id": "222", "adgroup_name": "新名", "configured_status": "AD_STATUS_SUSPEND" },
    { "account_id": 456, "adgroup_id": "333", "bid_amount_adjustment": "+20%" }
  ]
}

每个 task 的格式与 update-adgroup-general.mjs 的入参完全一致(account_id + adgroup_id + 更新字段)。

约束

  • tasks 数组最多 50 个元素
  • 每个 task 必须包含 account_idadgroup_id
  • 每个 task 至少包含一个更新字段
  • 如果任何一个 task 格式不合法(缺少必填字段),整个批次会被拒绝(fast-fail)

执行流程

  1. 预校验所有 task 格式(fast-fail)
  2. account_id 分组
  3. 各账号并行处理:
    • 批量前置查询(同账号内一次 adgroups/get
    • 逐个广告串行:buildUpdateBody + adgroups/update
  4. 各账号并行回查验证
  5. 汇总输出所有结果

输出格式

{
  "total": 3,
  "success_count": 2,
  "fail_count": 1,
  "skip_count": 0,
  "message": "2 个成功,1 个失败,0 个跳过。请务必将失败详情告知用户",
  "results": [
    {
      "account_id": 123,
      "adgroup_id": 111,
      "success": true,
      "updated_fields": { "bid_amount": { "previous": 10000, "target": 12050, "unit": "fen" } },
      "message": "广告 111 更新成功: bid_amount 10000 -> 12050 分"
    },
    {
      "account_id": 456,
      "adgroup_id": 333,
      "success": false,
      "error": "bid_amount_adjustment: 当前出价为 0,无法进行相对调整,请使用 bid_amount 传入绝对值(单位:分)",
      "message": "广告 333 更新失败: ..."
    }
  ]
}

脚本调用示例

示例 B1:同账号多广告批量更新(相同字段)

node scripts/update-adgroup-batch.mjs '{"tasks":[{"account_id":12345678,"adgroup_id":111,"bid_amount":50},{"account_id":12345678,"adgroup_id":222,"bid_amount":50}]}'

示例 B2:同账号多广告异构更新(不同字段)

node scripts/update-adgroup-batch.mjs '{"tasks":[{"account_id":12345678,"adgroup_id":111,"bid_amount":50},{"account_id":12345678,"adgroup_id":222,"daily_budget":600,"configured_status":"AD_STATUS_SUSPEND"}]}'

示例 B3:跨账号批量更新

node scripts/update-adgroup-batch.mjs '{"tasks":[{"account_id":11111,"adgroup_id":111,"bid_amount_adjustment":"+10%"},{"account_id":22222,"adgroup_id":222,"bid_amount_adjustment":"+10%"}]}'

示例 B4:使用文件传参(参数较长时推荐)

node scripts/update-adgroup-batch.mjs --file /tmp/batch_params.json

部分成功场景的 Agent 行为

批量更新可能出现部分成功、部分失败的情况。Agent 必须:

  1. 逐条展示结果:遍历 results 数组,向用户说明每个广告的更新结果
  2. 重点关注失败项:失败广告的 errormessage 必须完整告知用户
  3. 检查 side_effects:如果失败结果中包含 side_effects 字段,必须告知用户已发生的副作用(如一键起量在调整预算时已被关闭但主更新失败)
  4. 回查比对:对成功的广告,基于 _verify 数据与用户期望对比
  5. 回查失败提醒:如果输出中包含 _verify_failed 的广告,提醒用户手动确认这些广告的更新结果

版本历史

共 3 个版本

  • v0.5.5 ●支持智投项目字段更新,字段按标准广告/智投项目分组,明确各自可用范围 ●新增可更新字段:一键起量、RTA 策略、AOI 优化策略、行业探索、智投开启/关闭AIGC创意、开启/关闭全库智选能力 当前
    2026-05-27 19:29 安全 安全
  • v0.5.1 1. 描述中"广告"→"营销单元(原广告)" 2. 金额单位统一为分
    2026-05-18 17:07 安全 安全
  • v0.5.0 Initial release
    2026-04-27 18:01 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

business-ops

Trello

steipete
使用 Trello REST API 管理看板、列表和卡片
★ 161 📥 41,109
ai-agent

腾讯广告投放-鉴权

u_3bbc67e2
腾讯营销(原腾讯广告)技能鉴权凭证管理技能,负责检查 APIKEY 是否有效,当腾讯营销(tencent-ads)系列技能返回认证错误时引导用户提供 APIKEY 并保存(⚠️重要提醒⚠️:腾讯营销 APIKEY 必须通过该技能保存),所有
★ 1 📥 1,910
business-ops

Calendar

ndcccccc
日历管理与日程安排。创建事件、管理会议,并实现多日历平台同步。
★ 7 📥 22,998