siluzan-tso-cli 1.1.21 → 1.1.22-beta.10
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.
- package/README.md +3 -2
- package/dist/index.js +542 -533
- package/dist/skill/AGENTS.md +45 -0
- package/dist/skill/SKILL.md +55 -347
- package/dist/skill/_meta.json +2 -2
- package/dist/skill/assets/campaign-create-template.json +1 -1
- package/dist/skill/assets/campaign-create-template.md +5 -5
- package/dist/skill/assets/pmax-create-template.md +6 -5
- package/dist/skill/docs/skill-guide.md +44 -0
- package/dist/skill/references/README.md +73 -0
- package/dist/skill/references/{accounts.md → accounts/accounts.md} +37 -37
- package/dist/skill/references/{currency.md → accounts/currency.md} +7 -7
- package/dist/skill/references/{finance.md → accounts/finance.md} +18 -18
- package/dist/skill/references/accounts/open-account-by-media.md +153 -0
- package/dist/skill/references/{open-account-google-ui.md → accounts/open-account-google-ui.md} +2 -2
- package/dist/skill/references/{write-audit-restore.md → accounts/write-audit-restore.md} +4 -4
- package/dist/skill/references/{account-analytics.md → analytics/account-analytics.md} +37 -32
- package/dist/skill/references/{google-analysis-batch.md → analytics/google-analysis-batch.md} +2 -2
- package/dist/skill/references/{keyword-planner-workflows.md → analytics/keyword-planner-workflows.md} +15 -15
- package/dist/skill/references/{rag.md → analytics/rag.md} +11 -11
- package/dist/skill/references/{reporting.md → analytics/reporting.md} +16 -16
- package/dist/skill/references/core/agent-conventions.md +180 -0
- package/dist/skill/references/core/playbooks.md +141 -0
- package/dist/skill/references/{setup.md → core/setup.md} +5 -5
- package/dist/skill/references/core/skill-authoring.md +192 -0
- package/dist/skill/references/{tips.md → core/tips.md} +5 -6
- package/dist/skill/references/{workflows.md → core/workflows.md} +63 -65
- package/dist/skill/references/{google-ads-campaign-plan.md → google-ads/google-ads-campaign-plan.md} +25 -25
- package/dist/skill/references/{google-ads.md → google-ads/google-ads.md} +63 -67
- package/dist/skill/references/{pmax-api.md → google-ads/pmax-api.md} +0 -2
- package/dist/skill/references/google-ads/rules/README.md +21 -0
- package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-account-audit.md +19 -19
- package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-campaign-optimization.md +1 -1
- package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-keyword-optimization.md +1 -1
- package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-keyword-strategy.md +3 -3
- package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-keyword-taxonomy.md +2 -2
- package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-launch-plan-template.md +8 -8
- package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-pmax-guide.md +2 -2
- package/dist/skill/references/{tso-home.md → misc/tso-home.md} +5 -5
- package/dist/skill/references/{clue.md → operations/clue.md} +7 -7
- package/dist/skill/references/{forewarning.md → operations/forewarning.md} +6 -6
- package/dist/skill/references/{hosted-automation-monitoring-json.md → operations/hosted-automation-monitoring-json.md} +14 -14
- package/dist/skill/references/{hosted-automation-optimize-ab-winner.md → operations/hosted-automation-optimize-ab-winner.md} +4 -4
- package/dist/skill/references/{hosted-automation-optimize-index.md → operations/hosted-automation-optimize-index.md} +6 -6
- package/dist/skill/references/{hosted-automation-optimize-scale.md → operations/hosted-automation-optimize-scale.md} +8 -8
- package/dist/skill/references/{hosted-automation-optimize-weak-downbid.md → operations/hosted-automation-optimize-weak-downbid.md} +9 -9
- package/dist/skill/references/operations/hosted-automation-scenarios.md +23 -0
- package/dist/skill/references/{hosted-automation-self-control.md → operations/hosted-automation-self-control.md} +28 -28
- package/{assets/siluzan-ads/references → dist/skill/references/operations}/hosted-automation-user-catalog.md +13 -13
- package/dist/skill/references/{optimize.md → operations/optimize.md} +5 -5
- package/dist/skill/report-templates/README.md +2 -1
- package/dist/skill/report-templates/REPORT-WORKFLOW.md +2 -2
- package/dist/skill/report-templates/google-ads-diagnosis.md +2 -2
- package/dist/skill/report-templates/google-inquiry-analysis.md +11 -12
- package/dist/skill/report-templates/google-period-report.md +2 -2
- package/dist/skill/report-templates/okki-weekly-google-client.md +12 -12
- package/dist/skill/scripts/install.ps1 +3 -3
- package/dist/skill/scripts/install.sh +3 -3
- package/eval/cases/accounts-entityid-vs-mediaccustomerid.scenario.json +4 -4
- package/eval/cases/accounts-mcc-bind-inquiry.scenario.json +3 -3
- package/eval/cases/accounts-single-balance-not-bulk.scenario.json +3 -3
- package/eval/cases/budget-display-not-raw-micros.scenario.json +3 -3
- package/eval/cases/clue-meta-leads-json.scenario.json +4 -4
- package/eval/cases/clue-tiktok-leads-json.scenario.json +3 -3
- package/eval/cases/destructive-account-delink-needs-confirm.scenario.json +1 -1
- package/eval/cases/destructive-forewarning-delete-needs-confirm.scenario.json +1 -1
- package/eval/cases/destructive-invoice-apply-needs-confirm.scenario.json +1 -1
- package/eval/cases/finance-invoice-info-list.scenario.json +3 -3
- package/eval/cases/forewarning-list-google.scenario.json +3 -3
- package/eval/cases/google-ads-no-structural-without-confirm.scenario.json +3 -3
- package/eval/cases/google-analysis-keywords-route.scenario.json +2 -2
- package/eval/cases/hosted-sop-cpa-spike-downbid.scenario.json +6 -6
- package/eval/cases/hosted-sop-daily-budget-circuit-breaker.scenario.json +4 -4
- package/eval/cases/hosted-sop-empty-spend-pause-p1.scenario.json +5 -5
- package/eval/cases/human-p1-multiturn.scenario.json +1 -1
- package/eval/cases/meta-single-balance-not-bulk.scenario.json +4 -4
- package/eval/cases/no-legacy-json-flag.scenario.json +12 -0
- package/eval/cases/open-account-bing-noninteractive.scenario.json +3 -3
- package/eval/cases/open-account-google-noninteractive.scenario.json +2 -2
- package/eval/cases/open-account-tiktok-license-file.scenario.json +2 -2
- package/eval/cases/optimize-list-by-account.scenario.json +3 -3
- package/eval/cases/p1-single-account-profile.scenario.json +2 -2
- package/eval/cases/p2-balance-scan-bulk.scenario.json +1 -1
- package/eval/cases/p4-period-report-window.scenario.json +1 -1
- package/eval/cases/rag-before-keyword-expand.scenario.json +3 -3
- package/eval/cases/rag-list-then-query.scenario.json +5 -5
- package/eval/cases/report-list-google.scenario.json +3 -3
- package/eval/cases/report-push-list-google.scenario.json +3 -3
- package/eval/cases/reporting-vs-account-analytics-routing.scenario.json +4 -4
- package/eval/cases/setup-login-or-env.scenario.json +2 -2
- package/eval/cases/setup-siluzan-data-permission-env.scenario.json +2 -2
- package/eval/cases/skill-optimize-vs-google-ads-distinction.scenario.json +4 -4
- package/eval/cases/tiktok-bc-bind-inquiry.scenario.json +2 -2
- package/eval/cases/time-range-user-delegates-default.scenario.json +2 -2
- package/eval/cases/tips-json-out-filtering.scenario.json +12 -0
- package/eval/cases/tips-large-json-pagination.scenario.json +3 -3
- package/eval/cases/uj-ad-bluetooth-keywords-exclude-cheap-free.scenario.json +1 -1
- package/eval/cases/uj-ad-campaign-validate-before-create-stub.scenario.json +3 -3
- package/eval/cases/uj-ad-keywords-camping-tent-outdoor-plan.scenario.json +1 -1
- package/eval/cases/uj-ad-outdoor-campgear-search-plan.scenario.json +3 -3
- package/eval/cases/uj-analytics-30d-pdf-campaign-device-geo.scenario.json +2 -2
- package/eval/cases/uj-analytics-compare-google-tiktok-last-month-roi.scenario.json +3 -3
- package/eval/cases/uj-analytics-google-weekly-trends-campaigns-keywords.scenario.json +4 -4
- package/eval/cases/uj-analytics-report-push-weekly-email.scenario.json +3 -3
- package/eval/cases/uj-finance-invoice-records-this-month.scenario.json +4 -4
- package/eval/cases/uj-life-newbie-siluzan-google-end-to-end.scenario.json +2 -2
- package/eval/cases/uj-ops-google-accounts-list-normal.scenario.json +4 -4
- package/eval/cases/uj-ops-google-yesterday-spend-conversions.scenario.json +5 -5
- package/eval/cases/uj-ops-open-google-b2c-usd-shenzhen.scenario.json +3 -3
- package/eval/cases/uj-ops-pause-worst-adgroup-confirm.scenario.json +2 -2
- package/eval/cases/uj-ops-tiktok-leads-last-week.scenario.json +4 -4
- package/eval/cases/uj-patrol-cpc-spike-adgroups-over-15.scenario.json +3 -3
- package/eval/cases/uj-patrol-forewarning-create-daily-cap-3000.scenario.json +3 -3
- package/eval/cases/uj-patrol-forewarning-trigger-records.scenario.json +4 -4
- package/eval/cases/uj-patrol-google-balances-low.scenario.json +3 -3
- package/eval/cases/uj-roi-full-google-account-diagnosis.scenario.json +1 -1
- package/eval/cases/uj-roi-keywords-high-cpa-low-cvr-triage.scenario.json +1 -1
- package/eval/cases/uj-roi-optimize-records-then-execute-cautiously.scenario.json +4 -4
- package/eval/cases/uj-roi-search-terms-add-negative-keywords.scenario.json +2 -2
- package/package.json +4 -3
- package/dist/skill/references/hosted-automation-scenarios.md +0 -23
- package/dist/skill/references/hosted-automation-user-catalog.md +0 -38
- package/eval/cases/tips-json-filtering.scenario.json +0 -12
- /package/dist/skill/references/{geo-continents.json → analytics/geo-continents.json} +0 -0
- /package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-audience-strategy.md +0 -0
- /package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-compliance.md +0 -0
- /package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-conversion-architecture.md +0 -0
- /package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-creative-optimization.md +0 -0
- /package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-landing-page-discovery-via-webfetch.md +0 -0
- /package/dist/skill/references/{google-ads-rules → google-ads/rules}/sensitive-industries.md +0 -0
|
@@ -9,37 +9,35 @@
|
|
|
9
9
|
|
|
10
10
|
宿主编排相关文档(**入口** + 两份子页):
|
|
11
11
|
|
|
12
|
-
- **`references/hosted-automation-scenarios.md`** — 索引与导航
|
|
13
|
-
- **`references/hosted-automation-self-control.md`** — 三类场景(**单日预算熔断**、**CPA 飙升降价**、**连续空耗暂停**)的逐步命令、字段对照、系数与复核
|
|
14
|
-
- **`references/hosted-automation-monitoring-json.md`** — 异常监控(余额/`campaign-hour`/落地页/拒审等 **`--json` 键名与命令**)
|
|
15
|
-
- **`references/hosted-automation-optimize-index.md`** — 自动优化(差素材降价/关停、高转化扩量、A/B 决胜负)**分文件 SOP**
|
|
12
|
+
- **`references/operations/hosted-automation-scenarios.md`** — 索引与导航
|
|
13
|
+
- **`references/operations/hosted-automation-self-control.md`** — 三类场景(**单日预算熔断**、**CPA 飙升降价**、**连续空耗暂停**)的逐步命令、字段对照、系数与复核
|
|
14
|
+
- **`references/operations/hosted-automation-monitoring-json.md`** — 异常监控(余额/`campaign-hour`/落地页/拒审等 **`--json-out` 落盘 JSON 键名与命令**)
|
|
15
|
+
- **`references/operations/hosted-automation-optimize-index.md`** — 自动优化(差素材降价/关停、高转化扩量、A/B 决胜负)**分文件 SOP**
|
|
16
16
|
|
|
17
|
-
本文件其余章节仍为其他业务流程;实现上述自控、监控或自动优化时按需打开子页,并配合 `references/tips.md`(`--json`)、`references/google-ads.md`(写命令与拒审字段)、`references/account-analytics.md`(时间窗与报表)、`references/accounts.md`(`balance` / `balance-scan`)。
|
|
17
|
+
本文件其余章节仍为其他业务流程;实现上述自控、监控或自动优化时按需打开子页,并配合 `references/core/tips.md`(`--json-out`)、`references/google-ads/google-ads.md`(写命令与拒审字段)、`references/analytics/account-analytics.md`(时间窗与报表)、`references/accounts/accounts.md`(`balance` / `balance-scan`)。
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
21
21
|
## 关键词规划师(拓词 / 词包)
|
|
22
22
|
|
|
23
|
-
**`references/keyword-planner-workflows.md`**:`keyword` / `google-analysis` 拓词编排;**不含**建户 JSON(见下节)。
|
|
23
|
+
**`references/analytics/keyword-planner-workflows.md`**:`keyword` / `google-analysis` 拓词编排;**不含**建户 JSON(见下节)。
|
|
24
24
|
|
|
25
25
|
## Google 搜索系列方案 + 创建(Agent)
|
|
26
26
|
|
|
27
|
-
**`references/google-ads-campaign-plan.md`**:双轨入口、7 步流水线、`campaign-validate` 门禁、`campaign-create` + batch。字段契约见 `assets/campaign-create-template.md`;命令参数见 `references/google-ads.md`。
|
|
27
|
+
**`references/google-ads/google-ads-campaign-plan.md`**:双轨入口、7 步流水线、`campaign-validate` 门禁、`campaign-create` + batch。字段契约见 `assets/campaign-create-template.md`;命令参数见 `references/google-ads/google-ads.md`。
|
|
28
28
|
|
|
29
29
|
---
|
|
30
30
|
|
|
31
31
|
## 流程一:新账户开通(Google / TikTok / Yandex / Bing / Kwai)
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
**主文档**:`references/accounts/open-account-by-media.md`(各媒体命令与参数)。Google 网页对照见 `accounts/open-account-google-ui.md`。
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
### 业务背景
|
|
38
|
-
|
|
39
|
-
用户在丝路赞上还没有某媒体账户时,需要提交开户申请并跟踪审核进度。**各媒体所需资料和命令参数完全不同,不要混用。**
|
|
35
|
+
对应页面:`/accountOpeningHistory`。网页链接:`{webUrl}/v3/foreign_trade/tso/accountOpeningHistory?tso=%2Fv3umijs%2Ftso%2FaccountOpeningHistory`。
|
|
40
36
|
|
|
41
37
|
> **AI Agent 注意**:`open-account google-wizard` 需要真实 TTY,Agent 环境无法使用,始终用非交互命令。
|
|
42
38
|
|
|
39
|
+
以下保留完整示例供 workflows 内联阅读;维护时以 `accounts/open-account-by-media.md` 为准。
|
|
40
|
+
|
|
43
41
|
---
|
|
44
42
|
|
|
45
43
|
### Google 开户
|
|
@@ -200,13 +198,13 @@ siluzan-tso account-history -m Google
|
|
|
200
198
|
| ---------- | -------- | --------------------------------------------------------------------------------------------------------------------- |
|
|
201
199
|
| `Pending` | 审核中 | 等待,可反复轮询 |
|
|
202
200
|
| `Approved` | 审核通过 | `list-accounts` 确认账户出现;引导用户充值激活(见各媒体第四步) |
|
|
203
|
-
| `Rejected` | 被拒 | 查看拒绝原因(`account-history --json` 的 `reason` 字段);修改资料后重新提交;如无法确定原因,引导用户联系丝路赞客服 |
|
|
201
|
+
| `Rejected` | 被拒 | 查看拒绝原因(`account-history --json-out ./snap` 的 `reason` 字段);修改资料后重新提交;如无法确定原因,引导用户联系丝路赞客服 |
|
|
204
202
|
|
|
205
203
|
---
|
|
206
204
|
|
|
207
205
|
## 流程二:AI 智投创建 → 审核 → 发布
|
|
208
206
|
|
|
209
|
-
对应页面:`/advertising/AICreation`(创建向导)、`/advertising/AICreationList`(记录列表)。`ad batch` 命令见 **`references/google-ads.md`** § ad batch。
|
|
207
|
+
对应页面:`/advertising/AICreation`(创建向导)、`/advertising/AICreationList`(记录列表)。`ad batch` 命令见 **`references/google-ads/google-ads.md`** § ad batch。
|
|
210
208
|
|
|
211
209
|
### 业务背景
|
|
212
210
|
|
|
@@ -223,7 +221,7 @@ AI 智投会生成一份 Google 广告草稿(包含系列/组/关键词/广告
|
|
|
223
221
|
siluzan-tso ad batch list --customer-id <mediaCustomerId>
|
|
224
222
|
|
|
225
223
|
# 过滤只看未发布草稿
|
|
226
|
-
siluzan-tso ad batch list --state Unpublished --json
|
|
224
|
+
siluzan-tso ad batch list --state Unpublished --json-out ./snap
|
|
227
225
|
|
|
228
226
|
# 第二步:查看草稿详情(包含完整的广告系列/关键词/预算等配置)
|
|
229
227
|
siluzan-tso ad batch get --id <recordId>
|
|
@@ -281,14 +279,14 @@ Failed / HasFailed(部分或全部失败)
|
|
|
281
279
|
├─ 有已保存的 AI 智投草稿(网页向导填写的)?
|
|
282
280
|
│ └─ 是 → 流程二(ad batch update/publish)
|
|
283
281
|
├─ 需先出投放方案(口述/官网/拓词)?
|
|
284
|
-
│ └─ 是 → references/google-ads-campaign-plan.md → campaign-validate → campaign-create
|
|
282
|
+
│ └─ 是 → references/google-ads/google-ads-campaign-plan.md → campaign-validate → campaign-create
|
|
285
283
|
└─ 已有完整 JSON 或结构化计划?
|
|
286
284
|
└─ 是 → 本流程(campaign-validate → campaign-create)
|
|
287
285
|
```
|
|
288
286
|
|
|
289
287
|
### 场景 A:一体化创建(系列 + 关键词 + 广告,推荐)
|
|
290
288
|
|
|
291
|
-
**方案阶段**:按 **`references/google-ads-campaign-plan.md`**(JSON → `campaign-validate` → Markdown → 用户确认 → create)。下文为命令串联速查。
|
|
289
|
+
**方案阶段**:按 **`references/google-ads/google-ads-campaign-plan.md`**(JSON → `campaign-validate` → Markdown → 用户确认 → create)。下文为命令串联速查。
|
|
292
290
|
|
|
293
291
|
```bash
|
|
294
292
|
# 前置:地域 ID 写入 JSON(campaign.targetedLocations[].id)
|
|
@@ -304,7 +302,7 @@ siluzan-tso ad campaign-create --config-file ./campaign.json
|
|
|
304
302
|
siluzan-tso ad batch get --id <taskId>
|
|
305
303
|
|
|
306
304
|
# 创建完成后确认系列已出现,并获取 campaignId 供后续精细操作
|
|
307
|
-
siluzan-tso ad campaigns -a <mediaCustomerId> --json
|
|
305
|
+
siluzan-tso ad campaigns -a <mediaCustomerId> --json-out ./snap
|
|
308
306
|
```
|
|
309
307
|
|
|
310
308
|
**关键词格式说明**:
|
|
@@ -327,8 +325,8 @@ siluzan-tso ad batch get --id <taskId>
|
|
|
327
325
|
# 等 status → Successfully
|
|
328
326
|
|
|
329
327
|
# 第三步:查询广告系列,获取 campaignId 和 adGroupId
|
|
330
|
-
siluzan-tso ad campaigns -a <mediaCustomerId> --json
|
|
331
|
-
siluzan-tso ad groups -a <mediaCustomerId> --json
|
|
328
|
+
siluzan-tso ad campaigns -a <mediaCustomerId> --json-out ./snap
|
|
329
|
+
siluzan-tso ad groups -a <mediaCustomerId> --json-out ./snap
|
|
332
330
|
|
|
333
331
|
# 第四步(可选):关键词推荐辅助选词
|
|
334
332
|
siluzan-tso keyword -k "跑步鞋,running shoes" --exclude "cheap,kids"
|
|
@@ -380,7 +378,7 @@ siluzan-tso ad campaign-status -a <mediaCustomerId> --id <campaignId> --status P
|
|
|
380
378
|
siluzan-tso ad ad-delete -a <mediaCustomerId> --id <adId>
|
|
381
379
|
|
|
382
380
|
# 查看并清理否定关键词
|
|
383
|
-
siluzan-tso ad keywords -a <mediaCustomerId> --negative --json
|
|
381
|
+
siluzan-tso ad keywords -a <mediaCustomerId> --negative --json-out ./snap
|
|
384
382
|
siluzan-tso ad keyword-negative-delete -a <mediaCustomerId> --id <negKwId>
|
|
385
383
|
```
|
|
386
384
|
|
|
@@ -388,7 +386,7 @@ siluzan-tso ad keyword-negative-delete -a <mediaCustomerId> --id <negKwId>
|
|
|
388
386
|
|
|
389
387
|
## 流程四:AI 广告优化建议查看与执行
|
|
390
388
|
|
|
391
|
-
对应页面:`/advertising/intelligentOptimization`(v2)。`optimize` 命令与脱管账户说明见 **`references/optimize.md`**。
|
|
389
|
+
对应页面:`/advertising/intelligentOptimization`(v2)。`optimize` 命令与脱管账户说明见 **`references/operations/optimize.md`**。
|
|
392
390
|
|
|
393
391
|
### 业务背景
|
|
394
392
|
|
|
@@ -399,7 +397,7 @@ AI 优化模块会分析账户的投放数据,给出优化建议(如调整
|
|
|
399
397
|
siluzan-tso optimize list -a <mediaCustomerId>
|
|
400
398
|
|
|
401
399
|
# 已不在 Siluzan 托管:勿用 -a(接口常 0 条)。用全量翻页 + 客户端筛 Google 客户号,再取 items[].id
|
|
402
|
-
# siluzan-tso optimize list --match-media-customer-id <mediaCustomerId> [--start YYYY-MM-DD] --json
|
|
400
|
+
# siluzan-tso optimize list --match-media-customer-id <mediaCustomerId> [--start YYYY-MM-DD] --json-out ./snap
|
|
403
401
|
|
|
404
402
|
# 第二步:系列级优化记录(可选日期;脱管账户勿依赖 -a)
|
|
405
403
|
siluzan-tso optimize records --start 2026-03-01
|
|
@@ -407,7 +405,7 @@ siluzan-tso optimize records --start 2026-03-01
|
|
|
407
405
|
# 第三步:广告系列级明细(parentId = 上一步 list 里某批次的 id / entityId)
|
|
408
406
|
siluzan-tso optimize children --parent-id <parentId>
|
|
409
407
|
|
|
410
|
-
# 单条详情:id 可为 list 批次 id,或 records --json 的 items[].id
|
|
408
|
+
# 单条详情:id 可为 list 批次 id,或 records --json-out ./snap 的 items[].id
|
|
411
409
|
siluzan-tso optimize get --id <recordUuid>
|
|
412
410
|
|
|
413
411
|
# 根据建议执行操作(以"暂停低效广告组"为例)
|
|
@@ -483,7 +481,7 @@ siluzan-tso forewarning delete -m Google --id <ruleId>
|
|
|
483
481
|
|
|
484
482
|
```bash
|
|
485
483
|
# 查看触发了预警的账户
|
|
486
|
-
siluzan-tso forewarning records -m Google --start 2026-03-20 --json
|
|
484
|
+
siluzan-tso forewarning records -m Google --start 2026-03-20 --json-out ./snap
|
|
487
485
|
|
|
488
486
|
# 确认对应账户的实际消耗
|
|
489
487
|
siluzan-tso stats -m Google -a <entityId> --start 2026-03-20
|
|
@@ -496,7 +494,7 @@ siluzan-tso ad campaign-status -a <mediaCustomerId> --id <campaignId> --status P
|
|
|
496
494
|
|
|
497
495
|
## 流程六:优化报告生成 → 推送管理
|
|
498
496
|
|
|
499
|
-
对应页面:`/dataReport/optimizationReport`、`/dataReport/pushRecord`。命令与接口详解见 **`references/reporting.md`**。
|
|
497
|
+
对应页面:`/dataReport/optimizationReport`、`/dataReport/pushRecord`。命令与接口详解见 **`references/analytics/reporting.md`**。
|
|
500
498
|
|
|
501
499
|
### 业务背景
|
|
502
500
|
|
|
@@ -504,7 +502,7 @@ siluzan-tso ad campaign-status -a <mediaCustomerId> --id <campaignId> --status P
|
|
|
504
502
|
|
|
505
503
|
```bash
|
|
506
504
|
# 第一步:查询可生成报告的账户列表
|
|
507
|
-
siluzan-tso list-accounts -m Google --json
|
|
505
|
+
siluzan-tso list-accounts -m Google --json-out ./snap
|
|
508
506
|
|
|
509
507
|
# 第二步:批量生成上月日报(-a 传 mediaCustomerId,不是 entityId)
|
|
510
508
|
siluzan-tso report create \
|
|
@@ -519,15 +517,15 @@ siluzan-tso report list -m Google --status true
|
|
|
519
517
|
|
|
520
518
|
# 第四步:获取报告查看链接(viewUrl 字段已直接包含在输出中,无需手动拼接)
|
|
521
519
|
siluzan-tso report list -m Google
|
|
522
|
-
# 表格中 viewUrl 列即为可点击的网页链接;--json
|
|
520
|
+
# 表格中 viewUrl 列即为可点击的网页链接;--json-out 落盘时每条记录含 viewUrl 字段
|
|
523
521
|
|
|
524
522
|
# 第五步:查看推送配置列表(是否已开启自动推送;接口同 GET .../query/report-push/settings/Google)
|
|
525
523
|
siluzan-tso report push list -m Google
|
|
526
|
-
# siluzan-tso report push list -m Google --json # items[].entityId / id 用于启停删、history、update
|
|
527
|
-
# siluzan-tso report push receive-emails -m Google [--json] # 历史收件邮箱,与网页推送配置下拉同源
|
|
524
|
+
# siluzan-tso report push list -m Google --json-out ./snap # items[].entityId / id 用于启停删、history、update
|
|
525
|
+
# siluzan-tso report push receive-emails -m Google [--json-out ./snap] # 历史收件邮箱,与网页推送配置下拉同源
|
|
528
526
|
|
|
529
527
|
# 推送记录(网页 /dataReport/pushRecord?entityId=...)
|
|
530
|
-
# siluzan-tso report push history -m Google --setting-id <推送规则entityId> --json
|
|
528
|
+
# siluzan-tso report push history -m Google --setting-id <推送规则entityId> --json-out ./snap
|
|
531
529
|
|
|
532
530
|
# 新建 / 编辑(网页弹窗;--media-accounts 为 ma.entityId)
|
|
533
531
|
# siluzan-tso report push create -m Google --name "..." --media-accounts <id,...> --emails a@b.com --types Daily
|
|
@@ -545,7 +543,7 @@ siluzan-tso report delete --ids <id1>,<id2>
|
|
|
545
543
|
|
|
546
544
|
## 流程六点五:账户分析报告(CLI 拉数 + Agent 撰稿)
|
|
547
545
|
|
|
548
|
-
对应能力:`google-analysis`、`report meta-overview`、`report tiktok-*`、`report bing-*` 与 `report-templates/*.md`。子命令与模板索引见 **`references/account-analytics.md`**。
|
|
546
|
+
对应能力:`google-analysis`、`report meta-overview`、`report tiktok-*`、`report bing-*` 与 `report-templates/*.md`。子命令与模板索引见 **`references/analytics/account-analytics.md`**。
|
|
549
547
|
|
|
550
548
|
### 与流程六的区别
|
|
551
549
|
|
|
@@ -573,11 +571,11 @@ siluzan-tso report delete --ids <id1>,<id2>
|
|
|
573
571
|
|
|
574
572
|
```bash
|
|
575
573
|
# 第一步:查询可开票订单(按媒体和币种筛选)
|
|
576
|
-
siluzan-tso invoice billable -m Google -c USD --json
|
|
574
|
+
siluzan-tso invoice billable -m Google -c USD --json-out ./snap
|
|
577
575
|
# 记录目标订单的 entityId(字段名 entityId,不是过时的 billId)
|
|
578
576
|
|
|
579
577
|
# 若需要查询钱包充值的可开票金额
|
|
580
|
-
siluzan-tso invoice billable --wallet --json
|
|
578
|
+
siluzan-tso invoice billable --wallet --json-out ./snap
|
|
581
579
|
|
|
582
580
|
# 第二步:提交开票申请(USD 订单示例:仅 PI + 英文抬头与地址)
|
|
583
581
|
siluzan-tso invoice apply \
|
|
@@ -590,7 +588,7 @@ siluzan-tso invoice apply \
|
|
|
590
588
|
--recipient-name "张三" \
|
|
591
589
|
--recipient-phone 13800138000
|
|
592
590
|
|
|
593
|
-
# 人民币订单请使用 --invoice-type VATI 或 VATSI,并填写 --company-name、--tax-id、--title、--company-phone 等(见 finance.md)
|
|
591
|
+
# 人民币订单请使用 --invoice-type VATI 或 VATSI,并填写 --company-name、--tax-id、--title、--company-phone 等(见 accounts/finance.md)
|
|
594
592
|
|
|
595
593
|
# 第三步:查询开票申请状态
|
|
596
594
|
siluzan-tso invoice list --start 2026-03-01
|
|
@@ -600,7 +598,7 @@ siluzan-tso invoice list --start 2026-03-01
|
|
|
600
598
|
|
|
601
599
|
## 流程八:广告线索数据提取与跟进
|
|
602
600
|
|
|
603
|
-
对应页面:`/clue-form`。`clue` 命令参数见 **`references/clue.md`**。
|
|
601
|
+
对应页面:`/clue-form`。`clue` 命令参数见 **`references/operations/clue.md`**。
|
|
604
602
|
|
|
605
603
|
### 业务背景
|
|
606
604
|
|
|
@@ -609,7 +607,7 @@ siluzan-tso invoice list --start 2026-03-01
|
|
|
609
607
|
```bash
|
|
610
608
|
# 第一步:确认有哪些 TikTok/Meta 账户
|
|
611
609
|
siluzan-tso list-accounts -m TikTok
|
|
612
|
-
siluzan-tso list-accounts --json | Select-String "MetaAd" # 或用 --json 过滤
|
|
610
|
+
siluzan-tso list-accounts --json-out ./snap | Select-String "MetaAd" # 或用 --json-out ./snap 过滤
|
|
613
611
|
|
|
614
612
|
# 第二步:拉取 TikTok 线索(按区域分类查看)
|
|
615
613
|
# 全部区域
|
|
@@ -619,28 +617,28 @@ siluzan-tso clue -m TikTok -a <advertiserId>
|
|
|
619
617
|
siluzan-tso clue -m TikTok -a <advertiserId> --region eu
|
|
620
618
|
|
|
621
619
|
# 导出为 JSON 供后续处理
|
|
622
|
-
siluzan-tso clue -m TikTok -a <advertiserId> --json > tiktok-leads.json
|
|
620
|
+
siluzan-tso clue -m TikTok -a <advertiserId> --json-out ./snap > tiktok-leads.json
|
|
623
621
|
|
|
624
622
|
# 第三步:拉取 Meta 线索(指定日期范围)
|
|
625
623
|
siluzan-tso clue -m Meta -a <pageId> \
|
|
626
624
|
--start 2026-03-01 \
|
|
627
625
|
--end 2026-03-31 \
|
|
628
|
-
--json > meta-leads.json
|
|
626
|
+
--json-out ./snap > meta-leads.json
|
|
629
627
|
```
|
|
630
628
|
|
|
631
629
|
**定期线索提取(建议每日/每周执行)**:
|
|
632
630
|
|
|
633
631
|
```bash
|
|
634
632
|
# TikTok 全账户线索(如有多个 advertiserId,逐个执行)
|
|
635
|
-
siluzan-tso list-accounts -m TikTok --json
|
|
633
|
+
siluzan-tso list-accounts -m TikTok --json-out ./snap
|
|
636
634
|
# 对每个账户:
|
|
637
|
-
siluzan-tso clue -m TikTok -a <advertiserId> --json
|
|
635
|
+
siluzan-tso clue -m TikTok -a <advertiserId> --json-out ./snap
|
|
638
636
|
|
|
639
637
|
# Meta 线索(本周)
|
|
640
638
|
siluzan-tso clue -m Meta -a <pageId> \
|
|
641
639
|
--start 2026-03-17 \
|
|
642
640
|
--end 2026-03-20 \
|
|
643
|
-
--json
|
|
641
|
+
--json-out ./snap
|
|
644
642
|
```
|
|
645
643
|
|
|
646
644
|
---
|
|
@@ -657,7 +655,7 @@ siluzan-tso clue -m Meta -a <pageId> \
|
|
|
657
655
|
# ─── 场景A:将账户分享给团队成员 ───
|
|
658
656
|
|
|
659
657
|
# 第一步:确认要分享的账户 entityId
|
|
660
|
-
siluzan-tso list-accounts -m Google --json
|
|
658
|
+
siluzan-tso list-accounts -m Google --json-out ./snap
|
|
661
659
|
# 找到目标账户的 entityId(不是 mediaCustomerId!)
|
|
662
660
|
|
|
663
661
|
# 第二步:分享给指定手机号(手机号需已在丝路赞注册)
|
|
@@ -673,7 +671,7 @@ siluzan-tso account unshare --id <entityId> --account-id <userId>
|
|
|
673
671
|
# ─── 场景B:OAuth Token 过期,重新授权 ───
|
|
674
672
|
|
|
675
673
|
# 检查账户状态(invalidOAuthToken = true 表示需要重新授权)
|
|
676
|
-
siluzan-tso list-accounts -m Google --json
|
|
674
|
+
siluzan-tso list-accounts -m Google --json-out ./snap
|
|
677
675
|
|
|
678
676
|
# 重新触发 OAuth 授权流程(会在浏览器打开授权页)
|
|
679
677
|
siluzan-tso account auth -m Google
|
|
@@ -685,7 +683,7 @@ siluzan-tso list-accounts -m Google
|
|
|
685
683
|
# ─── 场景C:从平台解绑账户 ───
|
|
686
684
|
|
|
687
685
|
# 先查出 entityId
|
|
688
|
-
siluzan-tso list-accounts -m Google --json
|
|
686
|
+
siluzan-tso list-accounts -m Google --json-out ./snap
|
|
689
687
|
|
|
690
688
|
# 断开单个账户(操作前确认账户名/ID 正确)
|
|
691
689
|
siluzan-tso account delink --id <entityId>
|
|
@@ -703,7 +701,7 @@ siluzan-tso list-accounts -m Google
|
|
|
703
701
|
siluzan-tso config show
|
|
704
702
|
|
|
705
703
|
# 从列表中取子账户的 mediaCustomerId(数字 ID),不是 entityId
|
|
706
|
-
siluzan-tso list-accounts -m Google --json
|
|
704
|
+
siluzan-tso list-accounts -m Google --json-out ./snap
|
|
707
705
|
|
|
708
706
|
# 将一个或多个子账户绑定到指定 MCC(多个 MCC ID 可用逗号或分号分隔)
|
|
709
707
|
siluzan-tso account mcc-bind --customers <mediaCustomerId1>,<mediaCustomerId2> --mcc <MCC客户ID>
|
|
@@ -711,8 +709,8 @@ siluzan-tso account mcc-bind --customers <mediaCustomerId1>,<mediaCustomerId2> -
|
|
|
711
709
|
# 解绑:从子账户上移除与某 MCC 的关联
|
|
712
710
|
siluzan-tso account mcc-unbind --customers <mediaCustomerId> --mcc <MCC客户ID>
|
|
713
711
|
|
|
714
|
-
# 需要排查接口返回时加 --json
|
|
715
|
-
siluzan-tso account mcc-bind --customers <mediaCustomerId> --mcc <MCC客户ID> --json
|
|
712
|
+
# 需要排查接口返回时加 --json-out ./snap
|
|
713
|
+
siluzan-tso account mcc-bind --customers <mediaCustomerId> --mcc <MCC客户ID> --json-out ./snap
|
|
716
714
|
```
|
|
717
715
|
|
|
718
716
|
---
|
|
@@ -728,7 +726,7 @@ siluzan-tso account mcc-bind --customers <mediaCustomerId> --mcc <MCC客户ID> -
|
|
|
728
726
|
|
|
729
727
|
# 查看各媒体账户余额(确保余额充足)
|
|
730
728
|
# 注意:balance -a 传 mediaCustomerId(数字ID),不是 entityId
|
|
731
|
-
siluzan-tso list-accounts -m Google --json
|
|
729
|
+
siluzan-tso list-accounts -m Google --json-out ./snap
|
|
732
730
|
siluzan-tso balance -m Google -a <mediaCustomerId1>,<mediaCustomerId2>
|
|
733
731
|
siluzan-tso balance -m TikTok -a <mediaCustomerId3>
|
|
734
732
|
|
|
@@ -753,12 +751,12 @@ siluzan-tso ad batch list --state Failed
|
|
|
753
751
|
siluzan-tso ad batch list --state HasFailed
|
|
754
752
|
|
|
755
753
|
# 检查线索数据
|
|
756
|
-
siluzan-tso clue -m TikTok -a <advertiserId> --json
|
|
757
|
-
siluzan-tso clue -m Meta -a <pageId> --start 2026-03-11 --end 2026-03-17 --json
|
|
754
|
+
siluzan-tso clue -m TikTok -a <advertiserId> --json-out ./snap
|
|
755
|
+
siluzan-tso clue -m Meta -a <pageId> --start 2026-03-11 --end 2026-03-17 --json-out ./snap
|
|
758
756
|
|
|
759
757
|
# 查看本周优化建议(托管中)
|
|
760
758
|
siluzan-tso optimize list -a <mediaCustomerId>
|
|
761
|
-
# 已脱管:optimize list --match-media-customer-id <mediaCustomerId> --json → items[].id
|
|
759
|
+
# 已脱管:optimize list --match-media-customer-id <mediaCustomerId> --json-out ./snap → items[].id
|
|
762
760
|
# siluzan-tso optimize get --id <id>
|
|
763
761
|
# siluzan-tso optimize children --parent-id <id>
|
|
764
762
|
```
|
|
@@ -781,7 +779,7 @@ siluzan-tso transfer list -m Google
|
|
|
781
779
|
siluzan-tso transfer list -m TikTok --start 2026-03-01 --end 2026-03-31
|
|
782
780
|
|
|
783
781
|
# JSON 输出供对账使用
|
|
784
|
-
siluzan-tso transfer list -m Google --json
|
|
782
|
+
siluzan-tso transfer list -m Google --json-out ./snap
|
|
785
783
|
|
|
786
784
|
# 对账:转账到账后查询账户余额(传 mediaCustomerId)
|
|
787
785
|
siluzan-tso balance -m Google -a <mediaCustomerId>
|
|
@@ -814,7 +812,7 @@ siluzan-tso config show # 取 webUrl
|
|
|
814
812
|
|
|
815
813
|
```bash
|
|
816
814
|
# 如果链接或落地页异常,先确认账户 OAuth 正常
|
|
817
|
-
siluzan-tso list-accounts -m Google --json
|
|
815
|
+
siluzan-tso list-accounts -m Google --json-out ./snap
|
|
818
816
|
# 检查 invalidOAuthToken 字段,若为 true 则先重新授权
|
|
819
817
|
siluzan-tso account auth -m Google
|
|
820
818
|
```
|
|
@@ -823,7 +821,7 @@ siluzan-tso account auth -m Google
|
|
|
823
821
|
|
|
824
822
|
| 诊断评级 | 建议操作 |
|
|
825
823
|
| ---------------- | ---------------------------------------------------- |
|
|
826
|
-
| 优秀(85分以上) | 可直接投放;CLI 方案轨见 `google-ads-campaign-plan.md` |
|
|
824
|
+
| 优秀(85分以上) | 可直接投放;CLI 方案轨见 `google-ads/google-ads-campaign-plan.md` |
|
|
827
825
|
| 良好(70-84分) | 建议优化后投放,可先小预算测试 |
|
|
828
826
|
| 一般(60-69分) | 重点改善转化代码和页面速度后再投 |
|
|
829
827
|
| 较差(60分以下) | 需先修复关键问题(参考诊断报告),否则广告效果会很差 |
|
|
@@ -842,7 +840,7 @@ siluzan-tso account auth -m Google
|
|
|
842
840
|
|
|
843
841
|
```bash
|
|
844
842
|
# 第一步:确认要关闭的 TikTok 账户
|
|
845
|
-
siluzan-tso list-accounts -m TikTok --json
|
|
843
|
+
siluzan-tso list-accounts -m TikTok --json-out ./snap
|
|
846
844
|
# 记录目标账户的 mediaCustomerId
|
|
847
845
|
|
|
848
846
|
# 第二步:关闭账户(操作不可恢复,请再次确认)
|
|
@@ -861,7 +859,7 @@ siluzan-tso list-accounts -m TikTok
|
|
|
861
859
|
|
|
862
860
|
```bash
|
|
863
861
|
# 第一步:查出 Meta 账户 mediaCustomerId
|
|
864
|
-
siluzan-tso list-accounts --json # 找到 MetaAd 类型账户的 mediaCustomerId
|
|
862
|
+
siluzan-tso list-accounts --json-out ./snap # 找到 MetaAd 类型账户的 mediaCustomerId
|
|
865
863
|
|
|
866
864
|
# 第二步:绑定到指定 Business Manager
|
|
867
865
|
siluzan-tso account bm-bind \
|
|
@@ -897,13 +895,13 @@ siluzan-tso config show # 取 webUrl
|
|
|
897
895
|
# → 选中 Google 账户 → 点击「激活账户」→ 选择激活方式
|
|
898
896
|
```
|
|
899
897
|
|
|
900
|
-
激活/充值产生的账单明细可用 CLI 查询(`entityId` 来自 `list-accounts -m Google --json`):
|
|
898
|
+
激活/充值产生的账单明细可用 CLI 查询(`entityId` 来自 `list-accounts -m Google --json-out ./snap`):
|
|
901
899
|
|
|
902
900
|
```bash
|
|
903
|
-
siluzan-tso account-active-bills -m Google --id <entityId> [--json]
|
|
901
|
+
siluzan-tso account-active-bills -m Google --id <entityId> [--json-out ./snap]
|
|
904
902
|
```
|
|
905
903
|
|
|
906
|
-
详见 `references/accounts.md` 中 **account-active-bills**。
|
|
904
|
+
详见 `references/accounts/accounts.md` 中 **account-active-bills**。
|
|
907
905
|
|
|
908
906
|
### 场景 E:Google 邮箱授权管理
|
|
909
907
|
|
|
@@ -917,7 +915,7 @@ siluzan-tso account email-auth -c <mediaCustomerId> --email user@gmail.com
|
|
|
917
915
|
# 只读权限
|
|
918
916
|
siluzan-tso account email-auth -c <mediaCustomerId> --email user@gmail.com --access-role ReadOnly
|
|
919
917
|
|
|
920
|
-
# 撤销邀请(先从 email-auth-list --json 取 invitationId 和 resourceName)
|
|
918
|
+
# 撤销邀请(先从 email-auth-list --json-out ./snap 取 invitationId 和 resourceName)
|
|
921
919
|
siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --resource-name <name>
|
|
922
920
|
# 若邀请尚未被接受,追加 --pending
|
|
923
921
|
siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --resource-name <name> --pending
|
|
@@ -942,13 +940,13 @@ siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --res
|
|
|
942
940
|
→ 与 **流程十** 相同思路:
|
|
943
941
|
|
|
944
942
|
```bash
|
|
945
|
-
siluzan-tso list-accounts -m Google --json
|
|
943
|
+
siluzan-tso list-accounts -m Google --json-out ./snap
|
|
946
944
|
siluzan-tso balance -m Google -a <mediaCustomerId>
|
|
947
945
|
siluzan-tso stats -m Google -a <mediaCustomerId>
|
|
948
946
|
siluzan-tso account-history -m Google
|
|
949
947
|
```
|
|
950
948
|
|
|
951
949
|
3. **首页「服务推荐」跳转 AI / 建站 / 内容等**
|
|
952
|
-
→ 属其他产品线,见 **`references/tso-home.md`** 中的外链说明,勿用 `siluzan-tso` 冒充。
|
|
950
|
+
→ 属其他产品线,见 **`references/misc/misc/tso-home.md`** 中的外链说明,勿用 `siluzan-tso` 冒充。
|
|
953
951
|
|
|
954
|
-
**详细模块与接口对照** → **`references/tso-home.md`**。
|
|
952
|
+
**详细模块与接口对照** → **`references/misc/misc/tso-home.md`**。
|
package/dist/skill/references/{google-ads-campaign-plan.md → google-ads/google-ads-campaign-plan.md}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Google 搜索广告:方案生成与系列创建
|
|
2
2
|
|
|
3
|
-
> 所属 skill:`siluzan-tso`。**新建/规划搜索系列时 Read 本文件**,再按需打开下表子文档。命令参数与 CRUD 见 `references/google-ads.md`。
|
|
3
|
+
> 所属 skill:`siluzan-tso`。**新建/规划搜索系列时 Read 本文件**,再按需打开下表子文档。命令参数与 CRUD 见 `references/google-ads/google-ads.md`。
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
- 可执行真相只有 **JSON**(`assets/campaign-create-template.json` 同构);Markdown 只读投影。
|
|
15
15
|
- 改需求 **只改 JSON**,再 `campaign-validate`,再刷新 Markdown。
|
|
16
|
-
- **PMax
|
|
16
|
+
- **PMax 系列创建**走独立流水线(勿用本文件 JSON 模板):`assets/pmax-create-template.md` + `ad pmax-validate` / `ad pmax-create`;运营诊断见 `google-ads/rules/google-ads-pmax-guide.md`。
|
|
17
17
|
- 搜索网络:仅 Google 搜索(`TargetSearchNetwork`/`TargetContentNetwork`/`TargetPartnerSearchNetwork` 均为 false)。
|
|
18
18
|
|
|
19
19
|
---
|
|
@@ -22,16 +22,16 @@
|
|
|
22
22
|
|
|
23
23
|
| 步 | 动作 | 文档/命令 |
|
|
24
24
|
|----|------|-----------|
|
|
25
|
-
| 1 | `list-accounts` 锁定 `account` / `customerName` / 币种 | `references/currency.md` |
|
|
26
|
-
| 2 | 可选 `rag query`;`keyword` / `keyword geo-list` 拓词 | `references/keyword-planner-workflows.md` |
|
|
27
|
-
| 3 | 按分层规则写入 `KeywordsForBatchJob`(Exact/Phrase/Broad) | `google-ads
|
|
25
|
+
| 1 | `list-accounts` 锁定 `account` / `customerName` / 币种 | `references/accounts/currency.md` |
|
|
26
|
+
| 2 | 可选 `rag query`;`keyword` / `keyword geo-list` 拓词 | `references/analytics/keyword-planner-workflows.md` |
|
|
27
|
+
| 3 | 按分层规则写入 `KeywordsForBatchJob`(Exact/Phrase/Broad) | `google-ads/rules/google-ads-keyword-taxonomy.md`(参考,非 CLI 强制) |
|
|
28
28
|
| 4 | 填 `campaign`(预算/出价/地域/否词≥20/RSA/附加信息) | `assets/campaign-create-template.md` |
|
|
29
29
|
| 5 | **`ad campaign-validate --config-file <json>`**(失败只改 JSON;超长见下文「超长人工确认」) | 下文「校验」 |
|
|
30
30
|
| 6 | 输出:**JSON 代码块** → **Markdown**(`google-ads-launch-plan-template.md` 正文)→ 待确认 | — |
|
|
31
|
-
| 7 | 用户确认后 **`ad campaign-create`** | `google-ads.md`|
|
|
31
|
+
| 7 | 用户确认后 **`ad campaign-create`** | `google-ads/google-ads.md`|
|
|
32
32
|
| 8 | 每隔5s 获取创建结果| `ad batch get --id <taskId> --config-file ./campaign.json` |
|
|
33
33
|
| 9 | 创建失败根据失败原因修改json重新走创建流程,部分成功/成功/部分失败:都调用来做最后一步调整 `ad batch diff --batch-id <taskId> --config-file ./campaign.json` | |
|
|
34
|
-
| 10 | 输出所有失败的内容与原因,并询问用户是否需要修改后单独添加到系列中如果用户要求是则读取 `references\google-ads.md` 来获取对应缺失部分的创建命令 |
|
|
34
|
+
| 10 | 输出所有失败的内容与原因,并询问用户是否需要修改后单独添加到系列中如果用户要求是则读取 `references\google-ads/google-ads.md` 来获取对应缺失部分的创建命令 |
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
|
|
@@ -45,26 +45,26 @@
|
|
|
45
45
|
|
|
46
46
|
| 文档 | 用途 |
|
|
47
47
|
|------|------|
|
|
48
|
-
| `google-ads
|
|
49
|
-
| `google-ads
|
|
50
|
-
| `google-ads
|
|
51
|
-
| `google-ads
|
|
52
|
-
| `google-ads
|
|
48
|
+
| `google-ads/rules/google-ads-keyword-taxonomy.md` | 核心/长尾与匹配块**建议**(Agent 参考,CLI 不强制) |
|
|
49
|
+
| `google-ads/rules/google-ads-compliance.md` | 词与文案合规 |
|
|
50
|
+
| `google-ads/rules/sensitive-industries.md` | 敏感行业(若相关) |
|
|
51
|
+
| `google-ads/rules/google-ads-launch-plan-template.md` | 用户可见 Markdown 结构与 RSA/否词表 |
|
|
52
|
+
| `google-ads/rules/google-ads-creative-optimization.md` | RSA 12–15 条、Callout/Sitelink |
|
|
53
53
|
| `assets/campaign-create-template.md` | JSON 字段契约 |
|
|
54
54
|
|
|
55
55
|
### 按需(触及时再读)
|
|
56
56
|
|
|
57
57
|
| 文档 | 何时 |
|
|
58
58
|
|------|------|
|
|
59
|
-
| `google-ads
|
|
60
|
-
| `google-ads
|
|
61
|
-
| `google-ads
|
|
62
|
-
| `google-ads
|
|
63
|
-
| `google-ads
|
|
64
|
-
| `google-ads
|
|
65
|
-
| `google-ads
|
|
66
|
-
| `google-ads
|
|
67
|
-
| `references/pmax-api.md` | PMax
|
|
59
|
+
| `google-ads/rules/google-ads-keyword-strategy.md` | 分组/匹配/否定词策略争议 |
|
|
60
|
+
| `google-ads/rules/google-ads-campaign-optimization.md` | 出价策略、预算、学习期 |
|
|
61
|
+
| `google-ads/rules/google-ads-landing-page-discovery-via-webfetch.md` | 仅首页、需推断 PDP/PLP |
|
|
62
|
+
| `google-ads/rules/google-ads-conversion-architecture.md` | 转化/EC/归因说明 |
|
|
63
|
+
| `google-ads/rules/google-ads-keyword-optimization.md` | 上线后优化,非首建 |
|
|
64
|
+
| `google-ads/rules/google-ads-account-audit.md` | 账户诊断,非首建 |
|
|
65
|
+
| `google-ads/rules/google-ads-audience-strategy.md` | 受众/RLSA |
|
|
66
|
+
| `google-ads/rules/google-ads-pmax-guide.md` | PMax 运营/诊断;**创建**见 `assets/pmax-create-template.md` |
|
|
67
|
+
| `references/google-ads/pmax-api.md` | PMax 网关路径与 Search API 边界 |
|
|
68
68
|
|
|
69
69
|
复述给用户:**3–5 条**与本次任务相关的合规/策略要点即可,无需罗列全部文件名。
|
|
70
70
|
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
76
|
siluzan-tso ad campaign-validate --config-file ./campaign.json --json-out ./snap-campaign
|
|
77
|
-
siluzan-tso ad campaign-validate --config-file ./campaign.json [--json] [--write-normalized <path>]
|
|
77
|
+
siluzan-tso ad campaign-validate --config-file ./campaign.json [--json-out ./snap] [--write-normalized <path>]
|
|
78
78
|
siluzan-tso ad campaign-create --config-file ./campaign.json
|
|
79
79
|
siluzan-tso ad batch get --id <taskId> --config-file ./campaign.json
|
|
80
80
|
siluzan-tso ad batch diff --batch-id <taskId> --config-file ./campaign.json
|
|
@@ -87,16 +87,16 @@ validate 与 create **共用** `runCampaignCreateValidation`:词面规范化 +
|
|
|
87
87
|
|
|
88
88
|
标题/描述/Path/关键词/Sitelink 超限时 CLI **报错阻断**,不会在 JSON 里静默改短。
|
|
89
89
|
|
|
90
|
-
1. 使用 **`ad campaign-validate --config-file <json> --json-out <dir>`**(与 create/batch 同一落盘目录),读落盘文件中的 `lengthViolations`(每项含 `path`、`limit`、`actual`、**完整** `text
|
|
90
|
+
1. 使用 **`ad campaign-validate --config-file <json> --json-out <dir>`**(与 create/batch 同一落盘目录),读落盘文件中的 `lengthViolations`(每项含 `path`、`limit`、`actual`、**完整** `text`)。
|
|
91
91
|
2. Agent 将 **全部** 超长条目整理成表(路径、原文、上限、超出量),并为每条给出 **1–2 个改写方案**(保留卖点、符合字符计数;CJK 按 2 计见 `google-ads-compliance.md` §3.2.1)。
|
|
92
92
|
3. **用户确认**选用方案后,Agent **只改 JSON 对应字段**,再执行 `campaign-validate`;通过后再 `campaign-create`。
|
|
93
93
|
4. **禁止**:未确认前 `slice`/省略号截断、仅改 `--write-normalized` 而不经用户确认。
|
|
94
94
|
|
|
95
|
-
人读模式失败时 CLI 会额外打印「📏 超长内容清单」;`--json-out`
|
|
95
|
+
人读模式失败时 CLI 会额外打印「📏 超长内容清单」;`--json-out` 时见 `lengthViolations` + `agentHint`。
|
|
96
96
|
|
|
97
97
|
---
|
|
98
98
|
|
|
99
99
|
## 已上线后的修改
|
|
100
100
|
|
|
101
|
-
- **勿**用 `campaign-create` 覆盖已有系列;用 `ad campaign-edit` / `adgroup-*` / `keyword-*` / `ad-edit` 等(见 `google-ads.md`)。
|
|
101
|
+
- **勿**用 `campaign-create` 覆盖已有系列;用 `ad campaign-edit` / `adgroup-*` / `keyword-*` / `ad-edit` 等(见 `google-ads/google-ads.md`)。
|
|
102
102
|
- 若属「推倒重建」:更新 JSON → validate → 新系列 `campaign-create` 或删系列后重提。
|