siluzan-tso-cli 1.1.22-beta.7 → 1.1.22

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 (34) hide show
  1. package/README.md +1 -2
  2. package/dist/index.js +651 -179
  3. package/dist/skill/_meta.json +2 -2
  4. package/dist/skill/assets/campaign-create-template.md +12 -12
  5. package/dist/skill/assets/pmax-create-template.md +8 -2
  6. package/dist/skill/references/README.md +1 -1
  7. package/dist/skill/references/accounts/accounts.md +14 -26
  8. package/dist/skill/references/accounts/finance.md +9 -11
  9. package/dist/skill/references/accounts/open-account-by-media.md +2 -3
  10. package/dist/skill/references/accounts/open-account-google-ui.md +43 -74
  11. package/dist/skill/references/analytics/account-analytics.md +27 -2
  12. package/dist/skill/references/analytics/keyword-planner-workflows.md +5 -5
  13. package/dist/skill/references/analytics/rag.md +2 -2
  14. package/dist/skill/references/analytics/reporting.md +10 -17
  15. package/dist/skill/references/core/setup.md +6 -6
  16. package/dist/skill/references/core/skill-authoring.md +1 -1
  17. package/dist/skill/references/core/workflows.md +19 -41
  18. package/dist/skill/references/google-ads/google-ads.md +9 -13
  19. package/dist/skill/references/google-ads/pmax-api.md +43 -41
  20. package/dist/skill/references/misc/tso-home.md +20 -84
  21. package/dist/skill/references/operations/clue.md +1 -1
  22. package/dist/skill/references/operations/forewarning.md +0 -2
  23. package/dist/skill/references/operations/optimize.md +2 -4
  24. package/dist/skill/report-templates/README.md +1 -1
  25. package/dist/skill/report-templates/bing-period-report.md +2 -3
  26. package/dist/skill/report-templates/google-ads-diagnosis.md +2 -2
  27. package/dist/skill/report-templates/google-inquiry-analysis.md +4 -4
  28. package/dist/skill/report-templates/google-period-report.md +1 -1
  29. package/dist/skill/report-templates/meta-period-report.md +2 -3
  30. package/dist/skill/report-templates/okki-weekly-google-client.md +1 -1
  31. package/dist/skill/report-templates/tiktok-period-report.md +4 -7
  32. package/dist/skill/scripts/install.ps1 +3 -3
  33. package/dist/skill/scripts/install.sh +3 -3
  34. package/package.json +1 -1
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 所属 skill:`siluzan-tso`。
4
4
  >
5
- > 本文档仅覆盖 **TSO steward 优化报告**:列表、生成、删除、邮件推送与网页查看。
5
+ > 本文档仅覆盖 **TSO steward 优化报告**:列表、生成、删除、邮件推送与查看链接。
6
6
  > **账户分析拉数**(`google-analysis`、`report tiktok-*`、`report bing-*`、`report meta-overview`)与**周期/诊断报告纲要**见 `references/analytics/account-analytics.md`。
7
7
  > **异步批量创建记录**(`ad batch`)见 `references/google-ads/google-ads.md` § ad batch。
8
8
  > **AI 广告优化**(`optimize`)见 `references/operations/optimize.md`。
@@ -94,14 +94,10 @@ siluzan-tso report delete --ids rpt_abc123,rpt_def456
94
94
 
95
95
  ### report push — 优化报告推送管理
96
96
 
97
- 对应网页:**`/dataReport/optimizationReport`**(Tab「推送设置」与弹窗新建/编辑);推送记录子页:**`/dataReport/pushRecord`**(query 含 `mediaType`、`entityId`)。
98
-
99
- **媒体**:仅 **`Google`**、**`TikTok`**(与前端 `reportPush.vue` 一致)。
97
+ **媒体**:仅 **`Google`**、**`TikTok`**。
100
98
 
101
99
  #### list — 推送配置列表
102
100
 
103
- `GET {apiBaseUrl}/query/report-push/settings/{Media}?pageIndex=&pageSize=&startDate=&endDate=&Name=&ReportType=`(空串与网页一致;可选 `Stopped`)。
104
-
105
101
  ```bash
106
102
  siluzan-tso report push list -m <媒体> [选项]
107
103
  ```
@@ -117,7 +113,7 @@ siluzan-tso report push list -m <媒体> [选项]
117
113
 
118
114
  #### create — 新建推送
119
115
 
120
- `POST {apiBaseUrl}/command/report-push/settings/{Media}`,body 字段 **PascalCase**(与网页一致):`Name`、`MediaAccounts`(账户 **entityId** 数组)、`ReceiveEmails`、`ReportTypes`、`TemplateId`(固定全 0 UUID)、`MediaType`、`ReceiveTitle`;Google 另含 **`AiSuggest`**(boolean)。
116
+ `--media-accounts` 传账户 **entityId**(非 `mediaCustomerId`)。Google 可选 `--ai-suggest`。
121
117
 
122
118
  ```bash
123
119
  siluzan-tso report push create -m Google \
@@ -131,7 +127,7 @@ siluzan-tso report push create -m Google \
131
127
 
132
128
  #### update — 编辑推送
133
129
 
134
- `PUT {apiBaseUrl}/command/report-push/settings/{Media}/{id}`。前端编辑使用列表行的 **`row.id`**(通常与 **`entityId`** 相同)。
130
+ `--id` 为推送配置的 **entityId**(来自 `push list --json-out` 的 `items[].entityId`)。
135
131
 
136
132
  ```bash
137
133
  siluzan-tso report push update -m Google --id <配置UUID> \
@@ -144,10 +140,7 @@ siluzan-tso report push update -m Google --id <配置UUID> \
144
140
 
145
141
  #### history — 推送记录
146
142
 
147
- `GET {apiBaseUrl}/query/report-push/settings/{Media}/{settingId}/push-history?...`
148
- 路径中的 **`settingId`** = 推送规则的 **`entityId`**(与 `push list --json-out ./snap` 的 `items[].entityId` 一致;网页点「推送记录」带入路由的 `entityId`)。
149
-
150
- Query:`pageIndex`、`pageSize`、`startDate` / `endDate`(未传时空串;传 `YYYY-MM-DD` 时 CLI 会加成 `T00:00:00+08:00`)、`ReceiveEmail`、`ReportType`、`MediaAccountId`(筛选账户时为账户 **entityId**)。
143
+ `--setting-id` = 推送规则的 **entityId**(与 `push list --json-out` 的 `items[].entityId` 相同)。`--media-account-id` 筛选时为账户 **entityId**。日期传 `YYYY-MM-DD` 时 CLI 会加成 `T00:00:00+08:00`。
151
144
 
152
145
  ```bash
153
146
  siluzan-tso report push history -m Google --setting-id <规则entityId> [--json-out ./snap]
@@ -158,7 +151,7 @@ siluzan-tso report push history -m Google --setting-id <规则entityId> \
158
151
 
159
152
  #### start / stop / delete
160
153
 
161
- 与网页开关一致:`POST .../{entityId}/start|stop`,body `null`。删除:`DELETE .../{entityId}`(CLI 使用路径中的 **media**,避免前端曾写死 `Tiktok` 的问题)。
154
+ `--id` 为推送配置 **entityId**。
162
155
 
163
156
  ```bash
164
157
  siluzan-tso report push start -m Google --id <entityId>
@@ -183,9 +176,9 @@ siluzan-tso report push update -m Google --id be5e4a03-2e0f-4bb2-bcad-e9dd86250e
183
176
  siluzan-tso report push history -m Google --setting-id be5e4a03-2e0f-4bb2-bcad-e9dd86250e18 --json-out ./snap
184
177
  ```
185
178
 
186
- #### receive-emails — 历史收件邮箱(网页下拉同源)
179
+ #### receive-emails — 历史收件邮箱
187
180
 
188
- `GET /query/report-push/settings/{Media}/all/receive-emails` 返回 `string[]`:当前租户下推送配置曾使用过的收件邮箱,供创建/编辑推送或筛选记录时联想(与网页下拉一致)。
181
+ 查询当前租户下推送配置曾用过的收件邮箱列表(`string[]`)。
189
182
 
190
183
  ```bash
191
184
  siluzan-tso report push receive-emails -m Google [--json-out ./snap]
@@ -214,8 +207,8 @@ siluzan-tso report list -m Google --json-out ./snap
214
207
 
215
208
  # 第二步:查看 webUrl
216
209
  siluzan-tso config show
217
- # webUrl: https://www-ci.siluzan.com
210
+ # webUrl: https://www.siluzan.com
218
211
 
219
212
  # 第三步:拼接链接(Google 日报)
220
- # https://www-ci.siluzan.com/media-report/publish/rpt_abc123?culture=zh-CN
213
+ # https://www.siluzan.com/media-report/publish/rpt_abc123?culture=zh-CN
221
214
  ```
@@ -10,7 +10,7 @@
10
10
  ## 安装 CLI
11
11
 
12
12
  ```bash
13
- npm install -g siluzan-tso-cli@beta
13
+ npm install -g siluzan-tso-cli
14
14
  ```
15
15
 
16
16
  ---
@@ -64,7 +64,7 @@ siluzan-tso config set --api-key <Key> # 或 config 直接写入
64
64
  siluzan-tso config set --token <Token> # 备用:设置 JWT Token
65
65
  ```
66
66
 
67
- API Key 获取入口:`https://www-ci.siluzan.com/v3/foreign_trade/settings/apiKeyManagement`
67
+ API Key 获取入口:`https://www.siluzan.com/v3/foreign_trade/settings/apiKeyManagement`
68
68
 
69
69
  ```bash
70
70
  # 第 1 步:让用户报出手机号后,立刻发码(命令立即返回,不会等待输入)
@@ -129,13 +129,13 @@ siluzan-tso config show
129
129
 
130
130
  ```
131
131
  构建环境 : production
132
- apiBaseUrl : https://tso-api-ci.siluzan.com
133
- googleApiUrl : https://googleapi-ci.mysiluzan.com
134
- webUrl : https://www-ci.siluzan.com
132
+ apiBaseUrl : https://tso-api.siluzan.com
133
+ googleApiUrl : https://googleapi.mysiluzan.com
134
+ webUrl : https://www.siluzan.com
135
135
  apiKey : abcd****1234
136
136
  ```
137
137
 
138
- `webUrl` 是前端页面基地址,需要引导用户打开网页时用此值拼接路径。
138
+ `webUrl` 是网页基地址,引导用户打开平台页面时用此值拼接路径。
139
139
 
140
140
  ---
141
141
 
@@ -52,7 +52,7 @@ siluzan-tso/ # 安装后目录名
52
52
 
53
53
  - 从 SKILL.md **只链接一层**(`references/foo.md`),避免 A→B→C 链式引用。
54
54
  - 路径用正斜杠,不用 Windows 反斜杠。
55
- - 占位符 `https://www-ci.siluzan.com`、`https://tso-api-ci.siluzan.com`、`npm install -g siluzan-tso-cli@beta` 由构建脚本替换,文档中禁止硬编码环境 URL。
55
+ - 占位符 `https://www.siluzan.com`、`https://tso-api.siluzan.com`、`npm install -g siluzan-tso-cli` 由构建脚本替换,文档中禁止硬编码环境 URL。
56
56
 
57
57
  ---
58
58
 
@@ -30,9 +30,7 @@
30
30
 
31
31
  ## 流程一:新账户开通(Google / TikTok / Yandex / Bing / Kwai)
32
32
 
33
- **主文档**:`references/accounts/open-account-by-media.md`(各媒体命令与参数)。Google 网页对照见 `accounts/open-account-google-ui.md`。
34
-
35
- 对应页面:`/accountOpeningHistory`。网页链接:`{webUrl}/v3/foreign_trade/tso/accountOpeningHistory?tso=%2Fv3umijs%2Ftso%2FaccountOpeningHistory`。
33
+ **主文档**:`references/accounts/open-account-by-media.md`(各媒体命令与参数)。Google 开户字段见 `accounts/open-account-google-ui.md`。
36
34
 
37
35
  > **AI Agent 注意**:`open-account google-wizard` 需要真实 TTY,Agent 环境无法使用,始终用非交互命令。
38
36
 
@@ -204,13 +202,13 @@ siluzan-tso account-history -m Google
204
202
 
205
203
  ## 流程二:AI 智投创建 → 审核 → 发布
206
204
 
207
- 对应页面:`/advertising/AICreation`(创建向导)、`/advertising/AICreationList`(记录列表)。`ad batch` 命令见 **`references/google-ads/google-ads.md`** § ad batch。
205
+ `ad batch` 命令见 **`references/google-ads/google-ads.md`** § ad batch。
208
206
 
209
207
  ### 业务背景
210
208
 
211
209
  AI 智投会生成一份 Google 广告草稿(包含系列/组/关键词/广告语/地理位置),用户在网页上填写后保存为草稿。AI Agent 的职责是:查询草稿状态、按需修改草稿字段、在用户确认后发布。
212
210
 
213
- > **AI 智投草稿(从零开始)** 必须在网页 `/advertising/AICreation` 上填写向导并保存为草稿,CLI 不支持该向导的初始创建步骤。
211
+ > **AI 智投草稿(从零开始)** 须在平台网页向导中创建并保存为草稿,CLI 不支持该向导的初始创建步骤。
214
212
  >
215
213
  > 如需用 CLI 直接创建广告系列/组/关键词/广告创意(不经过 AI 智投向导),请参考 **流程三**(`ad campaign-create` / `ad adgroup-create` / `ad ad-create` / `ad keyword-create`)。
216
214
 
@@ -264,11 +262,9 @@ Failed / HasFailed(部分或全部失败)
264
262
 
265
263
  ## 流程三:Google 广告创建与精细管理
266
264
 
267
- 对应页面:`/advertising/AICreation`(广告系列创建)、`/advertising/adManagement`(广告组/关键词/广告/附加信息/地理位置管理)
268
-
269
265
  ### 业务背景
270
266
 
271
- **广告系列(Campaign)只能通过 AI 创建流程生成**——无论是网页向导还是 CLI,底层均调用同一套 AI 创建 API(`/command/campaign-creation-record/campaign-batch-asyncs`)。`ad campaign-create` 等价于网页 AI 智投向导,跳过草稿步骤直接发布,不是独立的"手动创建"接口。
267
+ **广告系列(Campaign)经 AI 创建流程生成**:`ad campaign-create` 与智投向导同源,跳过草稿直接发布,不是独立的手动创建接口。
272
268
 
273
269
  **广告组、关键词、广告创意、附加信息、地理位置**则通过直连 Google API 的命令(`adgroup-create`、`keyword-create`、`ad-create`、`extension`、`geo`)完成,对应 `/advertising/adManagement` 页面的手动操作。
274
270
 
@@ -276,7 +272,7 @@ Failed / HasFailed(部分或全部失败)
276
272
 
277
273
  ```
278
274
  用户要创建 Google 广告
279
- ├─ 有已保存的 AI 智投草稿(网页向导填写的)?
275
+ ├─ 有已保存的 AI 智投草稿?
280
276
  │ └─ 是 → 流程二(ad batch update/publish)
281
277
  ├─ 需先出投放方案(口述/官网/拓词)?
282
278
  │ └─ 是 → references/google-ads/google-ads-campaign-plan.md → campaign-validate → campaign-create
@@ -386,7 +382,7 @@ siluzan-tso ad keyword-negative-delete -a <mediaCustomerId> --id <negKwId>
386
382
 
387
383
  ## 流程四:AI 广告优化建议查看与执行
388
384
 
389
- 对应页面:`/advertising/intelligentOptimization`(v2)。`optimize` 命令与脱管账户说明见 **`references/operations/optimize.md`**。
385
+ `optimize` 命令与脱管账户说明见 **`references/operations/optimize.md`**。
390
386
 
391
387
  ### 业务背景
392
388
 
@@ -421,14 +417,12 @@ siluzan-tso ad keyword-create \
421
417
  --keywords "AI推荐词1,AI推荐词2"
422
418
  ```
423
419
 
424
- > 优化建议的具体执行方案详情(如具体要加哪些词、调整哪些出价)需在网页 `/advertising/intelligentOptimizationDetails` 查看完整报告后再操作。
420
+ > 优化建议的完整执行方案详情(具体加词、调价等)CLI 不提供,需用户在平台优化详情页查看后再操作。
425
421
 
426
422
  ---
427
423
 
428
424
  ## 流程五:智能预警规则完整管理
429
425
 
430
- 对应页面:`/tool/forewarning`、`/tool/earlyWarningConfig`
431
-
432
426
  ### 业务背景
433
427
 
434
428
  预警规则用于监控账户的消耗/CPC/转化等指标,超过阈值时通知相关人员。典型场景:「日消费超过 500 元立即通知」「CPC 高于 10 元停止投放」。
@@ -494,7 +488,7 @@ siluzan-tso ad campaign-status -a <mediaCustomerId> --id <campaignId> --status P
494
488
 
495
489
  ## 流程六:优化报告生成 → 推送管理
496
490
 
497
- 对应页面:`/dataReport/optimizationReport`、`/dataReport/pushRecord`。命令与接口详解见 **`references/analytics/reporting.md`**。
491
+ 命令详解见 **`references/analytics/reporting.md`**。
498
492
 
499
493
  ### 业务背景
500
494
 
@@ -519,19 +513,17 @@ siluzan-tso report list -m Google --status true
519
513
  siluzan-tso report list -m Google
520
514
  # 表格中 viewUrl 列即为可点击的网页链接;--json-out 落盘时每条记录含 viewUrl 字段
521
515
 
522
- # 第五步:查看推送配置列表(是否已开启自动推送;接口同 GET .../query/report-push/settings/Google)
516
+ # 第五步:查看推送配置列表
523
517
  siluzan-tso report push list -m Google
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] # 历史收件邮箱,与网页推送配置下拉同源
518
+ # siluzan-tso report push list -m Google --json-out ./snap # items[].entityId 用于启停删、history、update
519
+ # siluzan-tso report push receive-emails -m Google [--json-out ./snap] # 历史收件邮箱列表
526
520
 
527
- # 推送记录(网页 /dataReport/pushRecord?entityId=...)
528
521
  # siluzan-tso report push history -m Google --setting-id <推送规则entityId> --json-out ./snap
529
522
 
530
- # 新建 / 编辑(网页弹窗;--media-accounts ma.entityId)
531
- # siluzan-tso report push create -m Google --name "..." --media-accounts <id,...> --emails a@b.com --types Daily
532
- # siluzan-tso report push update -m Google --id <配置id> --name "..." --media-accounts ... --emails ... --types Daily,Weekly
523
+ # siluzan-tso report push create -m Google --name "..." --media-accounts <entityId,...> --emails a@b.com --types Daily
524
+ # siluzan-tso report push update -m Google --id <entityId> --name "..." --media-accounts ... --emails ... --types Daily,Weekly
533
525
 
534
- # 第六步:启动/停止推送(--id 为推送配置 entityId,与网页开关一致)
526
+ # 第六步:启动/停止推送(--id 为推送配置 entityId
535
527
  siluzan-tso report push start -m Google --id <推送配置UUID>
536
528
  siluzan-tso report push stop -m Google --id <推送配置UUID>
537
529
 
@@ -563,8 +555,6 @@ siluzan-tso report delete --ids <id1>,<id2>
563
555
 
564
556
  ## 流程七:开票申请完整流程
565
557
 
566
- 对应页面:`/recharge/invoicingApplicationList`、`/recharge/invoiceList`
567
-
568
558
  ### 业务背景
569
559
 
570
560
  充值后需要申请发票。流程:查询可开票订单 → 确认订单 `entityId` → 按**币种**选择发票类型(人民币仅增值税票,美金等仅形式发票 PI)→ 提交开票申请 → 跟踪状态。
@@ -598,7 +588,7 @@ siluzan-tso invoice list --start 2026-03-01
598
588
 
599
589
  ## 流程八:广告线索数据提取与跟进
600
590
 
601
- 对应页面:`/clue-form`。`clue` 命令参数见 **`references/operations/clue.md`**。
591
+ `clue` 命令参数见 **`references/operations/clue.md`**。
602
592
 
603
593
  ### 业务背景
604
594
 
@@ -645,8 +635,6 @@ siluzan-tso clue -m Meta -a <pageId> \
645
635
 
646
636
  ## 流程九:账户权限管理(分享/断开/OAuth 重授权/MCC)
647
637
 
648
- 对应页面:`/foreign_trade/tso/manageAccounts`、`/accountOpeningHistory`
649
-
650
638
  ### 业务背景
651
639
 
652
640
  团队成员需要共享某个 Google 账户,或者账户 OAuth Token 过期需要重新授权,或者需要将某个账户从丝路赞平台解绑。
@@ -765,8 +753,6 @@ siluzan-tso optimize list -a <mediaCustomerId>
765
753
 
766
754
  ## 流程十一:媒体转账记录核查
767
755
 
768
- 对应页面:`/recharge/accountTransfer`
769
-
770
756
  ### 业务背景
771
757
 
772
758
  充值到丝路赞账户后,需要查询媒体转账到账情况,确认账户余额是否已更新。
@@ -789,8 +775,6 @@ siluzan-tso balance -m Google -a <mediaCustomerId>
789
775
 
790
776
  ## 流程十四:网站诊断与广告落地页评估
791
777
 
792
- 对应页面:`/advertising/AICreation`(落地页质量评估入口)
793
-
794
778
  ### 业务背景
795
779
 
796
780
  广告投放前需评估落地页质量:页面访问速度、产品描述完整性、转化代码部署、移动端适配等。系统通过 Lighthouse + AI 分析给出评分和优化建议,判断该页面是否适合直接投放广告。
@@ -830,8 +814,6 @@ siluzan-tso account auth -m Google
830
814
 
831
815
  ## 流程十五:TikTok/Meta/Google 账户管理完整操作
832
816
 
833
- 对应页面:`/foreign_trade/tso/manageAccounts`
834
-
835
817
  ### 业务背景
836
818
 
837
819
  账户管理包含多种权限操作:关闭账户、BM 绑定、BC 绑定/解绑、账户激活、邮箱授权管理等。其中关闭账户、BM 绑定、BC 绑定/解绑、MCC 绑定/解绑、账号分享、邮箱授权均有 CLI 支持;账户激活需网页完成。
@@ -923,18 +905,14 @@ siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --res
923
905
 
924
906
  ---
925
907
 
926
- ## 流程十二:TSO 首页看板(`/foreign_trade/tso/home`)
927
-
928
- 对应页面:主应用 **`/v3/foreign_trade/tso/home`**(TSO 子应用内为 `/home`)。
929
-
930
- ### 业务背景
908
+ ## 流程十二:TSO 首页看板
931
909
 
932
- 首页聚合展示:按媒体的昨日转化/消耗/充值、待充值账户数、开户申请概览、各媒体余额、广告投放图表等。部分数据来自 **`/report/media-account/Get-TSO-Overviews`**、**`Get-TSO-Open-Account-Overviews`**、**`GetAccountBalance`**、**`accountreportoverview`**、**`GetAccountDataOverview`** 等接口,**当前 CLI 未单独封装这些聚合接口**。
910
+ 详见 **`references/misc/tso-home.md`**。
933
911
 
934
912
  ### Agent 建议
935
913
 
936
- 1. **用户要与网页首页数字完全一致**
937
- → `siluzan-tso config show` 取 `webUrl`,引导打开 **`{webUrl}/v3/foreign_trade/tso/home`**(路径前缀以实际部署为准)。
914
+ 1. **用户要与首页看板数字完全一致**(聚合口径)
915
+ → `config show` 取 `webUrl`,引导打开首页(见 `tso-home.md`)。
938
916
 
939
917
  2. **用 CLI 做「近似首页」的数据巡检**(单账户粒度)
940
918
  → 与 **流程十** 相同思路:
@@ -42,12 +42,14 @@
42
42
  | 创建 | `siluzan-tso ad pmax-create --config-file ./pmax.json [--json-out ./snap-pmax]` |
43
43
  | 复核 | `siluzan-tso ad campaigns -a <accountId> --json-out ./snap` → `channelTypeV2` 为 `PERFORMANCE_MAX` |
44
44
 
45
- **网关**:`POST {googleApiUrl}/accounts/{accountId}/campaign/pmax`(`PmaxCampaignManagementController`)。**同步**返回 `campaignId`、`assetGroupId`、`budgetId`;无 `ad batch get/diff`。
45
+ **PMax**:`ad pmax-create` **同步**返回 `campaignId`、`assetGroupId`、`budgetId`;无 `ad batch get/diff`。详见 `pmax-api.md`。
46
46
 
47
47
  **金额**:JSON 中 `budget`、`targetCpa_BidingAmount` 填主币种**元**;CLI 提交前 ×100(与 `ad campaigns` 列表 `budget` 口径一致)。
48
48
 
49
49
  **图片**:配置 `imagePaths`(相对 JSON 文件目录)或 `marketingImageBase64` / `squareMarketingImageBase64` / `logoImageBase64`。`pmax-validate` 会自动校验图片尺寸(最小值 / 推荐值 / 宽高比 ±2% / 文件大小 ≤5120 KB)。如需将任意图片转为合规素材,用 `ad pmax-image-convert`(`marketing` / `square` / `logo` 三种格式,sharp 处理,居中裁切)。
50
50
 
51
+ **视频**:`videoPath`(本地文件,经 `{googleApiUrl}/pyapi` 上传并轮询 `video_id` 后自动链接)与 `youtubeUrlOrId` **二选一**;或创建后 `ad pmax-youtube-link`。
52
+
51
53
  **禁止**:对已创建的 PMax 系列使用 `ad campaign-edit`(旧 PUT 会 **400**)。
52
54
 
53
55
  ### 已上线 PMax 管理(CLI)
@@ -60,7 +62,7 @@
60
62
  | 改资产组 | `ad pmax-asset-group-edit` |
61
63
  | 删资产组 | `ad pmax-asset-group-edit --status REMOVED`(软删;网关无 DELETE 端点) |
62
64
  | 改资产 | `ad pmax-assets-update --config-file …` |
63
- | YouTube | `ad pmax-youtube-link` |
65
+ | YouTube 链接/替换 | `ad pmax-youtube-link`(`--youtube` 或 `--video-path`) |
64
66
  | 信号 | `ad pmax-signals-get` / `ad pmax-signals-set`;受众下拉 `ad pmax-audiences` |
65
67
  | 图片库 | `ad pmax-image-upload` |
66
68
  | 报表 | `ad pmax-report-asset-groups` / `ad pmax-report-geo` |
@@ -285,8 +287,6 @@ siluzan-tso ad keyword-negative-delete -a <accountId> --id <negativeKeywordId>
285
287
 
286
288
  ## ad batch — 异步批量创建记录
287
289
 
288
- 对应页面 `/advertising/AICreationList`。
289
-
290
290
  ```bash
291
291
  siluzan-tso ad batch list [--state Creating|Successfully|Failed|HasFailed|Unpublished] [--customer-id <id>] [--start/--end <date>] [--json-out ./snap]
292
292
  siluzan-tso ad batch get --id <recordId>
@@ -484,7 +484,7 @@ siluzan-tso ad keyword-edit \
484
484
  [--max-cpc <n>] [--final-url <url>] [--status Enabled|Paused]
485
485
  ```
486
486
 
487
- 传 `--match-type` 时 CLI 自动规范 `keywordText` 括号/引号格式。至少传一项。`--max-cpc` 为主币种元(CLI ×100 写入 `maxCPC`「分」字段,与 `adgroup-edit --max-cpc` 同口径)。`ad keywords --json-out ./snap` 出价见 `maxCPCYuan`。`--status` 写入 `userStatusV2`(与 Web 关键词开关一致,非系列的 `statusV2`)。
487
+ 传 `--match-type` 时 CLI 自动规范 `keywordText` 括号/引号格式。至少传一项。`--max-cpc` 为主币种元(CLI ×100 写入 `maxCPC`「分」字段,与 `adgroup-edit --max-cpc` 同口径)。`ad keywords --json-out ./snap` 出价见 `maxCPCYuan`。`--status` 写入 `userStatusV2`(关键词级开关,非系列的 `statusV2`)。
488
488
 
489
489
  ---
490
490
 
@@ -580,16 +580,14 @@ siluzan-tso ad geo remove -a <accountId> --campaign-id <id> --location-id <id>
580
580
  | `0.8` | 降低 20% |
581
581
 
582
582
  - `add`:写入 `PUT …/criterion/{account}` 时 CLI 会换算为后端百分比。
583
- - `set-bid`:直接 `PUT …/campaigns/{campaignId}/Criteria/{criterionId}/BidModifier/{bidModifier}`,与 `ad device-bid set`(系列级)、AI 优化 `updateDeviceAndAddress` 同源。
584
- - `list` 返回的 `bidModifier` 为 Google 倍率(非网页编辑弹窗里的 `+10` 百分比)。
585
-
586
- **Sammamish 落点**:`ModifyCampaignCriteriaBidModifier` → `GoogleAdsAcctMgmtServiceProviderV2.ModifyCampaignCriteriaBidModifier`。
583
+ - `set-bid`:直接设置出价系数;与 `ad device-bid set`(系列级)同口径。
584
+ - `list` 返回的 `bidModifier` 为 Google **倍率**(如 `1.2` = +20%),不是百分比整数。
587
585
 
588
586
  ---
589
587
 
590
588
  ## ad device-bid — 设备出价调整
591
589
 
592
- 与前端 `updateDeviceAndAddress`(`intelligent-optimization-v2.ts`)及 AI 优化「修改设备出价」同源。
590
+ AI 优化「修改设备出价」能力同源。
593
591
 
594
592
  | 级别 | 列表 | 修改 |
595
593
  |------|------|------|
@@ -605,9 +603,7 @@ siluzan-tso ad geo remove -a <accountId> --campaign-id <id> --location-id <id>
605
603
  | `1.2` | 提高 20% |
606
604
  | `0` | 排除该设备(-100%) |
607
605
 
608
- 广告组级会在 CLI 内将倍率转为后端百分比:`(倍率 - 1) × 100`(与 `GoogleAdsAcctMgmtServiceProviderV2.MutateAdGroupBidModifier` 一致)。
609
-
610
- **Sammamish 落点**:`CampaignManagementController.GetDeviceBidModifier` / `ModifyCampaignCriteriaBidModifier`;`AdGroupManagementController.SetAdGroupCriterionBidModifier` → `GoogleAdsAcctMgmtServiceProviderV2`。
606
+ 广告组级会在 CLI 内将倍率转为后端百分比:`(倍率 - 1) × 100`。
611
607
 
612
608
  ```bash
613
609
  # 系列级:账户下全部设备出价(可按系列过滤)
@@ -1,13 +1,9 @@
1
- # Performance Max 网关 APICLI 对照)
1
+ # Performance Max(PMax)
2
2
 
3
- > 完整契约:Sammamish `src/GoogleAPI/docs/pmax-frontend-api.md`
3
+ ## 金额单位
4
4
 
5
- ---
6
-
7
- ## 金额单位(管理 API)
8
-
9
- | JSON / CLI | API 提交 |
10
- |------------|----------|
5
+ | JSON / CLI | 提交到 API |
6
+ |------------|------------|
11
7
  | `budget: 5.5`(元) | `550`(×100) |
12
8
  | `targetCpa_BidingAmount: 0.5`(元) | `50` |
13
9
 
@@ -15,56 +11,62 @@
15
11
 
16
12
  ---
17
13
 
18
- ## CLI 命令一览
19
-
20
- | CLI | HTTP |
21
- |-----|------|
22
- | `ad pmax-validate` | (本地校验,不请求) |
23
- | `ad pmax-create` | `POST /accounts/{id}/campaign/pmax` |
24
- | `ad pmax-channel-types` | `GET /campaign/pmax/channel-types` |
25
- | `ad pmax-get -a {id} --campaign-id {cid}` | `GET .../campaign/pmax/{cid}` |
26
- | `ad pmax-edit` | `PATCH .../campaign/pmax/{cid}` |
27
- | `ad pmax-asset-group-create` | `POST .../campaign/pmax/{cid}/asset-group` |
28
- | `ad pmax-asset-group-edit` | `PATCH .../campaign/pmax/asset-group/{agId}` |
29
- | `ad pmax-assets-update` | `PUT .../asset-group/{agId}/assets` |
30
- | `ad pmax-youtube-link` | `POST .../asset-group/{agId}/youtube` |
31
- | `ad pmax-signals-get` | `GET .../asset-group/{agId}/signals` |
32
- | `ad pmax-signals-set` | `PUT .../asset-group/{agId}/signals`(**全量**) |
33
- | `ad pmax-audiences` | `GET /campaignmanagement/userlists/{id}` + `audiences/{id}` |
34
- | `ad pmax-image-upload` | `POST /mediamanagement/imageasset/{id}` |
35
- | `ad pmax-report-asset-groups` | `GET /reporting/media-account/{id}/pmax/asset-groups/reports` |
36
- | `ad pmax-report-geo` | `GET .../pmax/campaigns/reports/geo` |
14
+ ## CLI 命令
15
+
16
+ | 命令 | 说明 |
17
+ |------|------|
18
+ | `ad pmax-validate` | 本地校验 |
19
+ | `ad pmax-create` | 创建系列(同步返回 `campaignId` 等) |
20
+ | `ad pmax-channel-types` | 渠道类型列表 |
21
+ | `ad pmax-get` | 系列详情 |
22
+ | `ad pmax-edit` | 编辑系列 |
23
+ | `ad pmax-asset-group-create` | 新建资产组 |
24
+ | `ad pmax-asset-group-edit` | 编辑资产组 |
25
+ | `ad pmax-assets-update` | 更新资产 |
26
+ | `ad pmax-youtube-link` | 关联/替换 YouTube(会移除资产组内已有视频再挂新片) |
27
+ | `ad pmax-signals-get` / `ad pmax-signals-set` | 读/写信号(**全量** PUT) |
28
+ | `ad pmax-audiences` | 受众列表 |
29
+ | `ad pmax-image-upload` | 单张图片上传 |
30
+ | `ad pmax-report-asset-groups` / `ad pmax-report-geo` | 报表 |
37
31
  | `ad campaigns` | 列表(筛 `PERFORMANCE_MAX`) |
38
32
 
39
33
  模板:`assets/pmax-create-template.json`、`pmax-asset-group-template.json`、`pmax-assets-update-template.json`、`pmax-signals-template.json`、`pmax-patch-campaign-template.json`。
40
34
 
41
- ### 图片(Agent 推荐)
35
+ ### 图片(推荐流程)
36
+
37
+ 1. JSON 配置 `imagePaths`(三张本地图)。
38
+ 2. `ad pmax-validate` → 用户确认 → `ad pmax-create`:CLI **自动上传**三张图并写入 `*ImageAssetId`(Body 不含 Base64)。
39
+ 3. 可选预上传:`ad pmax-image-upload -a <id> --image-path ./x.png`,将返回 `id` 写入 JSON。
40
+
41
+ ### 视频
42
42
 
43
- 1. JSON 中只配置 `imagePaths`(三张本地图路径)。
44
- 2. `ad pmax-validate` 用户确认 `ad pmax-create`:**CLI 自动** `POST /mediamanagement/imageasset/{accountId}`(multipart)×3,再以 `*ImageAssetId` 调用 `POST .../campaign/pmax`(创建 Body **不含** 大图 Base64)。
45
- 3. 单张预上传(可选):`ad pmax-image-upload -a <id> --image-path ./x.png`,将返回的 `id` 写入 `marketingImageAssetId` 等。
43
+ - **`videoPath`**:本地 `.mp4` 等;`pmax-create` 经 **GoogleAdsPyAPI** `POST {googleApiUrl}/pyapi/video/upload` 上传,轮询 `GET .../upload/status` 得 `video_id`,再 `POST .../asset-group/{id}/youtube` 链接(与 `youtubeUrlOrId` 二选一)。
44
+ - **`youtubeUrlOrId`**:已有 YouTube URL 11 ID;创建成功后自动链接。
45
+ - **已创建系列换视频**:`ad pmax-youtube-link`(同一接口;后端先删旧 `YOUTUBE_VIDEO` 再链接新片):
46
+ - `--youtube "<url或ID>"` 或 `--video-path ./new.mp4`(可选 `--video-title`)
47
+ - 示例:`siluzan-tso ad pmax-youtube-link -a <id> --asset-group-id <agId> --campaign-id <cid> --video-path ./promo-v2.mp4`
46
48
 
47
49
  ---
48
50
 
49
- ## 编辑流程(无整包 PUT)
51
+ ## 编辑流程
50
52
 
51
- 1. `ad pmax-get` 拉详情 + `assets[].assetResourceName`
52
- 2. 改活动 → `ad pmax-edit` 或 `--patch-file`
53
- 3. 改资产组元数据 → `ad pmax-asset-group-edit`
53
+ 1. `ad pmax-get` 拉详情
54
+ 2. 改系列 → `ad pmax-edit` 或 `--patch-file`
55
+ 3. 改资产组 → `ad pmax-asset-group-edit`
54
56
  4. 改资产 → `ad pmax-assets-update`(`campaignId` 必填)
55
- 5. 改信号 → `ad pmax-signals-get` → `ad pmax-audiences` → `ad pmax-signals-set`(一次 PUT 带齐两类数组)
57
+ 5. 改信号 → `ad pmax-signals-get` → `ad pmax-audiences` → `ad pmax-signals-set`(一次带齐两类数组)
56
58
 
57
59
  ---
58
60
 
59
61
  ## 删除
60
62
 
61
- - **删活动**:复用 `ad campaign-delete -a <id> --id <campaignId>`(PMax 本质仍是 campaign,与 Search 同源;网关无 PMax 专用 DELETE 端点)
62
- - **删资产组**:`ad pmax-asset-group-edit --status REMOVED` 软删;网关无 DELETE 端点
63
- - **删资产**:`ad pmax-assets-update` 的 `unlink` 操作(见模板)
63
+ - **系列**:`ad campaign-delete -a <id> --id <campaignId>`
64
+ - **资产组**:`ad pmax-asset-group-edit --status REMOVED`
65
+ - **资产**:`ad pmax-assets-update` 的 `unlink`(见模板)
64
66
 
65
67
  ---
66
68
 
67
69
  ## 边界
68
70
 
69
- - 勿对 PMax 使用 `ad campaign-edit`(旧 PUT → **400**);删除用 `ad campaign-delete` 仍可
70
- - 新建勿用 `ad campaign-create`(BatchJob);用 `ad pmax-create`
71
+ - 勿对 PMax 使用 `ad campaign-edit`(会 **400**)
72
+ - 新建勿用 `ad campaign-create`;用 `ad pmax-create`
@@ -1,96 +1,32 @@
1
- # TSO 首页(`/foreign_trade/tso/home`)
1
+ # TSO 首页看板
2
2
 
3
- 主应用(微前端)完整路径为 **`/foreign_trade/tso/home`**;TSO 子应用内部路由为 **`/home`**,组件为 `views/home/Index.vue`。
3
+ ## 引导用户打开首页
4
4
 
5
- ## 页面入口(给 Agent 引导用户)
5
+ ```bash
6
+ siluzan-tso config show # 取 webUrl
7
+ ```
6
8
 
7
- 用 `siluzan-tso config show` 读取 **`webUrl`**,再拼接路径:
8
-
9
- 首页地址:`https://www-ci.siluzan.com/v3/foreign_trade/tso/home`
10
-
11
- > 若用户已登录 TSO,也可从左侧菜单进入「首页」。
9
+ 首页地址:`{webUrl}/v3/foreign_trade/tso/home`
12
10
 
13
11
  ---
14
12
 
15
- ## 页面业务模块(与前端一致)
16
-
17
- ### 1. 顶部运营 Banner
18
-
19
- - 展示「出海营销大师 / 代运营」等运营图,点击跳转解决方案页。
20
- - **无对应 CLI**,需浏览器打开首页查看。
21
-
22
- ### 2. 账户数据区(`AccountDataSection`)
23
-
24
- 按 **媒体类型 Tab**(Google / TikTok / Yandex / Meta / Bing / Kwai)切换。
25
-
26
- | 模块 | 说明 | 前端调用的接口(相对 TSO `apiBaseUrl`) |
27
- | -------------------- | ---------------------------- | ------------------------------------------------------------------------------------------ |
28
- | 昨日转化 | 汇总昨日转化数 | `GET /report/media-account/Get-TSO-Overviews?MediaType={媒体}` |
29
- | 昨日消耗 | 汇总昨日花费 | 同上 |
30
- | 昨日充值金额 | 汇总昨日充值 | 同上 |
31
- | 今日待充值账户数 | 余额不足等提示,可点「充值」 | 同上 |
32
- | 广告媒体开户申请概览 | 各媒体开户申请数量表格 | `GET /report/media-account/Get-TSO-Open-Account-Overviews`(`mediaTypesStr` 为 JSON 数组) |
33
- | 各媒体账户余额 | 列表 + 单媒体「充值」按钮 | `GET /report/media-account/GetAccountBalance` |
34
-
35
- **CLI 对应关系(近似,非同一接口):**
36
-
37
- - 单账户余额、消耗趋势:**`balance`**、**`stats`**(Google 走新版 `account-spend-overview`,含今天会切实时模式;其余媒体仍是 `accountsoverview`),需已知 `mediaCustomerId`。
38
- - 开户进度:**`account-history`**、**`open-account`** 系列。
39
- - **充值**:无 CLI,见 `references/accounts/finance.md`,用 `webUrl` 引导至充值页。
40
-
41
- > **说明**:首页的「昨日汇总」「全账户余额一览」等 **聚合报表接口**(`Get-TSO-Overviews`、`Get-TSO-Open-Account-Overviews`、`GetAccountBalance`)**当前 CLI 未单独封装**。若用户要「和首页一模一样的数字」,请引导打开网页;若只要分账户/分业务数据,用现有命令组合。
42
-
43
- ### 3. 广告数据概览(`AdDataSection`)
44
-
45
- - 图表:全账户投放指标随时间变化;可切换指标、媒体筛选;国内贸易场景可能有占位数据。
46
- - 子 Tab:**广告投放数据概览** / **内容数据概览**(文案来自 i18n)。
47
-
48
- | 接口 | 用途 |
49
- | -------------------------------------------------- | -------------------------------------------------------------------------------------------- |
50
- | `GET /report/media-account/accountreportoverview` | 报表总览(图表数据源之一) |
51
- | `GET /report/media-account/GetAccountDataOverview` | 按媒体、账户、日期范围的账户级概览(`MediaType`、`MediaCustomerId`、`StartDate`、`EndDate`) |
52
-
53
- **CLI 对应关系:**
13
+ ## CLI 能做什么 / 不能做什么
54
14
 
55
- - 单账户一段时间消耗/展示/点击:**`stats -m <媒体> -a <mediaCustomerId>`**(Google 用 `account-spend-overview` 自动按窗口分流历史/实时;其余媒体仍是 `accountsoverview`),日期可用默认或后续若支持传参则对齐页面。
56
- - **图表级、多账户联动** **`GetAccountDataOverview`**:**CLI 未封装**,需网页或后续扩展命令。
57
-
58
- ### 4. 服务推荐(`MoreFunctionSection`,部分首页布局显示)
59
-
60
- 跳转到丝路赞其他产品线(非 TSO CLI 范围):
61
-
62
- - AI:`/v3/foreign_trade/chatgpt/chat`
63
- - 创意(SmartCut):`/v3/foreign_trade/smartcut/cso/work?...`
64
- - 建站:`/v3/foreign_trade/tso/website/template`
65
- - 内容:`/v3/foreign_trade/cso/ContentHome`
66
-
67
- **Agent 行为**:说明「属于平台其他模块」,用 `webUrl` + 上述路径新开标签页;**不要用 siluzan-tso 命令冒充能力**。
68
-
69
- ### 5. 右侧推荐(`RecommendSection`)
70
-
71
- - 公众号文章、二维码等静态运营内容。
72
- - **无 CLI**。
73
-
74
- ### 6. AI 落地页引导(`LandGuide`)
75
-
76
- - 首次登录等场景弹窗,引导去落地页配置。
77
- - **仅前端**,无 CLI。
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 冒充 |
78
23
 
79
24
  ---
80
25
 
81
- ## 推荐 Agent 话术示例
82
-
83
- 1. **「我要看和首页一样的总览」**
84
- → 引导打开 `{webUrl}/v3/foreign_trade/tso/home`(或从菜单进首页)。
85
-
86
- 2. **「我只关心某个 Google 账户昨天花了多少」**
87
- → `list-accounts -m Google` 取 `mediaCustomerId`,再 `stats -m Google -a <id>`。
88
-
89
- 3. **「首页说有待充值账户」**
90
- → 说明聚合数据在网页;CLI 可 `list-accounts` + `balance` 逐账户排查,或引导去充值页(`references/accounts/finance.md`)。
91
-
92
- ---
26
+ ## 推荐话术
93
27
 
94
- ## `references/core/workflows.md` 的关系
28
+ 1. **「和首页一样的总览」** → 打开 `{webUrl}/v3/foreign_trade/tso/home`。
29
+ 2. **「某个 Google 账户昨天花了多少」** → `list-accounts -m Google` + `stats -m Google -a <id>`。
30
+ 3. **「有待充值账户」** → 说明聚合数据在首页;CLI 可 `list-accounts` + `balance` 逐户排查,或引导充值页。
95
31
 
96
- 首页是 **聚合看板**;多命令巡检流程见 **`references/core/workflows.md`** 中「投放数据快速巡检」等章节,逻辑上与首页「看数据」意图相近,但数据源接口不完全相同。
32
+ 多账户巡检见 **`references/core/workflows.md`** 流程十。
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 所属 skill:`siluzan-tso`。
4
4
  >
5
- > 对应页面:`/clue-form`。支持 **TikTok** 和 **Meta(Facebook)** 两种媒体。
5
+ > 支持 **TikTok** 和 **Meta(Facebook)** 两种媒体。
6
6
 
7
7
  > **注意**:线索数据直接来自媒体 API,**不支持服务端分页**,数据量大时建议 `--json-out <路径>` 落盘后自行处理。
8
8
 
@@ -1,7 +1,5 @@
1
1
  # 智能预警(Forewarning)
2
2
 
3
- 对应前端路由:`/tool/forewarning`
4
-
5
3
  ---
6
4
 
7
5
  ## 功能概述