siluzan-tso-cli 1.1.21 → 1.1.22-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/README.md +3 -2
  2. package/dist/index.js +632 -535
  3. package/dist/skill/AGENTS.md +45 -0
  4. package/dist/skill/SKILL.md +55 -347
  5. package/dist/skill/_meta.json +2 -2
  6. package/dist/skill/assets/campaign-create-template.json +1 -1
  7. package/dist/skill/assets/campaign-create-template.md +5 -5
  8. package/dist/skill/assets/pmax-create-template.md +6 -5
  9. package/dist/skill/docs/skill-guide.md +44 -0
  10. package/dist/skill/references/README.md +73 -0
  11. package/dist/skill/references/{accounts.md → accounts/accounts.md} +37 -37
  12. package/dist/skill/references/{currency.md → accounts/currency.md} +7 -7
  13. package/dist/skill/references/{finance.md → accounts/finance.md} +18 -18
  14. package/dist/skill/references/accounts/open-account-by-media.md +153 -0
  15. package/dist/skill/references/{open-account-google-ui.md → accounts/open-account-google-ui.md} +2 -2
  16. package/dist/skill/references/{write-audit-restore.md → accounts/write-audit-restore.md} +4 -4
  17. package/dist/skill/references/{account-analytics.md → analytics/account-analytics.md} +62 -33
  18. package/dist/skill/references/{google-analysis-batch.md → analytics/google-analysis-batch.md} +2 -2
  19. package/dist/skill/references/{keyword-planner-workflows.md → analytics/keyword-planner-workflows.md} +17 -17
  20. package/dist/skill/references/{rag.md → analytics/rag.md} +11 -11
  21. package/dist/skill/references/{reporting.md → analytics/reporting.md} +16 -16
  22. package/dist/skill/references/core/agent-conventions.md +180 -0
  23. package/dist/skill/references/core/playbooks.md +141 -0
  24. package/dist/skill/references/{setup.md → core/setup.md} +5 -5
  25. package/dist/skill/references/core/skill-authoring.md +192 -0
  26. package/dist/skill/references/{tips.md → core/tips.md} +5 -6
  27. package/dist/skill/references/{workflows.md → core/workflows.md} +63 -65
  28. package/dist/skill/references/{google-ads-campaign-plan.md → google-ads/google-ads-campaign-plan.md} +25 -25
  29. package/dist/skill/references/{google-ads.md → google-ads/google-ads.md} +63 -67
  30. package/dist/skill/references/{pmax-api.md → google-ads/pmax-api.md} +0 -2
  31. package/dist/skill/references/google-ads/rules/README.md +21 -0
  32. package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-account-audit.md +19 -19
  33. package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-campaign-optimization.md +1 -1
  34. package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-keyword-optimization.md +1 -1
  35. package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-keyword-strategy.md +3 -3
  36. package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-keyword-taxonomy.md +2 -2
  37. package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-launch-plan-template.md +8 -8
  38. package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-pmax-guide.md +2 -2
  39. package/dist/skill/references/{tso-home.md → misc/tso-home.md} +5 -5
  40. package/dist/skill/references/{clue.md → operations/clue.md} +7 -7
  41. package/dist/skill/references/{forewarning.md → operations/forewarning.md} +6 -6
  42. package/dist/skill/references/{hosted-automation-monitoring-json.md → operations/hosted-automation-monitoring-json.md} +14 -14
  43. package/dist/skill/references/{hosted-automation-optimize-ab-winner.md → operations/hosted-automation-optimize-ab-winner.md} +4 -4
  44. package/dist/skill/references/{hosted-automation-optimize-index.md → operations/hosted-automation-optimize-index.md} +6 -6
  45. package/dist/skill/references/{hosted-automation-optimize-scale.md → operations/hosted-automation-optimize-scale.md} +8 -8
  46. package/dist/skill/references/{hosted-automation-optimize-weak-downbid.md → operations/hosted-automation-optimize-weak-downbid.md} +9 -9
  47. package/dist/skill/references/operations/hosted-automation-scenarios.md +23 -0
  48. package/dist/skill/references/{hosted-automation-self-control.md → operations/hosted-automation-self-control.md} +28 -28
  49. package/{assets/siluzan-ads/references → dist/skill/references/operations}/hosted-automation-user-catalog.md +13 -13
  50. package/dist/skill/references/{optimize.md → operations/optimize.md} +5 -5
  51. package/dist/skill/report-templates/README.md +2 -1
  52. package/dist/skill/report-templates/REPORT-WORKFLOW.md +2 -2
  53. package/dist/skill/report-templates/google-ads-diagnosis.md +2 -2
  54. package/dist/skill/report-templates/google-inquiry-analysis.md +11 -12
  55. package/dist/skill/report-templates/google-period-report.md +2 -2
  56. package/dist/skill/report-templates/okki-weekly-google-client.md +12 -12
  57. package/dist/skill/scripts/install.ps1 +3 -3
  58. package/dist/skill/scripts/install.sh +3 -3
  59. package/eval/cases/accounts-entityid-vs-mediaccustomerid.scenario.json +4 -4
  60. package/eval/cases/accounts-mcc-bind-inquiry.scenario.json +3 -3
  61. package/eval/cases/accounts-single-balance-not-bulk.scenario.json +3 -3
  62. package/eval/cases/budget-display-not-raw-micros.scenario.json +3 -3
  63. package/eval/cases/clue-meta-leads-json.scenario.json +4 -4
  64. package/eval/cases/clue-tiktok-leads-json.scenario.json +3 -3
  65. package/eval/cases/destructive-account-delink-needs-confirm.scenario.json +1 -1
  66. package/eval/cases/destructive-forewarning-delete-needs-confirm.scenario.json +1 -1
  67. package/eval/cases/destructive-invoice-apply-needs-confirm.scenario.json +1 -1
  68. package/eval/cases/finance-invoice-info-list.scenario.json +3 -3
  69. package/eval/cases/forewarning-list-google.scenario.json +3 -3
  70. package/eval/cases/google-ads-no-structural-without-confirm.scenario.json +3 -3
  71. package/eval/cases/google-analysis-keywords-route.scenario.json +2 -2
  72. package/eval/cases/hosted-sop-cpa-spike-downbid.scenario.json +6 -6
  73. package/eval/cases/hosted-sop-daily-budget-circuit-breaker.scenario.json +4 -4
  74. package/eval/cases/hosted-sop-empty-spend-pause-p1.scenario.json +5 -5
  75. package/eval/cases/human-p1-multiturn.scenario.json +1 -1
  76. package/eval/cases/meta-single-balance-not-bulk.scenario.json +4 -4
  77. package/eval/cases/no-legacy-json-flag.scenario.json +12 -0
  78. package/eval/cases/open-account-bing-noninteractive.scenario.json +3 -3
  79. package/eval/cases/open-account-google-noninteractive.scenario.json +2 -2
  80. package/eval/cases/open-account-tiktok-license-file.scenario.json +2 -2
  81. package/eval/cases/optimize-list-by-account.scenario.json +3 -3
  82. package/eval/cases/p1-single-account-profile.scenario.json +2 -2
  83. package/eval/cases/p2-balance-scan-bulk.scenario.json +1 -1
  84. package/eval/cases/p4-period-report-window.scenario.json +1 -1
  85. package/eval/cases/rag-before-keyword-expand.scenario.json +3 -3
  86. package/eval/cases/rag-list-then-query.scenario.json +5 -5
  87. package/eval/cases/report-list-google.scenario.json +3 -3
  88. package/eval/cases/report-push-list-google.scenario.json +3 -3
  89. package/eval/cases/reporting-vs-account-analytics-routing.scenario.json +4 -4
  90. package/eval/cases/setup-login-or-env.scenario.json +2 -2
  91. package/eval/cases/setup-siluzan-data-permission-env.scenario.json +2 -2
  92. package/eval/cases/skill-optimize-vs-google-ads-distinction.scenario.json +4 -4
  93. package/eval/cases/tiktok-bc-bind-inquiry.scenario.json +2 -2
  94. package/eval/cases/time-range-user-delegates-default.scenario.json +2 -2
  95. package/eval/cases/tips-json-out-filtering.scenario.json +12 -0
  96. package/eval/cases/tips-large-json-pagination.scenario.json +3 -3
  97. package/eval/cases/uj-ad-bluetooth-keywords-exclude-cheap-free.scenario.json +1 -1
  98. package/eval/cases/uj-ad-campaign-validate-before-create-stub.scenario.json +3 -3
  99. package/eval/cases/uj-ad-keywords-camping-tent-outdoor-plan.scenario.json +1 -1
  100. package/eval/cases/uj-ad-outdoor-campgear-search-plan.scenario.json +3 -3
  101. package/eval/cases/uj-analytics-30d-pdf-campaign-device-geo.scenario.json +2 -2
  102. package/eval/cases/uj-analytics-compare-google-tiktok-last-month-roi.scenario.json +3 -3
  103. package/eval/cases/uj-analytics-google-weekly-trends-campaigns-keywords.scenario.json +4 -4
  104. package/eval/cases/uj-analytics-report-push-weekly-email.scenario.json +3 -3
  105. package/eval/cases/uj-finance-invoice-records-this-month.scenario.json +4 -4
  106. package/eval/cases/uj-life-newbie-siluzan-google-end-to-end.scenario.json +2 -2
  107. package/eval/cases/uj-ops-google-accounts-list-normal.scenario.json +4 -4
  108. package/eval/cases/uj-ops-google-yesterday-spend-conversions.scenario.json +5 -5
  109. package/eval/cases/uj-ops-open-google-b2c-usd-shenzhen.scenario.json +3 -3
  110. package/eval/cases/uj-ops-pause-worst-adgroup-confirm.scenario.json +2 -2
  111. package/eval/cases/uj-ops-tiktok-leads-last-week.scenario.json +4 -4
  112. package/eval/cases/uj-patrol-cpc-spike-adgroups-over-15.scenario.json +3 -3
  113. package/eval/cases/uj-patrol-forewarning-create-daily-cap-3000.scenario.json +3 -3
  114. package/eval/cases/uj-patrol-forewarning-trigger-records.scenario.json +4 -4
  115. package/eval/cases/uj-patrol-google-balances-low.scenario.json +3 -3
  116. package/eval/cases/uj-roi-full-google-account-diagnosis.scenario.json +1 -1
  117. package/eval/cases/uj-roi-keywords-high-cpa-low-cvr-triage.scenario.json +1 -1
  118. package/eval/cases/uj-roi-optimize-records-then-execute-cautiously.scenario.json +4 -4
  119. package/eval/cases/uj-roi-search-terms-add-negative-keywords.scenario.json +2 -2
  120. package/package.json +4 -3
  121. package/dist/skill/references/hosted-automation-scenarios.md +0 -23
  122. package/dist/skill/references/hosted-automation-user-catalog.md +0 -38
  123. package/eval/cases/tips-json-filtering.scenario.json +0 -12
  124. /package/dist/skill/references/{geo-continents.json → analytics/geo-continents.json} +0 -0
  125. /package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-audience-strategy.md +0 -0
  126. /package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-compliance.md +0 -0
  127. /package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-conversion-architecture.md +0 -0
  128. /package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-creative-optimization.md +0 -0
  129. /package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-landing-page-discovery-via-webfetch.md +0 -0
  130. /package/dist/skill/references/{google-ads-rules → google-ads/rules}/sensitive-industries.md +0 -0
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 所属 skill:`siluzan-tso`。
4
4
  >
5
- > 用途:从已确认的 `campaign-create` JSON **投影**用户可见的 Markdown 表格(勿与 JSON 矛盾)。流程与门禁见 `references/google-ads-campaign-plan.md`。
5
+ > 用途:从已确认的 `campaign-create` JSON **投影**用户可见的 Markdown 表格(勿与 JSON 矛盾)。流程与门禁见 `references/google-ads/google-ads-campaign-plan.md`。
6
6
  > 触发:用户要投放方案/确认稿;**先完成 JSON + validate,再填本模板正文**。
7
7
  >
8
8
  > 字段契约:`assets/campaign-create-template.json` + `campaign-create-template.md`
@@ -134,7 +134,7 @@ AI 生成计划时,**先写好 JSON,再按以下格式输出说明**。`{{
134
134
  | 出价策略(次月) | {{如:近 30 天满 30 个目标转化后,切换为目标每次转化费用 tCPA = $X}} | {{同逻辑或单独写 tCPA}} | {{…}} |
135
135
  | 广告轮换 | 优先展示效果最佳的广告 | 同左 | 同左 |
136
136
 
137
- > **落地页(搜索方案)**:**优先**各广告组使用 **产品详情页(PDP)** URL;若无 PDP 则使用 **产品列表/分类页(PLP)**,并在表中标注与关键词意图的对应关系。若用户仅提供首页,助手侧推断 PDP/PLP 的流程见 `references/google-ads-rules/google-ads-landing-page-discovery-via-webfetch.md`。各系列默认 URL 仍在下方广告组/创意节中按组填写;若全账户统一落地页,可在本表下增加一行「默认落地页 | {{URL}}(PDP/PLP)」。
137
+ > **落地页(搜索方案)**:**优先**各广告组使用 **产品详情页(PDP)** URL;若无 PDP 则使用 **产品列表/分类页(PLP)**,并在表中标注与关键词意图的对应关系。若用户仅提供首页,助手侧推断 PDP/PLP 的流程见 `references/google-ads/rules/google-ads-landing-page-discovery-via-webfetch.md`。各系列默认 URL 仍在下方广告组/创意节中按组填写;若全账户统一落地页,可在本表下增加一行「默认落地页 | {{URL}}(PDP/PLP)」。
138
138
 
139
139
  ---
140
140
 
@@ -204,7 +204,7 @@ AI 生成计划时,**先写好 JSON,再按以下格式输出说明**。`{{
204
204
  | … | … | … | … |
205
205
  | Headline 15(上限) | {{文案}} | {{N}} | 自由轮换 |
206
206
 
207
- (Headlines **推荐 12–15 条**;主题分配仍参考 `references/google-ads-rules/google-ads-creative-optimization.md` 1.2 六类主题法。)
207
+ (Headlines **推荐 12–15 条**;主题分配仍参考 `references/google-ads/rules/google-ads-creative-optimization.md` 1.2 六类主题法。)
208
208
 
209
209
  | 资产类型 | 广告文案 | 字符数 | 后台设置指令 |
210
210
  | ------------- | -------- | ------ | -------------------------- |
@@ -225,7 +225,7 @@ Display URL:`{{domain}}/{{path1}}/{{path2}}`(Path1/Path2 各 ≤ 15 字符
225
225
 
226
226
  **数量**:Sitelink **推荐 6–8**;Callout **推荐 6–8**;Structured Snippet **至少 1 组,推荐 1–2 组**,每组 **≥4 值**;**CALL** 有合规号码则 **1 条**;**Lead Form** 按业务 **0–1 套**。
227
227
 
228
- **联系方式**:电话走 **CALL**;**无独立「邮箱」附加信息类型**,邮箱用 **Sitelink** 指向 `mailto:` 或联系页(勿写入 RSA 正文,见 `references/google-ads-rules/google-ads-compliance.md`)。
228
+ **联系方式**:电话走 **CALL**;**无独立「邮箱」附加信息类型**,邮箱用 **Sitelink** 指向 `mailto:` 或联系页(勿写入 RSA 正文,见 `references/google-ads/rules/google-ads-compliance.md`)。
229
229
 
230
230
  #### 附加链接(Sitelinks)
231
231
 
@@ -256,7 +256,7 @@ Display URL:`{{domain}}/{{path1}}/{{path2}}`(Path1/Path2 各 ≤ 15 字符
256
256
  | **每周** | **砍烂词**:某关键词花费 > {{如:$15}} 且无有效转化(或无线索/WhatsApp 等约定动作),**暂停**;**调出价**:有效 B2B/目标动作词可提价 **10%–15%**,争取**绝对页首展示份额** |
257
257
  | **每月** | 核对 CRM/销售数据,算真实 ROI;对「垃圾线索」来源词**降价或暂停**;评估是否满足切换 **tCPA / 智能出价** 的数据门槛|
258
258
 
259
- **阶段总览**(与 `references/google-ads-rules/google-ads-campaign-optimization.md` 可对照,不替代上表日常动作):
259
+ **阶段总览**(与 `references/google-ads/rules/google-ads-campaign-optimization.md` 可对照,不替代上表日常动作):
260
260
 
261
261
  | 阶段 | 时间 | 重点任务 |
262
262
  | -------- | --------- | -------------------------------- |
@@ -284,7 +284,7 @@ Display URL:`{{domain}}/{{path1}}/{{path2}}`(Path1/Path2 各 ≤ 15 字符
284
284
 
285
285
  ## 五、合规检查清单
286
286
 
287
- **条数**:以下 **8 条**逐项勾选(与 `references/google-ads-rules/google-ads-compliance.md` 第十一章呼应,不增删序号以免漏检)。
287
+ **条数**:以下 **8 条**逐项勾选(与 `references/google-ads/rules/google-ads-compliance.md` 第十一章呼应,不增删序号以免漏检)。
288
288
 
289
289
  - [ ] 所有 headline ≤ 30 字符(CJK 按 2 字符/字计算)
290
290
  - [ ] 所有 description ≤ 90 字符
@@ -310,7 +310,7 @@ Display URL:`{{domain}}/{{path1}}/{{path2}}`(Path1/Path2 各 ≤ 15 字符
310
310
 
311
311
  ## 助手执行计划(内部,勿向用户展示或复述)
312
312
 
313
- 用户确认后**仅使用确认版 JSON**;命令与 batch 轮询/diff 见 **`references/google-ads-campaign-plan.md`** § 校验与创建、`references/google-ads.md` § ad campaign-create。
313
+ 用户确认后**仅使用确认版 JSON**;命令与 batch 轮询/diff 见 **`references/google-ads/google-ads-campaign-plan.md`** § 校验与创建、`references/google-ads/google-ads.md` § ad campaign-create。
314
314
 
315
315
  **硬规则**(须已在 JSON 中体现):仅 Google 搜索网络(`TargetGoogleSearch: true`,其余三个 `Target*Network: false`);金额 JSON 填**元**;RSA 图钉/Lead Form 等 CLI 无法表达的项在创建成功后说明需后台补全。
316
316
 
@@ -369,4 +369,4 @@ Display URL:`{{domain}}/{{path1}}/{{path2}}`(Path1/Path2 各 ≤ 15 字符
369
369
 
370
370
  ### 输出格式要求
371
371
 
372
- 交付顺序与改稿规则见文首 **「交付顺序(固定)」** 与 **`references/google-ads-campaign-plan.md`**。补充:用户可见正文不得出现 CLI 命令(JSON 代码块除外);多系列 = 多 JSON + 合并 Markdown(每节标明文件名)。
372
+ 交付顺序与改稿规则见文首 **「交付顺序(固定)」** 与 **`references/google-ads/google-ads-campaign-plan.md`**。补充:用户可见正文不得出现 CLI 命令(JSON 代码块除外);多系列 = 多 JSON + 合并 Markdown(每节标明文件名)。
@@ -4,7 +4,7 @@
4
4
  > **适用场景:** PMax 效果诊断、asset group 优化建议、PMax 与 Search 蚕食分析、Demand Gen 策略
5
5
  > **最后更新:** 2026-04-01
6
6
 
7
- **CLI PMax(Lead Gen / 非 Shopping)**:新建见 `assets/pmax-create-template.md`;上线后 `ad pmax-get` / `pmax-edit` / `pmax-assets-update` / `pmax-signals-*` / 报表见 `references/pmax-api.md`。本指南侧重运营诊断。
7
+ **CLI PMax(Lead Gen / 非 Shopping)**:新建见 `assets/pmax-create-template.md`;上线后 `ad pmax-get` / `pmax-edit` / `pmax-assets-update` / `pmax-signals-*` / 报表见 `references/google-ads/pmax-api.md`。本指南侧重运营诊断。
8
8
 
9
9
  ---
10
10
 
@@ -414,7 +414,7 @@ PMax 搜索渠道天然适配 AI Overview(自动化程度高)。AI Overview
414
414
  | **素材组不展示** | 素材不足;素材与受众/着陆页关联度低;预算分散 | `ads` 查看素材状态 | 补全素材至每种格式最低数量;合并低量素材组;增加系列预算 |
415
415
  | **CPA 突然飙升** | 竞争加剧;转化延迟;素材疲劳;季节因素 | 对比近 7 天 vs 前 7 天各指标 | 等待 3-5 天观察是否恢复;更新素材;检查竞争对手动态 |
416
416
  | **ROAS 远低于目标** | tROAS 设置过高导致展示不足;产品 Feed 问题;着陆页转化率下降 | `campaigns` 查展示量趋势;`final-urls` 查着陆页数据 | 降低 tROAS 目标 10-15%;优化产品 Feed 数据质量;检查着陆页 |
417
- | **展示量突然归零** | 系列暂停/预算耗尽;审核拒绝;账户问题 | `ad campaigns -a <CID> --json` 查系列状态 | 检查系列启用状态和预算;查看审核状态;联系 Google 支持 |
417
+ | **展示量突然归零** | 系列暂停/预算耗尽;审核拒绝;账户问题 | `ad campaigns -a <CID> --json-out ./snap` 查系列状态 | 检查系列启用状态和预算;查看审核状态;联系 Google 支持 |
418
418
 
419
419
  ## 13. CLI 诊断流程
420
420
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  用 `siluzan-tso config show` 读取 **`webUrl`**,再拼接路径:
8
8
 
9
- 首页地址:`https://www.siluzan.com/v3/foreign_trade/tso/home`
9
+ 首页地址:`https://www-ci.siluzan.com/v3/foreign_trade/tso/home`
10
10
 
11
11
  > 若用户已登录 TSO,也可从左侧菜单进入「首页」。
12
12
 
@@ -36,7 +36,7 @@
36
36
 
37
37
  - 单账户余额、消耗趋势:**`balance`**、**`stats`**(Google 走新版 `account-spend-overview`,含今天会切实时模式;其余媒体仍是 `accountsoverview`),需已知 `mediaCustomerId`。
38
38
  - 开户进度:**`account-history`**、**`open-account`** 系列。
39
- - **充值**:无 CLI,见 `references/finance.md`,用 `webUrl` 引导至充值页。
39
+ - **充值**:无 CLI,见 `references/accounts/finance.md`,用 `webUrl` 引导至充值页。
40
40
 
41
41
  > **说明**:首页的「昨日汇总」「全账户余额一览」等 **聚合报表接口**(`Get-TSO-Overviews`、`Get-TSO-Open-Account-Overviews`、`GetAccountBalance`)**当前 CLI 未单独封装**。若用户要「和首页一模一样的数字」,请引导打开网页;若只要分账户/分业务数据,用现有命令组合。
42
42
 
@@ -87,10 +87,10 @@
87
87
  → `list-accounts -m Google` 取 `mediaCustomerId`,再 `stats -m Google -a <id>`。
88
88
 
89
89
  3. **「首页说有待充值账户」**
90
- → 说明聚合数据在网页;CLI 可 `list-accounts` + `balance` 逐账户排查,或引导去充值页(`references/finance.md`)。
90
+ → 说明聚合数据在网页;CLI 可 `list-accounts` + `balance` 逐账户排查,或引导去充值页(`references/accounts/finance.md`)。
91
91
 
92
92
  ---
93
93
 
94
- ## 与 `references/workflows.md` 的关系
94
+ ## 与 `references/core/workflows.md` 的关系
95
95
 
96
- 首页是 **聚合看板**;多命令巡检流程见 **`references/workflows.md`** 中「投放数据快速巡检」等章节,逻辑上与首页「看数据」意图相近,但数据源接口不完全相同。
96
+ 首页是 **聚合看板**;多命令巡检流程见 **`references/core/workflows.md`** 中「投放数据快速巡检」等章节,逻辑上与首页「看数据」意图相近,但数据源接口不完全相同。
@@ -4,7 +4,7 @@
4
4
  >
5
5
  > 对应页面:`/clue-form`。支持 **TikTok** 和 **Meta(Facebook)** 两种媒体。
6
6
 
7
- > **注意**:线索数据直接来自媒体 API,**不支持服务端分页**,数据量大时建议 `--json` 导出后自行处理。
7
+ > **注意**:线索数据直接来自媒体 API,**不支持服务端分页**,数据量大时建议 `--json-out <路径>` 落盘后自行处理。
8
8
 
9
9
  ```bash
10
10
  siluzan-tso clue -m <媒体> -a <账户ID> [选项]
@@ -17,12 +17,12 @@ siluzan-tso clue -m <媒体> -a <账户ID> [选项]
17
17
  | `--region <region>` | TikTok 专用:`eu \| us \| other \| ALL`(默认 ALL) |
18
18
  | `--start <date>` | Meta 专用:开始日期(YYYY-MM-DD) |
19
19
  | `--end <date>` | Meta 专用:结束日期(YYYY-MM-DD) |
20
- | `--json` | 输出原始 JSON |
20
+ | `--json-out` | 输出原始 JSON |
21
21
 
22
- **AI 交付**:用户要求「原始 JSON / 自己筛」时,回复中须包含 **`--json` 命令打印的完整 JSON**(或等价完整代码块),并可按上表说明 `custom_fields` / `system_fields`(TikTok)或 `field_data`(Meta)。**禁止**用未出现在本次 CLI 输出中的账户 ID、媒体或「环境异常」类推测替代 JSON 交付。
23
- 若本次查询失败:CLI 在 `--json` 下会输出 **`{"ok":false,"error":"...","items":[]}`**(stdout),请**原样**贴出该 JSON,不要改成纯文字描述。
22
+ **AI 交付**:用户要求「原始 JSON / 自己筛」时,回复中须包含 **`--json-out` 命令打印的完整 JSON**(或等价完整代码块),并可按上表说明 `custom_fields` / `system_fields`(TikTok)或 `field_data`(Meta)。**禁止**用未出现在本次 CLI 输出中的账户 ID、媒体或「环境异常」类推测替代 JSON 交付。
23
+ 若本次查询失败:CLI 在 落盘 JSON 中会输出 **`{"ok":false,"error":"...","items":[]}`**(stdout),请**原样**贴出该 JSON,不要改成纯文字描述。
24
24
 
25
- **时间范围(TikTok)**:用户说「最近一周」且要拉线索、未给起止日时,**不要**再按投放报表类任务做 A/B/C 反问;直接按 CLI 默认窗口执行 `clue -m TikTok -a <advertiserId> --json`(需自定义区间时再用 Meta 同款 `--start/--end` 仅适用于 Meta,TikTok 以接口返回为准)。
25
+ **时间范围(TikTok)**:用户说「最近一周」且要拉线索、未给起止日时,**不要**再按投放报表类任务做 A/B/C 反问;直接按 CLI 默认窗口执行 `clue -m TikTok -a <advertiserId> --json-out ./snap`(需自定义区间时再用 Meta 同款 `--start/--end` 仅适用于 Meta,TikTok 以接口返回为准)。
26
26
 
27
27
  **TikTok 示例:**
28
28
 
@@ -34,7 +34,7 @@ siluzan-tso clue -m TikTok -a 1234567890
34
34
  siluzan-tso clue -m TikTok -a 1234567890 --region eu
35
35
 
36
36
  # 查美国区,JSON 输出
37
- siluzan-tso clue -m TikTok -a 1234567890 --region us --json
37
+ siluzan-tso clue -m TikTok -a 1234567890 --region us --json-out ./snap
38
38
  ```
39
39
 
40
40
  **Meta 示例:**
@@ -44,7 +44,7 @@ siluzan-tso clue -m TikTok -a 1234567890 --region us --json
44
44
  siluzan-tso clue -m Meta -a 987654321 --start 2026-03-01 --end 2026-03-31
45
45
 
46
46
  # JSON 输出
47
- siluzan-tso clue -m Meta -a 987654321 --start 2026-03-01 --json
47
+ siluzan-tso clue -m Meta -a 987654321 --start 2026-03-01 --json-out ./snap
48
48
  ```
49
49
 
50
50
  **输出字段说明(TikTok):**
@@ -69,7 +69,7 @@ siluzan-tso forewarning notify-accounts
69
69
  | ------------- | ---- | --------------------------------------------------------------------------------------------- |
70
70
  | `-m, --media` | ✅ | 媒体类型:`Google` \| `TikTok` |
71
71
  | `--name` | ✅ | 规则名称 |
72
- | `--accounts` | ✅ | 监控的媒体账户 entityId,逗号分隔(由 `list-accounts --json` 查询) |
72
+ | `--accounts` | ✅ | 监控的媒体账户 entityId,逗号分隔(由 `list-accounts --json-out ./snap` 查询) |
73
73
  | `--field` | ✅ | 监控指标,见下表 |
74
74
  | `--operator` | ✅ | 比较运算符:`GREATER_EQUALS` \| `GREATER` \| `LESS_EQUALS` \| `LESS` \| `EQUALS` |
75
75
  | `--value` | ✅ | 阈值(数字,单位为人民币元或对应货币) |
@@ -134,7 +134,7 @@ siluzan-tso forewarning create \
134
134
  siluzan-tso forewarning list -m Google
135
135
 
136
136
  # JSON 格式(含完整配置)
137
- siluzan-tso forewarning list -m Google --json
137
+ siluzan-tso forewarning list -m Google --json-out ./snap
138
138
 
139
139
  若用户要求「仅 JSON / 只输出一个 JSON 对象」,回复中只贴本次命令 stdout(含 `total` > `itemCount` 时的分页说明亦在 JSON 内,勿在 JSON 外再写中文解释)。
140
140
 
@@ -149,7 +149,7 @@ siluzan-tso forewarning list -m Google --keyword "消耗"
149
149
 
150
150
  ## 查询触发记录
151
151
 
152
- > **不属于「投放数据时间范围强制反问」**:用户要查「最近有没有触发记录」并要 JSON 时,**直接**执行 `forewarning records -m Google --json`(可加 `--rule-id` / `--status`);不要先套用 SKILL 里针对消耗/报表的日期反问,也不要强行索要 Google `mediaCustomerId`(本命令不按媒体账户筛)。
152
+ > **不属于「投放数据时间范围强制反问」**:用户要查「最近有没有触发记录」并要 JSON 时,**直接**执行 `forewarning records -m Google --json-out ./snap`(可加 `--rule-id` / `--status`);不要先套用 SKILL 里针对消耗/报表的日期反问,也不要强行索要 Google `mediaCustomerId`(本命令不按媒体账户筛)。
153
153
 
154
154
  ```bash
155
155
  # 查询所有规则的触发记录
@@ -163,18 +163,18 @@ siluzan-tso forewarning records -m Google --status Success
163
163
  siluzan-tso forewarning records -m Google --status Failed
164
164
  ```
165
165
 
166
- **创建规则(AI)**:用户已给出阈值、频率、媒体并确认要创建时:① `list-accounts -m Google -k <mediaCustomerId> --json` 取账户 **`entityId`**(`forewarning create --accounts` 用);② `forewarning notify-accounts` 取 **`--notify`** 的微信对象 `entityId`;③ 再执行 `forewarning create ...`。创建属写操作,须用户明确确认后再跑命令。
166
+ **创建规则(AI)**:用户已给出阈值、频率、媒体并确认要创建时:① `list-accounts -m Google -k <mediaCustomerId> --json-out ./snap` 取账户 **`entityId`**(`forewarning create --accounts` 用);② `forewarning notify-accounts` 取 **`--notify`** 的微信对象 `entityId`;③ 再执行 `forewarning create ...`。创建属写操作,须用户明确确认后再跑命令。
167
167
 
168
168
  ---
169
169
 
170
170
  ## 更新已有规则
171
171
 
172
- 更新时需提供规则的 entityId(通过 `forewarning list --json` 查询)。
172
+ 更新时需提供规则的 entityId(通过 `forewarning list --json-out ./snap` 查询)。
173
173
  更新操作会**完整替换**规则配置,所有参数必须重新传入。
174
174
 
175
175
  ```bash
176
176
  # 先查询规则 entityId
177
- siluzan-tso forewarning list -m Google --json
177
+ siluzan-tso forewarning list -m Google --json-out ./snap
178
178
 
179
179
  # 更新规则
180
180
  siluzan-tso forewarning update \
@@ -1,10 +1,10 @@
1
- # 异常监控巡检:`siluzan-tso` CLI `--json` 键名与命令
1
+ # 异常监控巡检:`siluzan-tso` CLI `--json-out` 落盘 JSON 键名与命令
2
2
 
3
- > **主题索引**:[`hosted-automation-scenarios.md`](hosted-automation-scenarios.md)
3
+ > **主题索引**:[`operations/hosted-automation-scenarios.md`](operations/hosted-automation-scenarios.md)
4
4
  > **编排责任**:定时、HTTP 探活、通知等在宿主。本页只列 **读数命令与常见 JSON 键名**。
5
- > **统计日 / 时区**:与自控场景相同,见 [`hosted-automation-self-control.md`](hosted-automation-self-control.md)「统计日与今日」。
5
+ > **统计日 / 时区**:与自控场景相同,见 [`operations/hosted-automation-self-control.md`](operations/hosted-automation-self-control.md)「统计日与今日」。
6
6
 
7
- 宿主做定时巡检时,**只以当次 CLI 输出的 JSON 键名为准**(多数读命令为 **`--json`** 的 stdout;**`google-analysis` 账户分析子命令**与本 Skill 一致,使用 **`--json-out <dir>`**,以**落盘 `*.json` 文件正文**为准)。Google Ads API 文档里的资源名(如 `billing_setup`、`account_budget`、`amount_served_micros`)**与本 CLI 输出不是同一套命名**,不要当作本仓库 JSON 的键去解析。若某键缺失,**禁止猜测**:以实际输出为准,或换用 `references/account-analytics.md` 中的其它子命令。
7
+ 宿主做定时巡检时,**只以当次 CLI 落盘 JSON 键名为准**(读命令统一 **`--json-out <dir>`**,以**落盘 `*.json` 文件正文**为准;`google-analysis` 等同理)。Google Ads API 文档里的资源名(如 `billing_setup`、`account_budget`、`amount_served_micros`)**与本 CLI 输出不是同一套命名**,不要当作本仓库 JSON 的键去解析。若某键缺失,**禁止猜测**:以实际输出为准,或换用 `references/analytics/account-analytics.md` 中的其它子命令。
8
8
 
9
9
  ---
10
10
 
@@ -13,10 +13,10 @@
13
13
  **批扫(推荐)** — 命令:
14
14
 
15
15
  ```bash
16
- siluzan-tso balance-scan -m Google [--threshold-days <n>] [--min-balance <n>] [--json]
16
+ siluzan-tso balance-scan -m Google [--threshold-days <n>] [--min-balance <n>] [--json-out ./snap]
17
17
  ```
18
18
 
19
- `--json` 时根结构为 **`{ ok, data: { items }, meta }`**(以实际输出为准)。宿主常用字段:
19
+ `--json-out` 落盘后根结构常为 **`{ ok, data: { items }, meta }`**(以实际输出为准)。宿主常用字段:
20
20
 
21
21
  | 用途 | JSON 路径 / 字段名 |
22
22
  | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
@@ -32,10 +32,10 @@ siluzan-tso balance-scan -m Google [--threshold-days <n>] [--min-balance <n>] [-
32
32
  **单账户** — 命令:
33
33
 
34
34
  ```bash
35
- siluzan-tso balance -m Google --accounts <mediaCustomerId> --json
35
+ siluzan-tso balance -m Google --accounts <mediaCustomerId> --json-out ./snap
36
36
  ```
37
37
 
38
- `items[]` 每行:**`mediaCustomerId`**、**`remainingAccountBudget`**、**`status`**、**`currencyCode`**、**`name`**(与 `references/accounts.md` 中 `balance` 说明一致)。
38
+ `items[]` 每行:**`mediaCustomerId`**、**`remainingAccountBudget`**、**`status`**、**`currencyCode`**、**`name`**(与 `references/accounts/accounts.md` 中 `balance` 说明一致)。
39
39
 
40
40
  **账户总览(区间内的费用与日均,可与续航逻辑组合)** — 命令:
41
41
 
@@ -43,7 +43,7 @@ siluzan-tso balance -m Google --accounts <mediaCustomerId> --json
43
43
  mkdir -p ./snap-monitor && siluzan-tso google-analysis -a <mediaCustomerId> --sections overview --start <YYYY-MM-DD> --end <YYYY-MM-DD> --json-out ./snap-monitor
44
44
  ```
45
45
 
46
- 读 **`./snap-monitor/overview-<accountId>.json`**(具体路径见 stdout 摘要的 `writtenFiles[0]` 或 `manifest-<accountId>.json` 的 `artifacts`)。根对象常见字段:**`remainingAccountBudget`**(余额)、**`averageDailyCost`**、**`totalCost`**、**`activeDays`**、**`currencyCode`**、**`accountId`**(无 **`balance`**,网关为 0 时 CLI 已剔除);**`currentPeriod`** / **`previousPeriod`** 为对象块,内含 **`spend`**、`impressions`、`clicks`、`conversions` 等与 `references/account-analytics.md` 总览口径一致的指标(块内还可能出现 **`currencyCode`**)。
46
+ 读 **`./snap-monitor/overview-<accountId>.json`**(具体路径见 stdout 摘要的 `writtenFiles[0]` 或 `manifest-<accountId>.json` 的 `artifacts`)。根对象常见字段:**`remainingAccountBudget`**(余额)、**`averageDailyCost`**、**`totalCost`**、**`activeDays`**、**`currencyCode`**、**`accountId`**(无 **`balance`**,网关为 0 时 CLI 已剔除);**`currentPeriod`** / **`previousPeriod`** 为对象块,内含 **`spend`**、`impressions`、`clicks`、`conversions` 等与 `references/analytics/account-analytics.md` 总览口径一致的指标(块内还可能出现 **`currencyCode`**)。
47
47
 
48
48
  ---
49
49
 
@@ -59,7 +59,7 @@ mkdir -p ./snap-monitor && siluzan-tso google-analysis -a <mediaCustomerId> --se
59
59
 
60
60
  **`campaignId`**、**`campaignName`**、**`date`**、**`hour`**、**`spend`**、`impressions`、`clicks`、`conversions`。
61
61
 
62
- 宿主侧可做:同一 `campaignId` 在相邻小时或相邻日的 **`spend`** 对比、滑动均值、超阈值告警等(阈值与统计时区由宿主配置,见 [`hosted-automation-self-control.md`](hosted-automation-self-control.md)「统计日与今日」)。
62
+ 宿主侧可做:同一 `campaignId` 在相邻小时或相邻日的 **`spend`** 对比、滑动均值、超阈值告警等(阈值与统计时区由宿主配置,见 [`operations/hosted-automation-self-control.md`](operations/hosted-automation-self-control.md)「统计日与今日」)。
63
63
 
64
64
  ---
65
65
 
@@ -76,19 +76,19 @@ mkdir -p ./snap-monitor && siluzan-tso google-analysis -a <mediaCustomerId> --se
76
76
  **按创意行拉数**(可与拒审、启停共用一轮数据):
77
77
 
78
78
  ```bash
79
- siluzan-tso ad list -a <mediaCustomerId> --start <YYYY-MM-DD> --end <YYYY-MM-DD> --json
79
+ siluzan-tso ad list -a <mediaCustomerId> --start <YYYY-MM-DD> --end <YYYY-MM-DD> --json-out ./snap
80
80
  ```
81
81
 
82
- `items[]` 为网关原样字段集合;落地页相关键名以当次输出为准(类型说明里常见 **`finalurl`**;亦可用 **`google-analysis --sections ads`** 列表,结构见 `references/google-ads.md` / `account-analytics.md`)。命中后暂停创意用 **`ad ad-status`**(见 `references/google-ads.md`),写后复核再次 `ad list --json` 看 **`statusV2`**。
82
+ `items[]` 为网关原样字段集合;落地页相关键名以当次输出为准(类型说明里常见 **`finalurl`**;亦可用 **`google-analysis --sections ads`** 列表,结构见 `references/google-ads/google-ads.md` / `analytics/account-analytics.md`)。命中后暂停创意用 **`ad ad-status`**(见 `references/google-ads/google-ads.md`),写后复核再次 `ad list --json-out ./snap` 看 **`statusV2`**。
83
83
 
84
84
  ---
85
85
 
86
86
  ## 4. 广告素材拒审
87
87
 
88
- 不依赖 `PolicyTopic` 等 API 资源名;直接读 CLI 拒审字段:**`policyApprovalStatusV2`**、**`approvalStatusDetails`**、**`statusV2`** 等。逐步说明见 **`references/google-ads.md`**「拒审与政策」;**`ad list`** 与 **`google-analysis --sections ads`** 列表同源,任选其一做巡检。
88
+ 不依赖 `PolicyTopic` 等 API 资源名;直接读 CLI 拒审字段:**`policyApprovalStatusV2`**、**`approvalStatusDetails`**、**`statusV2`** 等。逐步说明见 **`references/google-ads/google-ads.md`**「拒审与政策」;**`ad list`** 与 **`google-analysis --sections ads`** 列表同源,任选其一做巡检。
89
89
 
90
90
  ---
91
91
 
92
92
  ## 5. 账户「封禁」与 Google 客户状态(暂不展开)
93
93
 
94
- Google 客户级 **`SUSPENDED` / `CANCELED`** 与 **`list-accounts --json`** 中 **`status`** 的逐项对应关系**不在本页维护**;宿主若需该判定,请以内部运维约定或后续专门文档为准。
94
+ Google 客户级 **`SUSPENDED` / `CANCELED`** 与 **`list-accounts --json-out ./snap`** 中 **`status`** 的逐项对应关系**不在本页维护**;宿主若需该判定,请以内部运维约定或后续专门文档为准。
@@ -1,6 +1,6 @@
1
1
  # SOP:同组多创意 A/B — 停输家、保赢家(Ad)
2
2
 
3
- > **索引**:[`hosted-automation-optimize-index.md`](hosted-automation-optimize-index.md)
3
+ > **索引**:[`operations/hosted-automation-optimize-index.md`](operations/hosted-automation-optimize-index.md)
4
4
 
5
5
  ---
6
6
 
@@ -15,7 +15,7 @@
15
15
  ### 1. 拉创意列表
16
16
 
17
17
  ```bash
18
- siluzan-tso ad list -a <mediaCustomerId> --start <YYYY-MM-DD> --end <YYYY-MM-DD> --json
18
+ siluzan-tso ad list -a <mediaCustomerId> --start <YYYY-MM-DD> --end <YYYY-MM-DD> --json-out ./snap
19
19
  ```
20
20
 
21
21
  (等价:`siluzan-tso google-analysis --sections ads …`。)
@@ -48,7 +48,7 @@ siluzan-tso ad list -a <mediaCustomerId> --start <YYYY-MM-DD> --end <YYYY-MM-DD>
48
48
  siluzan-tso ad ad-status -a <mediaCustomerId> --id <adId> --status Paused
49
49
  ```
50
50
 
51
- (若需 `--start`/`--end` 见 `google-ads.md`。)
51
+ (若需 `--start`/`--end` 见 `google-ads/google-ads.md`。)
52
52
 
53
53
  **不在此 SOP 内**:Google Ads 界面「将流量倾斜给赢家」的算法开关;宿主仅能 **停输家** 或结合人工/网页调整轮换策略。
54
54
 
@@ -57,7 +57,7 @@ siluzan-tso ad ad-status -a <mediaCustomerId> --id <adId> --status Paused
57
57
  ## 写后复核
58
58
 
59
59
  ```bash
60
- siluzan-tso ad list -a <mediaCustomerId> --start <当日或下一窗> --end <…> --json
60
+ siluzan-tso ad list -a <mediaCustomerId> --start <当日或下一窗> --end <…> --json-out ./snap
61
61
  ```
62
62
 
63
63
  确认 Loser 的 **`statusV2`** 为 **`Paused`**;Winner 仍为 **`ENABLED`**(或宿主期望状态)。
@@ -5,11 +5,11 @@
5
5
 
6
6
  | 文档 | 场景 |
7
7
  | ------------------------------------------------------------------------------------------ | -------------------------------------- |
8
- | [`hosted-automation-optimize-weak-downbid.md`](hosted-automation-optimize-weak-downbid.md) | 表现差:组/创意 **降价或暂停** |
9
- | [`hosted-automation-optimize-scale.md`](hosted-automation-optimize-scale.md) | 高转化:**提预算 / 上调目标 CPA** 扩量 |
10
- | [`hosted-automation-optimize-ab-winner.md`](hosted-automation-optimize-ab-winner.md) | 同组多创意:**A/B 决胜负、停输家** |
8
+ | [`operations/hosted-automation-optimize-weak-downbid.md`](operations/hosted-automation-optimize-weak-downbid.md) | 表现差:组/创意 **降价或暂停** |
9
+ | [`operations/hosted-automation-optimize-scale.md`](operations/hosted-automation-optimize-scale.md) | 高转化:**提预算 / 上调目标 CPA** 扩量 |
10
+ | [`operations/hosted-automation-optimize-ab-winner.md`](operations/hosted-automation-optimize-ab-winner.md) | 同组多创意:**A/B 决胜负、停输家** |
11
11
 
12
- **必读交叉引用**:`SKILL.md`(金额与 `*Display` 硬规范)、`references/google-ads.md`(`ad campaign-edit` / `ad adgroup-edit` / `ad-status`)、`references/account-analytics.md`(日期与 **`google-analysis --json-out`**)、`references/tips.md`(通用 **`--json-out`** 落盘 + 读文件技巧)、[`hosted-automation-self-control.md`](hosted-automation-self-control.md)(统计日与时区约定)。
12
+ **必读交叉引用**:`SKILL.md`(金额与 `*Display` 硬规范)、`references/google-ads/google-ads.md`(`ad campaign-edit` / `ad adgroup-edit` / `ad-status`)、`references/analytics/account-analytics.md`(日期与 **`google-analysis --json-out`**)、`references/core/tips.md`(通用 **`--json-out`** 落盘 + 读文件技巧)、[`operations/hosted-automation-self-control.md`](operations/hosted-automation-self-control.md)(统计日与时区约定)。
13
13
 
14
14
  ---
15
15
 
@@ -17,7 +17,7 @@
17
17
 
18
18
  ### 1. 统计区间
19
19
 
20
- `--start` / `--end` 为 **`YYYY-MM-DD`**,与宿主业务日一致;约定见 **`hosted-automation-self-control.md`**「统计日与今日」。
20
+ `--start` / `--end` 为 **`YYYY-MM-DD`**,与宿主业务日一致;约定见 **`operations/hosted-automation-self-control.md`**「统计日与今日」。
21
21
 
22
22
  ### 2. `ad list` / `ad groups` 与「按日多行」
23
23
 
@@ -29,4 +29,4 @@
29
29
 
30
30
  ### 4. 写操作与复核
31
31
 
32
- 所有写入须遵守 **`references/google-ads.md`** 的确认与安全约定;写后**同区间或下一统计日**再拉一次读命令核对 `statusV2`、预算、`targetCpaAmount` 等。
32
+ 所有写入须遵守 **`references/google-ads/google-ads.md`** 的确认与安全约定;写后**同区间或下一统计日**再拉一次读命令核对 `statusV2`、预算、`targetCpaAmount` 等。
@@ -1,6 +1,6 @@
1
1
  # SOP:高转化广告 — 提预算 / 上调目标 CPA 扩量(Campaign / Ad Group)
2
2
 
3
- > **索引**:[`hosted-automation-optimize-index.md`](hosted-automation-optimize-index.md)
3
+ > **索引**:[`operations/hosted-automation-optimize-index.md`](operations/hosted-automation-optimize-index.md)
4
4
 
5
5
  ---
6
6
 
@@ -24,15 +24,15 @@ mkdir -p ./snap-scale && siluzan-tso google-analysis -a <mediaCustomerId> --sect
24
24
  - **`searchBudgetLostImpressionShare`**、**`searchRankLostImpressionShare`**、**`searchImpressionShare`**
25
25
  - **`spend`**、**`impressions`**、**`conversions`**、**`campaignId`**、**`campaignName`**
26
26
 
27
- > **说明**:**不要**仅用 `ad campaigns --json` 替代本步:系列列表接口未必带齐上述份额与 `conversionsValuePerCost`;扩量判据以 **`google-analysis --sections campaigns`** 为主。
27
+ > **说明**:**不要**仅用 `ad campaigns --json-out ./snap` 替代本步:系列列表接口未必带齐上述份额与 `conversionsValuePerCost`;扩量判据以 **`google-analysis --sections campaigns`** 为主。
28
28
 
29
29
  ### 2. 日预算与系列状态(写前读当前值)
30
30
 
31
31
  ```bash
32
- siluzan-tso ad campaigns -a <mediaCustomerId> --start <YYYY-MM-DD> --end <YYYY-MM-DD> --json
32
+ siluzan-tso ad campaigns -a <mediaCustomerId> --start <YYYY-MM-DD> --end <YYYY-MM-DD> --json-out ./snap
33
33
  ```
34
34
 
35
- 关注 **`budget`**(`ad campaigns --json` 下**已为元**)、**`statusV2`**、**`id`**(系列 ID),与 `SKILL.md` 金额硬规范一致后再算「+20%」等新预算。
35
+ 关注 **`budget`**(`ad campaigns --json-out ./snap` 下**已为元**)、**`statusV2`**、**`id`**(系列 ID),与 `SKILL.md` 金额硬规范一致后再算「+20%」等新预算。
36
36
 
37
37
  ### 3. 消耗节奏(可选)
38
38
 
@@ -52,7 +52,7 @@ mkdir -p ./snap-scale && siluzan-tso google-analysis -a <mediaCustomerId> --sect
52
52
 
53
53
  ## 最终操作
54
54
 
55
- > **金额单位(关键)**:`ad campaign-edit` / `ad adgroup-edit` 所有金额参数均为 **主币种金额**(如 `100` 表示 ¥100,支持小数 `10.5`);CLI 内部自动 `Math.round(value × 100)` 写入「分」字段。详见 `references/google-ads.md`「ad campaign-edit」金额单位说明。
55
+ > **金额单位(关键)**:`ad campaign-edit` / `ad adgroup-edit` 所有金额参数均为 **主币种金额**(如 `100` 表示 ¥100,支持小数 `10.5`);CLI 内部自动 `Math.round(value × 100)` 写入「分」字段。详见 `references/google-ads/google-ads.md`「ad campaign-edit」金额单位说明。
56
56
  >
57
57
  > **必须先用 `*Display` 字段取主币种当前值,加减后再传回**;不要把 `budget` / `targetCpaAmount` / `maxCPCAmount` 这些"分"字段当作主币种传给 CLI。
58
58
 
@@ -60,7 +60,7 @@ mkdir -p ./snap-scale && siluzan-tso google-analysis -a <mediaCustomerId> --sect
60
60
 
61
61
  ```bash
62
62
  # 1) GET 取主币种当前值
63
- CUR=$(siluzan-tso ad campaigns -a <mediaCustomerId> --json | node -e '...筛选 budget(元)')
63
+ CUR=$(siluzan-tso ad campaigns -a <mediaCustomerId> --json-out ./snap | node -e '...筛选 budget(元)')
64
64
  # 2) 主币种 + 10
65
65
  NEW=$(node -e "console.log((${CUR} + 10).toFixed(2))")
66
66
  # 3) 主币种金额传回
@@ -79,14 +79,14 @@ siluzan-tso ad campaign-edit -a <mediaCustomerId> --id <campaignId> --target-cpa
79
79
  siluzan-tso ad adgroup-edit -a <mediaCustomerId> --id <adGroupId> --target-cpa <主币种金额>
80
80
  ```
81
81
 
82
- 写前务必先 **`ad campaigns --json` / `ad groups --json`** 取当前值,**读取 `*Display` 字段**(主币种)后按配置比例计算,再以主币种金额传回。
82
+ 写前务必先 **`ad campaigns --json-out ./snap` / `ad groups --json-out ./snap`** 取当前值,**读取 `*Display` 字段**(主币种)后按配置比例计算,再以主币种金额传回。
83
83
 
84
84
  ---
85
85
 
86
86
  ## 写后复核
87
87
 
88
88
  ```bash
89
- siluzan-tso ad campaigns -a <mediaCustomerId> --start <…> --end <…> --json
89
+ siluzan-tso ad campaigns -a <mediaCustomerId> --start <…> --end <…> --json-out ./snap
90
90
  mkdir -p ./snap-scale && siluzan-tso google-analysis -a <mediaCustomerId> --sections campaigns --start <…> --end <…> --json-out ./snap-scale
91
91
  ```
92
92
 
@@ -1,6 +1,6 @@
1
1
  # SOP:表现差广告 — 降价 / 关停(Ad Group / Ad)
2
2
 
3
- > **索引**:[`hosted-automation-optimize-index.md`](hosted-automation-optimize-index.md)
3
+ > **索引**:[`operations/hosted-automation-optimize-index.md`](operations/hosted-automation-optimize-index.md)
4
4
  > **层级**:广告组与创意均可;组级用 **`ad groups`**,创意级用 **`ad list`**(或 **`google-analysis --sections ads`**,同源)。
5
5
 
6
6
  ---
@@ -18,13 +18,13 @@
18
18
  **广告组**(含目标 CPA、花费、转化等):
19
19
 
20
20
  ```bash
21
- siluzan-tso ad groups -a <mediaCustomerId> --start <YYYY-MM-DD> --end <YYYY-MM-DD> --json
21
+ siluzan-tso ad groups -a <mediaCustomerId> --start <YYYY-MM-DD> --end <YYYY-MM-DD> --json-out ./snap
22
22
  ```
23
23
 
24
24
  **创意**(含拒审、价值与 all conv 等):
25
25
 
26
26
  ```bash
27
- siluzan-tso ad list -a <mediaCustomerId> --start <YYYY-MM-DD> --end <YYYY-MM-DD> --json
27
+ siluzan-tso ad list -a <mediaCustomerId> --start <YYYY-MM-DD> --end <YYYY-MM-DD> --json-out ./snap
28
28
  ```
29
29
 
30
30
  (与上条等价数据源:`siluzan-tso google-analysis -a … --sections ads --start … --end … --json-out <dir>`,读目录内 **`ads.json`**。)
@@ -44,7 +44,7 @@ siluzan-tso ad list -a <mediaCustomerId> --start <YYYY-MM-DD> --end <YYYY-MM-DD>
44
44
 
45
45
  组行上常见:
46
46
 
47
- - **`targetCpaAmountYuan`** / **`maxCPCAmountYuan`**(元,CLI 出口已统一;写入口径见 `google-ads.md`)
47
+ - **`targetCpaAmountYuan`** / **`maxCPCAmountYuan`**(元,CLI 出口已统一;写入口径见 `google-ads/google-ads.md`)
48
48
  - **`spend`**、**`conversions`**、**`impressions`**、**`ctr`**
49
49
 
50
50
  ### 3. 条件示例(仅示意,以宿主配置为准)
@@ -53,13 +53,13 @@ siluzan-tso ad list -a <mediaCustomerId> --start <YYYY-MM-DD> --end <YYYY-MM-DD>
53
53
  - **弱引流**:聚合后 CTR 低于「同池基准 × 配置比例」(基准由宿主对同类型/同系列池计算)。
54
54
  - **弱转化**:**`spend / conversions`**(或 **`costPerConversion`** 与目标同口径比较)高于 **目标 CPA × 配置倍数**,且 **`conversions`** 低于配置上限。
55
55
 
56
- 目标 CPA:组级从 **`targetCpaAmount`** 与 `google-ads.md` 货币单位说明读取;创意级通常需用 **`adGroupId`** 关联到对应组行再取目标。
56
+ 目标 CPA:组级从 **`targetCpaAmount`** 与 `google-ads/google-ads.md` 货币单位说明读取;创意级通常需用 **`adGroupId`** 关联到对应组行再取目标。
57
57
 
58
58
  ---
59
59
 
60
60
  ## 最终操作
61
61
 
62
- **下调组目标 CPA**(数值单位与 `ad groups --json` 一致,见 `google-ads.md`「广告组编辑」):
62
+ **下调组目标 CPA**(数值单位与 `ad groups --json-out ./snap` 一致,见 `google-ads/google-ads.md`「广告组编辑」):
63
63
 
64
64
  ```bash
65
65
  siluzan-tso ad adgroup-edit -a <mediaCustomerId> --id <adGroupId> --target-cpa <新值>
@@ -73,16 +73,16 @@ siluzan-tso ad adgroup-status -a <mediaCustomerId> --id <adGroupId> --status Pau
73
73
  siluzan-tso ad ad-status -a <mediaCustomerId> --id <adId> --status Paused
74
74
  ```
75
75
 
76
- (`ad-status` 若需 `--start`/`--end` 见 `google-ads.md`。)
76
+ (`ad-status` 若需 `--start`/`--end` 见 `google-ads/google-ads.md`。)
77
77
 
78
78
  ---
79
79
 
80
80
  ## 写后复核
81
81
 
82
82
  ```bash
83
- siluzan-tso ad groups -a <mediaCustomerId> --start <当日或下一窗> --end <…> --json
83
+ siluzan-tso ad groups -a <mediaCustomerId> --start <当日或下一窗> --end <…> --json-out ./snap
84
84
  # 或
85
- siluzan-tso ad list -a <mediaCustomerId> --start <…> --end <…> --json
85
+ siluzan-tso ad list -a <mediaCustomerId> --start <…> --end <…> --json-out ./snap
86
86
  ```
87
87
 
88
88
  确认 **`statusV2`**、**`targetCpaAmount`**(或创意侧父级状态)与预期一致。
@@ -0,0 +1,23 @@
1
+ # 宿主编排(Google):文档索引
2
+
3
+ > **编排责任**:定时、多条件 IF、滑动时间窗、通知(含 P1 /「空耗熔断」文案)由 **OpenClaw / WorkBuddy / Cron** 等宿主实现。
4
+ > **CLI 责任**:单次调用下给出检查与写操作所需命令;**不**内置常驻调度或通知渠道。
5
+
6
+ 本主题拆成下面两份子文档,按需打开(本文件只做**入口与导航**)。
7
+
8
+ | 文档 | 内容 |
9
+ | ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
10
+ | [`operations/hosted-automation-self-control.md`](operations/hosted-automation-self-control.md) | **三类投放自控**:单日预算熔断、CPA 飙升降价、连续空耗暂停;通用约定与常用 JSON 字段表;宿主编排实现清单;与 `forewarning` 的关系 |
11
+ | [`operations/hosted-automation-monitoring-json.md`](operations/hosted-automation-monitoring-json.md) | **异常监控巡检**:`balance-scan` / `balance` 等 **`--json-out` 落盘**;**`google-analysis --sections overview` / `campaign-hour` / `final-urls`** 与账户分析口径一致时用 **`--json-out <dir>`** 读落盘 `*.json`;拒审相关键名与命令见该文档 |
12
+ | [`operations/hosted-automation-optimize-index.md`](operations/hosted-automation-optimize-index.md) | **自动优化(宿主编排)**:差素材降价/关停、高转化扩量、A/B 停输家 — 分文件 SOP(含 `ad list` 按日聚合、`google-analysis --sections campaigns` 等) |
13
+ | [`operations/hosted-automation-user-catalog.md`](operations/hosted-automation-user-catalog.md) | **用户向一览**:预算/ROI 自控、异常监控、自动优化表格(可节选给用户;与上表互补) |
14
+
15
+ **必读交叉引用**(子文档内会再写一遍):
16
+
17
+ - 金额与展示:`SKILL.md`「金额与货币单位硬约束」;`*Display` 与写入口径见 `references/google-ads/google-ads.md`
18
+ - 通用读命令 **`--json-out`** 与 Node 过滤:`references/core/tips.md`;**`google-analysis` 账户分析** 用 **`--json-out`**:`references/analytics/account-analytics.md`
19
+ - 写命令语法:`references/google-ads/google-ads.md`
20
+ - 账户/维度分析、时间窗:`references/analytics/account-analytics.md`
21
+ - 余额类命令详解:`references/accounts/accounts.md`
22
+
23
+ **前置**:已 `siluzan-tso login`,并已用 `list-accounts -m Google -k <mediaCustomerId> --json-out ./snap` 确认账户与 `mediaCustomerId`。