siluzan-tso-cli 1.1.29-beta.2 → 1.1.29-beta.21

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 (169) hide show
  1. package/README.md +1 -1
  2. package/dist/index.js +3174 -867
  3. package/dist/skill/AGENTS.md +30 -31
  4. package/dist/skill/SKILL.md +16 -33
  5. package/dist/skill/_meta.json +2 -2
  6. package/dist/skill/assets/campaign-create-keyword-test.fixed.json +10 -33
  7. package/dist/skill/assets/campaign-create-template.json +2 -0
  8. package/dist/skill/assets/campaign-create-template.md +114 -99
  9. package/dist/skill/assets/market-analysis-rules.md +55 -55
  10. package/dist/skill/assets/meta-period-report-rules.md +61 -60
  11. package/dist/skill/assets/pmax-asset-group-template.json +12 -4
  12. package/dist/skill/assets/pmax-asset-group-template.md +25 -0
  13. package/dist/skill/assets/pmax-brand-assets-template.json +25 -0
  14. package/dist/skill/assets/pmax-brand-assets-template.md +22 -0
  15. package/dist/skill/assets/pmax-brand-guidelines-enable-template.json +24 -0
  16. package/dist/skill/assets/pmax-brand-guidelines-enable-template.md +22 -0
  17. package/dist/skill/assets/pmax-create-template.json +41 -2
  18. package/dist/skill/assets/pmax-create-template.md +84 -51
  19. package/dist/skill/assets/pmax-lead-form-template.json +36 -0
  20. package/dist/skill/assets/pmax-lead-form-template.md +70 -0
  21. package/dist/skill/assets/pmax-signals-template.json +2 -6
  22. package/dist/skill/assets/pmax-whatsapp-template.json +26 -0
  23. package/dist/skill/assets/pmax-whatsapp-template.md +45 -0
  24. package/dist/skill/assets/website-diagnosis-rules.md +67 -67
  25. package/dist/skill/references/README.md +78 -65
  26. package/dist/skill/references/accounts/accounts.md +99 -105
  27. package/dist/skill/references/accounts/finance.md +23 -79
  28. package/dist/skill/references/accounts/open-account-by-media.md +84 -81
  29. package/dist/skill/references/accounts/open-account-google-ui.md +24 -24
  30. package/dist/skill/references/analytics/account-analytics.md +94 -103
  31. package/dist/skill/references/analytics/facebook-analysis-guide.md +61 -61
  32. package/dist/skill/references/analytics/google-analysis-batch.md +2 -2
  33. package/dist/skill/references/analytics/keyword-planner-workflows.md +22 -23
  34. package/dist/skill/references/analytics/market-analysis-guide.md +31 -25
  35. package/dist/skill/references/analytics/rag.md +20 -20
  36. package/dist/skill/references/analytics/reporting.md +4 -4
  37. package/dist/skill/references/analytics/website-diagnosis-guide.md +24 -24
  38. package/dist/skill/references/core/agent-conventions.md +136 -106
  39. package/dist/skill/references/core/cli-enums.md +47 -53
  40. package/dist/skill/references/core/playbooks.md +42 -41
  41. package/dist/skill/references/core/subagent-orchestration.md +40 -40
  42. package/dist/skill/references/core/tips.md +18 -61
  43. package/dist/skill/references/core/workflows.md +36 -29
  44. package/dist/skill/references/google-ads/google-ads-campaign-plan.md +25 -24
  45. package/dist/skill/references/google-ads/google-ads.md +81 -57
  46. package/dist/skill/references/google-ads/pmax-api.md +138 -34
  47. package/dist/skill/references/google-ads/rules/README.md +15 -15
  48. package/dist/skill/references/google-ads/rules/google-ads-account-audit.md +22 -22
  49. package/dist/skill/references/google-ads/rules/google-ads-compliance.md +27 -27
  50. package/dist/skill/references/google-ads/rules/google-ads-keyword-strategy.md +15 -15
  51. package/dist/skill/references/google-ads/rules/google-ads-keyword-taxonomy.md +32 -22
  52. package/dist/skill/references/google-ads/rules/google-ads-launch-plan-template.md +32 -30
  53. package/dist/skill/references/google-ads/rules/google-ads-pmax-guide.md +3 -1
  54. package/dist/skill/references/misc/tso-home.md +8 -8
  55. package/dist/skill/references/operations/clue.md +1 -1
  56. package/dist/skill/references/operations/forewarning.md +1 -1
  57. package/dist/skill/references/operations/hosted-automation-optimize-index.md +2 -2
  58. package/dist/skill/references/operations/hosted-automation-scenarios.md +5 -5
  59. package/dist/skill/references/operations/hosted-automation-self-control.md +15 -15
  60. package/dist/skill/references/operations/hosted-automation-user-catalog.md +13 -13
  61. package/dist/skill/references/operations/optimize.md +8 -8
  62. package/dist/skill/references/report-templates/README.md +45 -0
  63. package/dist/skill/references/report-templates/REPORT-WORKFLOW.md +114 -0
  64. package/dist/skill/references/report-templates/bing-period-report.md +65 -0
  65. package/dist/skill/references/report-templates/google-account-diagnosis-report.md +83 -0
  66. package/dist/skill/references/report-templates/google-ads-diagnosis.md +378 -0
  67. package/dist/skill/references/report-templates/google-inquiry-analysis.md +543 -0
  68. package/dist/skill/references/report-templates/google-period-report-excel.md +126 -0
  69. package/dist/skill/references/report-templates/google-period-report.md +60 -0
  70. package/dist/skill/references/report-templates/market-analysis-report.md +40 -0
  71. package/dist/skill/references/report-templates/meta-account-diagnosis-report.md +74 -0
  72. package/dist/skill/references/report-templates/meta-period-report-excel.md +230 -0
  73. package/dist/skill/references/report-templates/meta-period-report.md +219 -0
  74. package/dist/skill/references/report-templates/okki-weekly-google-client.md +217 -0
  75. package/dist/skill/references/report-templates/tiktok-period-report.md +56 -0
  76. package/dist/skill/references/report-templates/website-diagnosis-report.md +79 -0
  77. package/dist/skill/report-templates/README.md +16 -14
  78. package/dist/skill/report-templates/REPORT-WORKFLOW.md +13 -13
  79. package/dist/skill/report-templates/google-account-diagnosis-report.md +1 -1
  80. package/dist/skill/report-templates/google-ads-diagnosis.md +21 -21
  81. package/dist/skill/report-templates/google-inquiry-analysis.md +44 -44
  82. package/dist/skill/report-templates/google-period-report-excel.md +24 -24
  83. package/dist/skill/report-templates/google-period-report.md +23 -23
  84. package/dist/skill/report-templates/market-analysis-report.md +1 -1
  85. package/dist/skill/report-templates/meta-period-report-excel.md +72 -64
  86. package/dist/skill/report-templates/meta-period-report.html +706 -428
  87. package/dist/skill/report-templates/meta-period-report.md +61 -60
  88. package/dist/skill/report-templates/okki-weekly-google-client.md +26 -26
  89. package/dist/skill/report-templates/report-template-academic.html +1 -1
  90. package/dist/skill/report-templates/report-template-dark.html +1 -1
  91. package/dist/skill/report-templates/report-template-formal.html +1 -1
  92. package/dist/skill/report-templates/report-template-mobile.html +1 -1
  93. package/dist/skill/report-templates/report-template-onepager.html +1 -1
  94. package/dist/skill/report-templates/report-template-print.html +1 -1
  95. package/dist/skill/report-templates/report-template.html +1 -1
  96. package/dist/skill/report-templates/website-diagnosis-report.html +1731 -1653
  97. package/dist/skill/report-templates/website-diagnosis-report.md +21 -23
  98. package/dist/skill/scripts/install.ps1 +1 -1
  99. package/dist/skill/scripts/install.sh +1 -1
  100. package/dist/skill/snippets/handoff-p7-inquiry.md +5 -5
  101. package/eval/cases/accounts-entityid-vs-mediaccustomerid.scenario.json +2 -14
  102. package/eval/cases/accounts-mcc-bind-inquiry.scenario.json +1 -3
  103. package/eval/cases/accounts-single-balance-not-bulk.scenario.json +3 -14
  104. package/eval/cases/budget-display-not-raw-micros.scenario.json +1 -8
  105. package/eval/cases/clue-meta-leads-json.scenario.json +2 -14
  106. package/eval/cases/clue-tiktok-leads-json.scenario.json +2 -11
  107. package/eval/cases/destructive-account-delink-needs-confirm.scenario.json +3 -9
  108. package/eval/cases/destructive-forewarning-delete-needs-confirm.scenario.json +3 -9
  109. package/eval/cases/destructive-invoice-apply-needs-confirm.scenario.json +3 -9
  110. package/eval/cases/facebook-analysis-google-section-aliases.scenario.json +2 -11
  111. package/eval/cases/facebook-analysis-not-google-keywords.scenario.json +3 -10
  112. package/eval/cases/facebook-analysis-period-default.scenario.json +2 -14
  113. package/eval/cases/finance-invoice-info-list.scenario.json +3 -11
  114. package/eval/cases/forewarning-list-google.scenario.json +3 -14
  115. package/eval/cases/google-ads-no-structural-without-confirm.scenario.json +2 -6
  116. package/eval/cases/google-analysis-keywords-route.scenario.json +2 -14
  117. package/eval/cases/human-p1-multiturn.scenario.json +1 -5
  118. package/eval/cases/meta-single-balance-not-bulk.scenario.json +3 -17
  119. package/eval/cases/no-legacy-json-flag.scenario.json +2 -6
  120. package/eval/cases/open-account-google-noninteractive.scenario.json +1 -3
  121. package/eval/cases/open-account-tiktok-license-file.scenario.json +1 -3
  122. package/eval/cases/optimize-list-by-account.scenario.json +3 -11
  123. package/eval/cases/p1-single-account-profile.scenario.json +1 -11
  124. package/eval/cases/p2-balance-scan-bulk.scenario.json +2 -9
  125. package/eval/cases/p3-accounts-digest.scenario.json +1 -5
  126. package/eval/cases/p4-fb-meta-period-report.scenario.json +2 -12
  127. package/eval/cases/p4-period-report-window.scenario.json +1 -8
  128. package/eval/cases/pmax-asset-group-create-with-bg.scenario.json +15 -0
  129. package/eval/cases/pmax-brand-edit-routing.scenario.json +12 -0
  130. package/eval/cases/pmax-edit-not-campaign-edit.scenario.json +15 -0
  131. package/eval/cases/pmax-enable-brand-guidelines.scenario.json +15 -0
  132. package/eval/cases/pmax-no-assets-update-brand-fields.scenario.json +12 -0
  133. package/eval/cases/rag-before-keyword-expand.scenario.json +1 -11
  134. package/eval/cases/rag-list-then-query.scenario.json +2 -14
  135. package/eval/cases/report-list-google.scenario.json +2 -11
  136. package/eval/cases/report-push-list-google.scenario.json +2 -11
  137. package/eval/cases/setup-login-or-env.scenario.json +1 -3
  138. package/eval/cases/setup-siluzan-data-permission-env.scenario.json +1 -3
  139. package/eval/cases/tiktok-bc-bind-inquiry.scenario.json +2 -6
  140. package/eval/cases/time-range-user-delegates-default.scenario.json +1 -8
  141. package/eval/cases/tips-json-out-filtering.scenario.json +1 -3
  142. package/eval/cases/tips-large-json-pagination.scenario.json +1 -3
  143. package/eval/cases/uj-ad-campaign-validate-before-create-stub.scenario.json +2 -11
  144. package/eval/cases/uj-ad-outdoor-campgear-search-plan.scenario.json +1 -3
  145. package/eval/cases/uj-analytics-30d-pdf-campaign-device-geo.scenario.json +6 -18
  146. package/eval/cases/uj-analytics-compare-google-tiktok-last-month-roi.scenario.json +1 -8
  147. package/eval/cases/uj-analytics-google-weekly-trends-campaigns-keywords.scenario.json +2 -11
  148. package/eval/cases/uj-analytics-report-push-weekly-email.scenario.json +1 -3
  149. package/eval/cases/uj-finance-invoice-records-this-month.scenario.json +2 -11
  150. package/eval/cases/uj-life-newbie-siluzan-google-end-to-end.scenario.json +1 -4
  151. package/eval/cases/uj-ops-google-accounts-list-normal.scenario.json +2 -17
  152. package/eval/cases/uj-ops-google-yesterday-spend-conversions.scenario.json +2 -14
  153. package/eval/cases/uj-ops-pause-worst-adgroup-confirm.scenario.json +2 -6
  154. package/eval/cases/uj-ops-tiktok-leads-last-week.scenario.json +3 -17
  155. package/eval/cases/uj-patrol-cpc-spike-adgroups-over-15.scenario.json +1 -5
  156. package/eval/cases/uj-patrol-forewarning-create-daily-cap-3000.scenario.json +1 -3
  157. package/eval/cases/uj-patrol-forewarning-trigger-records.scenario.json +3 -17
  158. package/eval/cases/uj-patrol-google-balances-low.scenario.json +2 -11
  159. package/eval/cases/uj-roi-optimize-records-then-execute-cautiously.scenario.json +3 -14
  160. package/eval/cases/uj-roi-search-terms-add-negative-keywords.scenario.json +2 -14
  161. package/eval/stub-fixtures/facebook-analysis.json +24 -4
  162. package/eval/stub-fixtures/meta-overview.json +4 -1
  163. package/eval/stub-fixtures/pmax-asset-group-create-ok.json +12 -0
  164. package/eval/stub-fixtures/pmax-brand-assets-edit-ok.json +11 -0
  165. package/eval/stub-fixtures/pmax-brand-guidelines-enable-ok.json +11 -0
  166. package/eval/stub-fixtures/pmax-edit-ok.json +11 -0
  167. package/eval/stub-fixtures/pmax-get-bg-on.json +20 -0
  168. package/package.json +1 -1
  169. package/dist/skill/references/core/deliverable-preflight.md +0 -109
@@ -521,28 +521,28 @@ siluzan-tso google-analysis -a <CID> --sections dimension-summary
521
521
 
522
522
  ## 13. 常见问题诊断速查表
523
523
 
524
- | # | 症状 | 检查数据 | 可能原因 | 修复命令/操作 |
525
- | --- | ---------------------- | ------------------------------------- | ----------------------- | ----------------------------------------- |
526
- | 1 | CPA 突然飙升 | `campaigns` 查 costPerConversion 趋势 | 出价策略进入学习期 | `daily-metrics` 确认,等待 7 天或回退策略 |
527
- | 2 | CPA 突然飙升 | `search-terms` 查新增搜索词 | 触发不相关搜索词 | 添加否定关键词 |
528
- | 3 | CPA 突然飙升 | `keywords` 查 qualityScore 变化 | QS 下降导致 CPC 上升 | 优化广告相关性和落地页 |
529
- | 4 | CTR 持续下降 | `ads` 查广告强度和创意内容 | 广告疲劳 | 更新广告素材,添加新标题/描述 |
530
- | 5 | CTR 持续下降 | `campaigns` 查 searchImpressionShare | 广告位置下降 | 检查出价竞争力和 QS |
531
- | 6 | 展示量大幅下降 | `campaigns` 查 searchBudgetLostIS | 预算耗尽 | 增加预算 |
532
- | 7 | 展示量大幅下降 | `keywords` 查关键词状态 | 关键词被暂停或否定 | `ad keywords --json-out ./snap` 检查状态 |
533
- | 8 | 展示量大幅下降 | `campaigns` 查系列状态 | 广告被拒或系列暂停 | `ad campaigns --json-out ./snap` 检查状态 |
534
- | 9 | 转化量下降但点击正常 | `final-urls` 查转化率 | 落地页问题(改版/故障) | 检查落地页是否可访问且正常 |
535
- | 10 | 转化量下降但点击正常 | `conversion-actions` 查转化操作 | 转化追踪代码失效 | 检查 Google Tag 是否正常触发 |
536
- | 11 | 预算花不出去 | `keywords` 查展示量和出价 | 出价过低无竞争力 | 提高出价或切换出价策略 |
537
- | 12 | 预算花不出去 | `ad keywords --json-out ./snap` 查关键词数量 | 关键词太少或搜索量低 | 扩展关键词列表 |
538
- | 13 | QS 整体下降 | `keywords` 查 QS 分布 | 落地页体验下降 | 检查落地页加载速度和内容相关性 |
539
- | 14 | QS 整体下降 | `ads` 查广告相关性 | 广告与关键词不匹配 | 重写广告,确保包含核心关键词 |
540
- | 15 | 移动端效果差 | `devices` 查移动端 CPA | 移动落地页体验差 | 优化移动端页面或降低移动出价 |
541
- | 16 | 某地域 CPA 极高 | `geographic` 查各地域 CPA | 地域定向过宽 | 排除低效地域或降低出价调整 |
542
- | 17 | 搜索展示份额骤降 | `campaigns` 查 searchRankLostIS | 竞争对手加大投放 | 提高 QS 和出价应对 |
543
- | 18 | 转化波动大(时高时低) | `daily-metrics` 查每日趋势 | 转化延迟或追踪不稳定 | `conversion-actions` 确认追踪和归因窗口 |
544
- | 19 | 花费突然激增 | `search-terms` 查新搜索词 | 广泛匹配触发大量新词 | 添加否定关键词,收紧匹配类型 |
545
- | 20 | 广告审核被拒 | `ad list --json-out ./snap` 查广告状态 | 广告违规政策 | 修改广告内容后重新提交 |
524
+ | # | 症状 | 检查数据 | 可能原因 | 修复命令/操作 |
525
+ | --- | ---------------------- | -------------------------------------------- | ----------------------- | ----------------------------------------- |
526
+ | 1 | CPA 突然飙升 | `campaigns` 查 costPerConversion 趋势 | 出价策略进入学习期 | `daily-metrics` 确认,等待 7 天或回退策略 |
527
+ | 2 | CPA 突然飙升 | `search-terms` 查新增搜索词 | 触发不相关搜索词 | 添加否定关键词 |
528
+ | 3 | CPA 突然飙升 | `keywords` 查 qualityScore 变化 | QS 下降导致 CPC 上升 | 优化广告相关性和落地页 |
529
+ | 4 | CTR 持续下降 | `ads` 查广告强度和创意内容 | 广告疲劳 | 更新广告素材,添加新标题/描述 |
530
+ | 5 | CTR 持续下降 | `campaigns` 查 searchImpressionShare | 广告位置下降 | 检查出价竞争力和 QS |
531
+ | 6 | 展示量大幅下降 | `campaigns` 查 searchBudgetLostIS | 预算耗尽 | 增加预算 |
532
+ | 7 | 展示量大幅下降 | `keywords` 查关键词状态 | 关键词被暂停或否定 | `ad keywords --json-out ./snap` 检查状态 |
533
+ | 8 | 展示量大幅下降 | `campaigns` 查系列状态 | 广告被拒或系列暂停 | `ad campaigns --json-out ./snap` 检查状态 |
534
+ | 9 | 转化量下降但点击正常 | `final-urls` 查转化率 | 落地页问题(改版/故障) | 检查落地页是否可访问且正常 |
535
+ | 10 | 转化量下降但点击正常 | `conversion-actions` 查转化操作 | 转化追踪代码失效 | 检查 Google Tag 是否正常触发 |
536
+ | 11 | 预算花不出去 | `keywords` 查展示量和出价 | 出价过低无竞争力 | 提高出价或切换出价策略 |
537
+ | 12 | 预算花不出去 | `ad keywords --json-out ./snap` 查关键词数量 | 关键词太少或搜索量低 | 扩展关键词列表 |
538
+ | 13 | QS 整体下降 | `keywords` 查 QS 分布 | 落地页体验下降 | 检查落地页加载速度和内容相关性 |
539
+ | 14 | QS 整体下降 | `ads` 查广告相关性 | 广告与关键词不匹配 | 重写广告,确保包含核心关键词 |
540
+ | 15 | 移动端效果差 | `devices` 查移动端 CPA | 移动落地页体验差 | 优化移动端页面或降低移动出价 |
541
+ | 16 | 某地域 CPA 极高 | `geographic` 查各地域 CPA | 地域定向过宽 | 排除低效地域或降低出价调整 |
542
+ | 17 | 搜索展示份额骤降 | `campaigns` 查 searchRankLostIS | 竞争对手加大投放 | 提高 QS 和出价应对 |
543
+ | 18 | 转化波动大(时高时低) | `daily-metrics` 查每日趋势 | 转化延迟或追踪不稳定 | `conversion-actions` 确认追踪和归因窗口 |
544
+ | 19 | 花费突然激增 | `search-terms` 查新搜索词 | 广泛匹配触发大量新词 | 添加否定关键词,收紧匹配类型 |
545
+ | 20 | 广告审核被拒 | `ad list --json-out ./snap` 查广告状态 | 广告违规政策 | 修改广告内容后重新提交 |
546
546
 
547
547
  ## 14. CLI 审计命令序列
548
548
 
@@ -381,20 +381,20 @@ trusted, reliable, expert, custom, premium
381
381
 
382
382
  `ad ad-create` 与 `campaign-create` JSON 内 RSA 的 `headlines` / `descriptions` 必须满足:
383
383
 
384
- | # | 检查项 | 规则 |
385
- | --- | ---------------- | ------------------------------------------------------------------- |
386
- | 1 | 字符限制 | 每条 headline ≤ 30 字符;每条 description ≤ 90 字符 |
384
+ | # | 检查项 | 规则 |
385
+ | --- | ---------------- | ------------------------------------------------------------------------------------------------------- |
386
+ | 1 | 字符限制 | 每条 headline ≤ 30 字符;每条 description ≤ 90 字符 |
387
387
  | 2 | 数量 | `campaign-create` JSON:**Headlines = 15**、**Descriptions = 4**(须写满);`ad ad-create` 仍为 ≥3 / ≥2 |
388
- | 3 | 无 ALL CAPS | 除非缩写 |
389
- | 4 | 无多余感叹号 | Headlines 里 0 个;Descriptions 里最多 1 个 |
390
- | 5 | 无电话/邮箱 | 用 extension 代替 |
391
- | 6 | 无商标侵权 | 不含未授权品牌名 |
392
- | 7 | 无虚假承诺 | 不含 "guaranteed"、"instant cure" 等 |
393
- | 8 | 与落地页一致 | 承诺的优惠/功能在 `--final-url` 页面可见 |
394
- | 9 | 无重复内容 | Headlines 之间不重复;Descriptions 之间不重复 |
395
- | 10 | Path 合规 | `--path1` / `--path2` 各 ≤ 15 字符,不含特殊字符 |
396
- | 11 | 价格/折扣可验证 | 文案提到价格或折扣 → 落地页同步可见(见 3.5 节) |
397
- | 12 | CJK 字符双倍计数 | 中文 headline 最多约 15 字;description 最多约 45 字(见 3.2.1 节) |
388
+ | 3 | 无 ALL CAPS | 除非缩写 |
389
+ | 4 | 无多余感叹号 | Headlines 里 0 个;Descriptions 里最多 1 个 |
390
+ | 5 | 无电话/邮箱 | 用 extension 代替 |
391
+ | 6 | 无商标侵权 | 不含未授权品牌名 |
392
+ | 7 | 无虚假承诺 | 不含 "guaranteed"、"instant cure" 等 |
393
+ | 8 | 与落地页一致 | 承诺的优惠/功能在 `--final-url` 页面可见 |
394
+ | 9 | 无重复内容 | Headlines 之间不重复;Descriptions 之间不重复 |
395
+ | 10 | Path 合规 | `--path1` / `--path2` 各 ≤ 15 字符,不含特殊字符 |
396
+ | 11 | 价格/折扣可验证 | 文案提到价格或折扣 → 落地页同步可见(见 3.5 节) |
397
+ | 12 | CJK 字符双倍计数 | 中文 headline 最多约 15 字;description 最多约 45 字(见 3.2.1 节) |
398
398
 
399
399
  ### 10.1 RSA(自适应搜索广告)专项合规
400
400
 
@@ -490,26 +490,26 @@ Google 2023 年起对新广告主实施 **Limited Ad Serving**(有限广告投
490
490
 
491
491
  ## 十二、与现有命令的联动说明
492
492
 
493
- | 场景 | 命令 | 合规要点 |
494
- | -------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
495
- | 关键词推荐 | `keyword -k "词" [--url]` | 推荐结果需经本文规则过滤后再 `keyword-create` |
496
- | 手动添加关键词 | `ad keyword-create --keywords "词1,词2"` | 每个词过本文「三/四/五/七」章节 |
497
- | 手动创建广告 | `ad ad-create --headlines "..." --descriptions "..."` | 文案过第十章清单 |
498
- | 一体化创建系列 | `ad campaign-create --config-file ./campaign.json`(经 `campaign-validate`) | 关键词 + 文案都要过 |
499
- | 搜索字词转否词 | `ad search-terms` → `ad keyword-negative-create` | 定期检查,把低质量搜索词加否定 |
493
+ | 场景 | 命令 | 合规要点 |
494
+ | -------------- | ---------------------------------------------------------------------------- | --------------------------------------------- |
495
+ | 关键词推荐 | `keyword -k "词" [--url]` | 推荐结果需经本文规则过滤后再 `keyword-create` |
496
+ | 手动添加关键词 | `ad keyword-create --keywords "词1,词2"` | 每个词过本文「三/四/五/七」章节 |
497
+ | 手动创建广告 | `ad ad-create --headlines "..." --descriptions "..."` | 文案过第十章清单 |
498
+ | 一体化创建系列 | `ad campaign-create --config-file ./campaign.json`(经 `campaign-validate`) | 关键词 + 文案都要过 |
499
+ | 搜索字词转否词 | `ad search-terms` → `ad keyword-negative-create` | 定期检查,把低质量搜索词加否定 |
500
500
 
501
501
  ---
502
502
 
503
503
  ## 十三、被拒后的排查路径
504
504
 
505
- | 被拒原因 | 对应检查 | 修复方式 |
506
- | -------------------------------- | ----------------------- | ------------------------------------- |
505
+ | 被拒原因 | 对应检查 | 修复方式 |
506
+ | -------------------------------- | ----------------------- | -------------------------------------- |
507
507
  | `PolicyFindingError: PROHIBITED` | 文案/落地页属于受限类目 | 本文第二章 + `sensitive-industries.md` |
508
- | `Misleading content` | 文案有虚假承诺 | 按第四章替换用词 |
509
- | `Trademark violation` | 文案含他人商标 | 删除品牌名,用通用描述 |
510
- | `Editorial` | 大小写/标点/间距 | 按第三章修正 |
511
- | `Destination mismatch` | URL 与文案不一致 | 检查 `--final-url` 实际内容 |
512
- | `Restricted content` | 行业需认证 | 按 `sensitive-industries.md` 确认资质 |
508
+ | `Misleading content` | 文案有虚假承诺 | 按第四章替换用词 |
509
+ | `Trademark violation` | 文案含他人商标 | 删除品牌名,用通用描述 |
510
+ | `Editorial` | 大小写/标点/间距 | 按第三章修正 |
511
+ | `Destination mismatch` | URL 与文案不一致 | 检查 `--final-url` 实际内容 |
512
+ | `Restricted content` | 行业需认证 | 按 `sensitive-industries.md` 确认资质 |
513
513
 
514
514
  > **排查后仍被拒?** 参见第十四章「政策申诉与账户恢复」了解申诉流程和修复方法。
515
515
 
@@ -405,15 +405,15 @@ Broad Match + 受众信号 = 伪装成广泛定向的精准投放。
405
405
 
406
406
  ## 十四、CLI 命令联动速查
407
407
 
408
- | 策略场景 | 命令 | 要点 |
409
- | ------------ | ----------------------------------------- | ----------------------------------------------------------------- |
410
- | 关键词调研 | `keyword -k "词" [--url]` | 结果按意图分层后再添加 |
411
- | 添加关键词 | `ad keyword-create --keywords "词1,词2"` | 格式:`词→BROAD`、`"词"→PHRASE`、`[词]→EXACT` |
412
- | 添加否定词 | `ad keyword-negative-create` | 每周从 `ad search-terms` 挖掘 |
408
+ | 策略场景 | 命令 | 要点 |
409
+ | ------------ | ------------------------------------------------------------ | ----------------------------------------------------------------------- |
410
+ | 关键词调研 | `keyword -k "词" [--url]` | 结果按意图分层后再添加 |
411
+ | 添加关键词 | `ad keyword-create --keywords "词1,词2"` | 格式:`词→BROAD`、`"词"→PHRASE`、`[词]→EXACT` |
412
+ | 添加否定词 | `ad keyword-negative-create` | 每周从 `ad search-terms` 挖掘 |
413
413
  | 创建广告系列 | `ad campaign-create --config-file`(先 `campaign-validate`) | 按本文第三章架构设计系列结构;匹配块见 `google-ads-keyword-taxonomy.md` |
414
- | 搜索词分析 | `ad search-terms` | 每周导出,按第八章流程处理 |
415
- | 竞品监控 | `ad auction-insights`(如有) | 按第九章分析竞争态势 |
416
- | 出价调整 | 广告系列级 Smart Bidding 设置 | 新账户用 Manual/ECPC → 有数据后切 tCPA/tROAS |
414
+ | 搜索词分析 | `ad search-terms` | 每周导出,按第八章流程处理 |
415
+ | 竞品监控 | `ad auction-insights`(如有) | 按第九章分析竞争态势 |
416
+ | 出价调整 | 广告系列级 Smart Bidding 设置 | 新账户用 Manual/ECPC → 有数据后切 tCPA/tROAS |
417
417
 
418
418
  ---
419
419
 
@@ -449,13 +449,13 @@ CLI 命令格式:
449
449
  siluzan-tso keyword -k "搜索词" [--url <URL>] [--include <包含词>] [--exclude <排除词>] [--json-out ./snap]
450
450
  ```
451
451
 
452
- | 参数 | 说明 |
453
- | ----------- | -------------------------------------------------------------------------------- |
454
- | `-k` | 核心搜索词(**必填**),Keyword Planner 以此为起点生成建议 |
455
- | `--url` | 配合网站 URL 获取更相关的建议;Google 会分析页面内容,返回与该网站更匹配的关键词 |
456
- | `--include` | 结果必须包含的词(逗号分隔),用于缩小建议范围 |
457
- | `--exclude` | 排除包含这些词的建议(逗号分隔),过滤无关结果 |
458
- | `--json-out` | 输出 JSON 格式,便于程序化处理或进一步分析 |
452
+ | 参数 | 说明 |
453
+ | ------------ | -------------------------------------------------------------------------------- |
454
+ | `-k` | 核心搜索词(**必填**),Keyword Planner 以此为起点生成建议 |
455
+ | `--url` | 配合网站 URL 获取更相关的建议;Google 会分析页面内容,返回与该网站更匹配的关键词 |
456
+ | `--include` | 结果必须包含的词(逗号分隔),用于缩小建议范围 |
457
+ | `--exclude` | 排除包含这些词的建议(逗号分隔),过滤无关结果 |
458
+ | `--json-out` | 输出 JSON 格式,便于程序化处理或进一步分析 |
459
459
 
460
460
  **组合用法建议**:先用 `-k` 拉大探索范围,拿到初步结果后,再用 `--include` / `--exclude` 精筛,逐步收窄到高相关关键词集合。
461
461
 
@@ -17,17 +17,27 @@
17
17
  | Phrase Match | 主流量 | 每组 **3–10** 条 | "payment solution" |
18
18
  | Broad Match | 少量测试 | 每组 **1–3** 条 | payment platform |
19
19
  | 否定关键词 | 基础否词库 | 系列级建议 **≥20** | free / jobs / tutorial |
20
+
21
+ **写入位置(Agent 必遵,勿混放)**
22
+
23
+ | 类型 | JSON 字段 | 层级 |
24
+ | ---- | --------- | ---- |
25
+ | 正向关键词 | `campaign.AdGroupsForBatchJob[].KeywordsForBatchJob[]` | 广告组 |
26
+ | 否定关键词 | `campaign.NegativeKeywordsForBatchJob[]` | **系列**(非 KeywordsForBatchJob 内) |
27
+
28
+ 方案 Markdown 的「关键词矩阵」→ 前者;「系列级补充否定词 / 账户级否定词表」→ 后者(账户级列表另在 Google 后台应用)。**禁止**把否词抄进正向 `KeywordsForBatchJob`。`ad campaign-validate` 会对常见否词词根误填给出 warnings。
29
+
20
30
  | 品牌系列 | 独立 Campaign | manifest `role: brand` | company crm |
21
31
  | 竞品系列 | 独立 Campaign | manifest `role: competitor` | stripe alternative |
22
32
  | Search Terms | 运营节奏 | 每周检查 | `ad search-terms` |
23
33
 
24
34
  ### 初始匹配类型占比(按组内词条数)
25
35
 
26
- | 匹配类型 | 占比 | 用途 |
27
- |----------|------|------|
28
- | Exact | 30%–40% | 控制 ROI |
29
- | Phrase | 50%–60% | 主流量 |
30
- | Broad | 10%–20% | 扩量测试 |
36
+ | 匹配类型 | 占比 | 用途 |
37
+ | -------- | ------- | -------- |
38
+ | Exact | 30%–40% | 控制 ROI |
39
+ | Phrase | 50%–60% | 主流量 |
40
+ | Broad | 10%–20% | 扩量测试 |
31
41
 
32
42
  关键词写入 JSON 的 **`campaign.AdGroupsForBatchJob[].KeywordsForBatchJob`**(`MatchTypeV2` + `KeywordText` 词面);无顶层 `KeywordRecommendationsV2` 字段。
33
43
 
@@ -35,24 +45,24 @@
35
45
 
36
46
  ## 核心词生成规则
37
47
 
38
- | 类型 | 规则 | 示例 |
39
- |------|------|------|
40
- | 产品词 | 产品 + 商业动作 | payment gateway pricing |
41
- | 服务词 | 行业 + company/agency | saas marketing company |
42
- | 痛点词 | 问题 + solution | reduce chargeback solution |
43
- | 竞品词 | competitor + alternative | stripe alternative |
44
- | 行业术语 | 专业词汇/缩写 | merchant acquiring |
48
+ | 类型 | 规则 | 示例 |
49
+ | -------- | ------------------------ | -------------------------- |
50
+ | 产品词 | 产品 + 商业动作 | payment gateway pricing |
51
+ | 服务词 | 行业 + company/agency | saas marketing company |
52
+ | 痛点词 | 问题 + solution | reduce chargeback solution |
53
+ | 竞品词 | competitor + alternative | stripe alternative |
54
+ | 行业术语 | 专业词汇/缩写 | merchant acquiring |
45
55
 
46
56
  ---
47
57
 
48
58
  ## 长尾词生成规则
49
59
 
50
- | 类型 | 规则 | 示例 |
51
- |------|------|------|
52
- | 场景词 | 产品 + 行业场景 | crm for manufacturing |
53
- | 地域词 | 产品 + 国家 | payment gateway uae |
54
- | 技术词 | api/sdk/integration | payment sdk integration |
55
- | 问题词 | how to + 问题 | how to reduce failed payments |
60
+ | 类型 | 规则 | 示例 |
61
+ | ------ | ------------------- | ----------------------------- |
62
+ | 场景词 | 产品 + 行业场景 | crm for manufacturing |
63
+ | 地域词 | 产品 + 国家 | payment gateway uae |
64
+ | 技术词 | api/sdk/integration | payment sdk integration |
65
+ | 问题词 | how to + 问题 | how to reduce failed payments |
56
66
 
57
67
  拓词编排见 `references/analytics/keyword-planner-workflows.md`;Planner 出价见 `averageCpc` / `lowTopOfPageBid` / `highTopOfPageBid` 与根级、每条 `bidAmountCurrency`。
58
68
 
@@ -78,9 +88,9 @@
78
88
 
79
89
  JSON 中必须为:
80
90
 
81
- - `campaign.TargetGoogleSearch`: true
82
- - `campaign.TargetSearchNetwork`: false
83
- - `campaign.TargetContentNetwork`: false
84
- - `campaign.TargetPartnerSearchNetwork`: false
91
+ - `campaign.TargetGoogleSearch`: true
92
+ - `campaign.TargetSearchNetwork`: false
93
+ - `campaign.TargetContentNetwork`: false
94
+ - `campaign.TargetPartnerSearchNetwork`: false
85
95
 
86
96
  否则 `campaign-validate` 报 **error**。
@@ -18,15 +18,15 @@
18
18
 
19
19
  ### 创意与否定词数量(关键词见 taxonomy)
20
20
 
21
- | 模块 | 推荐 | 说明 |
22
- |------|------|------|
23
- | RSA Headlines | 12–15 | 固定📌 见 §3.5 |
24
- | RSA Descriptions | 4 | |
25
- | Sitelink | 6–8 | |
26
- | Callout | 6–8 | 12–15 字符 |
27
- | Structured Snippet | 1–2 组,每组 ≥4 values | |
28
- | 账户级否定词包 | 5 类 | §3.4 表 |
29
- | 系列级补充否定 | 5–10 | |
21
+ | 模块 | 推荐 | 说明 |
22
+ | ------------------ | ---------------------- | -------------- |
23
+ | RSA Headlines | 12–15 | 固定📌 见 §3.5 |
24
+ | RSA Descriptions | 4 | |
25
+ | Sitelink | 6–8 | |
26
+ | Callout | 6–8 | 12–15 字符 |
27
+ | Structured Snippet | 1–2 组,每组 ≥4 values | |
28
+ | 账户级否定词包 | 5 类 | §3.4 表 |
29
+ | 系列级补充否定 | 5–10 | |
30
30
 
31
31
  **落地页**:优先 PDP,否则 PLP;仅首页时见 `google-ads-landing-page-discovery-via-webfetch.md`。
32
32
 
@@ -34,22 +34,22 @@
34
34
 
35
35
  ## Markdown ↔ JSON 映射(生成 JSON 时对照)
36
36
 
37
- | 计划正文(Markdown) | `campaign-create` JSON 字段(**PascalCase 直通后端**) |
38
- | ---------------------- | ----------------------------------------------------------------------------------------------------- |
39
- | 账户 ID / 客户名 | `account`、`customerName`(外层) |
40
- | 系列名称 | `name`(外层展示用) / `campaign.Name`(内层) |
41
- | 日预算 | `campaign.Budget`(**元**,CLI 内部 ×100 转分) |
37
+ | 计划正文(Markdown) | `campaign-create` JSON 字段(**PascalCase 直通后端**) |
38
+ | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
39
+ | 账户 ID / 客户名 | `account`、`customerName`(外层) |
40
+ | 系列名称 | `name`(外层展示用) / `campaign.Name`(内层) |
41
+ | 日预算 | `campaign.Budget`(**元**,CLI 内部 ×100 转分) |
42
42
  | 出价策略 / 上限 / tCPA | `campaign.BiddingStrategyTypeV2`、`campaign.TargetSpend_BidCeilingAmount`、`campaign.TargetCpa_BidingAmount`、`campaign.TargetRoas` |
43
- | 投放地域 | `campaign.targetedLocations: [{ id: "<geoId>" }]`(先 `ad geo search` 取 id)、外层 `locations`(展示名,可选) |
44
- | 语言 | `campaign.targetedLanguages: [{ id: 1000 }]`(英语 1000 / 中文 1017) |
45
- | 起止日期 | `campaign.StartTime`、`campaign.EndTime`(YYYY-MM-DD) |
46
- | 落地页 | 外层 `url`;广告组级 `KeywordsForBatchJob[].FinalURL`、创意级 `AdsForBatchJob[].Finalurl` |
47
- | 关键词 | `campaign.AdGroupsForBatchJob[].KeywordsForBatchJob`(`MatchTypeV2` + `KeywordText`) |
48
- | 否定词 | `campaign.NegativeKeywordsForBatchJob: [{ KeywordText: [...], MatchTypeV2: "BROAD", FinalURL: "" }]` |
49
- | 附加信息 | `campaign.ExtensionsForBatchJob` |
50
- | 广告组 | `campaign.AdGroupsForBatchJob[]`:`Name`、`MaxCPCAmount`、`KeywordsForBatchJob`、`AdsForBatchJob` |
51
- | 仅保存草稿 | `draft: true` → 确认后 `ad batch publish` |
52
- | 立即创建 | `draft: false`(默认) |
43
+ | 投放地域 | `campaign.targetedLocations: [{ id: "<geoId>" }]`(先 `ad geo search` 取 id)、外层 `locations`(展示名,可选) |
44
+ | 语言 | `campaign.targetedLanguages: [{ id: 1000 }]`(英语 1000 / 中文 1017) |
45
+ | 起止日期 | `campaign.StartTime`、`campaign.EndTime`(YYYY-MM-DD) |
46
+ | 落地页 | 外层 `url`;广告组级 `KeywordsForBatchJob[].FinalURL`、创意级 `AdsForBatchJob[].Finalurl` |
47
+ | 关键词 | `campaign.AdGroupsForBatchJob[].KeywordsForBatchJob`(`MatchTypeV2` + `KeywordText`) |
48
+ | 否定词 | `campaign.NegativeKeywordsForBatchJob: [{ KeywordText: [...], MatchTypeV2: "BROAD", FinalURL: "" }]` |
49
+ | 附加信息 | `campaign.ExtensionsForBatchJob` |
50
+ | 广告组 | `campaign.AdGroupsForBatchJob[]`:`Name`、`MaxCPCAmount`、`KeywordsForBatchJob`、`AdsForBatchJob` |
51
+ | 仅保存草稿 | `draft: true` → 确认后 `ad batch publish` |
52
+ | 立即创建 | `draft: false`(默认) |
53
53
 
54
54
  关键词匹配(在 `KeywordsForBatchJob` 块中以 `MatchTypeV2` 区分;同一块同匹配类型):`词`→广泛、`"词"`→词组、`[词]`→完全。
55
55
 
@@ -162,6 +162,8 @@ AI 生成计划时,**先写好 JSON,再按以下格式输出说明**。`{{
162
162
 
163
163
  **系列级补充否定关键词**(除账户级列表外;**推荐 5–10 条**,**最少 3 条**)
164
164
 
165
+ > **JSON 映射**:下表写入 `campaign.NegativeKeywordsForBatchJob`,**不要**写入 `AdGroupsForBatchJob[].KeywordsForBatchJob`(后者是正向关键词,误填会主动购买否词流量)。
166
+
165
167
  | 否定词 | 匹配类型 | 原因 |
166
168
  | -------------- | -------- | -------- |
167
169
  | {{negative 1}} | 完全匹配 | {{原因}} |
@@ -250,11 +252,11 @@ Display URL:`{{domain}}/{{path1}}/{{path2}}`(Path1/Path2 各 ≤ 15 字符
250
252
 
251
253
  ### 3.7 优化师日常操作 S.O.P(执行规范)
252
254
 
253
- | 频次 | 必做事项 |
254
- | ------------------------ | ------------------------------- |
255
- | **每日(建议前 14 天)** | 查**搜索词报告**:发现 C 端/教程/无关意图,**立即**将具体词或整句以合适匹配类型加入**账户否定列表**或系列否定;这是控制流量质量的关键|
255
+ | 频次 | 必做事项 |
256
+ | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
257
+ | **每日(建议前 14 天)** | 查**搜索词报告**:发现 C 端/教程/无关意图,**立即**将具体词或整句以合适匹配类型加入**账户否定列表**或系列否定;这是控制流量质量的关键 |
256
258
  | **每周** | **砍烂词**:某关键词花费 > {{如:$15}} 且无有效转化(或无线索/WhatsApp 等约定动作),**暂停**;**调出价**:有效 B2B/目标动作词可提价 **10%–15%**,争取**绝对页首展示份额** |
257
- | **每月** | 核对 CRM/销售数据,算真实 ROI;对「垃圾线索」来源词**降价或暂停**;评估是否满足切换 **tCPA / 智能出价** 的数据门槛|
259
+ | **每月** | 核对 CRM/销售数据,算真实 ROI;对「垃圾线索」来源词**降价或暂停**;评估是否满足切换 **tCPA / 智能出价** 的数据门槛 |
258
260
 
259
261
  **阶段总览**(与 `references/google-ads/rules/google-ads-campaign-optimization.md` 可对照,不替代上表日常动作):
260
262
 
@@ -326,7 +328,7 @@ Display URL:`{{domain}}/{{path1}}/{{path2}}`(Path1/Path2 各 ≤ 15 字符
326
328
 
327
329
  在生成计划前,至少确认以下信息(缺失则向用户询问):
328
330
 
329
- | 必须 | 信息 | 用途 zz |
331
+ | 必须 | 信息 | 用途 zz |
330
332
  | ---- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
331
333
  | ✅ | 广告账户 ID | 关联投放账户(执行时由助手使用,勿向用户解释命令行) |
332
334
  | ✅ | 推广的产品/服务 | 决定关键词和文案方向 |
@@ -347,7 +349,7 @@ Display URL:`{{domain}}/{{path1}}/{{path2}}`(Path1/Path2 各 ≤ 15 字符
347
349
  | 系列命名 | 遵循 `[类型]_[目标]_[定向]_[地域]_[匹配]` 规范(参考 `google-ads-campaign-optimization.md` 2.1 节);可与业务名并用(如「B2B 源头寻源」) |
348
350
  | 出价策略(首月) | **产品默认**:核心系列用 **Manual CPC**,且**关闭 eCPC**,写明建议 CPC 上限区间;测流/爆款系列可用 **Maximize Clicks + 最高 CPC**;与 `TARGET_SPEND` 等等价映射以实际 CLI/API 可选值为准时在助手侧转换,**用户可见正文始终用 Google Ads 界面用语** |
349
351
  | 出价策略(次月) | **产品默认**:近 **30 天满 30 个**约定转化(如表单)后切换 **tCPA**;无足够数据则延续人工或 Max Clicks 并写明条件 |
350
- | 关键词(每广告组) | 数量与匹配块建议见 **`google-ads-keyword-taxonomy.md`**;组内意图一致;符号 `[完全]` / `"词组"` / 广泛;策略争议见 `google-ads-keyword-strategy.md` |
352
+ | 关键词(每广告组) | 数量与匹配块建议见 **`google-ads-keyword-taxonomy.md`**;组内意图一致;符号 `[完全]` / `"词组"` / 广泛;策略争议见 `google-ads-keyword-strategy.md` |
351
353
  | 否定词 | **账户级 5 类词包**填满模板表;系列级补充 5–10 条;上线后搜索词**每日**迭代 |
352
354
  | RSA | **12–15** 标题、**4** 描述;**至少 H1、H2 与 D1** 在表中标注【固定📌】及目标位置与理由;字符合规见第十一章字数≤30 |
353
355
  | 附加信息 | Sitelink **6–8**(可含 OEM/验厂/报价/目录/联系);Callout **6–8**;Snippet **≥1 组、每组 ≥4 值**;**Lead Form** 线索业务建议填标题与必填字段 |
@@ -122,6 +122,8 @@ Asset Group 是 PMax 中素材与受众信号的组合单元。**推荐分组维
122
122
  素材组 C: 通用品牌认知 → 首页 + 广泛受众信号
123
123
  ```
124
124
 
125
+ **新建活动(CLI)**:方案 JSON 默认含 `campaignExtensions.leadForm`(潜在客户表单),与 callouts/snippets 一并由 `pmax-create` 挂载;字段见 `assets/pmax-create-template.md` § 方案生成。存量活动补挂见 `assets/pmax-lead-form-template.md`。
126
+
125
127
  ### 3.5 每个素材组的完整性要求
126
128
 
127
129
  每个素材组必须包含**完整素材套件**:长标题 × 5、短标题 × 5、描述 × 5;横版图 (1.91:1) × 4+、方形图 (1:1) × 4+、竖版图 (4:5) × 2+;视频 × 1+(建议 3 个);商家名称、Logo、最终网址、行动号召。
@@ -414,7 +416,7 @@ PMax 搜索渠道天然适配 AI Overview(自动化程度高)。AI Overview
414
416
  | **素材组不展示** | 素材不足;素材与受众/着陆页关联度低;预算分散 | `ads` 查看素材状态 | 补全素材至每种格式最低数量;合并低量素材组;增加系列预算 |
415
417
  | **CPA 突然飙升** | 竞争加剧;转化延迟;素材疲劳;季节因素 | 对比近 7 天 vs 前 7 天各指标 | 等待 3-5 天观察是否恢复;更新素材;检查竞争对手动态 |
416
418
  | **ROAS 远低于目标** | tROAS 设置过高导致展示不足;产品 Feed 问题;着陆页转化率下降 | `campaigns` 查展示量趋势;`final-urls` 查着陆页数据 | 降低 tROAS 目标 10-15%;优化产品 Feed 数据质量;检查着陆页 |
417
- | **展示量突然归零** | 系列暂停/预算耗尽;审核拒绝;账户问题 | `ad campaigns -a <CID> --json-out ./snap` 查系列状态 | 检查系列启用状态和预算;查看审核状态;联系 Google 支持 |
419
+ | **展示量突然归零** | 系列暂停/预算耗尽;审核拒绝;账户问题 | `ad campaigns -a <CID> --json-out ./snap` 查系列状态 | 检查系列启用状态和预算;查看审核状态;联系 Google 支持 |
418
420
 
419
421
  ## 13. CLI 诊断流程
420
422
 
@@ -12,14 +12,14 @@ siluzan-tso config show # 取 webUrl
12
12
 
13
13
  ## CLI 能做什么 / 不能做什么
14
14
 
15
- | 用户需求 | Agent 做法 |
16
- | -------- | ---------- |
17
- | 与首页**完全一致**的昨日汇总、全账户余额一览、图表级多账户联动 | **无对应 CLI**;引导打开首页(上表 URL) |
18
- | 单账户余额 | `balance -m <媒体> -a <mediaCustomerId>` |
19
- | 单账户消耗/点击/转化 | `stats -m <媒体> -a <mediaCustomerId>` |
20
- | 开户进度 | `account-history`、`open-account` |
21
- | 充值 | **无 CLI**;见 `references/accounts/finance.md`,用 `webUrl` 引导充值页 |
22
- | AI / 建站 / 内容等非 TSO 模块 | 说明超出本 Skill;用 `webUrl` 拼接路径,**勿**用 siluzan-tso 冒充 |
15
+ | 用户需求 | Agent 做法 |
16
+ | -------------------------------------------------------------- | ----------------------------------------------------------------------- |
17
+ | 与首页**完全一致**的昨日汇总、全账户余额一览、图表级多账户联动 | **无对应 CLI**;引导打开首页(上表 URL) |
18
+ | 单账户余额 | `balance -m <媒体> -a <mediaCustomerId>` |
19
+ | 单账户消耗/点击/转化 | `stats -m <媒体> -a <mediaCustomerId>` |
20
+ | 开户进度 | `account-history`、`open-account` |
21
+ | 充值 | **无 CLI**;见 `references/accounts/finance.md`,用 `webUrl` 引导充值页 |
22
+ | AI / 建站 / 内容等非 TSO 模块 | 说明超出本 Skill;用 `webUrl` 拼接路径,**勿**用 siluzan-tso 冒充 |
23
23
 
24
24
  ---
25
25
 
@@ -17,7 +17,7 @@ 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-out` | 输出原始 JSON |
20
+ | `--json-out` | 输出原始 JSON |
21
21
 
22
22
  **AI 交付**:用户要求「原始 JSON / 自己筛」时,回复中须包含 **`--json-out` 命令打印的完整 JSON**(或等价完整代码块),并可按上表说明 `custom_fields` / `system_fields`(TikTok)或 `field_data`(Meta)。**禁止**用未出现在本次 CLI 输出中的账户 ID、媒体或「环境异常」类推测替代 JSON 交付。
23
23
  若本次查询失败:CLI 在 落盘 JSON 中会输出 **`{"ok":false,"error":"...","items":[]}`**(stdout),请**原样**贴出该 JSON,不要改成纯文字描述。
@@ -67,7 +67,7 @@ siluzan-tso forewarning notify-accounts
67
67
  | ------------- | ---- | --------------------------------------------------------------------------------------------- |
68
68
  | `-m, --media` | ✅ | 媒体类型:`Google` \| `TikTok` |
69
69
  | `--name` | ✅ | 规则名称 |
70
- | `--accounts` | ✅ | 监控的媒体账户 entityId,逗号分隔(由 `list-accounts --json-out ./snap` 查询) |
70
+ | `--accounts` | ✅ | 监控的媒体账户 entityId,逗号分隔(由 `list-accounts --json-out ./snap` 查询) |
71
71
  | `--field` | ✅ | 监控指标,见下表 |
72
72
  | `--operator` | ✅ | 比较运算符:`GREATER_EQUALS` \| `GREATER` \| `LESS_EQUALS` \| `LESS` \| `EQUALS` |
73
73
  | `--value` | ✅ | 阈值(数字,单位为人民币元或对应货币) |
@@ -3,8 +3,8 @@
3
3
  > **编排责任**:定时、阈值、多轮状态(如「连续 3 日未改善」)、统计检验、通知(P1/P2)由 **宿主** 实现。
4
4
  > **本组文档**:说明如何用 `siluzan-tso` **拉检查项**、**执行写操作**、**写后复核**;每条 SOP 独立成文,避免单文件过长。
5
5
 
6
- | 文档 | 场景 |
7
- | ------------------------------------------------------------------------------------------ | -------------------------------------- |
6
+ | 文档 | 场景 |
7
+ | ---------------------------------------------------------------------------------------------------------------- | -------------------------------------- |
8
8
  | [`operations/hosted-automation-optimize-weak-downbid.md`](operations/hosted-automation-optimize-weak-downbid.md) | 表现差:组/创意 **降价或暂停** |
9
9
  | [`operations/hosted-automation-optimize-scale.md`](operations/hosted-automation-optimize-scale.md) | 高转化:**提预算 / 上调目标 CPA** 扩量 |
10
10
  | [`operations/hosted-automation-optimize-ab-winner.md`](operations/hosted-automation-optimize-ab-winner.md) | 同组多创意:**A/B 决胜负、停输家** |
@@ -5,12 +5,12 @@
5
5
 
6
6
  本主题拆成下面两份子文档,按需打开(本文件只做**入口与导航**)。
7
7
 
8
- | 文档 | 内容 |
9
- | ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
10
- | [`operations/hosted-automation-self-control.md`](operations/hosted-automation-self-control.md) | **三类投放自控**:单日预算熔断、CPA 飙升降价、连续空耗暂停;通用约定与常用 JSON 字段表;宿主编排实现清单;与 `forewarning` 的关系 |
8
+ | 文档 | 内容 |
9
+ | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
10
+ | [`operations/hosted-automation-self-control.md`](operations/hosted-automation-self-control.md) | **三类投放自控**:单日预算熔断、CPA 飙升降价、连续空耗暂停;通用约定与常用 JSON 字段表;宿主编排实现清单;与 `forewarning` 的关系 |
11
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 自控、异常监控、自动优化表格(可节选给用户;与上表互补) |
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
14
 
15
15
  **必读交叉引用**(子文档内会再写一遍):
16
16
 
@@ -24,12 +24,12 @@
24
24
 
25
25
  ### 检查项常用 JSON 字段(以当次 `siluzan-tso … --json-out ./snap` 为准)
26
26
 
27
- | 检查意图 | 可关注的 JSON 字段(键名以实际 stdout 为准) |
28
- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
29
- | 周期内费用 | 系列/组/创意列表中的 **`spend`**;报表类子命令中带费用的指标字段 |
30
- | 日预算与费用比 | **`ad campaigns --json-out ./snap`**:`**budget`**(CLI 已为元)与 **`spend`**;比较时须**统一货币与单位\*\*(见 `SKILL.md` 金额硬规范) |
31
- | 转化次数 | **`conversions`**(或报表里等价字段名) |
32
- | 实际 CPA | 宿主侧 **`spend / conversions`**(`conversions` 为 0 时不做 CPA 判断) |
27
+ | 检查意图 | 可关注的 JSON 字段(键名以实际 stdout 为准) |
28
+ | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
29
+ | 周期内费用 | 系列/组/创意列表中的 **`spend`**;报表类子命令中带费用的指标字段 |
30
+ | 日预算与费用比 | **`ad campaigns --json-out ./snap`**:`**budget`**(CLI 已为元)与 **`spend`**;比较时须**统一货币与单位\*\*(见 `SKILL.md` 金额硬规范) |
31
+ | 转化次数 | **`conversions`**(或报表里等价字段名) |
32
+ | 实际 CPA | 宿主侧 **`spend / conversions`**(`conversions` 为 0 时不做 CPA 判断) |
33
33
  | 目标 CPA(系列 / 组) | 系列列表 JSON 中的 **`targetCpa_BidingAmount`** 等;组列表 **`ad groups --json-out ./snap`** 中的 **`targetCpaAmount`**(写入口径见 `google-ads/google-ads.md`「广告组编辑」) |
34
34
 
35
35
  若某条检查所需字段在**当前**落盘 JSON 中不存在,**禁止猜测**:先换用 `references/analytics/account-analytics.md` 中其它子命令拉数,或与维护方确认是否需扩展 `siluzan-tso`;宿主侧不得编造字段。
@@ -76,8 +76,8 @@ siluzan-tso ad campaign-status -a <mediaCustomerId> --id <campaignId> --status E
76
76
 
77
77
  ### CLI 能力摘要
78
78
 
79
- | 状态 | 说明 |
80
- | ---- | --------------------------------------------------------------------------------------- |
79
+ | 状态 | 说明 |
80
+ | ---- | ------------------------------------------------------------------------------------------------------------- |
81
81
  | 有 | 读:`ad campaigns --json-out ./snap`;写:`ad campaign-status`;复核:再次 `ad campaigns --json-out ./snap`。 |
82
82
 
83
83
  ---
@@ -201,14 +201,14 @@ siluzan-tso ad groups -a <mediaCustomerId> --start <当日> --end <当日> --jso
201
201
 
202
202
  ## 宿主编排实现清单(摘要)
203
203
 
204
- | 步骤 | 说明 |
205
- | ---- | ------------------------------------------------------------ |
206
- | 1 | 配置:账户列表、系数、N、X 小时、白名单、是否自动写、通知 |
204
+ | 步骤 | 说明 |
205
+ | ---- | ---------------------------------------------------------------- |
206
+ | 1 | 配置:账户列表、系数、N、X 小时、白名单、是否自动写、通知 |
207
207
  | 2 | 每轮:`list-accounts` 或固定 `mediaCustomerId` → 拉 `--json-out` |
208
- | 3 | 宿主内算 IF(本页公式) |
209
- | 4 | 命中则调用写命令(可批量,注意 API 限速) |
210
- | 5 | 每写一条即复核读;失败重试与告警由宿主处理 |
211
- | 6 | 审计日志建议写在宿主侧(CLI 不内置) |
208
+ | 3 | 宿主内算 IF(本页公式) |
209
+ | 4 | 命中则调用写命令(可批量,注意 API 限速) |
210
+ | 5 | 每写一条即复核读;失败重试与告警由宿主处理 |
211
+ | 6 | 审计日志建议写在宿主侧(CLI 不内置) |
212
212
 
213
213
  ---
214
214