siluzan-tso-cli 1.1.24 → 1.1.25-beta.2
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 +2 -1
- package/dist/index.js +535 -140
- package/dist/skill/SKILL.md +4 -1
- package/dist/skill/_meta.json +2 -2
- package/dist/skill/assets/pmax-create-template.md +8 -8
- package/dist/skill/references/accounts/accounts.md +23 -17
- package/dist/skill/references/accounts/currency.md +1 -1
- package/dist/skill/references/accounts/finance.md +4 -4
- package/dist/skill/references/accounts/open-account-by-media.md +150 -14
- package/dist/skill/references/accounts/open-account-google-ui.md +2 -2
- package/dist/skill/references/analytics/account-analytics.md +35 -21
- package/dist/skill/references/analytics/rag.md +1 -1
- package/dist/skill/references/analytics/reporting.md +2 -2
- package/dist/skill/references/analytics/website-diagnosis-guide.md +9 -2
- package/dist/skill/references/core/agent-conventions.md +2 -0
- package/dist/skill/references/core/playbooks.md +3 -2
- package/dist/skill/references/core/setup.md +5 -5
- package/dist/skill/references/core/skill-authoring.md +1 -1
- package/dist/skill/references/core/workflows.md +15 -13
- package/dist/skill/references/operations/hosted-automation-monitoring-json.md +1 -1
- package/dist/skill/references/operations/hosted-automation-optimize-scale.md +2 -2
- package/dist/skill/references/operations/hosted-automation-self-control.md +1 -1
- package/dist/skill/report-templates/README.md +1 -1
- package/dist/skill/report-templates/REPORT-WORKFLOW.md +5 -0
- package/dist/skill/report-templates/google-account-diagnosis-report.md +7 -0
- package/dist/skill/report-templates/google-ads-diagnosis.md +51 -2
- package/dist/skill/report-templates/google-inquiry-analysis.md +8 -8
- package/dist/skill/report-templates/google-period-report.md +2 -2
- package/dist/skill/report-templates/okki-weekly-google-client.md +4 -4
- package/dist/skill/report-templates/report-template.html +1 -0
- package/dist/skill/report-templates/website-diagnosis-report.html +450 -36
- package/dist/skill/report-templates/website-diagnosis-report.md +6 -5
- package/dist/skill/scripts/install.ps1 +3 -3
- package/dist/skill/scripts/install.sh +3 -3
- package/package.json +1 -1
package/dist/skill/SKILL.md
CHANGED
|
@@ -17,6 +17,8 @@ allowed-tools: Bash(siluzan-tso:*) Read Write
|
|
|
17
17
|
|
|
18
18
|
> **Agent 纪律(每个新任务必读)**:Read `references/core/agent-conventions.md`,再按 `SKILL.md` 任务表 Read 域文档。禁止跨话题复用参数记忆;数据类任务一律 `--json-out` + 脚本读盘(见 `references/core/tips.md`)。
|
|
19
19
|
>
|
|
20
|
+
> **开户**:首次进入开户话题须先向用户罗列该媒体(或未指明媒体时六平台)**全部必填项**,见 `references/accounts/open-account-by-media.md` §「首次响应硬规范」。
|
|
21
|
+
>
|
|
20
22
|
> **Subagent(可选)**:若宿主支持 Task / 子会话,复杂报告(P5/P6/P7)或长 CLI 输出前 Read `references/core/subagent-orchestration.md`,**自行决定**是否委派;写操作确认与对用户的最终交付留在主 Agent。
|
|
21
23
|
|
|
22
24
|
---
|
|
@@ -91,9 +93,10 @@ Windows:部分 Agent 通过 PowerShell 代执行时可能失败,改在 [Git
|
|
|
91
93
|
| 优化报告(TSO 平台) | `analytics/reporting.md` |
|
|
92
94
|
| 预警 | `operations/forewarning.md` |
|
|
93
95
|
| 发票 / 转账 / 充值 | `accounts/finance.md` |
|
|
94
|
-
| 开户 | `accounts/open-account-by-media.md
|
|
96
|
+
| 开户 | `accounts/open-account-by-media.md`(**首次须列全必填项**;Google 加 `accounts/open-account-google-ui.md`) |
|
|
95
97
|
| OKKI 周报 | `report-templates/okki-weekly-google-client.md` + `core/playbooks.md` P6;可选 `core/subagent-orchestration.md` |
|
|
96
98
|
| Google 询盘分析 | `report-templates/google-inquiry-analysis.md` + `core/playbooks.md` P7;可选 `core/subagent-orchestration.md` |
|
|
99
|
+
| Google 广告诊断 / 账户健康检查 / `AdvertisingDiagnosis` | `report-templates/google-ads-diagnosis.md`+ `google-account-diagnosis-report.md` + `REPORT-WORKFLOW.md` |
|
|
97
100
|
| 标准画像/扫描/周期报告 | `core/playbooks.md` 对应 P1–P5 |
|
|
98
101
|
| P5 多账户多维度 batch | `analytics/google-analysis-batch.md` + `core/playbooks.md` P5;可选 `core/subagent-orchestration.md` |
|
|
99
102
|
|
package/dist/skill/_meta.json
CHANGED
|
@@ -44,13 +44,13 @@ siluzan-tso ad campaigns -a <accountId> --json-out ./snap
|
|
|
44
44
|
| `budgetName` | string | | 预算资源名称 |
|
|
45
45
|
| `assetGroupName` | string | | 首个资产组名称;缺省由服务端生成 |
|
|
46
46
|
| `finalUrls` | string[] | ✅ | 至少 1 个 `https://` 落地页 |
|
|
47
|
-
| `businessName` | string | ✅ |
|
|
48
|
-
| `headlines` | string[] | ✅ |
|
|
49
|
-
| `longHeadlines` | string[] | ✅ |
|
|
50
|
-
| `descriptions` | string[] | ✅ |
|
|
51
|
-
| `imagePaths.marketing` | string | ✅* | 横图 1.91:1
|
|
52
|
-
| `imagePaths.square` | string | ✅* | 方图 1:1
|
|
53
|
-
| `imagePaths.logo` | string | ✅* |
|
|
47
|
+
| `businessName` | string | ✅ | BUSINESS_NAME:1 条,≤25 字符 |
|
|
48
|
+
| `headlines` | string[] | ✅ | HEADLINE:3–15 条,每条 ≤30 字符(CJK×2) |
|
|
49
|
+
| `longHeadlines` | string[] | ✅ | LONG_HEADLINE:1–5 条,每条 ≤90 字符 |
|
|
50
|
+
| `descriptions` | string[] | ✅ | DESCRIPTION:2–5 条,每条 ≤90 字符 |
|
|
51
|
+
| `imagePaths.marketing` | string | ✅* | MARKETING_IMAGE 横图 1.91:1,≤5MB(创建 JSON 1 张;资产组 API 最多 20) |
|
|
52
|
+
| `imagePaths.square` | string | ✅* | SQUARE_MARKETING_IMAGE 方图 1:1,≤5MB(创建 1 张;最多 20) |
|
|
53
|
+
| `imagePaths.logo` | string | ✅* | LOGO 方图 1:1,≤5MB(创建 1 张;最多 5) |
|
|
54
54
|
| `marketingImageAssetId` | string | ✅* | 已上传横图 asset.id(与 path/base64 三选一) |
|
|
55
55
|
| `squareMarketingImageAssetId` | string | ✅* | 已上传方图 asset.id |
|
|
56
56
|
| `logoImageAssetId` | string | ✅* | 已上传 Logo asset.id |
|
|
@@ -62,7 +62,7 @@ siluzan-tso ad campaigns -a <accountId> --json-out ./snap
|
|
|
62
62
|
| `biddingStrategyTypeV2` | string | | 默认 `MAXIMIZE_CONVERSIONS` |
|
|
63
63
|
| `targetCpa_BidingAmount` | number | | `TARGET_CPA` 或带目标 CPA 的 `MAXIMIZE_CONVERSIONS` 时必填(**元**) |
|
|
64
64
|
| `targetRoas` | number | | `TARGET_ROAS` 时必填(如 `2.5` = 250%) |
|
|
65
|
-
| `videoPath` | string | |
|
|
65
|
+
| `videoPath` | string | | YOUTUBE_VIDEO(可选):本地视频 ≥10s;与 `youtubeUrlOrId` 二选一,创建时最多 1 条 |
|
|
66
66
|
| `videoTitle` | string | | PyAPI 上传标题(默认文件名) |
|
|
67
67
|
| `videoDescription` | string | | PyAPI 上传描述(可选) |
|
|
68
68
|
| `youtubeUrlOrId` | string | | 已有 YouTube URL 或 11 位 ID;`pmax-create` 后自动链接 |
|
|
@@ -402,7 +402,8 @@ siluzan-tso account share-detail --customer-id 1234567890
|
|
|
402
402
|
## open-account — 开户申请
|
|
403
403
|
|
|
404
404
|
> Google 开户字段与向导说明见 **`references/accounts/open-account-google-ui.md`**。
|
|
405
|
-
> 各媒体开户参数与接口差异见 **`references/accounts/open-account-by-media.md`**。
|
|
405
|
+
> 各媒体开户参数与接口差异见 **`references/accounts/open-account-by-media.md`**。
|
|
406
|
+
> **Agent 首次响应**:必须先向用户罗列目标媒体(或未指明时全平台)**全部必填项**,见 `open-account-by-media.md` §「首次响应硬规范」与 §「全平台必填总览」。
|
|
406
407
|
|
|
407
408
|
### 广告主组 magKey 说明
|
|
408
409
|
|
|
@@ -483,27 +484,21 @@ siluzan-tso open-account tiktok-timezones --keyword Shanghai
|
|
|
483
484
|
siluzan-tso open-account tiktok \
|
|
484
485
|
--company "Brand A Inc." \
|
|
485
486
|
--account-name "品牌A TikTok账户" \
|
|
486
|
-
--currency USD \
|
|
487
487
|
--timezone "Asia/Shanghai" \
|
|
488
488
|
--industry-id <tiktok-industries 输出的叶子节点 ID> \
|
|
489
489
|
--registered-area CN \
|
|
490
490
|
--promotion-link "https://www.brand-a.com" \
|
|
491
491
|
--license-no "91440300XXXXXXXXXX" \
|
|
492
|
-
--license-file "/path/to/business-license.jpg"
|
|
493
|
-
```
|
|
494
|
-
|
|
495
|
-
> CLI 自动完成:① 上传图片到 TikTok 取得 `license_image_id`;② 存档到丝路赞;③ 按公司名自动创建/关联广告主组;④ 检查是否需要法人银联验证。
|
|
496
|
-
> **注意**:`--company` 和 `--license-no` 需用户手动提供;CLI **无**执照 OCR。
|
|
497
|
-
|
|
498
|
-
**需要法人银联验证时追加:**
|
|
499
|
-
|
|
500
|
-
```bash
|
|
492
|
+
--license-file "/path/to/business-license.jpg" \
|
|
501
493
|
--representative-name "张三" \
|
|
502
494
|
--representative-id "440300XXXXXXXXXXXXXXXXX" \
|
|
503
495
|
--unionpay-account "6222XXXXXXXXXXXX" \
|
|
504
496
|
--representative-phone "13800138000"
|
|
505
497
|
```
|
|
506
498
|
|
|
499
|
+
> CLI 自动完成:① 上传图片到 TikTok 取得 `license_image_id`;② 存档到丝路赞;③ 按公司名自动创建/关联广告主组。
|
|
500
|
+
> **注意**:`--company` 和 `--license-no` 需用户手动提供;CLI **无**执照 OCR。法人银联四项为 **CLI 必填**(见 `open-account-by-media.md` 总览表)。币种由 CLI 固定 USD。
|
|
501
|
+
|
|
507
502
|
---
|
|
508
503
|
|
|
509
504
|
### Yandex 开户(无需图片)
|
|
@@ -511,15 +506,11 @@ siluzan-tso open-account tiktok \
|
|
|
511
506
|
```bash
|
|
512
507
|
siluzan-tso open-account yandex \
|
|
513
508
|
--company "Brand A Inc." \
|
|
514
|
-
--login "yandex_login_name" \
|
|
515
|
-
--first-name "San" \
|
|
516
|
-
--last-name "Zhang" \
|
|
517
509
|
--email "zs@company.com" \
|
|
518
|
-
--tin "7712345678"
|
|
519
|
-
--phone "+8613800138000"
|
|
510
|
+
--tin "7712345678"
|
|
520
511
|
```
|
|
521
512
|
|
|
522
|
-
> **TIN 说明**:税号为普通文本,直接填写纳税人识别号(INN)即可,提交时类型固定为 `FOREIGN_LEGAL
|
|
513
|
+
> **TIN 说明**:税号为普通文本,直接填写纳税人识别号(INN)即可,提交时类型固定为 `FOREIGN_LEGAL`。与网页 v2 一致,仅需公司名、邮箱、税号三项。
|
|
523
514
|
|
|
524
515
|
---
|
|
525
516
|
|
|
@@ -530,11 +521,14 @@ siluzan-tso open-account yandex \
|
|
|
530
521
|
siluzan-tso open-account bing-industries --keyword "科技"
|
|
531
522
|
|
|
532
523
|
siluzan-tso open-account bing \
|
|
524
|
+
--pattern Direct \
|
|
533
525
|
--advertiser-name "深圳XX科技有限公司" \
|
|
534
526
|
--name-short "XX科技" \
|
|
527
|
+
--name-remark-list "XX科技-推广户" \
|
|
535
528
|
--province "广东省" \
|
|
536
529
|
--city "深圳市" \
|
|
537
530
|
--address "南山区科技园XX路XX号XX大厦" \
|
|
531
|
+
--postcode "518000" \
|
|
538
532
|
--promotion-link "https://www.brand-a.com" \
|
|
539
533
|
--trade-id "IT/消费电子-其他" \
|
|
540
534
|
--license-file "/path/to/license.jpg"
|
|
@@ -572,6 +566,18 @@ siluzan-tso open-account kwai \
|
|
|
572
566
|
|
|
573
567
|
---
|
|
574
568
|
|
|
569
|
+
### MetaAd(Facebook)开户链接
|
|
570
|
+
|
|
571
|
+
> 无 CLI 表单提交;与网页「申请开户」相同,拉取 Meta 官方 OE 动态 URL。详见 `references/accounts/open-account-by-media.md` § MetaAd。
|
|
572
|
+
|
|
573
|
+
```bash
|
|
574
|
+
siluzan-tso open-account meta
|
|
575
|
+
siluzan-tso open-account meta --json-out ./snap-meta-open
|
|
576
|
+
siluzan-tso account-history -m MetaAd
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
---
|
|
580
|
+
|
|
575
581
|
## account close — TikTok 关闭账户
|
|
576
582
|
|
|
577
583
|
> 仅支持 **TikTok** 账户。关闭后账户停止投放,如需恢复请联系丝路赞客服,操作**不可自助撤销**,谨慎使用。
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
1. **`list-accounts`**(推荐第一步):`items[].ma.currencyCode`;表格有 **「币种」** 列。
|
|
35
35
|
2. **`balance` / `balance-scan` / `accounts-digest`**:`items[].currencyCode` 或行内已格式化的金额(含代码)。
|
|
36
36
|
3. **`stats`**:`items[].currencyCode`(Google 含今天窗口时可能无币种,见 `accounts/accounts.md` 时效性说明)。
|
|
37
|
-
4. **`google-analysis --sections overview`**:`overview-*.json`
|
|
37
|
+
4. **`google-analysis --sections overview`**:`overview-*.json` 的 `record.currencyCode`(汇总维度,`schemaVersion 3` 起整块在 `record`)。
|
|
38
38
|
5. **`ad campaigns` / `ad groups`**:JSON 内 `currencyCode`(与账户主币种一致)。
|
|
39
39
|
6. **发票/充值**:`invoice billable` 的 `currencyCode`;人民币订单与美金订单开票类型不同,见 `accounts/finance.md`。
|
|
40
40
|
|
|
@@ -131,10 +131,10 @@ siluzan-tso config show
|
|
|
131
131
|
**示例:**
|
|
132
132
|
|
|
133
133
|
```
|
|
134
|
-
- 现金充值(单笔):https://www.siluzan.com/recharge/pay
|
|
135
|
-
- 现金充值(批量):https://www.siluzan.com/recharge/pay_batch
|
|
136
|
-
- 月结充值: https://www.siluzan.com/recharge/accountBillingQuota
|
|
137
|
-
- 丝路赞钱包: https://www.siluzan.com/recharge/siluzanWallet
|
|
134
|
+
- 现金充值(单笔):https://www-ci.siluzan.com/recharge/pay
|
|
135
|
+
- 现金充值(批量):https://www-ci.siluzan.com/recharge/pay_batch
|
|
136
|
+
- 月结充值: https://www-ci.siluzan.com/recharge/accountBillingQuota
|
|
137
|
+
- 丝路赞钱包: https://www-ci.siluzan.com/recharge/siluzanWallet
|
|
138
138
|
```
|
|
139
139
|
|
|
140
140
|
---
|
|
@@ -3,18 +3,122 @@
|
|
|
3
3
|
> 网页链接:`{webUrl}/v3/foreign_trade/tso/accountOpeningHistory?tso=%2Fv3umijs%2Ftso%2FaccountOpeningHistory`
|
|
4
4
|
> 多命令串联见 `references/core/workflows.md` § 流程一。
|
|
5
5
|
|
|
6
|
+
## 首次响应硬规范(必读)
|
|
7
|
+
|
|
8
|
+
用户提出开户(或本轮对话**首次**进入开户话题)时,Agent **必须先输出完整必填清单**,再收集资料或执行 CLI。**禁止**在未列清单的情况下直接 `open-account …` 或只问一两个字段。
|
|
9
|
+
|
|
10
|
+
| 用户说法 | 首次回复必须包含 |
|
|
11
|
+
| -------- | ---------------- |
|
|
12
|
+
| 未指明媒体 / 「开个户」/ 「各平台开户」 | 下文 **§ 全平台必填总览** 六张表(或等价完整列表) |
|
|
13
|
+
| 已指明单一媒体(如「Google 开户」) | 该媒体 **§ 必填字段** 表 + 辅助查询命令(若有)+ 资料类说明(执照路径等) |
|
|
14
|
+
| 多媒体同时开 | 每个目标媒体各一张必填表,**禁止**混用字段 |
|
|
15
|
+
|
|
16
|
+
清单须写清:**业务含义**、**CLI 选项名**、**格式/枚举**、**是否需本地文件路径**。用户补齐后再确认并提交;写入前仍须用户确认(见 `references/core/agent-conventions.md`)。
|
|
17
|
+
|
|
18
|
+
不确定字段时:先 `siluzan-tso open-account <subcommand> -h`,再以本文件与 CLI 为准,勿猜。
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
6
22
|
## Agent 注意
|
|
7
23
|
|
|
8
|
-
-
|
|
24
|
+
- 始终用非交互 `open-account <media> ...`。
|
|
25
|
+
- **Meta/Facebook 开户**无表单提交命令,使用 `open-account meta` 获取官方 OE 链接交给用户在浏览器完成。
|
|
9
26
|
- 各媒体所需资料和参数**完全不同**,不要混用。
|
|
10
27
|
- 提交后轮询:`account-history -m <Media>`;通过后 `list-accounts -m <Media>`。
|
|
11
28
|
- 充值激活**必须在网页**完成(见 `references/accounts/finance.md`)。
|
|
12
29
|
|
|
13
30
|
---
|
|
14
31
|
|
|
32
|
+
## 全平台必填总览
|
|
33
|
+
|
|
34
|
+
> 与 `siluzan-tso open-account <media> -h` 的 `requiredOption` 对齐;可选字段见各媒体 §。
|
|
35
|
+
|
|
36
|
+
### Google(`open-account google`,无需图片)
|
|
37
|
+
|
|
38
|
+
| 业务项 | CLI 选项 | 说明 |
|
|
39
|
+
| ------ | -------- | ---- |
|
|
40
|
+
| 公司名称 | `--company` | 用于匹配/创建广告主组 |
|
|
41
|
+
| 推广链接 | `--promotion-link` | 可只写域名,CLI 补 `https://` |
|
|
42
|
+
| 推广类型 | `--promotion-type` | `b2b` \| `b2c` \| `app` |
|
|
43
|
+
| 账户名称 | `--account-name` | 建议 ≤22 字 |
|
|
44
|
+
| 币种 | `--currency` | `USD` \| `CNY` |
|
|
45
|
+
| 时区 | `--timezone` | IANA;列表:`open-account google-timezones` |
|
|
46
|
+
| 邀请邮箱 | `--invite-email` | 账户邀请发往此邮箱 |
|
|
47
|
+
|
|
48
|
+
### TikTok(`open-account tiktok`,需营业执照图片)
|
|
49
|
+
|
|
50
|
+
| 业务项 | CLI 选项 | 说明 |
|
|
51
|
+
| ------ | -------- | ---- |
|
|
52
|
+
| 公司名称 | `--company` | 无 OCR,须用户手填 |
|
|
53
|
+
| 账户名称 | `--account-name` | |
|
|
54
|
+
| 时区 | `--timezone` | 列表:`open-account tiktok-timezones` |
|
|
55
|
+
| 行业 ID | `--industry-id` | **叶子节点**数字;列表:`open-account tiktok-industries` |
|
|
56
|
+
| 注册地 | `--registered-area` | 国家代码如 `CN`;列表:`open-account tiktok-areas` |
|
|
57
|
+
| 推广链接 | `--promotion-link` | |
|
|
58
|
+
| 执照编号 | `--license-no` | 统一社会信用代码 |
|
|
59
|
+
| 执照图片 | `--license-file` | 本地 JPG/PNG 路径 |
|
|
60
|
+
| 法人姓名 | `--representative-name` | CLI 必填 |
|
|
61
|
+
| 法人身份证 | `--representative-id` | CLI 必填 |
|
|
62
|
+
| 法人银联账号 | `--unionpay-account` | CLI 必填 |
|
|
63
|
+
| 法人手机 | `--representative-phone` | CLI 必填 |
|
|
64
|
+
|
|
65
|
+
> 币种由 CLI 固定为 USD,无需 `--currency`。
|
|
66
|
+
|
|
67
|
+
### Yandex(`open-account yandex`,无需图片)
|
|
68
|
+
|
|
69
|
+
| 业务项 | CLI 选项 | 说明 |
|
|
70
|
+
| ------ | -------- | ---- |
|
|
71
|
+
| 公司名称 | `--company` | |
|
|
72
|
+
| 联系邮箱 | `--email` | |
|
|
73
|
+
| 税号 TIN/INN | `--tin` | 类型固定 `FOREIGN_LEGAL` |
|
|
74
|
+
|
|
75
|
+
### BingV2(`open-account bing`,需营业执照图片)
|
|
76
|
+
|
|
77
|
+
| 业务项 | CLI 选项 | 说明 |
|
|
78
|
+
| ------ | -------- | ---- |
|
|
79
|
+
| 直接/代理 | `--pattern` | `Direct` \| `Agency` |
|
|
80
|
+
| 广告主全称 | `--advertiser-name` | 用于匹配/创建广告主组 |
|
|
81
|
+
| 公司简称 | `--name-short` | |
|
|
82
|
+
| 开户名称 | `--name-remark-list` | 账户显示名 |
|
|
83
|
+
| 省份 | `--province` | |
|
|
84
|
+
| 城市 | `--city` | |
|
|
85
|
+
| 详细地址 | `--address` | |
|
|
86
|
+
| 邮编 | `--postcode` | |
|
|
87
|
+
| 行业 | `--trade-id` | `bing-industries` 返回的 **name** 字段 |
|
|
88
|
+
| 推广链接 | `--promotion-link` | |
|
|
89
|
+
| 执照图片 | `--license-file` | JPG/PNG/PDF 本地路径 |
|
|
90
|
+
|
|
91
|
+
### Kwai(`open-account kwai`,需营业执照图片)
|
|
92
|
+
|
|
93
|
+
| 业务项 | CLI 选项 | 说明 |
|
|
94
|
+
| ------ | -------- | ---- |
|
|
95
|
+
| 营业执照号 | `--licence-id` | |
|
|
96
|
+
| 注册国家 | `--licence-country` | 如 `CN` |
|
|
97
|
+
| 注册地址 | `--licence-location` | 省市区详细地址 |
|
|
98
|
+
| 营业范围 | `--business-scope` | |
|
|
99
|
+
| 产品/品牌名 | `--product` | |
|
|
100
|
+
| 账户类型 | `--ad-type` | `1` 效果 / `2` 品牌 |
|
|
101
|
+
| 产品网址 | `--product-url` | |
|
|
102
|
+
| 实体类型 | `--licence-id-type` | `INDIVIDUAL` \| `ENTERPRISE` |
|
|
103
|
+
| 账户名称 | `--account-name` | |
|
|
104
|
+
| 公司主体名 | `--company-name` | |
|
|
105
|
+
| 一级行业 ID | `--industry-id1` | |
|
|
106
|
+
| 二级行业 ID | `--industry-id2` | |
|
|
107
|
+
| 有效期类型 | `--expire-type` | `1` 有限期(须 `--expire-at`)/ `2` 长期 |
|
|
108
|
+
| 投放地区 | `--target-country` | ISO 如 `US` |
|
|
109
|
+
| 执照图片 | `--license-file` | 本地路径 |
|
|
110
|
+
|
|
111
|
+
### MetaAd(`open-account meta`)
|
|
112
|
+
|
|
113
|
+
| 业务项 | 说明 |
|
|
114
|
+
| ------ | ---- |
|
|
115
|
+
| 用户侧资料 | 在 Meta 官方 OE 网页填写;CLI **无**表单字段 |
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
15
119
|
## Google
|
|
16
120
|
|
|
17
|
-
|
|
121
|
+
**必填**:见上表 § Google;字段语义见 `references/accounts/open-account-google-ui.md`。
|
|
18
122
|
|
|
19
123
|
**Google 字段说明**:`references/accounts/open-account-google-ui.md`
|
|
20
124
|
|
|
@@ -46,25 +150,30 @@ siluzan-tso list-accounts -m Google
|
|
|
46
150
|
|
|
47
151
|
## TikTok
|
|
48
152
|
|
|
49
|
-
|
|
153
|
+
**必填**:见上表 § TikTok。CLI 不做执照 OCR;法人银联四项在 CLI 中为必填。
|
|
50
154
|
|
|
51
|
-
|
|
155
|
+
**辅助查询**(行业/注册地/时区不确定时先跑):
|
|
52
156
|
|
|
53
157
|
```bash
|
|
54
158
|
siluzan-tso open-account tiktok-areas --keyword China
|
|
55
159
|
siluzan-tso open-account tiktok-industries --keyword "电商"
|
|
56
160
|
siluzan-tso open-account tiktok-timezones --keyword Shanghai
|
|
161
|
+
```
|
|
57
162
|
|
|
163
|
+
```bash
|
|
58
164
|
siluzan-tso open-account tiktok \
|
|
59
165
|
--company "Brand A Inc." \
|
|
60
166
|
--account-name "品牌A TikTok账户" \
|
|
61
|
-
--currency USD \
|
|
62
167
|
--timezone "Asia/Shanghai" \
|
|
63
168
|
--industry-id <叶子节点 ID> \
|
|
64
169
|
--registered-area CN \
|
|
65
170
|
--promotion-link "https://www.brand-a.com" \
|
|
66
171
|
--license-no "91440300XXXXXXXXXX" \
|
|
67
|
-
--license-file "/path/to/license.jpg"
|
|
172
|
+
--license-file "/path/to/license.jpg" \
|
|
173
|
+
--representative-name "张三" \
|
|
174
|
+
--representative-id "440300XXXXXXXXXXXXXXXXX" \
|
|
175
|
+
--unionpay-account "6222XXXXXXXXXXXX" \
|
|
176
|
+
--representative-phone "13800138000"
|
|
68
177
|
|
|
69
178
|
siluzan-tso account-history -m TikTok
|
|
70
179
|
```
|
|
@@ -73,17 +182,13 @@ siluzan-tso account-history -m TikTok
|
|
|
73
182
|
|
|
74
183
|
## Yandex
|
|
75
184
|
|
|
76
|
-
|
|
185
|
+
**必填**:见上表 § Yandex(仅三项,与网页 v2 表单一致)。
|
|
77
186
|
|
|
78
187
|
```bash
|
|
79
188
|
siluzan-tso open-account yandex \
|
|
80
189
|
--company "Brand A Inc." \
|
|
81
|
-
--login "brandainc_yandex" \
|
|
82
|
-
--first-name "San" \
|
|
83
|
-
--last-name "Zhang" \
|
|
84
190
|
--email "contact@brand-a.com" \
|
|
85
|
-
--tin "XXXXXXXXXX"
|
|
86
|
-
--phone "+86XXXXXXXXXXX"
|
|
191
|
+
--tin "XXXXXXXXXX"
|
|
87
192
|
|
|
88
193
|
siluzan-tso account-history -m Yandex
|
|
89
194
|
```
|
|
@@ -92,17 +197,20 @@ siluzan-tso account-history -m Yandex
|
|
|
92
197
|
|
|
93
198
|
## BingV2
|
|
94
199
|
|
|
95
|
-
|
|
200
|
+
**必填**:见上表 § BingV2。
|
|
96
201
|
|
|
97
202
|
```bash
|
|
98
203
|
siluzan-tso open-account bing-industries --keyword "科技"
|
|
99
204
|
|
|
100
205
|
siluzan-tso open-account bing \
|
|
206
|
+
--pattern Direct \
|
|
101
207
|
--advertiser-name "深圳XX科技有限公司" \
|
|
102
208
|
--name-short "XX科技" \
|
|
209
|
+
--name-remark-list "XX科技-推广户" \
|
|
103
210
|
--province "广东省" \
|
|
104
211
|
--city "深圳市" \
|
|
105
212
|
--address "南山区科技园XX路XX号" \
|
|
213
|
+
--postcode "518000" \
|
|
106
214
|
--promotion-link "https://www.brand-a.com" \
|
|
107
215
|
--trade-id "IT/消费电子-其他" \
|
|
108
216
|
--license-file "/path/to/license.jpg"
|
|
@@ -114,7 +222,7 @@ siluzan-tso account-history -m BingV2
|
|
|
114
222
|
|
|
115
223
|
## Kwai
|
|
116
224
|
|
|
117
|
-
|
|
225
|
+
**必填**:见上表 § Kwai。
|
|
118
226
|
|
|
119
227
|
> **双上传**:CLI 先上传附件得 `imageId`(更新广告主组 MAG),再上传 Kwai 资质得 `blobstoreKey`(写入 `mainCertPhotos`)。二者不可混用。
|
|
120
228
|
|
|
@@ -141,6 +249,34 @@ siluzan-tso account-history -m Kwai
|
|
|
141
249
|
|
|
142
250
|
---
|
|
143
251
|
|
|
252
|
+
## MetaAd(Facebook / Meta)
|
|
253
|
+
|
|
254
|
+
**流程**:与 TSO 网页「申请开户」相同——调用 `GetOpenAccountLink` 得到 **Meta 官方 OE 动态链接**(有时效,不可写死 URL),用户在浏览器完成开户。
|
|
255
|
+
|
|
256
|
+
**所需**:已配置 `siluzan-tso` 鉴权(`config show` 或 `SILUZAN_API_KEY`)。
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
# 获取链接(stdout 打印 URL,Agent 可直接转给用户)
|
|
260
|
+
siluzan-tso open-account meta
|
|
261
|
+
|
|
262
|
+
# 结构化输出(含 openAccountUrl 字段)
|
|
263
|
+
siluzan-tso open-account meta --json-out ./snap-meta-open
|
|
264
|
+
|
|
265
|
+
# 本机尝试自动打开浏览器(可选)
|
|
266
|
+
siluzan-tso open-account meta --open-browser
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
提交后查进度:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
siluzan-tso account-history -m MetaAd
|
|
273
|
+
siluzan-tso list-accounts -m MetaAd
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
网页入口(需登录):账户管理 `…/manageAccounts?mediaType=MetaAd`;开户记录 `…/accountOpeningHistory?mediaType=Meta`(CLI 打印链接时会从 `MetaAd` 自动映射为 `Meta`,与网页 Tab 一致)。
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
144
280
|
## 审核结果
|
|
145
281
|
|
|
146
282
|
| 状态 | 含义 | 下一步 |
|
|
@@ -67,9 +67,9 @@ siluzan-tso account-history -m Google
|
|
|
67
67
|
|
|
68
68
|
## 四、Agent 指令模板
|
|
69
69
|
|
|
70
|
-
1.
|
|
70
|
+
1. **首次回复**:向用户输出 Google **全部必填项**(见 § 二表格;与 `open-account-by-media.md` § 全平台总览一致),含 CLI 选项名与枚举,再请用户逐项提供;勿只问一两个字段。
|
|
71
71
|
2. 时区不明时运行 `google-timezones` 或给出常用时区表。
|
|
72
|
-
3.
|
|
72
|
+
3. 用户确认资料齐全后执行 `open-account google`。
|
|
73
73
|
4. `account-history -m Google` 轮询。
|
|
74
74
|
5. 通过后引导充值(`finance.md`)。
|
|
75
75
|
|
|
@@ -140,7 +140,7 @@ siluzan-tso google-analysis -a <id> --exclude materials,gold-account --json-out
|
|
|
140
140
|
| `keywords` | 关键词;默认 `costGreater=0`(仅有消耗)、`limit=0`(不封顶)、`orderByCost=true`;可用 `--limit` 限制 Top N |
|
|
141
141
|
| `search-terms` | 搜索词;默认 `limit=0`(不封顶)、`orderByCost=true`;落盘前过滤 `spend>0`;含 `queryTargetingStatus` / `queryTargetingStatusZh`(已添加/已排除/都没有);可用 `--limit` 限制 Top N |
|
|
142
142
|
| `campaigns` | 广告系列 |
|
|
143
|
-
| `campaign-hour` |
|
|
143
|
+
| `campaign-hour` | 系列按小时(行在 `items[]`) |
|
|
144
144
|
| `ads` | 广告;与 `ad list` 同源 |
|
|
145
145
|
| `extensions` | 附加信息;可选 `--level` |
|
|
146
146
|
| `devices` | 设备分布(账户级 `DeviceSectionData`) |
|
|
@@ -152,16 +152,43 @@ siluzan-tso google-analysis -a <id> --exclude materials,gold-account --json-out
|
|
|
152
152
|
| `audience` | 受众;可选 `--audience-type` |
|
|
153
153
|
| `asset-images` | 图片素材 |
|
|
154
154
|
| `videos` | 视频 |
|
|
155
|
-
| `materials` |
|
|
155
|
+
| `materials` | 图片+视频拍平进 `items[]`,每行带 `assetType: 'image' \| 'video'` |
|
|
156
156
|
| `resource-counts` | 结构统计 |
|
|
157
157
|
| `conversion-actions` | 转化动作 |
|
|
158
|
-
| `daily-metrics` | 按日指标(主平台 `GET …/report/media-account/google/account-daily-reports`,`--json-out`
|
|
158
|
+
| `daily-metrics` | 按日指标(主平台 `GET …/report/media-account/google/account-daily-reports`,`--json-out` 落盘为按日数组)。**广告诊断报告**中:金额/CPA **保留 2 位小数**,转化/点击/展示为整数;须配趋势**分析**段落(见 `google-ads-diagnosis.md`) |
|
|
159
159
|
| `gold-account` | 黄金账户 |
|
|
160
160
|
| `ads-index` | 质量指标 |
|
|
161
161
|
| `final-urls` | 最终到达网址(不传 `--start`/`--end`) |
|
|
162
162
|
| `dimension-summary` | 账户汇总 |
|
|
163
163
|
| `campaign-types` | 系列类型(实时,可查当天;不传 `--start`/`--end`) |
|
|
164
164
|
|
|
165
|
+
### 落盘 JSON
|
|
166
|
+
|
|
167
|
+
| 字段 | 含义 |
|
|
168
|
+
| ---- | ---- |
|
|
169
|
+
| `schemaVersion` | 文件内固定 `3` |
|
|
170
|
+
| `section` | 维度名(与文件名 stem 一致;仅标识,读数据用不到) |
|
|
171
|
+
| `itemCount` | `items.length` |
|
|
172
|
+
| `items` | **所有列表维度的行数据**统一入口(含 `materials`);汇总维度为 `[]` |
|
|
173
|
+
| `record` | **汇总维度**的整块对象;列表维度为 `null` |
|
|
174
|
+
| `meta` | 仅 `search-terms` / `ads`:网关 `code`/`message`(与数据无关,可忽略) |
|
|
175
|
+
|
|
176
|
+
**唯一判别规则**:`record` 非 `null` → 读 `record`(汇总维度);否则 → 读 `items[]`(列表维度)。
|
|
177
|
+
|
|
178
|
+
| 桶 | 维度 | 读法 |
|
|
179
|
+
| -- | ---- | ---- |
|
|
180
|
+
| **列表** | `keywords`、`search-terms`、`campaigns`、`campaign-hour`、`ads`、`extensions`、`devices`、`geographic`、`geo-matched`、`campaign-geo`、`campaign-geo-matched`、`campaign-device`、`audience`、`asset-images`、`videos`、`materials`、`daily-metrics`、`conversion-actions` | `d.items[]` |
|
|
181
|
+
| **汇总** | `overview`、`resource-counts`、`dimension-summary`、`gold-account`、`ads-index`、`final-urls`、`campaign-types` | `d.record` |
|
|
182
|
+
|
|
183
|
+
脚本示例(Node)—— 所有维度同一套读法:
|
|
184
|
+
|
|
185
|
+
```javascript
|
|
186
|
+
const d = require("./snap/campaigns-9526903813_20260401-20260430.json");
|
|
187
|
+
const data = d.record ?? d.items; // record 非空=汇总维度;否则=列表行
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
旧快照(manifest `schemaVersion` 1/2,无 `items`/`record`)须按 `*.outline.txt` 最后一行类型读取。
|
|
191
|
+
|
|
165
192
|
### stdout 摘要
|
|
166
193
|
|
|
167
194
|
```json
|
|
@@ -196,24 +223,11 @@ siluzan-tso google-analysis -a <id> --exclude materials,gold-account --json-out
|
|
|
196
223
|
| 平均点击成本 | `averageCpc` |
|
|
197
224
|
| 转化成本 | `costPerConversion` |
|
|
198
225
|
|
|
199
|
-
### 中文化字段(En→Zh 字典补充)
|
|
200
|
-
|
|
201
|
-
CLI 在落盘前为以下维度自动补「中文译名字段」(**原英文字段保留**,便于排错;字典未命中时该字段缺省):
|
|
202
|
-
|
|
203
|
-
| 维度 | 源字段(英文) | 新增字段(中文) | 字典源 |
|
|
204
|
-
| -------------- | ------------------ | -------------------- | --------------------------------------------------------------- |
|
|
205
|
-
| `keywords` | `keywordMatchType` | `keywordMatchTypeZh` | `match-type-en2zh.json`(覆盖 `BROAD/PHRASE/EXACT` 大小写写法) |
|
|
206
|
-
| `search-terms` | `matchType` | `matchTypeZh` | `match-type-en2zh.json` |
|
|
207
|
-
| `search-terms` | `queryTargetingStatus` | `queryTargetingStatusZh` | 网关 `Added`→已添加、`Excluded`→已排除、`None`→都没有(写 Excel「已添加/已排除」列用此字段) |
|
|
208
|
-
| `campaign-geo` | `countryOrRegion` | `countryOrRegionZh` | `geo-en2zh.json`(覆盖 105 个国家/地区) |
|
|
209
|
-
| `geo-matched` | `countryOrRegion` | `countryOrRegionZh` | `geo-en2zh.json` |
|
|
210
|
-
| `campaign-geo-matched` | `countryOrRegion` | `countryOrRegionZh` | `geo-en2zh.json` |
|
|
211
|
-
|
|
212
|
-
写 Excel / 报表脚本可直接读 `keywordMatchTypeZh` / `matchTypeZh` / `countryOrRegionZh` 输出中文,**不要**自己维护字典或在线翻译。判断覆盖率用 `if (row.xxxZh)` 即可。
|
|
213
|
-
|
|
214
226
|
### CampaignSectionData 关键字段
|
|
215
227
|
|
|
216
|
-
`campaigns[]`
|
|
228
|
+
> `campaigns` 维度的系列行在 `items[]`(`schemaVersion 3` 起统一信封;本节下文的 `campaigns[]` 即指 `items[]`)。
|
|
229
|
+
|
|
230
|
+
`items[]` 每行额外包含:`conversionsValue`、`conversionsValuePerCost`(`spend ≤ 0` 时为 0)、`campaignTargetCpaYuan`、`maximizeConversionsTargetCpaYuan`、`manualCpcEnhancedCpcEnabled`、`percentCpcEnhancedCpcEnabled`。所有金额字段(`*Yuan` 后缀)已统一为元,可直接展示,无需换算。
|
|
217
231
|
|
|
218
232
|
日预算字段为 `budgetAmountYuan`(元),脚本可直接 `row.budgetAmountYuan`;网关原始 `budgetAmount`(分)已不再落盘。
|
|
219
233
|
|
|
@@ -239,11 +253,11 @@ CLI 在落盘前为以下维度自动补「中文译名字段」(**原英文
|
|
|
239
253
|
|
|
240
254
|
#### 行顶 legacy 份额(与 `competitiveMetrics` 同名 3 项)
|
|
241
255
|
|
|
242
|
-
`campaigns
|
|
256
|
+
`campaigns` / `keywords` 维度的 `items[]` 行顶仍保留 `searchImpressionShare`、`searchBudgetLostImpressionShare`、`searchRankLostImpressionShare`。CLI 落盘前已统一为 **0~1 小数**(与 `competitiveMetrics` 同名项一致;有嵌套时以 `competitiveMetrics` 为准)。Top/AbsoluteTop/Content/ClickShare 等扩展项仅存在于 `competitiveMetrics`。展示为百分比:`(v * 100).toFixed(2) + '%'`。
|
|
243
257
|
|
|
244
258
|
### campaign-hour 字段
|
|
245
259
|
|
|
246
|
-
`campaignId`、`campaignName`、`date`、`hour`、`spend`、`impressions`、`clicks`、`conversions
|
|
260
|
+
`items[]` 每行:`campaignId`、`campaignName`、`date`、`hour`、`spend`、`impressions`、`clicks`、`conversions`(`schemaVersion 3` 起行统一在 `items[]`,不再是裸数组根)。
|
|
247
261
|
|
|
248
262
|
---
|
|
249
263
|
|
|
@@ -207,8 +207,8 @@ siluzan-tso report list -m Google --json-out ./snap
|
|
|
207
207
|
|
|
208
208
|
# 第二步:查看 webUrl
|
|
209
209
|
siluzan-tso config show
|
|
210
|
-
# webUrl: https://www.siluzan.com
|
|
210
|
+
# webUrl: https://www-ci.siluzan.com
|
|
211
211
|
|
|
212
212
|
# 第三步:拼接链接(Google 日报)
|
|
213
|
-
# https://www.siluzan.com/media-report/publish/rpt_abc123?culture=zh-CN
|
|
213
|
+
# https://www-ci.siluzan.com/media-report/publish/rpt_abc123?culture=zh-CN
|
|
214
214
|
```
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 对齐 Aiagent-Server `agent/tso_agent`:`getWebsiteDiagnosisData`(`website_diagnosis_tools.py` + `data/website_guide.py`)。
|
|
4
4
|
> **CLI 负责拉数**;**6 模块 × 29 子项评分**由 Agent 按规则 + 采集数据生成 JSON。
|
|
5
|
-
>
|
|
5
|
+
> **最终交付**:与线上一致,为**一份可浏览器打开、含 ECharts 图表的单文件 HTML 报告**(雷达图、模块得分条形图、Lighthouse 对比图等)。TSO 网页由 Vue `WebsiteAnalysisReport/v3` 渲染;Skill/CLI 场景用 `website-diagnosis render` 或按 `report-templates/website-diagnosis-report.html` 注入 JSON。
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -28,6 +28,9 @@ siluzan-tso website-diagnosis performance --url https://www.example.com --json-o
|
|
|
28
28
|
|
|
29
29
|
# 按 diagnoseId 查 ARIT 得分(ID 来自 list-accounts 的 ma.diagnoseReports)
|
|
30
30
|
siluzan-tso website-diagnosis search --ids <id1,id2> --json-out ./snap-web
|
|
31
|
+
|
|
32
|
+
# 由诊断 JSON 生成带图表的 HTML 终稿
|
|
33
|
+
siluzan-tso website-diagnosis render --data ./diagnosis.json --collect ./snap-web/<collect>.json
|
|
31
34
|
```
|
|
32
35
|
|
|
33
36
|
| 子命令 | HTTP | 基址 |
|
|
@@ -52,7 +55,11 @@ siluzan-tso website-diagnosis search --ids <id1,id2> --json-out ./snap-web
|
|
|
52
55
|
2. `website-diagnosis collect --url <url> --json-out ./snap-web`(**必须** `--json-out`)。
|
|
53
56
|
3. Read `assets/website-diagnosis-rules.md`(评分规则与 JSON Schema)。
|
|
54
57
|
4. 用脚本读 `writtenFiles[0]` 的 `lighthouse`、`htmlPreview`(或 `--include-html` 时的 `htmlContent`)生成结构化 `data`(见下节输出契约)。
|
|
55
|
-
5.
|
|
58
|
+
5. 生成诊断 JSON 后执行:
|
|
59
|
+
```bash
|
|
60
|
+
siluzan-tso website-diagnosis render --data ./diagnosis.json --collect ./snap-web/<collect>.json --out ./snap-web/website-diagnosis-report.html
|
|
61
|
+
```
|
|
62
|
+
或按 `report-templates/website-diagnosis-report.html` 将 JSON 写入 `window.__WEBSITE_DIAGNOSIS__`。**禁止**只给 Markdown/纯 JSON 充当终稿。
|
|
56
63
|
6. **禁止编造**未在采集 HTML/Lighthouse 中出现的指标。Lighthouse 缺失时须在 HTML 中醒目说明。
|
|
57
64
|
|
|
58
65
|
**在 TSO Copilot 网页内**:工具返回 `rendered: true` 时,前端已渲染卡片 +「查看详情」全页 HTML,Agent 只需简短确认,**勿重复贴报告正文**(见 tso_agent `prompt.py`)。
|
|
@@ -67,6 +67,7 @@
|
|
|
67
67
|
- **破坏性操作必须确认 + `--commit`**:账户解绑/关闭/取消分享、BC/MCC 解绑、删除预警/报告/广告/关键词、发票申请、广告发布等。
|
|
68
68
|
- **不确定时读文档**:先读对应 references 或用 `-h`,不要猜参数。
|
|
69
69
|
- **Google 新建搜索系列**:流程仅在 `references/google-ads/google-ads-campaign-plan.md` 维护。
|
|
70
|
+
- **开户首次响应**:用户第一次提出开户(或对话内首次进入开户话题)时,**必须先**按 `references/accounts/open-account-by-media.md` §「首次响应硬规范」输出**完整必填清单**(未指明媒体则列全平台六表),再收集资料;**禁止**未列清单就执行 `open-account` 或只零散追问个别字段。
|
|
70
71
|
- **Google 开户**:`open-account google-wizard` 仅限真实 TTY;Agent/自动化用非交互 `open-account google ...`,审核进度用 `account-history`。
|
|
71
72
|
- **主动更新**:详见 `references/core/setup.md`。
|
|
72
73
|
|
|
@@ -120,6 +121,7 @@
|
|
|
120
121
|
- **币种只认接口字段**:`list-accounts` → `items[].ma.currencyCode`;同媒体可同时有 CNY 与 USD,不得凭媒体猜币种。
|
|
121
122
|
- **符号**:`CNY` → **¥**;`USD` → **$**。多账户按 `currencyCode` 分表,**禁止**跨币种求和。
|
|
122
123
|
- **金额单位统一为「元」**:报告保留 2 位小数。
|
|
124
|
+
- **Google 广告诊断报告**:`report-templates/google-ads-diagnosis.md` § 撰写硬约束 — 每日趋势金额/CPA 必须 2 位小数;每个模块除表格外须有「分析」+「建议」,禁止只贴数据。
|
|
123
125
|
- **品牌名优先级**:(1) 用户明确提供 → (2) `list-accounts.mag.advertiserName` → (3) 网址域名占位 `[待确认品牌名]`。**严禁**把英文域名翻译为虚构中文品牌。
|
|
124
126
|
|
|
125
127
|
---
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
2. `list-accounts -m Google -k <mediaCustomerId> --json-out ./snap-p1`
|
|
23
23
|
3. `stats -m Google -a <mediaCustomerId> --start <S> --end <D> --json-out ./snap-p1`
|
|
24
24
|
4. `ad campaigns -a <mediaCustomerId> --start <S> --end <D> --json-out ./snap-p1`
|
|
25
|
-
5.
|
|
25
|
+
5. 诊断/画像报告:Read `report-templates/google-ads-diagnosis.md`(**硬约束:每日趋势 2 位小数、每模块必有分析**)+ `google-account-diagnosis-report.md`(章节与 CLI);`google-analysis --json-out` 须含 `daily-metrics`(按日趋势)。
|
|
26
|
+
6. 首行标注统计区间和货币;HTML 可对齐 `report-template.html` + `section-*` 区块。
|
|
26
27
|
|
|
27
28
|
---
|
|
28
29
|
|
|
@@ -182,6 +183,6 @@ siluzan-tso accounts-digest -m Google -a id1,id2,... --start <S> --end <D> --jso
|
|
|
182
183
|
|
|
183
184
|
3. Read `assets/website-diagnosis-rules.md`;按 outline → JSON 读 `lighthouse` / `htmlPreview`。
|
|
184
185
|
4. 生成与 tso_agent `getWebsiteDiagnosisData` 同结构的 `data`(6 模块、29 子项、`ratingId`、`coreIssuesIds`)。
|
|
185
|
-
5.
|
|
186
|
+
5. 执行 `website-diagnosis render --data <diagnosis.json> --collect <collect.json>` 生成 **带图表的** `website-diagnosis-report.html`(模板见 `report-templates/website-diagnosis-report.html`);勿只交付 Markdown。
|
|
186
187
|
6. Lighthouse 缺失时在 HTML 中说明;Copilot 网页场景若已 `rendered: true` 则勿重复输出报告正文。
|
|
187
188
|
7. 若用户仅需历史 ARIT 分:`list-accounts` 或 `website-diagnosis search --ids <websiteDiagnoseId>`。
|