name: tencentads-delivery-standard-update description: 營銷單元(原廣告)/智投專案通用更新。支援修改營銷單元或智投專案的多個欄位(名稱、日期、定向、時段、出價、預算、狀態、深度轉化、一鍵起量、創意增強、週期達成等),支援單個營銷單元/專案更新和多賬號多營銷單元/專案批次更新。 license: MIT compatibility: any metadata: author: Tencent Ads Delivery Team version: "0.5.7" icon: megaphone category: tencent-ads
單廣告(或智投專案)多欄位通用更新技能,支援一次呼叫中同時修改廣告或智投專案的多個屬性。使用騰訊廣告同步 adgroups/update API。
適用場景:當用戶需要修改廣告或智投專案的出價、預算、定向、名稱、日期、時段、狀態、深度轉化、一鍵起量、創意增強、週期達成(週期預算/續投開關)等屬性時,使用本技能。
版本說明:本技能支援兩種模式: - 單廣告/專案更新:
update-adgroup-general.mjs,適用於單賬號單個廣告或智投專案的精細操作。 - 批次更新:update-adgroup-batch.mjs,適用於多賬號多個廣告/智投專案的異構欄位批次操作(每個廣告/專案可更新不同的欄位組合)。
| 場景 | 使用指令碼 | 說明 |
|---|---|---|
| 單賬號單個廣告/專案 | update-adgroup-general.mjs |
精細操作,詳細日誌 |
| 多個廣告/專案(同/跨賬號) | update-adgroup-batch.mjs |
批次操作,每個廣告/專案可更新不同欄位 |
選擇規則:
- 使用者明確指定了 1 個廣告或智投專案 -> 用 general
- 使用者指定了 2 個及以上廣告/智投專案 -> 用 batch
- 使用者說"所有廣告"/"全部廣告"/"所有專案"/"全部專案" -> 先查詢列表,然後用 batch
| 步驟 | 名稱 | 關鍵產物 |
|---|---|---|
| 1 | 意圖識別 | 是否使用本 SKILL |
| 2 | 引數構造 | account_id / adgroup_id / 更新欄位 |
| 3 | 更新前自檢 | 複述變更,等待使用者確認(金錢/狀態/定向欄位必走) |
| 4 | 執行指令碼 | update-adgroup-general.mjs(智投專案同用) |
| 5 | 回查驗證 | 指令碼自動回查 |
| 6 | 反思比對 | Agent 對比 _verify 資料與目標值 |
| 步驟 | 名稱 | 關鍵產物 |
|---|---|---|
| 1 | 意圖識別 | 多廣告/專案更新意圖 |
| 2 | 引數構造 | tasks 陣列,每條含 account_id / adgroup_id / 更新欄位 |
| 3 | 更新前自檢 | 列全量受影響,逐條複述+確認(tasks ≥ 2 必走) |
| 4 | 執行批次指令碼 | update-adgroup-batch.mjs |
| 5 | 彙總回查 | 指令碼自動批量回查 |
| 6 | 反思比對 | Agent 對比每個廣告/專案的 _verify 資料 |
當用戶表達以下意圖時,啟用本 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的智慧定向" / "廣告X不使用智慧定向" / "廣告X改為手動定向" | smart_targeting_mode → SMART_TARGETING_MANUAL |
| "開啟廣告X的智慧定向" / "廣告X使用智慧定向" | smart_targeting_mode → SMART_TARGETING_AUTO |
| "把廣告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元" | 智投專案多欄位更新 |
| "把專案X的週期預算提高到3000元" | 週期達成專案修改週期預算。詳見 references/smart-delivery-period-update.md |
| "專案X改為續投" / "開啟續投" | 週期達成專案修改續投開關。詳見 references/smart-delivery-period-update.md |
| "專案X關閉續投" / "不續投了" | 週期達成專案關閉續投。詳見 references/smart-delivery-period-update.md |
根據廣告/智投專案數量選擇對應模式(智投專案 ID 等同於 adgroup_id,引數構造方式完全一致):
單個更新(1 個廣告或智投專案):
- account_id:必填,廣告主賬號 ID
- adgroup_id:必填,廣告 ID 或智投專案 ID
- 至少一個更新欄位(見下方欄位列表)
批次更新(2 個及以上廣告/智投專案):
- tasks:必填,陣列,每個元素包含 account_id、adgroup_id(廣告 ID 或智投專案 ID)和要更新的欄位
- 每個 task 可更新完全不同的欄位組合(異構批次)
更新生效後會消耗預算並影響投放表現,出價/預算這類金錢欄位一旦寫錯可能在察覺前就產生不可挽回的扣費;定向寫錯也會燒錯錢(投到無關人群、誤變通投)。命中以下任一情況時,禁止直接執行指令碼,必須先向使用者複述變更,等待"確認/繼續/OK"等明確回覆後才能繼續:
bid_amount / daily_budget / deep_conversion_behavior_bid / deep_conversion_worth_rate / auto_acquisition_budget 及其 _adjustment 變體、bid_adjustment(分版位係數)configured_status(暫停立即停投、啟用立即開始消耗)targeting(任意子欄位都會觸發——子欄位是覆蓋式而非合併式,傳 {} 直接變通投)update-adgroup-batch.mjs 且 tasks ≥ 2(必須列出每條受影響的 account_id/adgroup_id 及變更摘要)複述要求:
_adjustment 表示式必須先取當前值算出絕對結果再展示,禁止只丟給使用者 "-10%"geo_location、age、custom_audience),並明確寫出"原值 → 新值"。特別警示兩類高危改動:(1) 子欄位被整體覆蓋(如原"北京+上海"傳"北京"會丟上海,要明確告知使用者);(2) targeting: {} 會清空全部定向變成通投,必須顯式向用戶確認"是否要改成不限定向"僅修改
adgroup_name/ 日期 / 時段 / 創意衍生 /poi_list等非金錢、非狀態、非定向欄位時可跳過本複述,但仍需完成下文「支援的更新欄位」表中的單位與範圍核對。
單廣告更新:
node scripts/update-adgroup-general.mjs '<JSON引數>'
批次更新:
node scripts/update-adgroup-batch.mjs '<JSON引數>'
與步驟 3 的區別:步驟 3 是「提交前」對照請求體確認意圖;本步是「提交後」對照騰訊返回的最新值確認 API 實際生效結果。
指令碼執行後會自動輸出 _verify 回查資料,包含廣告更新後的實際欄位值(單廣告在 adgroup,批次在 results[].data)。
⛔ 同時輸出的
summary_text欄位必須原樣陳列給使用者(含其中的換行)。該欄位已由指令碼拼裝好首行標題 + 多行列表的中文回執,覆蓋最新狀態、出價、日預算、定向、版位、投放時段、上線/暫停狀態等關鍵欄位。 - 允許:直接原文輸出 - 不允許:省略欄位、改動數值、自由翻譯列舉、合併成單段、改成表格 - 位置: - 單廣告:頂層summary_text- 批次:每條results[i].summary_text,並且回查彙總塊_verify.adgroups[].summary_text也有一份(兩處同源,逐條復讀即可) -summary_text不存在或為 null 時(回查失敗),按_verify_failed/_verify_error提示使用者手動確認
Agent 必須基於 _verify 回查資料進行反思比對:
1. 對比實際值與步驟 3 已被使用者確認的目標值
2. 金額欄位一律換算成元再比(API 返回分)
3. 如有不一致,明確告知使用者哪些欄位未達預期,並主動提示是否需要回滾(再次呼叫本 skill 改回原值)
4. 如回查失敗,提醒使用者手動確認
⚠️ 重要:智投專案和標準廣告支援的欄位不同,使用前請確認廣告型別。指令碼內建的前置查詢
adgroups/get會返回smart_delivery_platform欄位——有該欄位(且非SMART_DELIVERY_PLATFORM_EDITION_STANDARD)即為智投專案,否則為標準廣告。
| 欄位 | 型別 | 說明 | 單位/格式 |
|---|---|---|---|
adgroup_name |
string | 廣告/專案名稱 | 最大 120 等寬字元(中文=2,英文=1) |
begin_date |
string | 開始投放日期 | YYYY-MM-DD |
end_date |
string | 結束投放日期 | YYYY-MM-DD,空串=長期投放 |
delivery_time_ranges |
string[] | 投放時段 | "Monday 09:00~18:00" 或 ["all"] |
first_day_begin_time |
string | 首日開始投放時間 | HH:MM:SS(預設 00:00:00) |
bid_amount |
number | 出價(絕對值) | 分(如 120.50元 → 12050) |
bid_amount_adjustment |
string | 出價相對調整(與 bid_amount 二選一) | 表示式,如 "+20%"、"-10%"、"*2"、"+50"(加50分) |
daily_budget |
number | 日預算(絕對值) | 分(0=不限,範圍 5000~400,000,000) |
daily_budget_adjustment |
string | 日預算相對調整(與 daily_budget 二選一) | 表示式,如 "+30%"、"*1.5"、"-10000"(減10000分) |
configured_status |
string | 廣告/專案狀態 | AD_STATUS_NORMAL / AD_STATUS_SUSPEND |
targeting |
object | 定向設定 | 傳空物件 {} = 不限定向(智投可設定維度因場景不同,詳見智投文件) |
smart_targeting_mode |
string | 智慧定向模式。SMART_TARGETING_MANUAL(手動定向)=不使用/關閉智慧定向,SMART_TARGETING_AUTO(智慧定向)=開啟/使用智慧定向 |
字串列舉 |
deep_conversion_behavior_bid |
number | 深度最佳化行為出價(絕對值) | 分(如 50元 → 5000) |
deep_conversion_behavior_bid_adjustment |
string | 深度最佳化行為出價相對調整 | 表示式,如 "+15%"、"*0.8" |
deep_conversion_worth_rate |
number | 深度最佳化期望ROI係數(絕對值) | 無單位,範圍 0.001~1000 |
deep_conversion_worth_rate_adjustment |
string | 深度最佳化期望ROI係數相對調整 | 表示式,如 "+10%"、"-5%"、"*1.2"、"+0.5" |
auto_derived_creative_enabled |
boolean | 創意衍生開關 | true/false;開啟時指令碼自動查詢可用衍生方式 |
auto_derived_creative_method_type_list |
string[] | 創意衍生偏好(開啟時可選) | 不傳則自動使用預設推薦項 |
poi_list |
array | 門店 ID 列表 | 陣列,傳 [] 表示清空 |
| 欄位 | 型別 | 說明 | 單位/格式 |
|---|---|---|---|
auto_acquisition_enabled |
boolean | 一鍵起量開關(⚠️ 智投專案停用) | true/false |
auto_acquisition_budget |
number | 一鍵起量預算(絕對值) | 分(範圍 20000~10,000,000,即 200~100,000 元) |
auto_acquisition_budget_adjustment |
string | 一鍵起量預算相對調整 | 表示式,如 "+10%"、"-20%"、"+100";僅已開啟時可用 |
re_open_auto_acquisition |
number | 重新開啟一鍵起量 | 1 = 重新開啟 |
rta_id |
string | RTA 策略 ID | 字串,直接透傳給 API |
rta_target_id |
string | RTA 目標 ID | 字串,直接透傳給 API |
aoi_optimization_strategy |
string | AOI最佳化策略開關 | 如 "AOI_OPTIMIZATION_STRATEGY_ENABLED" / "AOI_OPTIMIZATION_STRATEGY_DISABLED" |
industry_value_explore |
object | 行業探索配置 | 如 {"high_volume_exploration": true} |
| 欄位 | 型別 | 說明 | 單位/格式 |
|---|---|---|---|
bid_adjustment |
object | 分版位出價 | 格式 {"site_set_package": [{"site_set": ["SITE_SET_MOMENTS"], "bid_coefficient": 1.5, "deep_bid_coefficient": 1.5}]} |
smart_delivery_aigc_creative |
object | 智投AIGC創意 | 如 {"is_open": true, "supply_strategy_type": ["SUPPLY_STRATEGY_TYPE_AIGC"]} |
smart_delivery_history_comp_reused_creative |
object | 全庫智選 | 如 {"is_open": true} / {"is_open": false} |
smart_delivery_period_budget |
number | 週期達成周期預算(僅週期達成專案可修改) | 分,只允許提升不允許降低。約束:≥ 3 × 出價 × 週期天數。詳見 references/smart-delivery-period-update.md |
smart_delivery_period_continue |
string | 週期達成續投開關(僅週期達成專案可修改) | PERIOD_CONTINUE_SWITCH_ON / PERIOD_CONTINUE_SWITCH_OFF。詳見 references/smart-delivery-period-update.md |
金額欄位統一使用分: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傳入絕對值。
當用戶要求修改廣告定向時,按照以下流程構造 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}] 格式的陣列。min 和 max 均為閉區間(包含邊界值),按使用者原始區間構造,不要合併連續段user_os):傳 ["IOS"] / ["ANDROID"](全版本),或用簡化格式如 ["ANDROID_10+"] 表示 Android 10 及以上,指令碼自動展開為版本列表excluded_os):同 user_os 的簡化格式,也支援 WINDOWS、HARMONY 等直接列舉network_type):傳 ["WIFI"]、["4G"]、["5G"],指令碼自動匹配為 API 列舉(如 4G → NET_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_types |
regions 通過地域查詢獲取;location_types 常見值 LIVE_IN(常住) |
get-targeting-lookup.mjs type:geo + 列舉查詢 |
| 性別 | gender |
["MALE"] / ["FEMALE"] |
直接構造 |
| 年齡 | age |
[{"min":25,"max":29}](閉區間,不要合併連續段) |
直接構造 |
| 作業系統 | user_os |
支援簡化格式如 ["ANDROID_10+"],指令碼自動展開 |
查列舉後直接構造 |
| 排除作業系統 | excluded_os |
同 user_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 獲取編碼,再構造 targetingget-enum-options.mjs 查詢確認以下欄位在廣告/智投專案建立後不可修改,如果使用者要求修改這些欄位,應建議到投放端手動操作或刪除重建:
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"bid_amount":12050}'
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"bid_amount":12050,"daily_budget":60000}'
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"targeting":{}}'
地域編碼需先通過
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"]}}'
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"configured_status":"AD_STATUS_SUSPEND"}'
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"auto_acquisition_enabled":true,"auto_acquisition_budget":50000}'
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"]}'
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"}'
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"first_day_begin_time":"11:00:00"}'
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}]}}'
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"bid_amount_adjustment":"-10%"}'
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"daily_budget_adjustment":"*2"}'
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"bid_amount_adjustment":"+50","daily_budget_adjustment":"+30%"}'
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"deep_conversion_behavior_bid":3000}'
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"deep_conversion_behavior_bid_adjustment":"-15%"}'
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"deep_conversion_worth_rate":1.5}'
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"deep_conversion_worth_rate_adjustment":"+10%"}'7w4.net有更好的技能外掛。
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"auto_acquisition_enabled":false}'
使用者說"起量預算改為500元",當前一鍵起量已開啟。 直接傳入新的
auto_acquisition_budget(單位:分,500元=50000分)即可,指令碼內部自動完成"先關閉再用新預算重新開啟"的流程。
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"auto_acquisition_budget":50000}'
使用者說"起量預算上調10%",當前一鍵起量已開啟。 傳入
auto_acquisition_budget_adjustment表示式即可,指令碼自動基於當前值計算目標絕對值,再執行先關後開流程。
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"auto_acquisition_budget_adjustment":"+10%"}'
只需傳
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}'
顯式指定衍生方式列表,指令碼會校驗每項是否對該廣告可用。
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"]}'
node scripts/update-adgroup-general.mjs '{"account_id":12345678,"adgroup_id":111111,"auto_derived_creative_enabled":false}'
週期達成專案的編輯操作包含週期預算調整、續投開關切換等,詳細說明和完整示例見 references/smart-delivery-period-update.md。
targeting 中不能包含非法欄位:完整清單見上方"定向強約束"章節,指令碼會攔截報錯。
targeting 列舉自動匹配:指令碼內建列舉簡化值自動轉換,詳見上方"定向更新 SOP"章節。
定向輔助指令碼:get-targeting-lookup.mjs 和 get-enum-options.mjs 在本 skill 的 scripts/ 目錄下可直接呼叫(軟連結指向共享實現)。
first_day_begin_time 交叉校驗:與 delivery_time_ranges 同時傳入時指令碼會校驗首日時間槽是否在投放範圍內,不相容則報錯。重要:使用者未明確要求修改 first_day_begin_time 時,禁止自行新增該引數——多傳會觸發 API 對 begin_date 的連帶校驗,導致已投放廣告更新失敗。
無變化欄位自動跳過:指令碼會先查詢廣告當前值,如果某欄位的目標值與當前值一致,該欄位會被跳過(不呼叫更新 API),輸出中會列出 skipped_fields。
廣告存在性校驗:指令碼執行前會先查詢廣告是否存在、是否已刪除。如果廣告不存在或已刪除,直接報錯不呼叫更新 API。
搜尋廣告攔截:當前版本暫不支援搜尋廣告更新操作,指令碼執行前會檢查廣告的 site_set 是否包含搜尋版位(SITE_SET_WECHAT_SEARCH、SITE_SET_QBSEARCH、SITE_SET_SEARCH_MOBILE_UNION)。如果是搜尋廣告,指令碼會直接報錯並輸出 is_search_ad: true 標識,不呼叫更新 API。
一鍵起量編輯規則:
auto_acquisition_budget,傳入絕對值(分)auto_acquisition_budget(絕對值,分)或 auto_acquisition_budget_adjustment(相對錶達式,如 "+10%"、"+20000")均可,指令碼內部自動完成先關閉再用新預算重新開啟的流程(見示例 16、16a)。已關閉時:不可單獨調整 budget(如需設定請同時傳 auto_acquisition_enabled: true)
週期達成編輯規則:詳情見 references/smart-delivery-period-update.md。核心要點:
smart_delivery_period_switch 在建立時確定後無法通過編輯介面開啟或關閉。非週期達成專案不能變成周期達成專案,反之亦然。begin_date(開始日期)、end_date(結束日期)、targeting(定向)、configured_status(啟停狀態)bid_amount(出價)、smart_delivery_period_budget(週期預算)、deep_conversion_behavior_bid(深層出價)只能往上調,不能降低;deep_conversion_worth_rate(ROI)只允許降低(ROI 低 = 目標放寬)delivery_time_ranges(投放時段)、first_day_begin_time(首日時間)daily_budget(日預算)、total_budget(總預算)smart_delivery_period_budget 仍須滿足 ≥ 3 × 出價 × 週期天數smart_delivery_period_continue):PERIOD_CONTINUE_SWITCH_ON):專案需未過期,切換後 end_date 自動清空(變為長期投放)PERIOD_CONTINUE_SWITCH_OFF):系統自動計算當前週期的 end_date修改週期預算(smart_delivery_period_budget):只允許提升,不允許降低
創意衍生編輯規則:
muse_derive_switch_info/get 獲取可用衍生方式。若廣告不支援衍生(API 返回 show_derive_method=false 且無可用方式),指令碼報錯。可選傳入 auto_derived_creative_method_type_list 指定偏好,不傳則使用預設推薦。auto_derived_creative_method_type_list 可單獨更新衍生偏好(不校驗可用性,適用於已知合法值的場景)["AI模板", "擴圖"] 自動轉換為標準列舉 key多賬號多廣告/智投專案異構欄位批次更新,每個廣告/專案可更新完全不同的欄位組合。
{
"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 個元素account_id 和 adgroup_idaccount_id 分組adgroups/get)buildUpdateBody + adgroups/update{
"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 更新失敗: ..."
}
]
}
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}]}'
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"}]}'
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%"}]}'
node scripts/update-adgroup-batch.mjs --file /tmp/batch_params.json
批次場景的 Pre-update Check 提醒:步驟 3 複述時必須列出每條
(account_id, adgroup_id)的「當前值 → 目標值」;fast-fail 只能拒絕整批的預校驗,已執行的子任務不會自動回滾,需在確認時告知使用者。
批次更新可能出現部分成功、部分失敗的情況。Agent 必須:
results 陣列,向用戶說明每個廣告的更新結果error 和 message 必須完整告知使用者side_effects 欄位,必須告知使用者已發生的副作用(如一鍵起量在調整預算時已被關閉但主更新失敗)_verify 資料與使用者期望對比_verify_failed 的廣告,提醒使用者手動確認這些廣告的更新結果這個 Skill 質量紮實可靠,文件寫得很詳細,涵蓋了廣告更新的各種常見操作,批次處理能力也很實用。優點是流程完整、有驗證機制、能避免誤操作;不足是文件略顯冗長,部分功能入口藏得比較深。普通使用者如果需要批次調整廣告設定,這個工具能很好地滿足需求。