name: tencentads-management description: 騰訊營銷(原騰訊廣告)管理 — 跨賬戶查詢營銷單元(原廣告)/創意/素材等多層級資料及報表指標;檢視營銷單元完整配置(定向、出價、轉化、版位等)與智慧投放專案詳情;獲取創意列表及元件詳情,單創意時自動解析元件並獲取圖片/影片預覽 URL;管理關鍵詞和否定詞的增刪改查;建立推廣內容資產。 license: MIT compatibility: any metadata: author: Tencent Ads Delivery Team version: "0.5.7" icon: megaphone category: tencent-ads
前置依賴:執行指令碼前需安裝 CLI —
npm install tencentads-cli@1.0.0(需要 Node.js ≥ 20)
騰訊廣告的綜合管理技能,提供以下核心能力:
query-report.mjs):支援跨賬戶查詢廣告/創意/元件/素材等多層級資料,同時返回屬性欄位和報表指標資料。query-adgroups.mjs):獲取廣告的完整配置資訊,包括定向設定、出價策略、轉化規格、版位配置、投放時段等詳細屬性。query-adgroups.mjs):獲取智慧投放專案的詳細配置資訊,支援按需指定返回欄位。query-creatives.mjs):獲取創意的完整資訊,包括創意元件引用、投放模式、創意型別等。當查詢結果只有 1 條創意時,指令碼自動解析元件詳情並獲取圖片/影片預覽 URL,一次呼叫即可返回完整的創意 + 元件 + 素材預覽資訊。query-operation-logs.mjs):查詢廣告/創意物件的操作日誌,返回每次操作(新建/修改)前後的欄位變化詳情,支援按日期範圍、物件 id、操作動作等過濾,詳見 references/operation-log-list-get.md。bidword/add.mjs / bidword/update.mjs / bidword/delete.mjs / bidword/get.mjs):管理廣告的關鍵詞(競價詞),支援建立、更新、刪除和查詢操作。negativewords/add.mjs / negativewords/update.mjs / negativewords/get.mjs):管理廣告的否定詞,支援新增、更新和查詢操作。重要提示: 本技能基於騰訊廣告營銷 API(api.e.qq.com)API。以本文件為準,欄位名稱、引數結構可能與開放 API 不同,請勿混淆。
所有 API 呼叫均通過本技能的專用指令碼執行,指令碼負責引數構建與資料處理。Agent 只需關注:從使用者意圖中提取查詢引數,並解讀返回的資料。
| 使用者意圖 | 推薦指令碼 | 說明 |
|---|---|---|
| 檢視廣告/創意效果資料(明確提到消耗、曝光、點選、轉化、ROI 等指標) | query-report.mjs |
返回廣告/創意報表指標 |
| 檢視廣告分時/按天趨勢 | query-report.mjs |
按時間維度聚合報表資料 |
| 檢視賬戶彙總資料 | query-report.mjs |
全賬戶維度彙總 |
| 檢視分地域/分城市/分年齡/分性別投放資料 | query-report.mjs |
使用對應 level(如 REGION/CITY/AGE/GENDER),指令碼自動推導 group_by 和過濾條件 |
| 籠統說"查詢廣告資料"/"看下廣告"等,未明確提到指標 | query-adgroups.mjs |
預設視為檢視廣告實體,而非報表 |
| 籠統說"查詢創意資料"/"看下創意"等,未明確提到指標 | query-creatives.mjs |
預設視為檢視創意實體,而非報表 |
| 檢視廣告實體(定向、出價、轉化、版位等) | query-adgroups.mjs |
返回廣告完整配置資訊 |
| 檢視廣告實體-定向明細 | query-adgroups.mjs |
包含地域、年齡、性別等定向 |
| 檢視已刪除的廣告 | query-adgroups.mjs |
支援 is_deleted 過濾 |
| 根據廣告名稱搜尋廣告詳情 | query-adgroups.mjs |
支援 adgroup_name 過濾 |
| 檢視智慧投放專案詳情 | query-adgroups.mjs |
返回智投專案完整配置,支援按需指定 fields |
| 檢視智投專案能力配置(如 AIGC、自動創意等) | query-adgroups.mjs |
包含 project_ability_list、smart_delivery_aigc_option 等欄位 |
| 檢視廣告/創意的操作日誌(新建/修改記錄、欄位變更前後對比) | query-operation-logs.mjs |
必傳 account_id、operation_object_type(ADGROUP/DYNAMIC_CREATIVE/JOINT_BUDGET)、start_date、end_date;可選 object_id 指定具體廣告/創意 id |
| 建立關鍵詞/競價詞 | bidword/add.mjs |
為廣告新增關鍵詞 |
| 更新關鍵詞/競價詞 | bidword/update.mjs |
修改關鍵詞的匹配方式、出價等 |
| 刪除關鍵詞/競價詞 | bidword/delete.mjs |
刪除廣告下的關鍵詞 |
| 查詢關鍵詞/競價詞 | bidword/get.mjs |
查詢廣告下的關鍵詞列表 |
| 新增否定詞 | negativewords/add.mjs |
為廣告新增否定詞 |
| 更新否定詞 | negativewords/update.mjs |
更新廣告的否定詞等 |
| 查詢否定詞 | negativewords/get.mjs |
查詢廣告下的否定詞列表 |
指令碼呼叫格式統一: - Bash / Zsh / Git Bash:
node scripts/<指令碼名>.mjs '<JSON 引數>'(直接傳 JSON 字串) - Windows PowerShell:node scripts/<指令碼名>.mjs --base64 <Base64字串>(必須使用 --base64)執行指令碼時先進入本 skill 根目錄,再按相對
scripts/路徑呼叫。
直接傳 JSON 字串,單引號包裹即可:
node scripts/query-report.mjs '{"account_ids":["73412663"],"date_range":{"start_date":"2026-04-13","end_date":"2026-04-13"},"level":"ADGROUP"}'
PowerShell 的引號解析規則複雜,直接傳 JSON 字串會導致雙引號被吞掉。必須使用 --base64 方式,通過 Here-String 構造 JSON 再編碼為 Base64,徹底規避引號問題:
$json = @'
{"account_ids":["73412663"],"date_range":{"start_date":"2026-04-13","end_date":"2026-04-13"},"level":"ADGROUP"}
'@
$base64 = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($json))
node scripts/query-report.mjs --base64 $base64
⚠️ Here-String 格式要求極其嚴格(違反則 PowerShell 直接報語法錯誤):
@'後面必須立即換行,同一行不能跟任何字元(包括空格)'@必須單獨一行且頂格寫,前面不能有空格或縮排- JSON 內容從
@'的下一行開始書寫```powershell
❌ 錯誤:@' 後面直接跟了 JSON 內容
$json = @'{"account_ids":["73412663"]}'@
❌ 錯誤:'@ 前面有空格
$json = @' {"account_ids":["73412663"]} '@
✅ 正確:@' 後立即換行,'@ 頂格獨佔一行
$json = @' {"account_ids":["73412663"]} '@ ```
⛔ SOP 決策流程(嚴格按順序執行,不可跳步):
步驟1 步驟2 步驟2.5 步驟3
意圖識別 ─────→ 分流路由 ─────→ 欄位名確認(> **🚫🚫🚫 禁止猜測欄位名!違反此規則 = 查詢失敗!**) ─────→ 執行查詢
是否使用本SKILL │
├─ 路徑A(報表/效果資料)─→ 欄位名確認(見步驟2.5)─→ query-report.mjs → 結束
│
├─ 路徑B(專案/廣告/創意詳情)
│ │
│ └─ query-adgroups / query-creatives
│ (有時間範圍時通過 filtering 中 created_time 篩選)
│
└─ 路徑C(營銷資產查詢)─→ 見下方"營銷資產查詢(路徑 C)"
創意查詢分支:
query-creatives.mjs 自動判斷:
│
├─ 查詢結果只有 1 條創意(單個創意詳情)
│ → 自動執行完整解析流程:
│ ├─ 1. 從 creative_components 提取 component_id
│ ├─ 2. 批次拉取元件詳情
│ ├─ 3. 從元件中提取 image_id / video_id
│ ├─ 4. 獲取圖片/影片預覽 URL
│ └─ 5. 內聯到 _component_detail + _preview,一次返回完整創意+元件+素材預覽
│
└─ 查詢結果有多條創意(創意列表)
→ 只返回創意基本資訊,不解析元件
若本節與下文表述衝突,以本節為準。
使用者意圖必須命中以下任一類別,才進入本 SKILL 的處理流程:
| 類別 | 命中關鍵詞 / 場景示例 |
|---|---|
| A. 報表/效果資料 | 必須明確提到指標關鍵詞:消耗、曝光、點選、轉化、ROI、分時趨勢、按天資料、賬戶彙總、效果對比、資料包表、投放效果 |
| B. 實體列表/詳情查詢 | 智慧投放專案(簡稱"專案"、"智投專案")、競價廣告(又稱"3.0廣告")、創意(又稱"動態創意"、"新創意")的列表查詢、詳情檢視、配置查詢、定向設定、元件內容 |
| C. 營銷資產查詢 | 安卓應用包、安卓渠道包、推廣產品、營銷資產等資產資訊查詢 |
⚠️ 關鍵規則:使用者籠統說"查詢廣告資料"、"看下創意資料"等,未明確提到指標關鍵詞(消耗、曝光、點選等)時,一律歸入 B 類(實體查詢),而非 A 類(報表)。只有明確提到指標或趨勢時才走報表。
❌ 不命中 → 不使用本 SKILL,交給其他技能處理。
tencent_ads_type 引數(所有指令碼通用)⚠️ 必須在呼叫任何指令碼前確定
tencent_ads_type,該引數直接影響返回欄位的命名。
tencent_ads_type是列舉型別,只允許以下三個值,傳其他值指令碼會報錯退出:
| 使用者意圖 | tencent_ads_type 列舉值 |
返回欄位示例 |
|---|---|---|
| 智慧投放專案("專案"、"智投專案") | "smart" |
project_id、project_name、project.* |
| 競價廣告("競價廣告"、"3.0廣告"、"非智投") | "standard" |
adgroup_id、adgroup_name、adgroup.* |
| 所有廣告("廣告"、未明確說明、預設) | "all"(預設) |
adgroup_id、adgroup_name、adgroup.*(保持原始欄位名) |
規則:
- 使用者提到"專案"、"智投專案"、"智慧投放專案" → tencent_ads_type: "smart"
- 使用者提到"競價廣告"、"3.0廣告"、"非智投廣告" → tencent_ads_type: "standard"
- 使用者只說"廣告"或未明確說明 → tencent_ads_type: "all"(預設,包含智投專案 + 競價廣告,不注入 smart_delivery_platform 過濾,不做欄位重新命名)
- ⚠️ 只允許傳 "smart" / "standard" / "all" 三個列舉值之一,傳其他任何值(如 "project"、"ad" 等)指令碼會直接報錯
- tencent_ads_type 對所有指令碼(query-report.mjs、query-adgroups.mjs、query-creatives.mjs)均適用
⚠️ 時間範圍修飾物件判斷(必須在分流前執行)
使用者說的時間範圍修飾的是「報表資料」還是「廣告實體」?
使用者說法 時間修飾物件 走向 "最近一週的消耗" / "最近7天的效果" / "上週的報表" 報表資料 路徑 A "最近一週的廣告" / "最近7天的專案" / "上週的創意" (無效果指標詞) 廣告實體 路徑 B( filtering加created_time)"最近一週內建立的廣告" / "這周新建的專案" 廣告實體 路徑 B( filtering加created_time)判斷規則:使用者說"最近N天/周的廣告/專案/創意"但沒有提到任何效果指標詞(消耗、曝光、點選、轉化、ROI等)→ 一律視為查廣告實體,走路徑 B,通過
filtering中的created_time篩選。
命中類別 A(報表/效果資料)且時間範圍修飾的是報表資料
└─→ 直接走【路徑 A】
命中類別 B(實體列表/詳情,不涉及報表指標)
或 使用者說"最近N天的廣告/專案/創意"但無效果指標詞
└─→ 進入【路徑 B】二次意圖判斷
使用者說"檢視創意/廣告的資料"時,必須判斷是否包含效果指標意圖,不能僅憑"資料"二字走路徑 A:
| 使用者說法 | 是否含效果指標詞 | 走向 |
|---|---|---|
| "查創意資料"、"看一下這個廣告的資料"、"查詢這個創意" | ❌ 無(消耗/曝光/點選/轉化等) | 路徑 B → query-creatives / query-adgroups |
| "查創意的消耗資料"、"看廣告的曝光/點選/轉化資料" | ✅ 有 | 路徑 A → query-report |
規則:僅有"資料"二字、不帶任何效果指標詞(消耗、曝光、點選、轉化、ROI、成本等)→ 預設視為查詢實體詳情,走路徑 B。
query-report.mjs直接使用 query-report.mjs,一次請求同時返回實體屬性 + 報表指標,流程結束。
| 典型場景 | 說明 |
|---|---|
| 檢視廣告列表及效果資料(消耗、曝光、點選等) | 返回廣告基本屬性 + 報表指標 |
| 檢視廣告分時/按天趨勢 | 按時間維度聚合報表資料 |
| 檢視賬戶彙總資料 | 全賬戶維度彙總 |
| 按消耗/曝光等指標排序或篩選 | 支援 order_by + post_filtering |
| 拉取全部廣告/匯出所有資料/統計全量資料 | 使用 fetch_all: true 自動分頁拉取 |
⚠️ 路徑 A 排除規則:使用者說"最近N天的廣告/專案/創意"但未提及任何效果指標詞 → 不走路徑 A,轉路徑 B。
根據使用者查詢目標,直接呼叫對應的詳情指令碼。如果使用者帶有時間範圍篩選條件(如"最近3天的廣告"、"這周新建的專案"),通過 filtering 中的 created_time 進行篩選,無需先走 query-report.mjs。
| 使用者查詢目標 | 呼叫指令碼 | 時間範圍處理 |
|---|---|---|
| 專案詳情 / 廣告詳情(定向、出價、轉化、版位、能力配置等) | query-adgroups.mjs |
有時間範圍時加 filtering 中 created_time 條件 |
| 創意詳情(創意元件內容、投放模式、創意型別等) | query-creatives.mjs |
有時間範圍時加 filtering 中 created_time 條件 |
| 創意列表(批次檢視創意基本資訊) | query-creatives.mjs |
有時間範圍時加 filtering 中 created_time 條件 |
⚠️ 創意查詢的元件解析策略(指令碼自動判斷,Agent 無需控制): - 查詢結果只有 1 條創意:指令碼自動從
creative_components中提取所有component_id,呼叫元件詳情介面拉取元件詳情,再從元件中提取image_id/video_id,獲取預覽 URL。最終將元件內容內聯到_component_detail欄位,圖片/影片預覽資訊內聯到_preview欄位。 - 查詢結果有多條創意:只返回創意基本資訊,不解析元件,避免大量 API 請求影響效能。
當用戶需要查詢營銷資產(推廣產品、應用包、渠道包等)時,根據資產型別選擇對應的查詢方式:
| 資產型別 | 查詢方式 | 說明 |
|---|---|---|
| 安卓應用包 / 渠道包 | node scripts/get-android-packages.mjs |
檢視 shared/references/android-app-assets.md |
| 其他營銷資產 | 暫未補充,可參考建立 SKILL(delivery-standard-create / delivery-smart-create)中的 get-assets.mjs 查詢方式 |
後續按需擴充套件 |
⚠️ 強制規則:禁止猜測欄位名!
當用戶請求的報表指標或廣告欄位不在下方「常用報表欄位對映」表中時,必須先用
--query-fields查詢欄位字典,確認準確的 API 欄位名後再構造請求。絕對禁止根據英文命名規律自行拼湊欄位名(如猜測 "關注數" →
wechat_official_account_follower_count,實際應為scan_follow_user_count)。API 欄位名與直覺差異極大,猜測幾乎必錯。判斷標準:逐一檢查使用者要求的每個指標/欄位,如果在「常用報表欄位對映」或「常用 fields 欄位」表中能找到精確對應 → 直接使用;找不到 → 必須查字典。
查字典方法: - 報表指標欄位:
node scripts/query-report.mjs --query-fields "關鍵詞1,關鍵詞2"- 廣告配置欄位:node scripts/query-adgroups.mjs --query-fields "關鍵詞1,關鍵詞2"示例:使用者要求檢視"5秒播放數、關注數、關注成本、關注率" 1. 檢查常用對映表 → 這4個指標都不在表中 2. 執行:
node scripts/query-report.mjs --query-fields "5秒播放,關注"3. 從返回結果中確認準確欄位名,再構造fields引數
| 指令碼 | 核心能力 | 典型入參 |
|---|---|---|
query-report.mjs |
跨賬戶報表 + 屬性查詢 | account_ids + date_range + tencent_ads_type |
query-adgroups.mjs |
廣告/專案完整配置詳情 | account_id + adgroup_ids + tencent_ads_type |
query-creatives.mjs |
創意列表 + 單創意自動解析元件/素材預覽 | account_id + adgroup_ids 或 creative_ids + tencent_ads_type |
query-operation-logs.mjs |
廣告/創意操作日誌(新建/修改欄位變更詳情) | account_id + operation_object_type + start_date + end_date,可選 object_id |
這是本技能的核心指令碼,封裝了報表查詢的全部複雜邏輯。
level 自動構建基礎過濾條件 + 智投/非智投區分條件(通過 LEVEL_FILTERING_CONFIG 配置驅動)adgroup.brand_ad_type + adgroup.campaign_type + adgroup.smart_delivery_platformdynamic_creative.brand_ad_type + adgroup.campaign_type + dynamic_creative.smart_delivery_platformreport.* 字首fuzzy_name 在廣告層級使用 adgroup.fuzzy_name,在創意層級使用 dynamic_creative.fuzzy_namelevel 自動推導合適的 group_by(如 ADGROUP → ["adgroup_id"],DYNAMIC_CREATIVE → ["dynamic_creative_id"],REGION → ["area_id"])fields 時,自動包含該 level 的預設屬性欄位 + 常用報表欄位order_by 時,自動使用 [{"sort_field": "report.default_order_by", "sort_type": "ASCENDING"}],Agent 無需手動傳 order_by,除非使用者明確要求按某個指標排序node scripts/query-report.mjs '<JSON 引數>'
| 引數 | 型別 | 必填 | 說明 |
|---|---|---|---|
account_ids |
string[] | 是 | 廣告主賬號 ID 陣列(如 ["123"] 或 ["123", "456"]),單賬戶也用陣列格式 |
date_range |
struct | 是 | 報表統計時間視窗 { "start_date": "YYYY-MM-DD", "end_date": "YYYY-MM-DD" }。注意:這是報表系統的統計區間,不是廣告建立時間或投放時間。 按建立時間篩選廣告實體請用 filtering 中的 adgroup.created_time。 |
tencent_ads_type |
enum | 否 | 廣告實體型別,列舉值只允許 "smart" / "standard" / "all" 三者之一,預設 "all"。詳見步驟 1.5 |
level |
enum | 否 | 資料維度,預設 "ADGROUP"。可選:ADVERTISER / ADGROUP / DYNAMIC_CREATIVE / COMPONENT / BIDWORD / CHANNEL / REGION / CITY / AGE / GENDER / IMAGE / VIDEO / QUERYWORD / LANDING_PAGE / MARKETING_ASSET / AUDIENCE / JOINT_BUDGET_RULE / PRODUCT_CATALOG / AOI / PROJECT_CREATIVE / VIDEO_AGGREGATION / CREATIVE_ASSET / VIDEO_HIGHLIGHT / WECHAT_SHOP_PRODUCT 等 |
adgroup_ids |
string[] | 否 | 指定廣告 ID 列表(傳入後自動切為指定 ID 查詢模式) |
creative_ids |
string[] | 否 | 指定創意 ID 列表 |
component_ids |
string[] | 否 | 指定元件 ID 列表 |
fields |
string[] | 否 | 自定義返回欄位(不傳則自動補全屬性+報表欄位) |
group_by |
string[] | 否 | 自定義聚合維度(不傳則根據 level 自動推導) |
time_line |
enum | 否 | 時間口徑,預設 "REQUEST_TIME" |
order_by |
struct[] | 否 | 排序條件。通常不需要傳,指令碼會自動使用預設排序。僅當用戶明確要求按某個指標排序時才傳,如 [{"sort_field": "report.cost", "sort_type": "DESCENDING"}] |
filtering |
struct[] | 否 | 額外自定義過濾條件(追加到標準過濾之後) |
post_filtering |
struct[] | 否 | 後置過濾條件(基於報表指標篩選) |
page |
integer | 否 | 頁碼,預設 1 |
page_size |
integer | 否 | 每頁條數,預設 20 |
fetch_all |
boolean | 否 | 是否自動分頁拉取全部資料,預設 false。開啟後忽略 page 引數,自動翻頁直到拉完所有資料(page_size 自動提升至至少 100 以減少請求次數)。詳見下方 fetch_all 使用規則 |
is_total |
boolean | 否 | 是否全賬戶彙總,預設 false |
report_only |
boolean | 否 | 僅查報表資料(不返回實體屬性),預設 false |
fuzzy_name |
string | 否 | 名稱模糊搜尋。廣告層級(ADGROUP)時搜尋廣告名稱,創意層級(DYNAMIC_CREATIVE)時搜尋創意名稱 |
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"}}'
不傳
tencent_ads_type、fields、group_by時,指令碼預設tencent_ads_type: "all"(智投專案 + 競價廣告全部返回) + 預設屬性與報表欄位 +group_by: ["adgroup_id"]。
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"tencent_ads_type":"smart"}'
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"adgroup_ids":["72536365535"]}'
傳了
adgroup_ids後,指令碼自動切換到specified模式,只使用 ID 過濾,不加基礎 3 條和智投/非智投條件。
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"adgroup_ids":["72536365535"],"group_by":["date","hour"],"page_size":100}'
分時查詢:
group_by使用["date", "hour"],指令碼自動精簡 fields 只保留報表指標。
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-19","end_date":"2026-03-25"},"adgroup_ids":["72536365535"],"group_by":["date"]}'
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"order_by":[{"sort_field":"report.cost","sort_type":"DESCENDING"}]}'
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"post_filtering":[{"field":"report.cost","operator":"GREATER","values":["100000"]}]}'
查詢智投專案下的創意列表:
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"level":"DYNAMIC_CREATIVE","tencent_ads_type":"smart"}'
查詢競價廣告下的創意列表:
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"level":"DYNAMIC_CREATIVE","tencent_ads_type":"standard"}'
按創意名稱模糊搜尋(fuzzy_name 在創意層級自動使用 dynamic_creative.fuzzy_name):
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"level":"DYNAMIC_CREATIVE","fuzzy_name":"品牌創意"}'
按投放模式篩選(只看元件化創意),通過 filtering 追加:
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"level":"DYNAMIC_CREATIVE","filtering":[{"field":"dynamic_creative.delivery_mode","operator":"EQUALS","values":["DELIVERY_MODE_COMPONENT"]}]}'
按創意狀態篩選(競價廣告創意用 DYNAMIC_CREATIVE_STATUS_*,智投專案創意用 SMART_DYNAMIC_CREATIVE_STATUS_*):
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"level":"DYNAMIC_CREATIVE","tencent_ads_type":"standard","filtering":[{"field":"dynamic_creative.system_status","operator":"IN","values":["DYNAMIC_CREATIVE_STATUS_PENDING","DYNAMIC_CREATIVE_STATUS_ACTIVE"]}]}'
按創意型別篩選(客戶自建 vs 妙思自動生成):
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"level":"DYNAMIC_CREATIVE","filtering":[{"field":"dynamic_creative.source","operator":"EQUALS","values":["AD_CREATIVE_SOURCE_NORMAL"]}]}'
創意層級自動處理說明: -
operation_status過濾自動使用dynamic_creative.operation_status(不是adgroup.operation_status) - 智投/非智投區分自動使用dynamic_creative.smart_delivery_platform(不是adgroup.smart_delivery_platform) -fuzzy_name自動使用dynamic_creative.fuzzy_name(不是adgroup.fuzzy_name)
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"is_total":true,"page_size":1}'
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"fuzzy_name":"品牌推廣"}'
node scripts/query-report.mjs '{"account_ids":["39412855","73412663"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"}}'
account_id支援傳入陣列,一次請求同時查詢多個賬戶的資料。返回結果中每條資料包含account_id欄位,可區分所屬賬戶。
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"fetch_all":true}'
開啟
fetch_all後,指令碼自動翻頁拉取所有資料,最終返回的page_info中total_number為全部條數,total_page固定為 1。
fetch_all 使用規則| 使用者意圖 | fetch_all 值 |
說明 |
|---|---|---|
| 普通列表查詢("檢視廣告"、"看下效果") | false(預設) |
只需要當前頁資料,預設返回 20 條 |
| "拉取全部廣告" / "匯出所有資料" / "一共有多少條廣告" | true |
使用者明確要求全量資料 |
| "幫我統計所有廣告的消耗總和" / 需要對全量資料做聚合分析 | true |
需要拉取全部後才能彙總計算 |
| "檢視所有消耗大於 100 的廣告" / 全量篩選 | true |
需要全量資料才能完整篩選 |
| "列出全部在投廣告" / "所有正在投放的專案" | true |
使用者要求完整列表 |
| 使用者明確指定了 page / page_size | false |
使用者自行控制分頁,不需要自動拉取 |
⚠️ 判斷關鍵詞:當用戶使用"全部"、"所有"、"一共"、"總共"、"匯出"、"拉取全量"、"完整列表"等詞彙時,應設定
fetch_all: true。 當用戶只是普通查詢或明確指定了分頁引數時,保持預設fetch_all: false。
#### 11. 查詢指定廣告的分地域投放資料(受眾分析-地域報表)
```bash
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"level":"REGION","adgroup_ids":["72536365535"]}'
分地域查詢關鍵點:當用戶要求"分地域"、"按地域"、"各地區"、"省份分佈"等維度檢視投放資料時,必須使用
level: "REGION",指令碼會自動推導group_by: ["area_id"]和正確的過濾條件。同理,"分城市" →level: "CITY","分年齡" →level: "AGE","分性別" →level: "GENDER"。切勿使用level: "ADGROUP"來查詢地域/城市/年齡/性別維度的資料。
適用場景:使用者說"最近 N 天內建立的專案/廣告"、"本週新建的廣告"等——這是對廣告實體的篩選,不是報表時間視窗。 -
date_range用近期時間(如當天)即可,其值不影響廣告實體的篩選 - 建立時間用filtering中的adgroup.created_time,值為YYYY-MM-DD HH:mm:ss格式(如"2026-03-18 00:00:00"),指令碼內部自動轉為時間戳
查詢最近一週內建立的智投專案(不關心報表資料):
node scripts/query-report.mjs '{
"account_ids": ["39412855"],
"date_range": {"start_date": "2026-03-27", "end_date": "2026-03-27"},
"tencent_ads_type": "smart",
"filtering": [
{"field": "adgroup.created_time", "operator": "GREATER_EQUALS", "values": ["<7天前 YYYY-MM-DD 00:00:00>"]},
{"field": "adgroup.created_time", "operator": "LESS_EQUALS", "values": ["<今天 YYYY-MM-DD 23:59:59>"]}
],
"fields": [
"account_id",
"adgroup.adgroup_id",
"adgroup.adgroup_name",
"adgroup.configured_status_cn",
"adgroup.system_status_cn",
"adgroup.smart_delivery_platform",
"adgroup.project_ability_spec",
"adgroup.begin_date"
]
}'
fields裡不含report.*欄位時,date_range僅作為介面必填項存在,對結果無實質影響。
當用戶要查文案素材(標題/描述)維度的投放效果時,使用 CREATIVE_ASSET 級別。注意:過濾條件使用 report.* 欄位,不使用 adgroup.* 欄位。
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"level":"CREATIVE_ASSET","group_by":["creative_asset_id","adgroup_id","dynamic_creative_id"],"order_by":[{"sort_field":"report.cost","sort_type":"DESCENDING"}],"fields":["creative_asset.creative_asset_id","creative_asset.creative_asset_name","creative_asset.component_id","creative_asset.component_type","creative_asset.component_value","creative_asset.component_custom_name","creative_asset.account_id","report.cost","report.view_count","report.valid_click_count","report.ctr","report.thousand_display_price","report.cpc","report.conversions_rate","report.adgroup_id","report.dynamic_creative_id"],"filtering":[{"field":"report.brand_ad_type","operator":"EQUALS","values":["BRAND_AD_TYPE_NONE"]},{"field":"report.campaign_type","operator":"EQUALS","values":["CAMPAIGN_TYPE_NORMAL"]},{"field":"report.creative_asset_sub_type","operator":"IN","values":["DESCRIPTION","TITLE"]}]}'
CREATIVE_ASSET 查詢要點: -
level設為"CREATIVE_ASSET",group_by包含"creative_asset_id"-filtering使用report.*欄位(如report.brand_ad_type、report.campaign_type、report.creative_asset_sub_type),不使用adgroup.*欄位 - 按素材子型別過濾文案:report.creative_asset_sub_typeIN["DESCRIPTION", "TITLE"]
node scripts/query-report.mjs '{"account_ids":["39412855"],"date_range":{"start_date":"2026-03-25","end_date":"2026-03-25"},"level":"COMPONENT"}'
{
"file_path": "/absolute/path/to/output/report_39412855_ADGROUP_20260325_20260325_20260325T103000.json",
"summary": {
"total_rows": 150,
"page_info": {
"page": 1,
"page_size": 20,
"total_number": 150,
"total_page": 8
},
"level": "ADGROUP",
"date_range": { "start_date": "2026-03-25", "end_date": "2026-03-25" },
"account_ids": [39412855],
"tencent_ads_type": "all"
},
"preview": [
{
"account_id": 39412855,
"adgroup": {
"adgroup_id": 123456,
"adgroup_name": "廣告名稱",
"configured_status": "AD_STATUS_NORMAL"
},
"report": {
"cost": 10000,
"view_count": 50000,
"valid_click_count": 1200,
"ctr": "2.40"
}
}
]
}
輸出說明:指令碼會將完整查詢結果寫入
output/目錄下的 JSON 檔案,stdout 只返回檔案路徑、摘要資訊和前 3 條預覽資料。模型可通過file_path讀取完整資料檔案,編寫即時分析指令碼生成資料包告。資料檔案格式:
output/report_<賬戶ID>_<level>_<日期範圍>_<時間戳>.json,內容為{ "list": [...], "page_info": {...} }。
當用戶提到以下指標時,請在 fields 引數中使用對應的欄位名:
| 使用者描述 | fields 欄位名 | 說明 |
|---|---|---|
| 消耗/花費 | report.cost |
廣告消耗金額 |
| 曝光量/展示量 | report.view_count |
廣告曝光次數 |
| 點選量 | report.valid_click_count |
有效點選次數 |
| 點選率/CTR | report.ctr |
點選率 |
| 轉化數/轉化量 | report.conversions_count |
轉化次數 |
| 轉化成本 | report.conversions_cost |
每次轉化的成本 |
| 轉化率 | report.conversions_rate |
轉化率 |
| 落地頁按鈕點選量 | report.lan_button_click_count |
落地頁按鈕點選次數 |
| 賬戶餘額 | report.balance |
賬戶剩餘金額 |
| 出價/出價金額 | report.cost_price |
廣告出價 |
| 營銷內容 | report.marketing_content |
營銷內容資訊 |
| 地域/地區 | report.area |
地域名稱(分地域查詢時使用) |
| 千次曝光成本/CPM | report.thousand_display_price |
每千次曝光成本 |
| 點選均價/CPC | report.click_cost |
每次點選成本 |
| 深度轉化數 | report.deep_conversions_count |
深度轉化次數 |
| 深度轉化成本 | report.deep_conversions_cost |
深度轉化成本 |
| 微信加粉成本 | report.wechat_cost_stage1 |
微信加粉階段成本 |
| 企微加粉成本 | report.wechat_cost_stage2 |
企微加粉階段成本 |
提示:當用戶要求檢視多個指標時,請將所有對應的
report.*欄位都加入fields陣列中。如果使用者沒有明確指定指標,可以不傳fields,指令碼會自動使用預設欄位集。⚠️ 強制規則:上表僅列出最常用的 18 個欄位,報表系統共有 854 個欄位。如果使用者提到的指標不在上表中,必須先執行
node scripts/query-report.mjs --query-fields "關鍵詞"查詢欄位字典,確認準確欄位名後再構造請求。禁止自行猜測或拼湊欄位名。
| 指令碼 | 用途 |
|---|---|
| query-report.mjs | 跨賬戶查詢廣告/創意/素材的列表資料+報表指標(核心入口,融合屬性查詢與效果資料) |
| query-adgroups.mjs | 獲取廣告完整配置資訊(定向、出價、轉化、版位等) |
| query-creatives.mjs | 獲取創意列表及元件詳情;單創意時自動解析元件並獲取圖片/影片預覽 URL |
| 引數名 | 型別 | 說明 | 限制 |
|---|---|---|---|
| date_range | struct | 日期範圍 | 最早支援365天內資料 |
| date_range.start_date | string | 開始日期 | YYYY-MM-DD,≤ end_date |
| date_range.end_date | string | 結束日期 | YYYY-MM-DD,≥ start_date |
| level | enum | 資料維度級別 | 見下方 level 列舉值 |
| 引數名 | 型別 | 說明 | 限制/預設值 |
|---|---|---|---|
| account_id_list | integer[] | 廣告主賬號 ID 列表 | 最多 400 個,不支援代理商 ID |
| filtering | struct[] | 前置過濾條件 | 陣列 1-40 個,見下方過濾條件說明 |
| or_filtering | struct[][] | 二維過濾條件(OR 邏輯) | 陣列 1-40 個 |
| post_filtering | struct[] | 後置過濾條件(基於報表指標篩選) | 陣列 1-32 個 |
| order_by | struct[] | 排序欄位 | 最多 2 個排序條件,示例:[{"sort_field": "report.cost", "sort_type": "DESCENDING"}] |
| time_line | enum | 時間口徑 | REQUEST_TIME / REPORTING_TIME / ACTIVE_TIME |
| group_by | string[] | 聚合引數 | 陣列 1-10 個。每個 level 只支援特定的 group_by 值,見下方 level 資料維度與 group_by 對應表 |
| page | integer | 頁碼 | 1-99999,預設 1 |
| page_size | integer | 每頁條數 | 1-99999999,預設 10 |
| report_only | boolean | 僅查報表資料模式(true=只返回報表指標,不返回實體屬性資料) | 預設 false |
| is_total | boolean | 是否為彙總資料(全賬戶級彙總) | 預設 false |
| fields | string[] | 指定返回的欄位列表 | 陣列 1-1024 個,最大長度 64 字元/項 |
| operating_scene_type | enum | 操作平臺場景型別 | 列舉 OperatingSceneType |
| organization_id | integer | 業務單元 ID | 0-9999999999 |
| request_source | enum | 請求來源 | 列舉 RequestSourceType |
level 資料維度與 group_by 對應表:
每個 level 只支援特定的 group_by 值,不傳時指令碼自動使用預設值。自定義 group_by 時必須從該 level 的合法值中選取,禁止使用不在此表中的值。
| level | 說明 | 適用場景 | 合法 group_by 值 | 預設值 | group_by 說明 |
|---|---|---|---|---|---|
| ADVERTISER | 賬戶級別 | 當用戶要求"賬戶級別報表"、"賬戶維度資料"時使用。不返回具體廣告/創意明細,只返回賬戶粒度彙總資料 | date, hour |
["date"] |
只支援時間維度,不支援 account_id、site_set;按小時查用 ["date", "hour"] |
| ADGROUP | 廣告級別 | 最常用。當用戶要求"廣告資料"、"廣告列表"、"投放資料"時使用(未明確指定其他 level 時預設使用) | adgroup_id, date, hour, site_set |
["adgroup_id"] |
按天趨勢用 ["adgroup_id", "date"];按小時趨勢用 ["adgroup_id", "date", "hour"];按版位用 ["adgroup_id", "site_set"] |
| DYNAMIC_CREATIVE | 動態創意級別 | 當用戶要求檢視"創意效果"、"創意對比"、"創意列表"時使用(指普通廣告的動態創意,非智投專案創意)。注意與 PROJECT_CREATIVE 區分 |
dynamic_creative_id, adgroup_id, date, hour, site_set |
["dynamic_creative_id", "adgroup_id"] |
必須包含 dynamic_creative_id;按小時趨勢用 ["dynamic_creative_id", "date", "hour"] |
| COMPONENT | 元件級別 | 當用戶提到"素材元件"、"元件ID"、"元件效果"、"元件報表"時使用。filtering 可按 component_id、component_sub_type 等篩選。注意:使用者說"影片素材元件"或"圖片素材元件"時也應使用此 level,而非 VIDEO/IMAGE |
component_id, date, hour |
["component_id"] |
|
| CREATIVE_ASSET | 創意資產級別 | 當用戶要查詢文案類素材(標題/描述)的投放效果時使用。filtering 使用 report.* 欄位(非 adgroup.*) |
creative_asset_id, adgroup_id, dynamic_creative_id, date, product_catalog_id, product_series_id, product_outer_id |
["creative_asset_id", "adgroup_id", "dynamic_creative_id"] |
支援商品維度 |
| CHANNEL | 渠道級別 | 渠道包報表 | channel_id |
["channel_id"] |
不支援時間維度 |
| BIDWORD | 競價詞級別 | 搜尋分析-關鍵詞報表。當用戶提到"競價詞"、"關鍵詞出價"時使用 | bidword_id, date |
["bidword_id"] |
|
| QUERYWORD | 搜尋詞級別 | 搜尋分析-搜尋詞報表。當用戶提到"搜尋詞"時使用 | queryword_id, queryword, date |
["queryword_id"] |
|
| IMAGE | 圖片素材級別 | 當用戶要求按圖片 ID 檢視圖片素材效果時使用(素材分析-圖片素材報表)。注意:若使用者說的是"圖片元件"或"圖片素材元件",應使用 COMPONENT level |
image_id, date |
["image_id"] |
|
| VIDEO | 影片素材級別 | 當用戶要求按影片 ID 檢視影片素材效果時使用(素材分析-影片素材報表)。注意:若使用者說的是"影片元件"或"影片素材元件",應使用 COMPONENT level |
video_id, date |
["video_id"] |
|
| MEDIA | 素材級別 | 素材報表 | media_id, date |
["media_id"] |
|
| VIDEO_AGGREGATION | 影片聚合級別 | 當用戶要求按影片 MD5 聚合檢視素材效果時使用 | md5 |
["md5"] |
|
| VIDEO_HIGHLIGHT | 影片高光幀級別 | 影片高光幀分析報表 | md5, play_index |
["md5"] |
play_index 需要後端開關 |
| MARKETING_ASSET | 產品資產級別 | 當用戶提到"推廣產品"、"產品資產"、"營銷資產"時使用。檢視推廣產品維度的投放效果 | marketing_asset_id, date, product_catalog_id, product_series_id, product_outer_id |
["marketing_asset_id"] |
支援商品維度 |
| LANDING_PAGE | 落地頁級別 | 當用戶提到"落地頁"時使用 | landing_page_id, vangogh_landing_page_id, date |
["landing_page_id"] |
group_by 用 landing_page_id 而非 landing_page_url |
| PRODUCT_CATALOG | 商品級別 | 當用戶提到"商品目錄"、"商品系列"、"商品ID"、"多商品廣告"、"商品維度"時使用。檢視商品目錄/系列/單品維度的投放效果。注意與 MARKETING_ASSET(推廣產品)區分 |
product_catalog_id, product_series_id, product_outer_id, date |
["product_catalog_id"] |
支援商品層級維度 |
| WECHAT_SHOP_PRODUCT | 微信小店商品級別 | 當用戶提到"微信小店商品"、"影片號商品"、"小店商品"時使用 | wechat_channels_product_id, wechat_channels_shop_id, date |
["date"] |
|
| JOINT_BUDGET_RULE | 聯合預算規則級別 | 聯合廣告預算規則 | joint_budget_rule_id, date |
["joint_budget_rule_id"] |
|
| PROJECT_CREATIVE | 智投專案創意級別 | 當用戶提到"智投專案創意"、"專案創意"、"指定專案下的創意"時使用。注意與 DYNAMIC_CREATIVE 區分:使用者提到"專案 ID + 創意"時用此 level,而非 DYNAMIC_CREATIVE |
dynamic_creative_id, adgroup_id, date, hour |
["dynamic_creative_id", "adgroup_id"] |
|
| REGION | 省份/地域級別 | 分地域投放資料。當用戶要求"分地域"、"按地域"、"各地區"、"省份分佈"、"地域報表"時使用。可配合 adgroup_ids 檢視指定廣告的地域分佈 |
area_id, adgroup_id, date |
["area_id"] |
adgroup_id 可選 |
| CITY | 城市級別 | 分城市投放資料。當用戶要求"分城市"、"按城市"、"城市報表"時使用 | city_id, adgroup_id, date |
["city_id"] |
adgroup_id 可選 |
| AGE | 年齡級別 | 分年齡投放資料。當用戶要求"分年齡"、"按年齡"、"年齡報表"時使用 | age, adgroup_id, date |
["age"] |
adgroup_id 可選 |
| GENDER | 性別級別 | 分性別投放資料。當用戶要求"分性別"、"按性別"、"性別報表"時使用 | gender, adgroup_id, date |
["gender"] |
adgroup_id 可選 |
| AOI | AOI 級別 | AOI 報表 | aoi_id, adgroup_id, date |
["aoi_id"] |
adgroup_id 可選 |
| AUDIENCE | 人群包級別 | 受眾分析-人群包報表。當用戶提到"人群包"、"受眾分析"、"人群定向"時使用 | audience_id, account_id, adgroup_id, dynamic_creative_id, date, hour |
["audience_id", "account_id"] |
支援多維度組合 |
關鍵引數組合規則(必須遵守,否則 report 會返回空物件):
order_by排序規則:- 指令碼已自動處理預設排序:未傳
order_by時,指令碼自動使用[{"sort_field": "report.default_order_by", "sort_type": "ASCENDING"}]。通常不需要手動傳order_by。- 僅當用戶明確要求排序時才傳:當用戶描述中包含排序意圖(如"按 XX 從高到低"、"按 XX 排序"等),按使用者意圖構造:
- 格式:
[{"sort_field": "report.xxx", "sort_type": "DESCENDING"}]sort_type列舉值:DESCENDING(降序,從高到低)、ASCENDING(升序,從低到高)- 示例:使用者說"按曝光量從高到低排序" →
[{"sort_field": "report.view_count", "sort_type": "DESCENDING"}]- 示例:使用者說"按消耗升序" →
[{"sort_field": "report.cost", "sort_type": "ASCENDING"}]最多支援 2 個排序條件
group_by事實上必填:雖然協議定義為可選,但不傳group_by時介面幾乎不會返回有效 report 資料。每個 level 的合法值和預設值見上方 level 資料維度與 group_by 對應表。hour必須配date:使用hour時必須同時帶date(如["date", "hour"]或["adgroup_id", "date", "hour"]),單獨傳hour不帶date不會報錯但資料不完整(不同天的同一小時會被合併)。分時/按天趨勢查詢:檢視指定廣告的分時趨勢 →
group_by: ["date", "hour"];檢視指定廣告的按天趨勢 →group_by: ["date"];檢視廣告列表的每日彙總 →group_by: ["adgroup_id", "date"]。
filtering強烈推薦:不傳過濾條件時,介面可能返回空結果或無法匹配到有效資料。場景一:查詢廣告列表(無指定 adgroup_id)— 需要完整的標準過濾(基礎 3 條 + 智投/非智投條件),詳見下方。
場景二:查詢指定廣告 ID 的資料(如分時趨勢、按天趨勢)— 只需傳
adgroup.adgroup_id過濾即可,不需要加基礎 3 條和智投/非智投條件,因為已經精確定位到具體廣告。json [{"field": "adgroup.adgroup_id", "operator": "EQUALS", "values": ["72536365535"]}]場景一的標準過濾分為基礎 3 條 + 第 4 條智投/非智投區分條件:
⚠️ 重要:filtering 中的過濾欄位層級必須與 level 匹配,不同 level 使用不同的過濾欄位字首:
- level 為 ADGROUP、COMPONENT 等 → 使用 adgroup.* 層級過濾欄位
- level 為 DYNAMIC_CREATIVE → 混合使用:operation_status 和 brand_ad_type 使用 dynamic_creative.*,campaign_type 使用 adgroup.*(見下方詳細說明)
- level 為 CREATIVE_ASSET(創意資產級別)→ 使用 report.* 層級過濾欄位(如 report.brand_ad_type、report.campaign_type、report.creative_asset_sub_type),不使用 adgroup.* 層級過濾
- level 為 ADVERTISER(賬戶級別報表)→ 不需要也不應該傳任何實體層級的過濾條件
基礎過濾條件(僅適用於 level 為 ADGROUP/DYNAMIC_CREATIVE/COMPONENT 等實體級別時):
廣告層級(level=ADGROUP):
json {"field": "adgroup.brand_ad_type", "operator": "EQUALS", "values": ["BRAND_AD_TYPE_NONE"]}, {"field": "adgroup.campaign_type", "operator": "EQUALS", "values": ["CAMPAIGN_TYPE_NORMAL"]}
創意層級(level=DYNAMIC_CREATIVE,注意 brand_ad_type 字首變為 dynamic_creative.*):
json {"field": "dynamic_creative.operation_status", "operator": "EQUALS", "values": ["CALCULATE_STATUS_EXCLUDE_DEL"]}, {"field": "dynamic_creative.brand_ad_type", "operator": "EQUALS", "values": ["BRAND_AD_TYPE_NONE"]}, {"field": "adgroup.campaign_type", "operator": "EQUALS", "values": ["CAMPAIGN_TYPE_NORMAL"]}⚠️
operation_status僅在查詢廣告列表或創意列表時新增,查詢報表資料(如彙總統計、效果分析等純報表場景)時不新增此條件。 使用query-report.mjs指令碼時,以上基礎過濾條件由指令碼自動構建,無需手動傳入。
CREATIVE_ASSET級別的過濾條件(使用report.*欄位,不使用adgroup.*):json {"field": "report.brand_ad_type", "operator": "EQUALS", "values": ["BRAND_AD_TYPE_NONE"]}, {"field": "report.campaign_type", "operator": "EQUALS", "values": ["CAMPAIGN_TYPE_NORMAL"]}如需按素材子型別過濾(如只看文案描述和標題):json {"field": "report.creative_asset_sub_type", "operator": "IN", "values": ["DESCRIPTION", "TITLE"]}⚠️ 注意:
CREATIVE_ASSET級別不需要也不應該加adgroup.operation_status、adgroup.smart_delivery_platform等adgroup.*過濾條件。第 4 條:
smart_delivery_platform(必須根據查詢意圖選擇,同樣僅適用於實體級別):⚠️ 廣告層級(ADGROUP)與創意層級(DYNAMIC_CREATIVE)使用不同的欄位: -
level=ADGROUP→ 使用adgroup.smart_delivery_platform-level=DYNAMIC_CREATIVE→ 使用dynamic_creative.smart_delivery_platform- 使用query-report.mjs指令碼時,指令碼會根據level自動選擇正確的欄位,無需手動指定。
- 查智投廣告/創意(預設,當前大部分廣告都是智投廣告):
json {"field": "adgroup.smart_delivery_platform", "operator": "GREATER_EQUALS", "values": ["SMART_DELIVERY_PLATFORM_EDITION_SCENE"]}或(創意層級):json {"field": "dynamic_creative.smart_delivery_platform", "operator": "GREATER_EQUALS", "values": ["SMART_DELIVERY_PLATFORM_EDITION_SCENE"]}- 查非智投廣告/創意(使用者明確要求查非智投/競價廣告時):
json {"field": "adgroup.smart_delivery_platform", "operator": "LESS", "values": ["SMART_DELIVERY_PLATFORM_EDITION_SCENE"]}或(創意層級):json {"field": "dynamic_creative.smart_delivery_platform", "operator": "LESS", "values": ["SMART_DELIVERY_PLATFORM_EDITION_SCENE"]}⚠️ 智投和非智投不能在同一次請求中混合查詢,每次請求只能查其中一種。
意圖判斷規則: - 使用者說"查非智投廣告"、"查常規廣告"、"查老廣告"、"不含智投"、"排除智投"、"競價廣告"、"只看競價"、"不含智投專案" → 查常規廣告(非智投)(
LESS),只需一次請求 - 使用者說"查智投廣告"、"智投專案"、"智投報表" → 查智投廣告(GREATER_EQUALS),只需一次請求 - 使用者說"兩種都看"、"智投和非智投都要" → 先查智投廣告(GREATER_EQUALS),再查常規廣告(非智投)(LESS),共兩次請求(順序發,不要並行) - ⚠️ 如果意圖不確定(使用者未明確指定智投或非智投),應發兩次請求:先智投GREATER_EQUALS,再非智投LESS,以保證最終資料的準確性和完整性
fields必須包含所需欄位:- 查詢廣告列表時:
fields必須同時包含屬性欄位(如adgroup.adgroup_id、adgroup.adgroup_name)和報表欄位(如report.cost),否則 report 會返回空物件。- 查詢指定廣告的分時/按天趨勢時:
fields只需包含使用者關心的報表指標即可(如["report.view_count", "report.view_user_count"]),不需要額外加adgroup.*屬性欄位和account_id,因為已經通過 filtering 精確定位到了具體廣告。- 實體級別查詢(
level為ADGROUP、DYNAMIC_CREATIVE、COMPONENT等):必須同時包含屬性欄位和報表欄位,僅請求report.*欄位而不請求對應的屬性欄位(如adgroup.adgroup_id)會導致 report 返回空。應同時請求adgroup.*和report.*欄位。賬戶級別查詢(
level為ADVERTISER):查詢的是賬戶維度彙總報表,只需傳使用者關心的report.*報表欄位即可,不需要也不應該傳account_id、adgroup.*等屬性欄位,否則會導致引數冗餘。 > - ✅ 正確:"fields": ["report.view_count", "report.cost"]
- ❌ 錯誤:
"fields": ["account_id", "report.view_count", "report.cost"]
is_total的正確用法:is_total: false(預設)= 返回逐條明細資料(每個廣告/創意一行),這是最常用的模式is_total: true= 返回全賬戶彙總(所有廣告合併為一條),此時仍需傳group_by、filtering和fields(包含屬性+報表欄位)查詢廣告列表時請使用
is_total: false
date_rangevsadgroup.created_time:兩套獨立系統,含義完全不同本介面底層由兩個獨立系統協同工作: - 報表系統:負責
report.*欄位的統計資料,由date_range控制統計區間 - adindex(廣告實體索引):負責返回哪些廣告/創意實體,由filtering中的adgroup.created_time等條件控制
用途 引數 示例 控制報表指標的統計時間視窗 date_range{"start_date":"2026-03-01","end_date":"2026-03-27"}篩選某段時間內建立的廣告/專案 filtering中adgroup.created_time{"field":"adgroup.created_time","operator":"GREATER_EQUALS","values":["2026-03-20 00:00:00"]}⚠️ 關鍵區別: -
date_range不是廣告的建立時間,也不是投放時間,是報表統計視窗 - 如果某廣告在date_range範圍內沒有消耗/曝光,report.*欄位會返回空,但廣告實體本身仍然存在 - 只查廣告/專案實體資訊(不關心消耗資料)時,date_range設為任意有效時間段即可(通常用近期時間)意圖判斷規則(模型必須遵守):
使用者說的 正確做法 "最近一週的消耗資料" / "最近7天的報表" date_range= 最近7天,不加created_time過濾"最近一週內建立的廣告/專案" date_range= 當天(或近期),filtering加adgroup.created_time>= 7天前的時間戳"最近一週的廣告/專案/創意"(無效果指標詞) 同"建立"處理: date_range= 當天,filtering加adgroup.created_time範圍,走路徑 B"最近一週內建立且有投放資料的廣告" date_range= 最近7天,filtering同時加adgroup.created_time範圍"檢視某個專案的歷史資料" date_range= 目標歷史時間段,filtering加adgroup.adgroup_id
created_time時間格式:值為YYYY-MM-DD HH:mm:ss格式字串(如"2026-03-21 00:00:00"),指令碼內部自動轉為 API 所需的 Unix 時間戳。json // 示例:篩選 2026-03-21 00:00:00 ~ 2026-03-27 23:59:59 建立的專案 {"field": "adgroup.created_time", "operator": "GREATER_EQUALS", "values": ["2026-03-21 00:00:00"]}, {"field": "adgroup.created_time", "operator": "LESS_EQUALS", "values": ["2026-03-27 23:59:59"]}
report_only預設不要傳:report_only: true表示僅查報表指標資料、不返回實體屬性(廣告名稱、狀態等)。只有在使用者明確只需要效果資料(如"今天總消耗多少")而不關心廣告屬性時才設為true。大多數查詢都需要同時看到廣告屬性和報表資料,因此預設不傳或設為false。
| 值 | 說明 |
|---|---|
| REQUEST_TIME | 廣告播放口徑(預設) |
| REPORTING_TIME | 轉化回傳口徑 |
| ACTIVE_TIME | 啟用時間口徑 |
{
"field": "過濾欄位",
"operator": "運算子",
"values": ["值1", "值2"]
}
| 欄位 | 說明 | 支援的運算子 |
|---|---|---|
| adgroup.adgroup_id | 廣告 ID | EQUALS, IN |
| adgroup.fuzzy_name | 廣告名稱模糊搜尋 | EQUALS |
| adgroup.operation_status | 運營狀態 | EQUALS, IN |
| adgroup.system_status | 系統狀態 | EQUALS, IN |
| adgroup.configured_status | 配置狀態 | EQUALS, IN |
| adgroup.site_set | 版位 | EQUALS, IN, HAS_ANY |
| adgroup.created_time | 建立時間 | LESS, LESS_EQUALS, GREATER, GREATER_EQUALS |
| adgroup.campaign_type | 推廣型別 | EQUALS |
| adgroup.brand_ad_type | 品牌廣告型別 | EQUALS |
| adgroup.smart_delivery_platform | 智投平臺版本 | EQUALS, IN, LESS, GREATER_EQUALS |
| adgroup.begin_date | 開始日期 | 時間戳運算子 |
| adgroup.end_date | 結束日期 | 時間戳運算子 |
| adgroup.optimization_goal | 最佳化目標 | - |
| adgroup.deep_optimization_goal | 深度最佳化目標 | - |
| 欄位 | 說明 | 支援的運算子 |
|---|---|---|
| dynamic_creative.dynamic_creative_id | 創意 ID | EQUALS, IN |
| dynamic_creative.fuzzy_name | 創意名稱模糊搜尋 | EQUALS |
| dynamic_creative.adgroup_id | 所屬廣告 ID | EQUALS, IN |
| dynamic_creative.operation_status | 運營狀態(用於創意列表過濾,值同 adgroup.operation_status) | EQUALS, IN |
| dynamic_creative.system_status | 系統狀態(見下方列舉值說明) | EQUALS, IN |
| dynamic_creative.delivery_mode | 投放模式:DELIVERY_MODE_COMPONENT(元件化創意)/DELIVERY_MODE_CUSTOM(自定義創意) |
EQUALS, IN |
| dynamic_creative.source | 創意型別來源:AD_CREATIVE_SOURCE_NORMAL(客戶自建創意)/AD_CREATIVE_SOURCE_AUTO(妙思自動生成) |
EQUALS, IN |
| dynamic_creative.smart_delivery_platform | 智投平臺版本(創意層級的智投/非智投區分,值同 adgroup.smart_delivery_platform) | EQUALS, IN, LESS, GREATER_EQUALS |
| dynamic_creative.created_time | 建立時間(Unix 時間戳) | LESS, LESS_EQUALS, GREATER, GREATER_EQUALS |
| dynamic_creative.brand_ad_type | 品牌廣告型別 | EQUALS |
dynamic_creative.system_status 列舉值說明:
競價廣告(非智投)下的創意與智投專案下的創意,system_status 列舉值不同:
| 列舉值 | 適用場景 | 說明 |
|---|---|---|
DYNAMIC_CREATIVE_STATUS_PENDING |
競價廣告創意 | 稽核中 |
DYNAMIC_CREATIVE_STATUS_ACTIVE |
競價廣告創意 | 投放中 |
DYNAMIC_CREATIVE_STATUS_SUSPEND |
競價廣告創意 | 暫停 |
DYNAMIC_CREATIVE_STATUS_AUDIT_FAILED |
競價廣告創意 | 稽核不通過 |
DYNAMIC_CREATIVE_STATUS_DELETED |
競價廣告創意 | 已刪除 |
SMART_DYNAMIC_CREATIVE_STATUS_USING |
智投專案創意 | 啟用中 |
SMART_DYNAMIC_CREATIVE_STATUS_SUSPEND |
智投專案創意 | 已暫停 |
SMART_DYNAMIC_CREATIVE_STATUS_DELETED |
智投專案創意 | 已刪除 |
| 欄位 | 說明 | 支援的運算子 |
|---|---|---|
| component.component_id | 元件 ID | EQUALS, IN, NOT_IN |
| component.component_type | 元件型別 | EQUALS, IN |
| component.fuzzy_name | 元件名稱模糊搜尋 | EQUALS |
| component.component_sub_type | 元件子型別 | EQUALS, IN |
| component.approval_status | 稽核狀態 | EQUALS, IN |
| component.operation_status | 運營狀態 | EQUALS, IN |
| component.created_time | 建立時間(YYYY-MM-DD HH:mm:ss 格式,指令碼自動轉時間戳) |
時間運算子 |
| component.generation_type | 生成型別 | EQUALS, IN |
| component.quality_status | 質量狀態 | EQUALS, IN |
| component.potential_status | 潛力狀態 | EQUALS, IN |
| component.shared_account_id | 共享賬戶 ID | EQUALS, IN |
| component.scene | 場景 | EQUALS, IN |
| 欄位 | 說明 | 支援的運算子 |
|---|---|---|
| report.adgroup_id | 廣告 ID | EQUALS, IN |
| report.dynamic_creative_id | 創意 ID | EQUALS, IN |
| report.component_id | 元件 ID | EQUALS, IN |
| report.component_type | 元件型別 | EQUALS, IN |
| report.image_id | 圖片 ID | EQUALS, IN |
| report.video_id | 影片 ID | EQUALS, IN |
| report.marketing_asset_id | 產品 ID | EQUALS, IN |
| report.marketing_target_type | 營銷目標型別 | EQUALS, IN |
| report.audience_id | 人群 ID | EQUALS, IN |
| report.landing_page_id | 落地頁 ID | EQUALS, IN |
| report.brand_ad_type | 品牌廣告型別 | EQUALS |
| report.campaign_type | 推廣型別 | - |
| report.smart_delivery_platform | 智投平臺版本 | EQUALS, IN, LESS, GREATER_EQUALS |
| report.creative_asset_id | 創意資產 ID | EQUALS, IN |
| 欄位 | 說明 | 支援的運算子 |
|---|---|---|
| image.image_id | 圖片 ID | EQUALS, IN |
| image.label_name | 圖片標籤 | EQUALS |
| video.video_id | 影片 ID | EQUALS, IN |
| video.label_name | 影片標籤 | EQUALS |
| 欄位 | 說明 | 支援的運算子 |
|---|---|---|
| marketing_asset.marketing_asset_id | 產品 ID | EQUALS, IN |
| marketing_asset.marketing_target_type | 營銷目標型別 | EQUALS, IN |
| marketing_asset.fuzzy_name | 產品名稱模糊搜尋 | EQUALS |
用於基於報表指標數值進行篩選,在資料返回後過濾。
支援的過濾欄位:
- report.cost - 消耗
- report.view_count - 展示量
- report.valid_click_count - 有效點選量
- report.conversions_count - 轉化數
- report.conversions_cost - 轉化成本
- report.conversions_rate - 轉化率
| 運算子 | 說明 |
|---|---|
| EQUALS | 等於(單值匹配) |
| IN | 在列表中(多值匹配) |
| NOT_IN | 不在列表中 |
| LESS | 小於 |
| LESS_EQUALS | 小於等於 |
| GREATER | 大於 |
| GREATER_EQUALS | 大於等於 |
| CONTAINS | 包含 |
| HAS_ANY | 陣列包含任意值 |
{
"data": {
"list": [
{
"account_id": 39412855,
"account": { ... },
"adgroup": {
"adgroup_id": 123456,
"adgroup_name": "廣告名稱",
"configured_status": "AD_STATUS_NORMAL",
"system_status": "ADGROUP_STATUS_NORMAL",
...
},
"dynamic_creative": { ... },
"component": { ... },
"bidword": { ... },
"report": {
"cost": 10000,
"view_count": 50000,
"valid_click_count": 1200,
"ctr": "2.40",
"conversions_count": 100,
"conversions_cost": 10000,
...
},
"image": { ... },
"media": { ... },
"video": { ... },
"marketing_asset": { ... },
"joint_budget_rule": { ... },
"product_catalog": { ... },
"project_creative": { ... },
"video_aggregation": { ... },
"creative_asset": { ... },
"jump_info": { ... }
}
],
"page_info": {
"page": 1,
"page_size": 20,
"total_number": 150,
"total_page": 8
},
"update_time": "2025-11-29 10:30:00"
}
}
| 欄位 | 型別 | 說明 |
|---|---|---|
| account_id | integer | 廣告主帳號 ID |
| account | struct | 賬戶資訊 |
| adgroup | struct | 廣告屬性(google_struct 動態欄位) |
| dynamic_creative | struct | 動態創意屬性 |
| component | struct | 元件屬性 |
| bidword | struct | 競價詞屬性 |
| report | struct | 報表指標資料(google_struct 動態欄位) |
| image | struct | 圖片素材資訊 |
| media | struct | 媒體資訊 |
| video | struct | 影片素材資訊 |
| marketing_asset | struct | 產品資產資訊 |
| joint_budget_rule | struct | 聯合預算規則資訊 |
| product_catalog | struct | 商品資訊 |
| project_creative | struct | 專案創意資訊 |
| video_aggregation | struct | 影片聚合資訊 |
| creative_asset | struct | 創意資產資訊 |
| jump_info | struct | 跳轉資訊 |
| 欄位 | 說明 |
|---|---|
| adgroup.adgroup_id | 廣告 ID |
| adgroup.adgroup_name | 廣告名稱 |
| adgroup.is_deleted | 是否已刪除 |
| adgroup.status | 廣告狀態 |
| adgroup.status_cn | 廣告狀態中文 |
| adgroup.configured_status | 配置狀態(開/關) |
| adgroup.adgroup_status | 廣告投放狀態 |
| adgroup.system_status | 系統狀態 |
| adgroup.system_status_cn | 系統狀態中文 |
| adgroup.system_status_tips | 系統狀態提示 |
| adgroup.optimization_goal | 最佳化目標 |
| adgroup.optimization_goal_cn | 最佳化目標中文 |
| adgroup.marketing_goal | 營銷目的 |
| adgroup.marketing_goal_cn | 營銷目的中文 |
| adgroup.marketing_target_type | 營銷目標型別 |
| adgroup.marketing_target_type_cn | 營銷目標型別中文 |
| adgroup.marketing_carrier_type | 營銷載體型別 |
| adgroup.marketing_carrier_type_cn | 營銷載體型別中文 |
| adgroup.promoted_object_type | 推廣目標型別 |
| adgroup.promoted_object_type_cn | 推廣目標型別中文 |
| adgroup.total_budget | 總預算 |
| adgroup.daily_budget | 日預算 |
| adgroup.bid_amount | 出價金額 |
| adgroup.bid_mode | 競價模式 |
| adgroup.bid_scene | 競價場景 |
| adgroup.billing_event | 計費事件 |
| adgroup.buying_type | 購買型別 |
| adgroup.begin_date | 開始日期 |
| adgroup.end_date | 結束日期 |
| adgroup.site_set | 版位 |
| adgroup.site_set_cn | 版位中文 |
| adgroup.smart_delivery_platform | 智投平臺版本 |
| adgroup.smart_delivery_scene | 智投場景 |
| adgroup.smart_bid_type | 出價方式 |
| adgroup.smart_bid_type_cn | 出價方式中文 |
| adgroup.targeting_translation | 定向翻譯 |
| adgroup.time_series | 投放時段 |
| adgroup.deep_conversion_spec | 深度轉化規格 |
| adgroup.joint_budget_rule_id | 聯合預算規則 ID |
| adgroup.marketing_asset_id | 營銷資產 ID |
| adgroup.flow_lock_status | 鎖量狀態 |
| adgroup.exploration_strategy | 自動版位探索策略 |
| adgroup.automatic_site_enabled | 自動版位是否開啟 |
| adgroup.dynamic_creative_id | 動態創意 ID |
| adgroup.placement_group_id | 版位組 ID |
| adgroup.display_id | 展示 ID |
| adgroup.adgroup_operation | 廣告操作資訊 |
| adgroup.ad_count | 廣告數量 |
| adgroup.date_set | 日期設定 |
| adgroup.negative_word_cnt | 否定詞數量 |
| adgroup.dynamic_ad_type | 動態廣告型別 |
| adgroup.dynamic_ad_type_text | 動態廣告型別文本 |
| adgroup.dynamic_creative_status_info | 動態創意狀態資訊 |
| adgroup.adcreative_preview_list | 創意預覽列表 |
| adgroup.created_by_industry_platform | 行業平臺建立標識 |
| adgroup.ad_created_source | 廣告建立來源 |
| adgroup.search_intelligent_extension | 搜尋智慧拓展 |
| adgroup.live_video_mode | 直播影片模式 |
| adgroup.live_video_sub_mode | 直播影片子模式 |
完整欄位列表見下方「欄位字典參考 → 報表指標字典」,此處僅列舉最常用的欄位:
基礎效果指標:
| 欄位 | 說明 |
|---|---|
| report.cost | 消耗(分) |
| report.view_count | 曝光量/展示量 |
| report.valid_click_count | 點選量/有效點選量 |
| report.ctr | 點選率(%) |
| ### 其他常用欄位 |
| 欄位 | 說明 |
|---|---|
| account_id | 廣告主帳號 ID |
以下公共約定由構建階段自動內聯:
以下內容為騰訊廣告營銷 API(api.e.qq.com)各 skill 共享的公共約定,會在構建階段自動內聯到目標 skill 文件中。各 skill 不需要重複這些內容。
https://api.e.qq.comtencent-ads auth status 檢視當前認證狀態10000 分 = 100 元人民幣YYYY-MM-DD HH:mm:ss 格式(如 "2026-03-18 00:00:00"),指令碼內部自動完成格式轉換所有介面均通過 tencent-ads CLI 工具呼叫(agent 通過 bash 執行)。API Key 鑑權由 CLI 自動處理(通過 X-MKT-API-Key header),無需手動傳入。
tencent-ads api '{
"method": "GET",
"path": "/v3.0/xxx/get",
"account_id": "YOUR_ACCOUNT_ID",
"params": {"page": 1, "page_size": 10}
}'
tencent-ads api '{
"method": "POST",
"path": "/v3.0/xxx/add",
"account_id": "YOUR_ACCOUNT_ID",
"body": {"account_id": 12345, "field1": "value1"}
}'
| 引數 | 型別 | 必填 | 說明 |
|---|---|---|---|
| method | string | 否 | GET 或 POST(預設 GET) |
| path | string | 是 | API 路徑 |
| account_id | string | 是 | 廣告賬戶 ID |
| params | object | 否 | GET 查詢引數(JSON 物件) |
| body | object | 否 | POST 請求體(JSON 物件) |
嚴格規則:呼叫任何介面時,必須嚴格使用該介面文件中宣告的 HTTP 方法(GET / POST),不得擅自更改。使用錯誤的請求方法會導致服務端返回
405 Method Not Allowed。
所有介面返回的 JSON 響應都遵循以下格式:
{
"code": 0,
"message": "",
"message_cn": "",
"data": {
// 介面特定的響應資料
}
}
| 欄位 | 型別 | 說明 |
|---|---|---|
| code | integer | 響應碼,0 表示成功,非 0 表示錯誤 |
| message | string | 英文錯誤訊息(成功時為空) |
| message_cn | string | 中文錯誤訊息(成功時為空) |
| data | object | 響應資料物件 |
tencent-ads api 返回的 JSON 響應中包含 code 欄位:
- code 為 0 表示成功
- code 非 0 時,檢查 message_cn 獲取中文錯誤說明
| 錯誤碼 | 說明 | 處理方式 |
|---|---|---|
| 0 | 成功 | - |
| 3 | 引數錯誤 | 檢查請求引數格式和必填項 |
| 5 | 許可權不足 | 確認 API Key 有效且具有相應許可權 |
| 6 | 系統錯誤 | 重試或聯絡技術支援 |
| 1001 | timestamp 超時 |
確保請求時間戳在當前時間 ±300 秒內 |
| 1002 | nonce 重複 |
使用新的隨機字串 |
10000 分 = 100 元人民幣created_time、last_modified_time、completed_time):統一使用 YYYY-MM-DD HH:mm:ss 格式(如 "2026-03-18 00:00:00"),指令碼內部自動與 API 的 Unix 時間戳互轉YYYY-MM-DDHH:ii:ssGMT+8(北京時間)大多數列表查詢介面支援以下分頁引數:
| 引數名 | 型別 | 預設值 | 說明 |
|---|---|---|---|
| page | integer | 1 | 頁碼(1-100) |
| page_size | integer | 10 | 每頁數量(1-100) |
| 引數名 | 型別 | 說明 |
|---|---|---|
| pagination_mode | enum | 分頁方式:PAGINATION_MODE_NORMAL(標準)/ PAGINATION_MODE_CURSOR(游標) |
| cursor | string | 游標值,有效期 24 小時 |
{
"page_info": {
"page": 1,
"page_size": 10,
"total_number": 100,
"total_page": 10
}
}
大多數查詢介面支援 filtering 引數進行條件過濾:
{
"filtering": [
{
"field": "欄位名",
"operator": "運算子",
"values": ["值1", "值2"]
}
]
}
| 運算子 | 說明 | 示例 |
|---|---|---|
| EQUALS | 等於 | {"field": "status", "operator": "EQUALS", "values": ["NORMAL"]} |
| CONTAINS | 模糊匹配 | {"field": "name", "operator": "CONTAINS", "values": ["測試"]} |
| LESS | 小於 | {"field": "created_time", "operator": "LESS", "values": ["2026-04-01 00:00:00"]} |
| LESS_EQUALS | 小於等於 | {"field": "created_time", "operator": "LESS_EQUALS", "values": ["2026-04-01 23:59:59"]} |
| GREATER | 大於 | {"field": "created_time", "operator": "GREATER", "values": ["2026-03-01 00:00:00"]} |
| GREATER_EQUALS | 大於等於 | {"field": "created_time", "operator": "GREATER_EQUALS", "values": ["2026-03-01 00:00:00"]} |
| IN | IN 運算子 | {"field": "id", "operator": "IN", "values": ["1", "2", "3"]} |
code 欄位code = 6),可以實施指數退避重試fields 引數只請求需要的欄位,減少資料傳輸以下字典由構建階段自動內聯,包含所有可用欄位的完整定義。
🚫 強制規則:遇到不在常用對映表中的欄位名時,必須先查字典,禁止猜測!
使用者描述中提到的欄位名稱往往與 API 實際欄位名差異很大,例如: - "AIGC 創意" →
smart_delivery_aigc_option(而非aigc_creative) - "鎖量" →flow_lock_status(而非lock_status) - "關注數" →scan_follow_user_count(而非wechat_official_account_follower_count) - "5秒播放數" → 需查字典確認(而非video_play_5s_count)本文件不可能窮舉所有欄位,但
adgroup-fields.json(236 個欄位)和report-fields.json(854 個欄位)中有完整的欄位定義。強制做法:當用戶提到的欄位不在上方「常用報表欄位對映」或「常用 fields 欄位」表中時,必須先用
--query-fields查詢欄位字典,確認正確欄位名後再構造請求。絕對禁止根據英文命名規律自行拼湊欄位名。示例:使用者說"幫我查詢最近一週開啟 AIGC 的廣告" 1. 先查字典:
node scripts/query-adgroups.mjs --query-fields "aigc"2. 得到匹配欄位(如smart_delivery_aigc_option、smart_delivery_aigc_creative等) 3. 再用正確的欄位名構造查詢請求的fields或filtering引數示例:使用者說"檢視5秒播放數、關注數、關注成本" 1. 這些指標不在常用對映表中 → 必須查字典 2. 執行:
node scripts/query-report.mjs --query-fields "5秒播放,關注"3. 從返回結果中確認準確欄位名,再構造fields引數
廣告欄位定義儲存在 resources/adgroup-fields.json 中(共 236 個欄位,按分類組織:定向設定、廣告基本資訊、營銷配置、投放時間與預算、出價與最佳化、深度最佳化、一鍵起量、版位與場景定向、創意相關、轉化與資料來源、搜尋定向、動態廣告、其他、智投專案專有、報表廣告維度屬性、分頁)。
查詢方式:通過 query-adgroups.mjs --query-fields [關鍵詞] 獲取欄位定義。
| 用法 | 說明 |
|---|---|
query-adgroups.mjs --query-fields |
返回全部廣告欄位(欄位名、型別、中文名、分類、說明) |
query-adgroups.mjs --query-fields "定向" |
按分類/中文名過濾,返回定向相關欄位 |
query-adgroups.mjs --query-fields "bid" |
按欄位名過濾,返回包含 bid 的欄位 |
query-adgroups.mjs --query-fields "出價,預算,定向" |
多關鍵詞批次查詢,逗號分隔,匹配任意一個即返回 |
自動中文名附加:query-adgroups.mjs 查詢廣告資料時,返回的每個欄位自動附加中文名(如 adgroup_name: "xxx" 旁會有 廣告名稱: "xxx"),無需手動翻譯。
報表指標欄位定義儲存在 resources/report-fields.json 中(共 854 個欄位,按分類組織)。
查詢方式:通過 query-report.mjs --query-fields [關鍵詞] 獲取欄位定義。
| 用法 | 說明 |
|---|---|
query-report.mjs --query-fields |
返回全部報表指標欄位(欄位名、型別、中文名、分類、說明) |
query-report.mjs --query-fields "影片" |
按分類/中文名過濾,返回影片相關欄位 |
query-report.mjs --query-fields "cost" |
按欄位名過濾,返回包含 cost 的欄位 |
query-report.mjs --query-fields "cost,click,impression" |
多關鍵詞批次查詢,逗號分隔,匹配任意一個即返回 |
⚠️ 強制使用場景:只要使用者提到的報表指標不在「常用報表欄位對映」表中,就必須先用
--query-fields查詢欄位字典,確認正確的report.*欄位名後再構造查詢請求。這是強制步驟,不可跳過。
| 欄位名 | 型別 | 中文名稱 | 說明 |
|---|---|---|---|
| page_info | struct | 分頁配置資訊 | |
| page | integer | 搜尋頁碼 | 預設值:1 |
| page_size | integer | 一頁顯示的資料條數 | 預設值:10 |
| total_number | integer | 總條數 | |
| total_page | integer | 總頁數 |
請求方式: 該介面使用 POST 方法,引數放在請求體中(非 URL 引數)。
fields 欄位格式: fields 中的欄位使用 物件.屬性 的格式,如 adgroup.adgroup_id、report.cost。頂層的 account_id 不帶字首。
adgroup.*)和報表欄位(report.*),否則 report 會返回空物件。查詢指定廣告的分時/按天趨勢時:fields 只需包含使用者關心的 report.* 指標即可。
金額單位: 所有金額欄位單位為分。
report.cost = 10000 表示消耗 100 元adgroup.total_budget = 100000 表示預算 1000 元
日期範圍: 最早支援查詢近 365 天的資料。start_date ≤ end_date,格式 YYYY-MM-DD。當天和昨天的日期均可使用。
分頁: 支援大頁面(page_size 最大 99999999),但建議按需設定合理的分頁大小。資料量大時注意響應時間。
report_only(慎用): 設為 true 時表示僅查報表指標資料,不返回實體屬性資料(廣告名稱、狀態、預算、出價等業務欄位都不會返回)。適用場景:使用者只需要效果資料(消耗、點選、轉化等)而不關心廣告屬性資訊,如純資料彙總統計。查詢廣告列表時應使用預設值 false(或不傳此引數),以同時獲取廣告屬性和報表資料。
group_by(關鍵): 聚合引數決定了資料的彙總維度。不傳 group_by 會導致 report 返回空物件。每個 level 的合法值和預設值見 level 資料維度與 group_by 對應表。
二維過濾(or_filtering): 支援 OR 邏輯組合過濾。外層陣列為 OR 關係,內層 and_filtering 陣列為 AND 關係。
常見的返回空資料原因排查:
list 返回空陣列(total_number: 0):smart_delivery_platform 過濾或方向錯誤(最常見原因)→ 智投和非智投必須分開查。預設應用 LESS(查常規廣告/非智投)。 若使用者明確要求查智投,用 GREATER_EQUALS。report_only: true 導致不返回實體屬性資料 → 去掉 report_only 或設為 falsefiltering 其他條件過於嚴格 → 先用基礎 3 條 + 智投/非智投過濾查詢report 返回空物件(report: {}):group_by 引數 → 加上 "group_by": ["adgroup_id"](列表查詢)或 ["date", "hour"](分時查詢)filtering 引數 → 至少加上基礎 3 條過濾 + 智投/非智投條件fields 只有 report.* 沒有 adgroup.* → 補充屬性欄位以上各項需同時正確才能返回有效資料
🚫 禁止重複呼叫(極其重要):
list 資料(即使所有指標值為 0),說明引數正確、介面正常,應直接使用返回資料向用戶展示,絕不要因為資料值全為 0 而反覆修改引數重試。7w4.net小蔥技能站收錄全網優質技能,值得收藏。
error 欄位、HTTP 錯誤等)→ 檢查引數後可重試 1 次list 返回空陣列(total_number: 0)→ 可按第 9 條排查後重試 1 次list 有資料但 report 中的值為 0 → 這是正常結果,直接使用,禁止重試group_by、level、fields、is_total 等引數嘗試"修復"資料;繞過指令碼直接呼叫底層 API;檢視指令碼原始碼試圖排查問題。這些行為浪費大量步驟且不會改變結果。廣告詳情查詢指令碼,用於獲取廣告的完整配置資訊。
| 對比項 | query-report.mjs | query-adgroups.mjs |
|---|---|---|
| 返回報表資料 | ✅ 返回消耗、曝光、點選等報表指標 | ❌ 不返回報表資料 | | 返回配置詳情 | ⚠️ 僅返回基本屬性 | ✅ 返回完整配置(定向、出價、轉化、版位等) | | 需要日期範圍 | ✅ 必填 | ❌ 不需要 | | 支援跨賬戶 | ✅ 支援 | ❌ 單賬戶 | | 檢視已刪除廣告 | ❌ 不支援 | ✅ 支援 | | 支援游標分頁 | ❌ | ✅ 支援 |
node scripts/query-adgroups.mjs '<JSON 引數>'
| 引數 | 型別 | 必填 | 說明 |
|---|---|---|---|
account_id |
string | 是 | 廣告主賬號 ID |
tencent_ads_type |
enum | 否 | 廣告實體型別,列舉值只允許 "smart" / "standard" / "all" 三者之一,預設 "all"。詳見步驟 1.5 |
adgroup_ids |
string[] | 否 | 指定廣告 ID 列表(按 ID 精確查詢) |
fields |
string[] | 否 | 自定義返回欄位(不傳則使用預設欄位集) |
filtering |
struct[] | 否 | 過濾條件陣列 |
page |
integer | 否 | 頁碼,預設 1(最大 100) |
page_size |
integer | 否 | 每頁條數,預設 10(最大 100) |
is_deleted |
boolean | 否 | 是否查詢已刪除廣告,預設 false |
pagination_mode |
enum | 否 | 分頁方式:PAGINATION_MODE_NORMAL(預設)/ PAGINATION_MODE_CURSOR |
cursor |
string | 否 | 游標值(配合游標分頁模式使用) |
| 欄位 | 說明 | 支援的運算子 |
|---|---|---|
adgroup_id |
廣告 ID | EQUALS, IN(IN 時最多 100 個) |
adgroup_name |
廣告名稱 | CONTAINS |
created_time |
建立時間(YYYY-MM-DD HH:mm:ss 格式,指令碼自動轉時間戳) |
GREATER, LESS, GREATER_EQUALS, LESS_EQUALS |
last_modified_time |
最後修改時間(YYYY-MM-DD HH:mm:ss 格式,指令碼自動轉時間戳) |
GREATER, LESS, GREATER_EQUALS, LESS_EQUALS |
configured_status |
客戶設定的狀態 | EQUALS, IN |
material_package_id |
素材包 ID | EQUALS |
joint_budget_rule_id |
聯合預算規則 ID | EQUALS |
auto_derived_creative_enabled |
創意增強 MAX 開關 | EQUALS |
rta_target_id |
RTA 目標 ID | EQUALS |
node scripts/query-adgroups.mjs '{"account_id":"39412855","adgroup_ids":["72536365535"]}'
node scripts/query-adgroups.mjs '{"account_id":"39412855"}'
node scripts/query-adgroups.mjs '{"account_id":"39412855","fields":["adgroup_id","adgroup_name","configured_status","targeting","bid_amount","daily_budget"]}'
node scripts/query-adgroups.mjs '{"account_id":"39412855","filtering":[{"field":"adgroup_name","operator":"CONTAINS","values":["品牌推廣"]}]}'
node scripts/query-adgroups.mjs '{"account_id":"39412855","filtering":[{"field":"configured_status","operator":"EQUALS","values":["AD_STATUS_NORMAL"]}]}'
node scripts/query-adgroups.mjs '{"account_id":"39412855","is_deleted":true}'
# 第一次請求
node scripts/query-adgroups.mjs '{"account_id":"39412855","pagination_mode":"PAGINATION_MODE_CURSOR","page_size":100}'
# 後續請求(使用上一次返回的 cursor)
node scripts/query-adgroups.mjs '{"account_id":"39412855","pagination_mode":"PAGINATION_MODE_CURSOR","page_size":100,"cursor":"xxx"}'
node scripts/query-adgroups.mjs '{"account_id":"39412855","filtering":[{"field":"created_time","operator":"GREATER_EQUALS","values":["2026-04-03 00:00:00"]}]}'
created_time支援YYYY-MM-DD HH:mm:ss格式,指令碼自動轉為 Unix 時間戳。也支援直接傳時間戳。
{
"list": [
{
"adgroup_id": 72536365535,
"adgroup_name": "廣告名稱",
"campaign_id": 12345,
"configured_status": "AD_STATUS_NORMAL",
"system_status": "ADGROUP_STATUS_NORMAL",
"marketing_goal": "MARKETING_GOAL_PRODUCT_SALES",
"bid_amount": 5000,
"optimization_goal": "OPTIMIZATIONGOAL_ECOMMERCE_ORDER",
"begin_date": "2026-03-20",
"end_date": "2026-04-20",
"daily_budget": 100000,
"targeting": {
"geo_location": { "regions": [110000, 310000] },
"age": [{ "min": 18, "max": 45 }],
"gender": ["MALE", "FEMALE"]
},
"site_set": ["SITE_SET_WECHAT"],
"bid_mode": "BID_MODE_OCPM",
"smart_bid_type": "SMART_BID_TYPE_CUSTOM",
...
}
],
"page_info": {
"page": 1,
"page_size": 10,
"total_number": 50,
"total_page": 5
}
}
bid_amount = 5000 表示出價 50 元)。page 最大 100,page_size 最大 100。需獲取全量資料時推薦使用游標分頁模式。fields 時指令碼自動使用預設欄位集,覆蓋基礎資訊、定向、出價、轉化、智投專案配置(含週期達成、成本保障、直播加熱等)等全量欄位。如需檢視特定欄位,建議顯式傳入 fields 引數。query-report.mjs 獲取廣告列表和報表資料,找到感興趣的廣告後,再用 query-adgroups.mjs 檢視其詳細配置。智慧投放專案複用了 adgroup(廣告)的介面,因此介面中的欄位名與專案概念的對應關係如下:
專案概念 介面欄位 說明 專案 ID adgroup_id智投專案 ID 對應介面中的廣告 ID 專案名稱 adgroup_name智投專案名稱對應介面中的廣告名稱 專案狀態 configured_status/system_status專案的配置狀態與系統狀態 專案預算 daily_budget/total_budget專案日預算與總預算 專案出價 bid_amount專案出價對應介面中的廣告出價 專案建立時間 created_time專案建立時間(返回 YYYY-MM-DD HH:mm:ss格式)專案修改時間 last_modified_time專案最後修改時間(返回 YYYY-MM-DD HH:mm:ss格式)其他欄位也類同,介面層面專案與廣告共用同一套資料結構,呼叫方式完全一致。
智慧投放專案詳情的獲取使用 query-adgroups.mjs 指令碼。指令碼支援按需指定 fields 引數來獲取所需欄位;如果不指定 fields,指令碼內建了覆蓋智投專案全量配置的預設欄位集(包括週期達成、成本保障、直播加熱等),無需手動傳入。
node scripts/query-adgroups.mjs '{"account_id":"39412855","adgroup_ids":["72536365535"]}'
不指定
fields時,指令碼自動返回上述所有預設欄位。
node scripts/query-adgroups.mjs '{"account_id":"39412855","adgroup_ids":["72536365535"],"fields":["adgroup_id","adgroup_name","smart_delivery_platform","smart_delivery_scene","project_ability_list","smart_delivery_aigc_option","smart_targeting_status"]}'
只需要檢視智投相關配置時,可以通過
fields按需獲取,減少返回資料量。
node scripts/query-adgroups.mjs '{"account_id":"39412855","page_size":100}'
node scripts/query-adgroups.mjs '{"account_id":"39412855","filtering":[{"field":"adgroup_name","operator":"CONTAINS","values":["智投專案關鍵詞"]}]}'
| 欄位 | 型別 | 說明 |
|---|---|---|
| smart_delivery_platform | enum | 行業智投平臺型別 |
| smart_delivery_scene | enum | 智投投放場景 |
| smart_delivery_scene_spec | struct | 場景化投放資訊(含投放目標、轉化 ID 列表等) |
| smart_delivery_aigc_option | enum | 智投 AIGC 選項 |
| smart_delivery_auto_creative | struct | 智投自動創意資訊(含是否開啟、供給策略、元件等) |
| smart_delivery_history_comp_reused_creative | struct | 智投歷史元件複用創意 |
| smart_delivery_aigc_creative | struct | 智投 AIGC 創意配置 |
| smart_delivery_live_boost | enum | 直播加熱 |
| smart_targeting_status | enum | 廣告智慧定向狀態 |
| project_ability_list | array | 場景化投放原子能力列表 |
| project_ability_spec | struct | 場景化投放原子能力(含營銷表達、優化出價) |
| boost_source_project_id | int64 | 加熱源專案 ID |
| exploration_strategy | enum | 自動版位探索策略(自動版位開啟時生效) |
| flow_lock_status | enum | 鎖量狀態 |
| aoi_optimization_strategy | struct | 高價值範圍探索 |
| cost_guarantee_status | enum | 成本保障狀態 |
| cost_guarantee_money | int64 | 成本保障賠付金額(單位:分) |
| expected_roi_mix_factor | float64 | 混變係數(0.0001~9999.9999) |
| smart_coupon_mode | enum | 小店智券開關 |
| auto_derived_creative_preference | struct | 創意增強 MAX 偏好設定 |
| enable_breakthrough_siteset | boolean | 是否支援版位突破 |
| live_recommend_strategy_enabled | boolean | 直播種草人群探索 |
| audience_model_bid_adjustment | struct | 後效建模最佳化功能 |
| additional_product_spec | struct | 附加商品屬性 |
| incubation_optimization_goal | enum | 孵化最佳化目標 |
| conversion_name | string | 轉化名稱 |
| completed_time | integer | 廣告總限額到達時間戳(unix 秒級) |
| smart_delivery_period_switch | enum | 週期達成 |
| smart_delivery_period_budget | integer | 週期預算(單位:分,0 表示不限) |
| smart_delivery_period_days | enum | 週期天數 |
| smart_delivery_period_continue | enum | 週期續投 |
| smart_delivery_period_begin_date | string | 週期開始日期 |
| smart_delivery_period_end_date | string | 週期結束日期 |
創意列表查詢指令碼,用於獲取創意的完整資訊。
| 對比項 | query-report.mjs | query-creatives.mjs |
|---|---|---|
| 返回報表資料 | ✅ 返回消耗、曝光、點選等報表指標 | ❌ 不返回報表資料 |
| 返回創意元件詳情 | ⚠️ 僅返回創意級別基本屬性 | ✅ 返回完整的 creative_components 結構 |
| 自動解析元件內容 | ❌ | ✅ 自動拉取元件詳情並內聯 |
| 需要日期範圍 | ✅ 必填 | ❌ 不需要 |
| 支援跨賬戶 | ✅ 支援 | ❌ 單賬戶 |
| 檢視已刪除創意 | ❌ 不支援 | ✅ 支援 |
| 支援游標分頁 | ❌ | ✅ 支援 |
node scripts/query-creatives.mjs '<JSON 引數>'
| 引數 | 型別 | 必填 | 說明 |
|---|---|---|---|
account_id |
string | 是 | 廣告主賬號 ID |
tencent_ads_type |
enum | 否 | 廣告實體型別,列舉值只允許 "smart" / "standard" / "all" 三者之一,預設 "all"。詳見步驟 1.5 |
creative_ids |
string[] | 否 | 指定創意 ID 列表(按 ID 精確查詢) |
adgroup_ids |
string[] | 否 | 按廣告 ID 過濾創意 |
fields |
string[] | 否 | 自定義返回欄位(不傳則使用預設欄位集) |
filtering |
struct[] | 否 | 過濾條件陣列 |
page |
integer | 否 | 頁碼,預設 1(最大 100) |
page_size |
integer | 否 | 每頁條數,預設 10(最大 100) |
is_deleted |
boolean | 否 | 是否查詢已刪除創意,預設 false |
pagination_mode |
enum | 否 | 分頁方式:PAGINATION_MODE_NORMAL(預設)/ PAGINATION_MODE_CURSOR |
cursor |
string | 否 | 游標值(配合游標分頁模式使用) |
| 欄位 | 說明 | 支援的運算子 |
|---|---|---|
dynamic_creative_id |
創意 ID | EQUALS, IN(IN 時最多 100 個) |
dynamic_creative_name |
創意名稱 | CONTAINS |
adgroup_id |
所屬廣告 ID | EQUALS, IN(IN 時最多 100 個) |
created_time |
建立時間(YYYY-MM-DD HH:mm:ss 格式,指令碼自動轉時間戳) |
GREATER, LESS, GREATER_EQUALS, LESS_EQUALS |
last_modified_time |
最後修改時間(YYYY-MM-DD HH:mm:ss 格式,指令碼自動轉時間戳) |
GREATER, LESS, GREATER_EQUALS, LESS_EQUALS |
configured_status |
客戶設定的狀態 | EQUALS, IN |
source |
創意來源 | EQUALS, IN |
component_id |
元件 ID | EQUALS |
data_model_version |
資料模型版本 | EQUALS |
smart_delivery_template_dc_id |
智投模板創意 ID | EQUALS, IN |
| 欄位 | 型別 | 說明 |
|---|---|---|
| dynamic_creative_id | integer | 創意 ID |
| dynamic_creative_name | string | 創意名稱 |
| adgroup_id | int64 | 所屬廣告 ID(若 smart_delivery_platform >= SMART_DELIVERY_PLATFORM_EDITION_SCENE 則為智慧投放專案 ID,展示時應標註"專案ID";否則為競價廣告 ID,展示時標註"廣告ID") |
| smart_delivery_platform | enum | 智投平臺版本,用於區分是否為智投廣告。列舉值含義見下方說明 |
| creative_template_id | integer | 創意形式 ID |
| delivery_mode | enum | 投放模式 |
| dynamic_creative_type | enum | 動態創意型別 |
| configured_status | enum | 客戶設定的狀態(AD_STATUS_NORMAL / AD_STATUS_SUSPEND) |
| created_time | integer | 建立時間(時間戳) |
| last_modified_time | integer | 最後修改時間(時間戳) |
| is_deleted | boolean | 是否已刪除 |
| 艾米型別 | 場景 | 列舉值 | 是否智投 |
|---|---|---|---|
| 預設 | 常規3.0廣告(非智投) | SMART_DELIVERY_PLATFORM_EDITION_STANDARD |
❌ 否 |
| 小店艾米 | 短直雙開智投 | SMART_DELIVERY_PLATFORM_EDITION_WECHAT_STORE_SINGLE_PRODUCT |
✅ 是 |
| 小店艾米 | 小店單鏈路智投 | SMART_DELIVERY_PLATFORM_EDITION_WECHAT_STORE_PRODUCT_OR_LIVE |
✅ 是 |
| 小店艾米 | 全店託管 | SMART_DELIVERY_PLATFORM_EDITION_WECHAT_STORE_MANAGEMENT |
✅ 是 |
| 小店艾米 | 推直播間 | SMART_DELIVERY_PLATFORM_EDITION_WECHAT_STORE_LIVE |
✅ 是 |
| 小店艾米 | 推商品 | SMART_DELIVERY_PLATFORM_EDITION_WECHAT_STORE_PRODUCT |
✅ 是 |
| 商品艾米 | 商品智投 | SMART_DELIVERY_PLATFORM_EDITION_DRUG_PRODUCT |
✅ 是 |
| 線索艾米 | 線索跑量 | SMART_DELIVERY_PLATFORM_EDITION_ECOLOGY_LEADS |
✅ 是 |
| 內容艾米 | 爆劇跑量 | SMART_DELIVERY_PLATFORM_EDITION_ECOLOGY_PLAYLET |
✅ 是 |
| 內容艾米 | 小說智投 | SMART_DELIVERY_PLATFORM_EDITION_FICTION |
✅ 是 |
| 內容艾米 | 小遊戲跑量 | SMART_DELIVERY_PLATFORM_EDITION_MINI_GAME_PROMOTION |
✅ 是 |
| APP艾米 | 遊戲應用智投 | SMART_DELIVERY_PLATFORM_EDITION_GAME_APP |
✅ 是 |
| APP艾米 | 閱讀應用智投 | SMART_DELIVERY_PLATFORM_EDITION_READING_APP |
✅ 是 |
| APP艾米 | AI應用智投 | SMART_DELIVERY_PLATFORM_EDITION_AI_APP |
✅ 是 |
| APP艾米 | 遊戲大推(即將下線) | SMART_DELIVERY_PLATFORM_EDITION_BIG_GAME_PROMOTION |
✅ 是 |
| - | 全域通-直播場景 | SMART_DELIVERY_PLATFORM_EDITION_QYT_LIVE |
✅ 是 |
| - | 全域通-直購場景 | SMART_DELIVERY_PLATFORM_EDITION_QYT_WECHAT_STORE |
✅ 是 |
判斷規則:
smart_delivery_platform為SMART_DELIVERY_PLATFORM_EDITION_STANDARD時為競價廣告(非智投),其餘列舉值均為智投專案。展示規則:智投專案的
adgroup_id展示為"專案ID";競價廣告的adgroup_id展示為"廣告ID"。
核心欄位:包含創意使用的所有元件引用資訊。
creative_components 是一個 map 結構,key 為元件型別標識,value 為該型別的元件配置。常見的元件型別包括:
| 元件型別 | 說明 |
|---|---|
| title | 標題 |
| description | 描述/文案 |
| image | 圖片 |
| image_list | 圖片列表(多圖) |
| video | 影片 |
| brand | 品牌資訊 |
| jump_info | 跳轉連結/落地頁 |
| action_button | 行動按鈕 |
| consult | 諮詢元件 |
| phone | 電話元件 |
| form | 表單元件 |
| label | 標籤 |
| show_data | 資料展示 |
| marketing_pendant | 營銷掛件 |
| floating_zone | 懸浮區域 |
| end_page | 結束頁 |
| wechat_channels | 影片號元件 |
| short_video | 短影片元件 |
| element_story | 故事元素 |
每個元件通常包含 component_id(引用的元件 ID)。當查詢結果只有 1 條創意時,指令碼會自動拉取元件詳情,並以 _component_detail 欄位內聯到各元件中,包含元件的實際內容(文案文本、圖片 URL、影片 URL 等)。此外還會自動獲取圖片/影片的預覽 URL,以 _preview 欄位內聯到對應素材中。
| 欄位 | 型別 | 說明 |
|---|---|---|
| impression_tracking_url | string | 曝光監控地址 |
| click_tracking_url | string | 點選監控連結 |
| program_creative_info | struct | 程式化創意資訊 |
| auto_derived_program_creative_switch | boolean | 自動生成更多素材開關 |
| marketing_asset_verification | struct | 資產驗真資訊 |
| creative_set_approval_status | enum | 創意稽核狀態 |
| asset_inconsistent_status | enum | 資產落地頁一致性狀態 |
| source_dynamic_creative_id | integer | 來源創意 ID |
node scripts/query-creatives.mjs '{"account_id":"39412855","adgroup_ids":["72536365535"]}'
自動解析元件詳情,返回創意完整資訊 + 元件內容。
node scripts/query-creatives.mjs '{"account_id":"39412855","creative_ids":["98765432"]}'
node scripts/query-creatives.mjs '{"account_id":"39412855","page_size":20}'
node scripts/query-creatives.mjs '{"account_id":"39412855","filtering":[{"field":"dynamic_creative_name","operator":"CONTAINS","values":["品牌推廣"]}]}'
node scripts/query-creatives.mjs '{"account_id":"39412855","is_deleted":true}'
# 第一次請求
node scripts/query-creatives.mjs '{"account_id":"39412855","pagination_mode":"PAGINATION_MODE_CURSOR","page_size":100}'
# 後續請求(使用上一次返回的 cursor)
node scripts/query-creatives.mjs '{"account_id":"39412855","pagination_mode":"PAGINATION_MODE_CURSOR","page_size":100,"cursor":"xxx"}'
node scripts/query-creatives.mjs '{"account_id":"39412855","fields":["dynamic_creative_id","dynamic_creative_name","adgroup_id","creative_components","configured_status"]}'
{
"list": [
{
"dynamic_creative_id": 98765432,
"dynamic_creative_name": "創意名稱-橫版影片",
"adgroup_id": 72536365535,
"creative_template_id": 1708,
"delivery_mode": "DELIVERY_MODE_DEFAULT",
"dynamic_creative_type": "DYNAMIC_CREATIVE_TYPE_NORMAL",
"creative_components": {
"title": [{
"component_id": 11111,
"_component_detail": {
"component_id": 11111,
"component_value": {
"title": { "content": "這是標題文案" }
},
"component_sub_type": "TITLE",
"component_custom_name": "品牌標題"
}
}],
"description": [{
"component_id": 22222,
"_component_detail": {
"component_id": 22222,
"component_value": {
"description": { "content": "這是描述文案" }
},
"component_sub_type": "DESCRIPTION"
}
}],
"video": [{
"component_id": 33333,
"_component_detail": {
"component_id": 33333,
"component_value": {
"video": {
"video_id": "abc123",
"_preview": {
"video_id": "abc123",
"preview_url": "https://example.com/video_preview.mp4",
"key_frame_image_url": "https://example.com/keyframe.jpg",
"width": 1280,
"height": 720
}
}
},
"component_sub_type": "VIDEO"
}
}],
"image": [{
"component_id": 44444,
"_component_detail": {
"component_id": 44444,
"component_value": {
"image": {
"image_id": "def456",
"_preview": {
"image_id": "def456",
"preview_url": "https://example.com/image_preview.jpg",
"width": 800,
"height": 600
}
}
},
"component_sub_type": "IMAGE"
}
}]
},
"configured_status": "AD_STATUS_NORMAL",
"created_time": 1742860800,
"last_modified_time": 1742947200,
"is_deleted": false
}
],
"page_info": {
"page": 1,
"page_size": 10,
"total_number": 1,
"total_page": 1
}
}
_component_detail欄位:當查詢結果只有 1 條創意時,指令碼自動為每個包含component_id的元件引用附加_component_detail欄位,其中包含完整元件資訊。
_preview欄位:對於元件中包含image_id或video_id的素材,指令碼自動獲取預覽資訊(preview_url、尺寸等),以_preview欄位內聯到對應素材物件中。
page 最大 100,page_size 最大 100。需獲取全量資料時推薦使用游標分頁模式。query-report.mjs 獲取創意級別的報表資料(level: DYNAMIC_CREATIVE),找到需要檢視詳情的創意後,再用 query-creatives.mjs 傳入 creative_ids 檢視其完整元件內容。query-adgroups.mjs 獲取廣告詳情,再用 query-creatives.mjs 按 adgroup_id 查詢該廣告下的所有創意。adgroup_id 根據 smart_delivery_platform 欄位決定展示名稱:EDITION_SCENE 或 EDITION_SCENE_PRO → 展示為專案ID(智慧投放專案)EDITION_STANDARD 或 EDITION_NONE(或欄位缺失)→ 展示為廣告ID(競價廣告)_preview.preview_url(影片/圖片預覽連結)和 _cover_preview.preview_url(封面預覽連結)必須在回覆中以可點選連結的形式呈現給使用者,不得省略或忽略。具體規則:preview_url(🎥 影片預覽連結)和封面 preview_url(🖼️ 封面連結)preview_url(🖼️ 圖片預覽連結)[描述](URL) 呈現管理廣告的關鍵詞(競價詞)。關鍵詞用於搜尋擴量場景,當廣告開啟搜尋擴量(search_expansion_switch = SEARCH_EXPANSION_SWITCH_OPEN)後,可為廣告設定搜尋關鍵詞。
詳細引數、示例和返回值見 references/bidword.md
| 指令碼 | 功能 | 必填引數 |
|---|---|---|
scripts/bidword/add.mjs |
建立關鍵詞 | account_id, list[{adgroup_id, bidword, match_type}] |
scripts/bidword/update.mjs |
更新關鍵詞 | account_id, list[{bidword_id, ...}] |
scripts/bidword/delete.mjs |
刪除關鍵詞 | account_id, list (bidword_id 陣列) |
scripts/bidword/get.mjs |
查詢關鍵詞 | account_id |
管理廣告組級別的否定關鍵詞。否定詞用於排除不相關的搜尋詞,避免廣告在不相關的搜尋結果中展示。
詳細引數、示例和返回值見 references/negativewords.md
| 指令碼 | 功能 | 必填引數 |
|---|---|---|
scripts/negativewords/add.mjs |
新增否定詞 | account_id, adgroup_id, phrase_negative_words, exact_negative_words |
scripts/negativewords/update.mjs |
更新否定詞(全量替換) | account_id, adgroup_id, phrase_negative_words, exact_negative_words |
scripts/negativewords/get.mjs |
查詢否定詞 | account_id, adgroup_ids |
建立和查詢推廣內容資產(marketing_asset)。執行前必須先讀取 references/marketing-asset/overview.md。
詳細流程說明(CPV/SPU/電商分類、建立步驟、引數說明、約束等)見 references/marketing-asset/overview.md
這個 Skill 質量較好,文件非常詳細,功能覆蓋騰訊廣告的核心管理需求,包括資料包表查詢、廣告詳情檢視、創意管理、關鍵詞和否定詞操作等。它提供了清晰的意圖判斷指南和多層級的指令碼選擇邏輯,使用者按文件流程操作即可獲得較好的支援。不過使用前需要安裝額外的 CLI 工具,對新手使用者存在一定門檻。總體而言,這是一個專業度高、功能完善的廣告管理 Skill。