siluzan-tso-cli 1.1.12 → 1.1.13

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 (44) hide show
  1. package/README.md +33 -29
  2. package/dist/index.js +2267 -1440
  3. package/dist/skill/SKILL.md +93 -34
  4. package/dist/skill/_meta.json +2 -2
  5. package/dist/skill/assets/campaign-create-template.json +96 -101
  6. package/dist/skill/references/account-analytics.md +64 -62
  7. package/dist/skill/references/accounts.md +130 -130
  8. package/dist/skill/references/clue.md +13 -13
  9. package/dist/skill/references/finance.md +62 -61
  10. package/dist/skill/references/forewarning.md +40 -39
  11. package/dist/skill/references/google-ads-rules/google-ads-account-audit.md +165 -161
  12. package/dist/skill/references/google-ads-rules/google-ads-audience-strategy.md +94 -85
  13. package/dist/skill/references/google-ads-rules/google-ads-campaign-optimization.md +97 -85
  14. package/dist/skill/references/google-ads-rules/google-ads-compliance.md +274 -272
  15. package/dist/skill/references/google-ads-rules/google-ads-conversion-architecture.md +97 -82
  16. package/dist/skill/references/google-ads-rules/google-ads-creative-optimization.md +143 -139
  17. package/dist/skill/references/google-ads-rules/google-ads-keyword-optimization.md +131 -128
  18. package/dist/skill/references/google-ads-rules/google-ads-keyword-strategy.md +175 -173
  19. package/dist/skill/references/google-ads-rules/google-ads-launch-plan-template.md +126 -123
  20. package/dist/skill/references/google-ads-rules/google-ads-pmax-guide.md +86 -73
  21. package/dist/skill/references/google-ads-rules/sensitive-industries.md +43 -8
  22. package/dist/skill/references/google-ads.md +201 -196
  23. package/dist/skill/references/open-account-by-media.md +23 -23
  24. package/dist/skill/references/open-account-google-ui.md +26 -26
  25. package/dist/skill/references/optimize.md +8 -8
  26. package/dist/skill/references/reporting.md +28 -28
  27. package/dist/skill/references/setup.md +10 -7
  28. package/dist/skill/references/tso-home.md +11 -11
  29. package/dist/skill/references/workflows.md +28 -26
  30. package/dist/skill/report-templates/README.md +22 -21
  31. package/dist/skill/report-templates/REPORT-WORKFLOW.md +9 -9
  32. package/dist/skill/report-templates/bing-period-report.md +11 -11
  33. package/dist/skill/report-templates/google-ads-diagnosis.md +86 -86
  34. package/dist/skill/report-templates/google-period-report.md +23 -23
  35. package/dist/skill/report-templates/report-template-academic.html +433 -341
  36. package/dist/skill/report-templates/report-template-dark.html +440 -257
  37. package/dist/skill/report-templates/report-template-formal.html +438 -288
  38. package/dist/skill/report-templates/report-template-mobile.html +456 -241
  39. package/dist/skill/report-templates/report-template-onepager.html +452 -240
  40. package/dist/skill/report-templates/report-template-print.html +355 -243
  41. package/dist/skill/report-templates/report-template.html +485 -392
  42. package/dist/skill/report-templates/tiktok-period-report.md +10 -10
  43. package/package.json +13 -13
  44. package/scripts/postinstall.mjs +3 -1
@@ -7,13 +7,13 @@
7
7
 
8
8
  ## 路由对照
9
9
 
10
- | 媒体 | 前端路由(path) | 说明 |
11
- |------|------------------|------|
10
+ | 媒体 | 前端路由(path) | 说明 |
11
+ | ---------- | --------------------------------- | ------------------------------------------------------------------------------------------------ |
12
12
  | **Google** | `/openAnAccount?mediaType=Google` | 与 TikTok 共用 `openAnAccount.vue`;从开户记录进入 Google 时往往先弹 **GGwarn** 合规提示再进表单 |
13
- | **TikTok** | `/openAnAccount?mediaType=TikTok` | 同上组件,`mediaType` 区分字段与提交流程 |
14
- | **Yandex** | `/YandexOpenAnAccount` | 独立页面 `YandexOpenAnAccount_v2.vue` |
15
- | **BingV2** | `/bingOpenAnAccount` | 独立页面 `bingOpenAnAccount.vue` |
16
- | **Kwai** | `/KwaiOpenAnAccount` | 独立页面 `KwaiOpenAnAccount.vue` |
13
+ | **TikTok** | `/openAnAccount?mediaType=TikTok` | 同上组件,`mediaType` 区分字段与提交流程 |
14
+ | **Yandex** | `/YandexOpenAnAccount` | 独立页面 `YandexOpenAnAccount_v2.vue` |
15
+ | **BingV2** | `/bingOpenAnAccount` | 独立页面 `bingOpenAnAccount.vue` |
16
+ | **Kwai** | `/KwaiOpenAnAccount` | 独立页面 `KwaiOpenAnAccount.vue` |
17
17
 
18
18
  ---
19
19
 
@@ -31,28 +31,28 @@
31
31
 
32
32
  ## 各媒体提交接口
33
33
 
34
- | CLI 子命令 | 提交接口 | Method | 关键 Header / 特点 |
35
- |------------|----------|--------|--------------------|
36
- | `open-account google` | `/command/media-account/google` | POST | `s-command-type: AddExistingMediaAccountList`;前置自动创建广告主组 |
37
- | `open-account tiktok` | `/command/media-account`(不是 `/google`) | POST | 同上;前置 `POST .../tiktok/Upload` 上传执照图片;可选 `POST .../command/attachment` 存档、`GET .../CheckUnionpayInfo` |
38
- | `open-account yandex` | `/command/media-account/AddAgencyClient` | POST | Body:`MediaAccountGroupId` + `AgencyClientInfo`(登录名、税号、电话等) |
39
- | `open-account bing` | `/command/media-account/AddBingV2Account` | POST | Body:`BingCustomerInfo` / `BingV2AccountInfo` + 执照 `FileId`;前置 `POST .../command/attachment` |
40
- | `open-account kwai` | `/command/media-account/AddKwaiAccount` | POST | Body:Kwai 专用主体/行业/执照结构 + `blobstoreKey`;前置 `POST .../KwaiAccount/Management/Upload` |
34
+ | CLI 子命令 | 提交接口 | Method | 关键 Header / 特点 |
35
+ | --------------------- | ------------------------------------------ | ------ | ---------------------------------------------------------------------------------------------------------------------- |
36
+ | `open-account google` | `/command/media-account/google` | POST | `s-command-type: AddExistingMediaAccountList`;前置自动创建广告主组 |
37
+ | `open-account tiktok` | `/command/media-account`(不是 `/google`) | POST | 同上;前置 `POST .../tiktok/Upload` 上传执照图片;可选 `POST .../command/attachment` 存档、`GET .../CheckUnionpayInfo` |
38
+ | `open-account yandex` | `/command/media-account/AddAgencyClient` | POST | Body:`MediaAccountGroupId` + `AgencyClientInfo`(登录名、税号、电话等) |
39
+ | `open-account bing` | `/command/media-account/AddBingV2Account` | POST | Body:`BingCustomerInfo` / `BingV2AccountInfo` + 执照 `FileId`;前置 `POST .../command/attachment` |
40
+ | `open-account kwai` | `/command/media-account/AddKwaiAccount` | POST | Body:Kwai 专用主体/行业/执照结构 + `blobstoreKey`;前置 `POST .../KwaiAccount/Management/Upload` |
41
41
 
42
42
  ---
43
43
 
44
44
  ## 辅助接口
45
45
 
46
- | 用途 | 接口 | CLI 命令 |
47
- |------|------|---------|
48
- | Google 时区列表 | `GET {apiBaseUrl}/query/media-account/Google/TimeZoneInfo/ReadFile` | `open-account google-timezones` |
49
- | TikTok 时区列表 | `GET {apiBaseUrl}/query/media-account/tiktok/TikTokTimeZoneInfo/Read` | `open-account tiktok-timezones` |
50
- | TikTok 行业列表 | `GET {apiBaseUrl}/query/media-account/tiktok/TikTokIndustryInfo/Read` | `open-account tiktok-industries` |
51
- | TikTok 注册地列表 | `GET {apiBaseUrl}/query/media-account/tiktok/TikTokAreacode/Read` | `open-account tiktok-areas` |
52
- | Bing 行业列表 | `GET {apiBaseUrl}/query/media-account/bing/BingTradeList/Read`(返回中文行业名,`name` 字段即为 `--trade-id` 的值) | `open-account bing-industries` |
53
- | 修改 Google 申请 | `PUT .../command/media-account/google/{entityId}`,`s-command-type: UpdateMediaAccount` | — |
54
- | 修改 TikTok 申请 | `PUT .../command/media-account/{entityId}`,`s-command-type: UpdateMediaAccount` | — |
55
- | 修改 Yandex 申请 | `POST .../command/media-account/UpdateAgencyClient/{id}` | — |
46
+ | 用途 | 接口 | CLI 命令 |
47
+ | ----------------- | ------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
48
+ | Google 时区列表 | `GET {apiBaseUrl}/query/media-account/Google/TimeZoneInfo/ReadFile` | `open-account google-timezones` |
49
+ | TikTok 时区列表 | `GET {apiBaseUrl}/query/media-account/tiktok/TikTokTimeZoneInfo/Read` | `open-account tiktok-timezones` |
50
+ | TikTok 行业列表 | `GET {apiBaseUrl}/query/media-account/tiktok/TikTokIndustryInfo/Read` | `open-account tiktok-industries` |
51
+ | TikTok 注册地列表 | `GET {apiBaseUrl}/query/media-account/tiktok/TikTokAreacode/Read` | `open-account tiktok-areas` |
52
+ | Bing 行业列表 | `GET {apiBaseUrl}/query/media-account/bing/BingTradeList/Read`(返回中文行业名,`name` 字段即为 `--trade-id` 的值) | `open-account bing-industries` |
53
+ | 修改 Google 申请 | `PUT .../command/media-account/google/{entityId}`,`s-command-type: UpdateMediaAccount` | — |
54
+ | 修改 TikTok 申请 | `PUT .../command/media-account/{entityId}`,`s-command-type: UpdateMediaAccount` | — |
55
+ | 修改 Yandex 申请 | `POST .../command/media-account/UpdateAgencyClient/{id}` | — |
56
56
 
57
57
  ## 公司名称(广告主组)联想说明
58
58
 
@@ -9,13 +9,13 @@
9
9
 
10
10
  与**表单分步**不是同一套数字,但语义连贯:
11
11
 
12
- | 步骤 | 文案(意译) | 用户要做什么 | CLI / Skill 能做什么 |
13
- |------|----------------|----------------|----------------------|
14
- | ① | 准备开户资料 | 准备公司名、网址、类型、账户信息等 | 说明清单;**无法**代替用户准备资质 |
15
- | ② | 填写申请 | 网页里完成第 1、2 步表单并提交 | **`open-account google-wizard`** 或 **`open-account google`** |
16
- | ③ | 等待审核 | 等待媒体/平台审核 | **`account-history -m Google`** 轮询 |
17
- | ④ | 审核通过 | 查看通过结果 | 同上 |
18
- | ⑤ | 充值并激活 | **必须在网页完成充值** | 引导 `config show` → `webUrl` + 充值路径(见 `finance.md`) |
12
+ | 步骤 | 文案(意译) | 用户要做什么 | CLI / Skill 能做什么 |
13
+ | ---- | ------------ | ---------------------------------- | ------------------------------------------------------------- |
14
+ | ① | 准备开户资料 | 准备公司名、网址、类型、账户信息等 | 说明清单;**无法**代替用户准备资质 |
15
+ | ② | 填写申请 | 网页里完成第 1、2 步表单并提交 | **`open-account google-wizard`** 或 **`open-account google`** |
16
+ | ③ | 等待审核 | 等待媒体/平台审核 | **`account-history -m Google`** 轮询 |
17
+ | ④ | 审核通过 | 查看通过结果 | 同上 |
18
+ | ⑤ | 充值并激活 | **必须在网页完成充值** | 引导 `config show` → `webUrl` + 充值路径(见 `finance.md`) |
19
19
 
20
20
  页面上还有提示:**美元账户最低充值约 100 USD、人民币约 700 CNY**(以实际页面为准)。
21
21
 
@@ -25,24 +25,24 @@
25
25
 
26
26
  ### 第 1 步(企业 / 推广信息)
27
27
 
28
- | 网页控件 | 说明 | CLI 对应 |
29
- |----------|------|----------|
30
- | 公司名称 | 文本,可联想已有广告主 | `--company` |
31
- | 网址 | 左侧下拉 `https://` / `http://` + 右侧输入框 | `--promotion-link`(可只写域名,CLI 会补协议) |
32
- | 类型 | 单选 **B2B / B2C / APP** | `--promotion-type`:`b2b` \| `b2c` \| `app` |
33
- | 行业级联 | 当前前端已隐藏 | 可选 `--industry1` / `--industry2` |
28
+ | 网页控件 | 说明 | CLI 对应 |
29
+ | -------- | -------------------------------------------- | ---------------------------------------------- |
30
+ | 公司名称 | 文本,可联想已有广告主 | `--company` |
31
+ | 网址 | 左侧下拉 `https://` / `http://` + 右侧输入框 | `--promotion-link`(可只写域名,CLI 会补协议) |
32
+ | 类型 | 单选 **B2B / B2C / APP** | `--promotion-type`:`b2b` \| `b2c` \| `app` |
33
+ | 行业级联 | 当前前端已隐藏 | 可选 `--industry1` / `--industry2` |
34
34
 
35
35
  提交第 1 步后,后台会**创建或更新广告主组**并拿到 `magKey`;CLI 已内置该逻辑,**无需**用户自己查 `magKey`。
36
36
 
37
37
  ### 第 2 步(广告账户表格,与下拉菜单一致)
38
38
 
39
- | 网页控件 | 说明 | CLI 对应 |
40
- |----------|------|----------|
41
- | 账户名称 | 文本,默认与公司名一致 | `--account-name` |
42
- | 币种 | 下拉:**CNY / USD**(HKD 对代理商场景为禁用) | `--currency`:`CNY` \| `USD` |
43
- | 时区 | 下拉:文案为 **`(Time)Name`**,值为 **IANA Code** | `--timezone`;列表用 **`open-account google-timezones`** |
44
- | 开户数量 | 1~3,且多行总和 ≤3(网页表格) | `--counts`(1~3) |
45
- | 开户邮箱 | 接收 Google 账户邀请的邮箱(不限 Gmail / `.com`) | `--invite-email` |
39
+ | 网页控件 | 说明 | CLI 对应 |
40
+ | -------- | ------------------------------------------------- | -------------------------------------------------------- |
41
+ | 账户名称 | 文本,默认与公司名一致 | `--account-name` |
42
+ | 币种 | 下拉:**CNY / USD**(HKD 对代理商场景为禁用) | `--currency`:`CNY` \| `USD` |
43
+ | 时区 | 下拉:文案为 **`(Time)Name`**,值为 **IANA Code** | `--timezone`;列表用 **`open-account google-timezones`** |
44
+ | 开户数量 | 1~3,且多行总和 ≤3(网页表格) | `--counts`(1~3) |
45
+ | 开户邮箱 | 接收 Google 账户邀请的邮箱(不限 Gmail / `.com`) | `--invite-email` |
46
46
 
47
47
  **币种 ↔ 默认时区(与网页 `changeCurrency` 一致)**
48
48
 
@@ -115,11 +115,11 @@ siluzan-tso account-history -m Google
115
115
 
116
116
  ## 五、相关命令速查
117
117
 
118
- | 命令 | 作用 |
119
- |------|------|
120
- | `open-account google-wizard` | 交互向导(对齐网页两步表单 + 五步说明) |
121
- | `open-account google-timezones` | 时区列表(网页下拉同源) |
122
- | `open-account google` | 非交互一次性提交 |
123
- | `account-history -m Google` | 开户审核进度 |
118
+ | 命令 | 作用 |
119
+ | ------------------------------- | --------------------------------------- |
120
+ | `open-account google-wizard` | 交互向导(对齐网页两步表单 + 五步说明) |
121
+ | `open-account google-timezones` | 时区列表(网页下拉同源) |
122
+ | `open-account google` | 非交互一次性提交 |
123
+ | `account-history -m Google` | 开户审核进度 |
124
124
 
125
125
  更完整的参数表见 `accounts.md` → **open-account** 章节。
@@ -11,14 +11,14 @@ siluzan-tso optimize get --id <id> # 单条详情(与网页
11
11
  siluzan-tso optimize children --parent-id <id> # 广告系列级明细
12
12
  ```
13
13
 
14
- | 选项 | 说明 |
15
- |------|------|
16
- | `-a, --account <id>` | 账户 `mediaCustomerId`(走接口筛选;**已脱管账户可能为空**) |
17
- | `--match-media-customer-id <id>` | **仅 `list`**:不按接口筛账户,拉全量后自动翻页、客户端匹配 `mediaCustomerId`(适合已不在 Siluzan 托管、但历史上仍有优化批次的 Google 客户号) |
18
- | `--start / --end <date>` | 日期范围(YYYY-MM-DD,所有日期按北京时间(UTC+8)解释,调用时自动附加 `+08:00` 时区偏移) |
19
- | `--id <id>` | `optimize get` 专用:UUID。常见来源——**账户批次**:`optimize list --json` 的 `items[].id` / `entityId`;**系列级记录**:`optimize records --json` 的 `items[].id` |
20
- | `--parent-id <id>` | 父级 ID(`children` 专用;与账户批次 `list` 里 `items[].id` 一致) |
21
- | `--json` | 输出原始 JSON(`list` / `records` / `children`) |
14
+ | 选项 | 说明 |
15
+ | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
16
+ | `-a, --account <id>` | 账户 `mediaCustomerId`(走接口筛选;**已脱管账户可能为空**) |
17
+ | `--match-media-customer-id <id>` | **仅 `list`**:不按接口筛账户,拉全量后自动翻页、客户端匹配 `mediaCustomerId`(适合已不在 Siluzan 托管、但历史上仍有优化批次的 Google 客户号) |
18
+ | `--start / --end <date>` | 日期范围(YYYY-MM-DD,所有日期按北京时间(UTC+8)解释,调用时自动附加 `+08:00` 时区偏移) |
19
+ | `--id <id>` | `optimize get` 专用:UUID。常见来源——**账户批次**:`optimize list --json` 的 `items[].id` / `entityId`;**系列级记录**:`optimize records --json` 的 `items[].id` |
20
+ | `--parent-id <id>` | 父级 ID(`children` 专用;与账户批次 `list` 里 `items[].id` 一致) |
21
+ | `--json` | 输出原始 JSON(`list` / `records` / `children`) |
22
22
 
23
23
  ## 已脱管 / 非当前托管账户:怎么查历史优化?
24
24
 
@@ -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/account-analytics.md`。
7
7
  > **异步批量 / 智投记录**(`ad batch`)见 `references/aigc.md`。
8
8
  > **AI 广告优化**(`optimize`)见 `references/optimize.md`。
@@ -18,14 +18,14 @@
18
18
  siluzan-tso report list -m <媒体> [选项]
19
19
  ```
20
20
 
21
- | 选项 | 说明 |
22
- |------|------|
23
- | `-m, --media` | 媒体类型(必填):`Google \| TikTok` |
24
- | `-t, --type <type>` | 报告类型:`Daily \| Hourly` |
25
- | `-s, --status <ready>` | 是否已生成:`true \| false` |
26
- | `-k, --keyword <text>` | 报告名称关键字 |
27
- | `--start / --end <date>` | 日期范围(YYYY-MM-DD) |
28
- | `--json` | 输出原始 JSON |
21
+ | 选项 | 说明 |
22
+ | ------------------------ | ------------------------------------ |
23
+ | `-m, --media` | 媒体类型(必填):`Google \| TikTok` |
24
+ | `-t, --type <type>` | 报告类型:`Daily \| Hourly` |
25
+ | `-s, --status <ready>` | 是否已生成:`true \| false` |
26
+ | `-k, --keyword <text>` | 报告名称关键字 |
27
+ | `--start / --end <date>` | 日期范围(YYYY-MM-DD) |
28
+ | `--json` | 输出原始 JSON |
29
29
 
30
30
  **示例:**
31
31
 
@@ -48,12 +48,12 @@ siluzan-tso report list -m Google --status true --json
48
48
  siluzan-tso report create -m <媒体> -a <账户ID列表> -t <类型> --start <date> --end <date>
49
49
  ```
50
50
 
51
- | 选项 | 说明 | 必填 |
52
- |------|------|------|
53
- | `-m, --media` | 媒体类型 | ✅ |
54
- | `-a, --accounts <ids>` | 账户 `mediaCustomerId`(数字 ID),逗号分隔。**注意:不是 `entityId`**,内部会自动转换 | ✅ |
55
- | `-t, --type` | 报告类型 | ✅ |
56
- | `--start / --end` | 日期范围 | ✅ |
51
+ | 选项 | 说明 | 必填 |
52
+ | ---------------------- | -------------------------------------------------------------------------------------- | ---- |
53
+ | `-m, --media` | 媒体类型 | ✅ |
54
+ | `-a, --accounts <ids>` | 账户 `mediaCustomerId`(数字 ID),逗号分隔。**注意:不是 `entityId`**,内部会自动转换 | ✅ |
55
+ | `-t, --type` | 报告类型 | ✅ |
56
+ | `--start / --end` | 日期范围 | ✅ |
57
57
 
58
58
  **示例:**
59
59
 
@@ -104,14 +104,14 @@ siluzan-tso report delete --ids rpt_abc123,rpt_def456
104
104
  siluzan-tso report push list -m <媒体> [选项]
105
105
  ```
106
106
 
107
- | 选项 | 说明 |
108
- |------|------|
109
- | `-k, --keyword` | `Name` |
110
- | `-t, --type` | `ReportType` |
111
- | `--stopped` | 仅已停用 |
112
- | `--start` / `--end` | 日期筛选 |
113
- | `-p` / `--page-size` | 分页 |
114
- | `--json` | 原始 JSON(列表信封 + `items`) |
107
+ | 选项 | 说明 |
108
+ | -------------------- | ------------------------------- |
109
+ | `-k, --keyword` | `Name` |
110
+ | `-t, --type` | `ReportType` |
111
+ | `--stopped` | 仅已停用 |
112
+ | `--start` / `--end` | 日期筛选 |
113
+ | `-p` / `--page-size` | 分页 |
114
+ | `--json` | 原始 JSON(列表信封 + `items`) |
115
115
 
116
116
  #### create — 新建推送
117
117
 
@@ -195,11 +195,11 @@ siluzan-tso report push receive-emails -m Google [--json]
195
195
 
196
196
  报告生成后,在网页查看。先用 `siluzan-tso config show` 获取 `webUrl`,再按以下规则拼接链接:
197
197
 
198
- | 媒体 | 报告类型 | URL 模板 |
199
- |------|---------|---------|
200
- | Google | 日报(Daily) | `{webUrl}/media-report/publish/{entityId}?culture=zh-CN` |
201
- | Google | 小时报(Hourly) | `{webUrl}/media-report/hour/{entityId}?culture=zh-CN` |
202
- | TikTok | 日报 | `{webUrl}/media-report/publish/{entityId}?culture=zh-CN` |
198
+ | 媒体 | 报告类型 | URL 模板 |
199
+ | ------ | ---------------- | -------------------------------------------------------- |
200
+ | Google | 日报(Daily) | `{webUrl}/media-report/publish/{entityId}?culture=zh-CN` |
201
+ | Google | 小时报(Hourly) | `{webUrl}/media-report/hour/{entityId}?culture=zh-CN` |
202
+ | TikTok | 日报 | `{webUrl}/media-report/publish/{entityId}?culture=zh-CN` |
203
203
 
204
204
  `entityId` 来自 `siluzan-tso report list --json` 中每条记录的 `entityId` 字段。
205
205
 
@@ -2,10 +2,10 @@
2
2
 
3
3
  ## 前置条件
4
4
 
5
- | 依赖 | 版本 | 用途 |
6
- |------|------|------|
7
- | Node.js | 18+ | CLI 运行时及 `node -e` 数据过滤 |
8
- | npm 或 pnpm | npm 8+ / pnpm 8+ | 安装全局包 |
5
+ | 依赖 | 版本 | 用途 |
6
+ | ----------- | ---------------- | ------------------------------- |
7
+ | Node.js | 18+ | CLI 运行时及 `node -e` 数据过滤 |
8
+ | npm 或 pnpm | npm 8+ / pnpm 8+ | 安装全局包 |
9
9
 
10
10
  ## 安装 CLI
11
11
 
@@ -63,9 +63,9 @@ export SILUZAN_AUTH_TOKEN=<YOUR_TOKEN> # JWT Token
63
63
 
64
64
  **凭据读取优先级(由高到低):**
65
65
 
66
- | 凭据类型 | 优先级 |
67
- |---------|--------|
68
- | API Key | `SILUZAN_API_KEY` 环境变量 → `config.json` → `apiKey` |
66
+ | 凭据类型 | 优先级 |
67
+ | --------- | -------------------------------------------------------------------------------- |
68
+ | API Key | `SILUZAN_API_KEY` 环境变量 → `config.json` → `apiKey` |
69
69
  | JWT Token | `--token` CLI 参数 → `SILUZAN_AUTH_TOKEN` 环境变量 → `config.json` → `authToken` |
70
70
 
71
71
  > API Key 鉴权优先级高于 JWT Token,两者同时存在时使用 API Key。
@@ -77,7 +77,9 @@ export SILUZAN_AUTH_TOKEN=<YOUR_TOKEN> # JWT Token
77
77
  ```bash
78
78
  siluzan-tso config show
79
79
  ```
80
+
80
81
  输出示例:
82
+
81
83
  ```
82
84
  构建环境 : production
83
85
  apiBaseUrl : https://tso-api.siluzan.com
@@ -97,6 +99,7 @@ siluzan-tso config show
97
99
  ## 更新
98
100
 
99
101
  需要严格按照步骤执行
102
+
100
103
  - 执行 npm install -g siluzan-tso-cli@[beta|latest]根据当前使用的是beta版本还是正式版本更新对应的版本到最新版
101
104
  - 执行 siluzan-tso init -d /path/to/skills 复制项目中最新的skill文件来更新你的skill
102
105
 
@@ -23,14 +23,14 @@
23
23
 
24
24
  按 **媒体类型 Tab**(Google / TikTok / Yandex / Meta / Bing / Kwai)切换。
25
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` |
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
34
 
35
35
  **CLI 对应关系(近似,非同一接口):**
36
36
 
@@ -45,9 +45,9 @@
45
45
  - 图表:全账户投放指标随时间变化;可切换指标、媒体筛选;国内贸易场景可能有占位数据。
46
46
  - 子 Tab:**广告投放数据概览** / **内容数据概览**(文案来自 i18n)。
47
47
 
48
- | 接口 | 用途 |
49
- |------|------|
50
- | `GET /report/media-account/accountreportoverview` | 报表总览(图表数据源之一) |
48
+ | 接口 | 用途 |
49
+ | -------------------------------------------------- | -------------------------------------------------------------------------------------------- |
50
+ | `GET /report/media-account/accountreportoverview` | 报表总览(图表数据源之一) |
51
51
  | `GET /report/media-account/GetAccountDataOverview` | 按媒体、账户、日期范围的账户级概览(`MediaType`、`MediaCustomerId`、`StartDate`、`EndDate`) |
52
52
 
53
53
  **CLI 对应关系:**
@@ -25,13 +25,13 @@
25
25
 
26
26
  **常用时区速查**(完整列表:`siluzan-tso open-account google-timezones`):
27
27
 
28
- | 时区 Code | 含义 |
29
- |-----------|------|
30
- | `Asia/Shanghai` | 北京/上海(选 CNY 时的默认值) |
31
- | `Asia/Hong_Kong` | 香港(选 USD 时的默认值) |
32
- | `America/New_York` | 美东 |
33
- | `America/Los_Angeles` | 美西 |
34
- | `Europe/London` | 伦敦 |
28
+ | 时区 Code | 含义 |
29
+ | --------------------- | ------------------------------ |
30
+ | `Asia/Shanghai` | 北京/上海(选 CNY 时的默认值) |
31
+ | `Asia/Hong_Kong` | 香港(选 USD 时的默认值) |
32
+ | `America/New_York` | 美东 |
33
+ | `America/Los_Angeles` | 美西 |
34
+ | `Europe/London` | 伦敦 |
35
35
 
36
36
  ```bash
37
37
  # 第一步:提交开户申请(无需提前查 magKey,CLI 按公司名自动关联)
@@ -173,11 +173,11 @@ siluzan-tso account-history -m Kwai
173
173
  siluzan-tso account-history -m Google
174
174
  ```
175
175
 
176
- | 状态 | 含义 | 下一步 |
177
- |------|------|--------|
178
- | `Pending` | 审核中 | 等待,可反复轮询 |
179
- | `Approved` | 审核通过 | `list-accounts` 确认账户出现;引导用户充值激活(见各媒体第四步) |
180
- | `Rejected` | 被拒 | 查看拒绝原因(`account-history --json` 的 `reason` 字段);修改资料后重新提交;如无法确定原因,引导用户联系丝路赞客服 |
176
+ | 状态 | 含义 | 下一步 |
177
+ | ---------- | -------- | --------------------------------------------------------------------------------------------------------------------- |
178
+ | `Pending` | 审核中 | 等待,可反复轮询 |
179
+ | `Approved` | 审核通过 | `list-accounts` 确认账户出现;引导用户充值激活(见各媒体第四步) |
180
+ | `Rejected` | 被拒 | 查看拒绝原因(`account-history --json` 的 `reason` 字段);修改资料后重新提交;如无法确定原因,引导用户联系丝路赞客服 |
181
181
 
182
182
  ---
183
183
 
@@ -235,6 +235,7 @@ Failed / HasFailed(部分或全部失败)
235
235
  ```
236
236
 
237
237
  **常见场景**:
238
+
238
239
  - 草稿已有字段不满足需求 → `update` 修改后 `publish`
239
240
  - 创建失败 → `get` 查看详情,检查错误信息,网页上修正后再从 `update` 开始
240
241
 
@@ -297,6 +298,7 @@ siluzan-tso ad campaigns -a <mediaCustomerId> --json
297
298
  ```
298
299
 
299
300
  **关键词格式说明**:
301
+
300
302
  - `running shoes` → 广泛匹配(BROAD)
301
303
  - `"running shoes"` → 词组匹配(PHRASE)
302
304
  - `[running shoes]` → 精确匹配(EXACT)
@@ -545,8 +547,8 @@ siluzan-tso report delete --ids <id1>,<id2>
545
547
 
546
548
  ### 与流程六的区别
547
549
 
548
- | 流程六 | 流程六点五 |
549
- |--------|------------|
550
+ | 流程六 | 流程六点五 |
551
+ | ------------------------------------------------------------ | ------------------------------------------------------------ |
550
552
  | TSO **优化报告**:`report create` / `list` / 推送 / 查看链接 | Agent **撰写**的分析报告:CLI 取数后按纲要组织 Markdown/HTML |
551
553
 
552
554
  ### 步骤
@@ -867,13 +869,13 @@ siluzan-tso ad list -a <mediaCustomerId>
867
869
 
868
870
  ### `ad smart prepare` 输出说明
869
871
 
870
- | 字段 | 说明 | AI Agent 使用方式 |
871
- |------|------|-----------------|
872
- | `industry.industryName` | 匹配的行业 | 确认产品方向是否正确 |
873
- | `industry.language` / `languageId` | 推荐语言 | 设置广告系列语言定向 |
874
- | `keywordIdeas` | 关键词列表(含月搜索量) | 筛选高搜索量词加入广告组 |
875
- | `budgetProportions` | 地区预算比例 | 多地区方案中按比例分配预算 |
876
- | `account.currencyCode` | 货币单位 | 换算 `max-cpc` 的实际金额 |
872
+ | 字段 | 说明 | AI Agent 使用方式 |
873
+ | ---------------------------------- | ------------------------ | -------------------------- |
874
+ | `industry.industryName` | 匹配的行业 | 确认产品方向是否正确 |
875
+ | `industry.language` / `languageId` | 推荐语言 | 设置广告系列语言定向 |
876
+ | `keywordIdeas` | 关键词列表(含月搜索量) | 筛选高搜索量词加入广告组 |
877
+ | `budgetProportions` | 地区预算比例 | 多地区方案中按比例分配预算 |
878
+ | `account.currencyCode` | 货币单位 | 换算 `max-cpc` 的实际金额 |
877
879
 
878
880
  ### JSON 输出格式(`--json`)
879
881
 
@@ -948,11 +950,11 @@ siluzan-tso account auth -m Google
948
950
 
949
951
  **诊断结果对投放的影响**:
950
952
 
951
- | 诊断评级 | 建议操作 |
952
- |---------|---------|
953
- | 优秀(85分以上) | 可直接投放,继续完成 AIGC 方案生成 |
954
- | 良好(70-84分) | 建议优化后投放,可先小预算测试 |
955
- | 一般(60-69分) | 重点改善转化代码和页面速度后再投 |
953
+ | 诊断评级 | 建议操作 |
954
+ | ---------------- | ---------------------------------------------------- |
955
+ | 优秀(85分以上) | 可直接投放,继续完成 AIGC 方案生成 |
956
+ | 良好(70-84分) | 建议优化后投放,可先小预算测试 |
957
+ | 一般(60-69分) | 重点改善转化代码和页面速度后再投 |
956
958
  | 较差(60分以下) | 需先修复关键问题(参考诊断报告),否则广告效果会很差 |
957
959
 
958
960
  ---
@@ -2,10 +2,10 @@
2
2
 
3
3
  本目录包含两类文件:
4
4
 
5
- | 文件类型 | 用途 |
6
- |---------|------|
7
- | `*.md` | 报告内容纲要:默认维度、可选维度、对应 CLI 命令 |
8
- | `report-template*.html` | 视觉样式参考:排版/色彩/图表方案,不定义内容 |
5
+ | 文件类型 | 用途 |
6
+ | ----------------------- | ----------------------------------------------- |
7
+ | `*.md` | 报告内容纲要:默认维度、可选维度、对应 CLI 命令 |
8
+ | `report-template*.html` | 视觉样式参考:排版/色彩/图表方案,不定义内容 |
9
9
 
10
10
  > 冲突时以 `*.md` 的内容要求为准,样式文件仅影响排版。
11
11
 
@@ -13,28 +13,28 @@
13
13
 
14
14
  ## 内容纲要文件
15
15
 
16
- | 文件 | 适用场景 |
17
- |------|---------|
18
- | `google-period-report.md` | Google 账户分析报告(周期/月度/诊断均用此模板) |
19
- | `google-account-diagnosis-report.md` | Google 账户深度诊断(健康度/转化/结构等) |
20
- | `google-ads-diagnosis.md` | 与网页版《Google Ads 账户诊断报告》对齐的完整骨架 |
21
- | `meta-period-report.md` | Meta(Facebook)账户周期报告 |
22
- | `tiktok-period-report.md` | TikTok 广告主周期报告 |
23
- | `bing-period-report.md` | Bing(BingV2)分析报告 |
16
+ | 文件 | 适用场景 |
17
+ | ------------------------------------ | ------------------------------------------------- |
18
+ | `google-period-report.md` | Google 账户分析报告(周期/月度/诊断均用此模板) |
19
+ | `google-account-diagnosis-report.md` | Google 账户深度诊断(健康度/转化/结构等) |
20
+ | `google-ads-diagnosis.md` | 与网页版《Google Ads 账户诊断报告》对齐的完整骨架 |
21
+ | `meta-period-report.md` | Meta(Facebook)账户周期报告 |
22
+ | `tiktok-period-report.md` | TikTok 广告主周期报告 |
23
+ | `bing-period-report.md` | Bing(BingV2)分析报告 |
24
24
 
25
25
  ---
26
26
 
27
27
  ## 样式参考文件
28
28
 
29
- | 文件 | 风格 |
30
- |------|------|
31
- | `report-template.html` | 商务/数据看板(默认) |
32
- | `report-template-formal.html` | 正式文件/对外 |
33
- | `report-template-dark.html` | 深色/投屏 |
34
- | `report-template-onepager.html` | 单页摘要 |
35
- | `report-template-mobile.html` | 移动端 |
36
- | `report-template-print.html` | 打印归档 |
37
- | `report-template-academic.html` | 学术/研究口吻 |
29
+ | 文件 | 风格 |
30
+ | ------------------------------- | --------------------- |
31
+ | `report-template.html` | 商务/数据看板(默认) |
32
+ | `report-template-formal.html` | 正式文件/对外 |
33
+ | `report-template-dark.html` | 深色/投屏 |
34
+ | `report-template-onepager.html` | 单页摘要 |
35
+ | `report-template-mobile.html` | 移动端 |
36
+ | `report-template-print.html` | 打印归档 |
37
+ | `report-template-academic.html` | 学术/研究口吻 |
38
38
 
39
39
  ---
40
40
 
@@ -43,6 +43,7 @@
43
43
  ### 分析报告的维度确认
44
44
 
45
45
  生成**分析报告**时:
46
+
46
47
  1. 根据对应 `*.md` 的**默认维度**直接开始拉数(见各 `*.md` 首节)。
47
48
  2. 同时向用户展示该文件里的**可选维度列表**,询问是否需要追加任何维度。
48
49
  3. 用户追加的维度,补充拉数后追加到报告末尾。
@@ -21,10 +21,10 @@
21
21
 
22
22
  根据媒体与用户意图,选择 `report-templates/` 下对应的 `*.md`:
23
23
 
24
- | 意图 | Google | Meta | TikTok | Bing |
25
- |------|--------|------|--------|------|
26
- | 周期分析 / 月报 / 周报 | `google-period-report.md` | `meta-period-report.md` | `tiktok-period-report.md` | `bing-period-report.md` |
27
- | 深度诊断 / 健康检查 | `google-account-diagnosis-report.md` | 同周期,注明能力受限 | 同周期 | 同周期 |
24
+ | 意图 | Google | Meta | TikTok | Bing |
25
+ | ---------------------- | ------------------------------------ | ----------------------- | ------------------------- | ----------------------- |
26
+ | 周期分析 / 月报 / 周报 | `google-period-report.md` | `meta-period-report.md` | `tiktok-period-report.md` | `bing-period-report.md` |
27
+ | 深度诊断 / 健康检查 | `google-account-diagnosis-report.md` | 同周期,注明能力受限 | 同周期 | 同周期 |
28
28
 
29
29
  无精确匹配时,用最接近媒体的同类 `*.md`,并在报告开头注明。
30
30
 
@@ -67,10 +67,10 @@
67
67
 
68
68
  ## 未知报告名处理
69
69
 
70
- | 用户措辞 | 映射 |
71
- |---------|------|
72
- | 月报、周报、投放总结、效果回顾 | 周期分析 → 对应媒体 `*-period-report.md` |
73
- | 健康检查、诊断、账户分析 | 诊断 → `google-account-diagnosis-report.md`(Google)或周期型降级 |
74
- | 对比、汇报、给客户看 | 以周期型为骨架,简化版本 |
70
+ | 用户措辞 | 映射 |
71
+ | ------------------------------ | ----------------------------------------------------------------- |
72
+ | 月报、周报、投放总结、效果回顾 | 周期分析 → 对应媒体 `*-period-report.md` |
73
+ | 健康检查、诊断、账户分析 | 诊断 → `google-account-diagnosis-report.md`(Google)或周期型降级 |
74
+ | 对比、汇报、给客户看 | 以周期型为骨架,简化版本 |
75
75
 
76
76
  无法识别时,默认按**周期分析**处理,并在报告开头注明推断。
@@ -51,16 +51,16 @@
51
51
 
52
52
  ### CLI 速查表
53
53
 
54
- | 数据块 | 子命令 |
55
- |--------|--------|
56
- | 总览 | `report bing-overview` |
57
- | 设备 | `report bing-device` |
58
- | 地域 | `report bing-geographic` |
59
- | 年龄受众 | `report bing-age-audience` |
54
+ | 数据块 | 子命令 |
55
+ | -------- | ----------------------------- |
56
+ | 总览 | `report bing-overview` |
57
+ | 设备 | `report bing-device` |
58
+ | 地域 | `report bing-geographic` |
59
+ | 年龄受众 | `report bing-age-audience` |
60
60
  | 性别受众 | `report bing-gender-audience` |
61
61
  | 受众合并 | `report bing-audience-merged` |
62
- | 系列 | `report bing-campaigns` |
63
- | 广告组 | `report bing-ad-groups` |
64
- | 广告 | `report bing-ads` |
65
- | 关键词 | `report bing-keywords` |
66
- | 搜索字词 | `report bing-search-terms` |
62
+ | 系列 | `report bing-campaigns` |
63
+ | 广告组 | `report bing-ad-groups` |
64
+ | 广告 | `report bing-ads` |
65
+ | 关键词 | `report bing-keywords` |
66
+ | 搜索字词 | `report bing-search-terms` |