siluzan-tso-cli 1.1.13-beta.1 → 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 (46) hide show
  1. package/README.md +34 -31
  2. package/dist/index.js +2226 -1439
  3. package/dist/skill/SKILL.md +77 -51
  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 +67 -66
  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 +30 -30
  27. package/dist/skill/references/setup.md +15 -12
  28. package/dist/skill/references/tso-home.md +12 -12
  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/dist/skill/scripts/install.ps1 +2 -2
  44. package/dist/skill/scripts/install.sh +2 -2
  45. package/package.json +13 -13
  46. package/scripts/postinstall.mjs +3 -1
@@ -8,6 +8,7 @@
8
8
  ---
9
9
 
10
10
  ## 默认做法
11
+
11
12
  1. **先确认统计区间**:除非用户已明确给出起止日期,否则**必须先反问**时间范围(例如"本月 1 号到昨天?还是自定义 YYYY-MM-DD 起止?"),**不得擅自默认**(参见 SKILL.md 的"时间范围强制反问")。
12
13
  2. 询问用户需要生成哪些维度的报告,或直接生成默认报告:包含以下维度:执行摘要、每日投放趋势、月度汇总、广告系列表现、设备分布、地域分布、关键词表现、优化建议
13
14
  3. 确定报告需要如何分析请查看(`report-templates/README.md`)
@@ -30,6 +31,7 @@
30
31
  3. 用户仅提供网址时:**使用域名本身作为占位**(例如 `hy-steelpipe.com`),并在交付物里用 `[待确认品牌名]` 标注,让用户补充
31
32
 
32
33
  反面案例(**绝对禁止**):
34
+
33
35
  - `https://hy-steelpipe.com/` → 自行臆造成"华悦钢管 / 海悦钢管"
34
36
  - `list-accounts` 拿到 `advertiserName: "ABC Steel"`,报告里写成"ABC 钢铁公司"
35
37
 
@@ -50,16 +52,16 @@
50
52
 
51
53
  多条报表行的原始体里,消耗类指标常用下列字段名(调用方若要做统一展示,可按此对照;**以实际响应为准**):
52
54
 
53
- | 常见展示名 | 响应中常见字段名 |
54
- |------------|------------------|
55
- | 消耗 | `spend` |
56
- | 展示 | `impressions` |
57
- | 点击 | `clicks` |
58
- | 转化 | `conversions` |
59
- | 点击率 | `ctr` |
60
- | 转化率 | `conversionRate` |
61
- | 平均点击成本 | `averageCpc` |
62
- | 转化成本 | `costPerConversion` |
55
+ | 常见展示名 | 响应中常见字段名 |
56
+ | ------------ | ------------------- |
57
+ | 消耗 | `spend` |
58
+ | 展示 | `impressions` |
59
+ | 点击 | `clicks` |
60
+ | 转化 | `conversions` |
61
+ | 点击率 | `ctr` |
62
+ | 转化率 | `conversionRate` |
63
+ | 平均点击成本 | `averageCpc` |
64
+ | 转化成本 | `costPerConversion` |
63
65
 
64
66
  ---
65
67
 
@@ -73,38 +75,38 @@ siluzan-tso google-analysis <子命令> -a <mediaCustomerId> [选项]
73
75
 
74
76
  **通用选项**
75
77
 
76
- | 选项 | 说明 |
77
- |------|------|
78
- | `-a, --account` | Google `mediaCustomerId`(必填) |
78
+ | 选项 | 说明 |
79
+ | ------------------- | --------------------------------------------------------- |
80
+ | `-a, --account` | Google `mediaCustomerId`(必填) |
79
81
  | `--start` / `--end` | 统计区间;**须同传或同省略**(省略则默认近 7 天截至昨天) |
80
- | `--json` | 输出完整响应 JSON |
81
- | `-t, --token` | 鉴权 Token(可选,默认读配置) |
82
- | `--verbose` | 打印详细错误 |
82
+ | `--json` | 输出完整响应 JSON |
83
+ | `-t, --token` | 鉴权 Token(可选,默认读配置) |
84
+ | `--verbose` | 打印详细错误 |
83
85
 
84
86
  **子命令与网关路径对应**
85
87
 
86
- | 子命令 | 说明 |
87
- |--------|------|
88
- | `overview` | 总览 `OverviewSectionData` |
89
- | `keywords` | 关键词 `KeywordSectionData`;可选 `--limit`、`--no-order-by-cost` |
90
- | `search-terms` | 搜索词 `searchtermmanagement/v2/list`;同上 |
91
- | `campaigns` | 系列 `CampaignSectionData` |
92
- | `ads` | 广告 `admanagement/v2/list` |
93
- | `extensions` | 附加信息 `extensionmanagement/v2/list`;可选 `--level`(Account / Campaign / Ad Group) |
94
- | `devices` | 设备 `DeviceSectionData` |
95
- | `geographic` | 地域 `GeographicSectionData` |
96
- | `audience` | 受众 `AdGroupAudienceData`;可选 `--audience-type SystemDefined \| UserDefined` |
97
- | `asset-images` | 图片素材 `CampaignAssetView` |
98
- | `videos` | 视频 `Videos` |
99
- | `materials` | 合并 `CampaignAssetView` + `Videos`(一次输出 `{ images, videos }`) |
100
- | `resource-counts` | 结构 `resource-counts` |
101
- | `conversion-actions` | 转化动作 |
102
- | `daily-metrics` | 按日 `reports` |
103
- | `gold-account` | 黄金账户 `GoldAccountData` |
104
- | `ads-index` | 质量指标 `AdsIndexData` |
105
- | `final-urls` | 最终到达网址(**不要**传 `--start`/`--end`) |
106
- | `dimension-summary` | 账户汇总 `reports/combined` |
107
- | `campaign-types` | 系列类型(**不要**传 `--start`/`--end`) |
88
+ | 子命令 | 说明 |
89
+ | -------------------- | --------------------------------------------------------------------------------------- |
90
+ | `overview` | 总览 `OverviewSectionData` |
91
+ | `keywords` | 关键词 `KeywordSectionData`;可选 `--limit`、`--no-order-by-cost` |
92
+ | `search-terms` | 搜索词 `searchtermmanagement/v2/list`;同上 |
93
+ | `campaigns` | 系列 `CampaignSectionData` |
94
+ | `ads` | 广告 `admanagement/v2/list` |
95
+ | `extensions` | 附加信息 `extensionmanagement/v2/list`;可选 `--level`(Account / Campaign / Ad Group) |
96
+ | `devices` | 设备 `DeviceSectionData` |
97
+ | `geographic` | 地域 `GeographicSectionData` |
98
+ | `audience` | 受众 `AdGroupAudienceData`;可选 `--audience-type SystemDefined \| UserDefined` |
99
+ | `asset-images` | 图片素材 `CampaignAssetView` |
100
+ | `videos` | 视频 `Videos` |
101
+ | `materials` | 合并 `CampaignAssetView` + `Videos`(一次输出 `{ images, videos }`) |
102
+ | `resource-counts` | 结构 `resource-counts` |
103
+ | `conversion-actions` | 转化动作 |
104
+ | `daily-metrics` | 按日 `reports` |
105
+ | `gold-account` | 黄金账户 `GoldAccountData` |
106
+ | `ads-index` | 质量指标 `AdsIndexData` |
107
+ | `final-urls` | 最终到达网址(**不要**传 `--start`/`--end`) |
108
+ | `dimension-summary` | 账户汇总 `reports/combined` |
109
+ | `campaign-types` | 系列类型(**不要**传 `--start`/`--end`) |
108
110
 
109
111
  **示例**
110
112
 
@@ -134,17 +136,17 @@ siluzan-tso report meta-overview -a <mediaCustomerId> [--start YYYY-MM-DD --end
134
136
 
135
137
  与周期报告常见数据块对应关系见 **`report-templates/tiktok-period-report.md`**。
136
138
 
137
- | 子命令 | HTTP 段 / 说明 |
138
- |--------|----------------|
139
- | `report tiktok-overview` | `.../OverviewSectionData?startDate=&endDate=` |
140
- | `report tiktok-campaigns` | `.../CampaignSectionData?startDate=&endDate=&take=`(默认 `take=100`) |
141
- | `report tiktok-ad-groups` | `.../AdGroupReport?...` |
142
- | `report tiktok-ads` | `.../AdReport?...` |
143
- | `report tiktok-videos` | `.../VideoReport?...` |
144
- | `report tiktok-audience` | `.../AudienceReport?...&dimensions=` + `-d` 取值见 CLI 帮助(gender / age / interest_category 等) |
145
- | `report tiktok-audience-merged` | 同上接口三次(`gender`、`age`、`interest_category`),**合并输出 JSON** |
146
- | `report tiktok-areacode` | `GET {mainApiUrl}/query/media-account/tiktok/TikTokAreacode/Read` |
147
- | `report tiktok-interest-list` | `{tiktokApiUrl}/.../GetInterestList?mediaCustomerId=`(需配置 `tiktokApiUrl`) |
139
+ | 子命令 | HTTP 段 / 说明 |
140
+ | ------------------------------- | -------------------------------------------------------------------------------------------------- |
141
+ | `report tiktok-overview` | `.../OverviewSectionData?startDate=&endDate=` |
142
+ | `report tiktok-campaigns` | `.../CampaignSectionData?startDate=&endDate=&take=`(默认 `take=100`) |
143
+ | `report tiktok-ad-groups` | `.../AdGroupReport?...` |
144
+ | `report tiktok-ads` | `.../AdReport?...` |
145
+ | `report tiktok-videos` | `.../VideoReport?...` |
146
+ | `report tiktok-audience` | `.../AudienceReport?...&dimensions=` + `-d` 取值见 CLI 帮助(gender / age / interest_category 等) |
147
+ | `report tiktok-audience-merged` | 同上接口三次(`gender`、`age`、`interest_category`),**合并输出 JSON** |
148
+ | `report tiktok-areacode` | `GET {mainApiUrl}/query/media-account/tiktok/TikTokAreacode/Read` |
149
+ | `report tiktok-interest-list` | `{tiktokApiUrl}/.../GetInterestList?mediaCustomerId=`(需配置 `tiktokApiUrl`) |
148
150
 
149
151
  **日期与鉴权**:`--start` / `--end` 须**同传或同省略**;省略时默认**近 7 天(截至昨天)**。鉴权与 TSO 其他接口相同。
150
152
 
@@ -166,19 +168,19 @@ siluzan-tso report tiktok-areacode --json
166
168
 
167
169
  **重要(日期)**:Bing 报表**不能包含「今天」或「昨天」**(接口限制,与 Web 端校验一致)。`--start` / `--end` 须**同传或同省略**;**省略时** CLI 默认区间为**截至前天**的近 7 天(避免误含昨天)。
168
170
 
169
- | 子命令 | HTTP 段 / 说明 |
170
- |--------|----------------|
171
- | `report bing-overview` | `.../OverviewSectionData?startDate=&endDate=` |
172
- | `report bing-device` | `.../DeviceSectionData?...` |
173
- | `report bing-geographic` | `.../GeographicSectionData?...` |
174
- | `report bing-age-audience` | `.../AgeAudienceData?...` |
175
- | `report bing-gender-audience` | `.../GenderAudienceData?...` |
176
- | `report bing-audience-merged` | 上两项并行拉取,**合并输出 JSON** |
177
- | `report bing-campaigns` | `.../CampaignReport?...` |
178
- | `report bing-ad-groups` | `.../AdGroupReport?...` |
179
- | `report bing-ads` | `.../AdReport?...` |
180
- | `report bing-keywords` | `.../KeywordReport?startDate=&endDate=&limit=&orderByCost=true`(默认 `limit=100`) |
181
- | `report bing-search-terms` | `.../SearchQueryReport?...`(同上) |
171
+ | 子命令 | HTTP 段 / 说明 |
172
+ | ----------------------------- | ----------------------------------------------------------------------------------- |
173
+ | `report bing-overview` | `.../OverviewSectionData?startDate=&endDate=` |
174
+ | `report bing-device` | `.../DeviceSectionData?...` |
175
+ | `report bing-geographic` | `.../GeographicSectionData?...` |
176
+ | `report bing-age-audience` | `.../AgeAudienceData?...` |
177
+ | `report bing-gender-audience` | `.../GenderAudienceData?...` |
178
+ | `report bing-audience-merged` | 上两项并行拉取,**合并输出 JSON** |
179
+ | `report bing-campaigns` | `.../CampaignReport?...` |
180
+ | `report bing-ad-groups` | `.../AdGroupReport?...` |
181
+ | `report bing-ads` | `.../AdReport?...` |
182
+ | `report bing-keywords` | `.../KeywordReport?startDate=&endDate=&limit=&orderByCost=true`(默认 `limit=100`) |
183
+ | `report bing-search-terms` | `.../SearchQueryReport?...`(同上) |
182
184
 
183
185
  **示例**
184
186
 
@@ -10,16 +10,16 @@
10
10
  siluzan-tso list-accounts [选项]
11
11
  ```
12
12
 
13
- | 选项 | 说明 |
14
- |------|------|
15
- | `-m, --media <type>` | 媒体类型(留空查全部):`Google \| TikTok \| Yandex \| MetaAd \| BingV2 \| Kwai` |
16
- | `-k, --keyword <text>` | 按账户名称或 ID 搜索 |
17
- | `-s, --status <status>` | 账户状态:`normal \| invalid \| all`(默认 all)|
18
- | `-p, --page <n>` | 页码(默认 1) |
19
- | `--page-size <n>` | 每页数量(默认 20) |
20
- | `--json` | 输出原始 JSON |
21
- | `--unicode` | 表格使用 Unicode 线框;**默认**为 ASCII `+-|` 线框(兼容各类终端) |
22
- | `--plain` | 已默认 ASCII,无需再传;保留兼容旧脚本 |
13
+ | 选项 | 说明 |
14
+ | ----------------------- | -------------------------------------------------------------------------------- | ---------------------- |
15
+ | `-m, --media <type>` | 媒体类型(留空查全部):`Google \| TikTok \| Yandex \| MetaAd \| BingV2 \| Kwai` |
16
+ | `-k, --keyword <text>` | 按账户名称或 ID 搜索 |
17
+ | `-s, --status <status>` | 账户状态:`normal \| invalid \| all`(默认 all) |
18
+ | `-p, --page <n>` | 页码(默认 1) |
19
+ | `--page-size <n>` | 每页数量(默认 20) |
20
+ | `--json` | 输出原始 JSON |
21
+ | `--unicode` | 表格使用 Unicode 线框;**默认**为 ASCII `+- | ` 线框(兼容各类终端) |
22
+ | `--plain` | 已默认 ASCII,无需再传;保留兼容旧脚本 |
23
23
 
24
24
  **示例:**
25
25
 
@@ -39,12 +39,12 @@ siluzan-tso list-accounts --page 2 --page-size 50
39
39
 
40
40
  **输出字段说明:**
41
41
 
42
- | 字段 | 说明 |
43
- |------|------|
44
- | `entityId` | 丝路赞内部 ID,`delink`/`share`、**`account-active-bills`** 等操作使用此 ID(**不是** `mediaCustomerId`) |
45
- | `mediaCustomerId` | 媒体平台账户数字 ID(Google Customer ID 等) |
46
- | `name` | 账户名称 |
47
- | `status` | 账户状态 |
42
+ | 字段 | 说明 |
43
+ | ----------------- | --------------------------------------------------------------------------------------------------------- |
44
+ | `entityId` | 丝路赞内部 ID,`delink`/`share`、**`account-active-bills`** 等操作使用此 ID(**不是** `mediaCustomerId`) |
45
+ | `mediaCustomerId` | 媒体平台账户数字 ID(Google Customer ID 等) |
46
+ | `name` | 账户名称 |
47
+ | `status` | 账户状态 |
48
48
 
49
49
  ---
50
50
 
@@ -60,26 +60,26 @@ siluzan-tso list-accounts --page 2 --page-size 50
60
60
  siluzan-tso account-active-bills -m <媒体> --id <entityId> [--json]
61
61
  ```
62
62
 
63
- | 选项 | 说明 |
64
- |------|------|
63
+ | 选项 | 说明 |
64
+ | -------------------- | ------------------------------------------------------------------------------------ |
65
65
  | `-m, --media <type>` | 必填:`Google \| TikTok \| Yandex \| MetaAd \| BingV2 \| Kwai`(与路径中媒体段一致) |
66
- | `--id <entityId>` | 必填:账户 `entityId` |
67
- | `--json` | 输出接口原始 JSON |
66
+ | `--id <entityId>` | 必填:账户 `entityId` |
67
+ | `--json` | 输出接口原始 JSON |
68
68
 
69
69
  **响应体常用字段(以后端为准):**
70
70
 
71
- | 字段 | 说明 |
72
- |------|------|
73
- | `totalRU` | 汇总相关数值(如示例中的 2.95) |
74
- | `totalResultCount` | 账单条数 |
75
- | `results[]` | 账单列表 |
76
- | `results[].state` | 如 `PaymentSuccessful` |
77
- | `results[].billNo` / `payNo` / `checkingNo` | 账单号、支付单号、对账号 |
78
- | `results[].data` | 明细:`amounts`、`rechargeAmounts`、`payType`(如 `Wallet`)、`currencyCode`、`mediaAccountId` 等 |
79
- | `results[].beforeAmounts` / `afterAmounts` | 变动前后余额相关 |
80
- | `results[].mediaCustomerId` / `mediaCustomerName` | 媒体侧账户 ID 与名称 |
81
- | `results[].invoiceState` | 如 `Pending` |
82
- | `results[].createdDateTime` | 创建时间 |
71
+ | 字段 | 说明 |
72
+ | ------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
73
+ | `totalRU` | 汇总相关数值(如示例中的 2.95) |
74
+ | `totalResultCount` | 账单条数 |
75
+ | `results[]` | 账单列表 |
76
+ | `results[].state` | 如 `PaymentSuccessful` |
77
+ | `results[].billNo` / `payNo` / `checkingNo` | 账单号、支付单号、对账号 |
78
+ | `results[].data` | 明细:`amounts`、`rechargeAmounts`、`payType`(如 `Wallet`)、`currencyCode`、`mediaAccountId` 等 |
79
+ | `results[].beforeAmounts` / `afterAmounts` | 变动前后余额相关 |
80
+ | `results[].mediaCustomerId` / `mediaCustomerName` | 媒体侧账户 ID 与名称 |
81
+ | `results[].invoiceState` | 如 `Pending` |
82
+ | `results[].createdDateTime` | 创建时间 |
83
83
 
84
84
  **示例:**
85
85
 
@@ -104,11 +104,11 @@ siluzan-tso account-active-bills -m Google --id 18176820-6204-43c2-9a1f-0d0f5e9e
104
104
  siluzan-tso balance -m <媒体类型> -a <账户ID列表>
105
105
  ```
106
106
 
107
- | 选项 | 说明 |
108
- |------|------|
109
- | `-m, --media <type>` | 媒体类型(必填) |
107
+ | 选项 | 说明 |
108
+ | ---------------------- | ------------------------------------------------------------------------------------ |
109
+ | `-m, --media <type>` | 媒体类型(必填) |
110
110
  | `-a, --accounts <ids>` | 账户 `mediaCustomerId`(数字 ID),多个用逗号分隔(必填)。**注意:不是 `entityId`** |
111
- | `--json` | 输出原始 JSON |
111
+ | `--json` | 输出原始 JSON |
112
112
 
113
113
  **示例:**
114
114
 
@@ -131,13 +131,13 @@ siluzan-tso balance -m Google -a 6326027735 --json
131
131
  siluzan-tso stats -m <媒体类型> [选项]
132
132
  ```
133
133
 
134
- | 选项 | 说明 | 默认 |
135
- |------|------|------|
136
- | `-m, --media <type>` | 媒体类型(必填) | — |
137
- | `-a, --accounts <ids>` | 账户 `mediaCustomerId`(数字 ID),逗号分隔(**必填**,接口不支持查全部账户) | — |
138
- | `--start <YYYY-MM-DD>` | 开始日期 | 7 天前 |
139
- | `--end <YYYY-MM-DD>` | 结束日期 | 昨天 |
140
- | `--json` | 输出原始 JSON | — |
134
+ | 选项 | 说明 | 默认 |
135
+ | ---------------------- | ----------------------------------------------------------------------------- | ------ |
136
+ | `-m, --media <type>` | 媒体类型(必填) | — |
137
+ | `-a, --accounts <ids>` | 账户 `mediaCustomerId`(数字 ID),逗号分隔(**必填**,接口不支持查全部账户) | — |
138
+ | `--start <YYYY-MM-DD>` | 开始日期 | 7 天前 |
139
+ | `--end <YYYY-MM-DD>` | 结束日期 | 昨天 |
140
+ | `--json` | 输出原始 JSON | — |
141
141
 
142
142
  **示例:**
143
143
 
@@ -163,13 +163,13 @@ siluzan-tso stats -m Google -a 6326027735 --json
163
163
  siluzan-tso account-history [选项]
164
164
  ```
165
165
 
166
- | 选项 | 说明 |
167
- |------|------|
168
- | `-m, --media <type>` | 媒体类型 |
169
- | `-s, --status <status>` | 申请状态(如 `Approved \| Rejected \| Pending`) |
170
- | `-k, --keyword <text>` | 账户名/ID 关键字 |
171
- | `--start / --end <date>` | 申请日期范围(YYYY-MM-DD) |
172
- | `--json` | 输出原始 JSON |
166
+ | 选项 | 说明 |
167
+ | ------------------------ | ------------------------------------------------ |
168
+ | `-m, --media <type>` | 媒体类型 |
169
+ | `-s, --status <status>` | 申请状态(如 `Approved \| Rejected \| Pending`) |
170
+ | `-k, --keyword <text>` | 账户名/ID 关键字 |
171
+ | `--start / --end <date>` | 申请日期范围(YYYY-MM-DD) |
172
+ | `--json` | 输出原始 JSON |
173
173
 
174
174
  **示例:**
175
175
 
@@ -186,11 +186,11 @@ siluzan-tso account-history --start 2026-03-01 --end 2026-03-31 --json
186
186
 
187
187
  **审核状态处理:**
188
188
 
189
- | 状态 | 含义 | 下一步操作 |
190
- |------|------|-----------|
191
- | `Pending` | 审核中 | 等待,可反复运行此命令轮询;审核周期因媒体而异 |
189
+ | 状态 | 含义 | 下一步操作 |
190
+ | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
191
+ | `Pending` | 审核中 | 等待,可反复运行此命令轮询;审核周期因媒体而异 |
192
192
  | `Approved` | 审核通过 | 运行 `list-accounts -m <媒体>` 确认账户已出现;引导用户充值激活(`config show` 取 `webUrl`,打开 `{webUrl}/v3/foreign_trade/tso/recharge`) |
193
- | `Rejected` | 被拒 | 查看 `--json` 输出中的 `reason` 字段了解拒绝原因;修改资料后重新提交;若原因不明,引导用户联系丝路赞客服 |
193
+ | `Rejected` | 被拒 | 查看 `--json` 输出中的 `reason` 字段了解拒绝原因;修改资料后重新提交;若原因不明,引导用户联系丝路赞客服 |
194
194
 
195
195
  ---
196
196
 
@@ -206,8 +206,8 @@ siluzan-tso account-history --start 2026-03-01 --end 2026-03-31 --json
206
206
  siluzan-tso account auth -m <媒体类型>
207
207
  ```
208
208
 
209
- | 选项 | 说明 |
210
- |------|------|
209
+ | 选项 | 说明 |
210
+ | -------------------- | ------------------------------------------------------------------------ |
211
211
  | `-m, --media <type>` | 媒体类型(必填):`Google \| TikTok \| Meta \| Yandex \| BingV2 \| Kwai` |
212
212
 
213
213
  **示例:**
@@ -236,10 +236,10 @@ siluzan-tso account delink --id <entityId>
236
236
  siluzan-tso account delink --ids <id1,id2,id3>
237
237
  ```
238
238
 
239
- | 选项 | 说明 |
240
- |------|------|
239
+ | 选项 | 说明 |
240
+ | ----------------- | ------------------------------- |
241
241
  | `--id <entityId>` | 断开单个账户(使用 `entityId`) |
242
- | `--ids <id1,id2>` | 批量断开多个账户(逗号分隔) |
242
+ | `--ids <id1,id2>` | 批量断开多个账户(逗号分隔) |
243
243
 
244
244
  **示例:**
245
245
 
@@ -264,11 +264,11 @@ siluzan-tso account mcc-bind --customers <mediaCustomerId> --mcc <MCC客户ID>
264
264
  siluzan-tso account mcc-bind --customers 111,222 --mcc "333;444"
265
265
  ```
266
266
 
267
- | 选项 | 说明 |
268
- |------|------|
267
+ | 选项 | 说明 |
268
+ | ------------------- | -------------------------------------------------------------------------------------- |
269
269
  | `--customers <ids>` | 子账户 `mediaCustomerId`,多个逗号分隔(来自 `list-accounts` 的 `ma.mediaCustomerId`) |
270
- | `--mcc <ids>` | MCC 的客户 ID;多个可用英文逗号、中文逗号、分号、顿号等分隔(与网页输入规则一致) |
271
- | `--json` | 输出每个子账户接口的原始返回,便于排查 |
270
+ | `--mcc <ids>` | MCC 的客户 ID;多个可用英文逗号、中文逗号、分号、顿号等分隔(与网页输入规则一致) |
271
+ | `--json` | 输出每个子账户接口的原始返回,便于排查 |
272
272
 
273
273
  ---
274
274
 
@@ -304,9 +304,9 @@ siluzan-tso account share --id abc123def456 --phone 13800138000
304
304
  siluzan-tso account unshare --id <entityId> --account-id <userId>
305
305
  ```
306
306
 
307
- | 选项 | 说明 |
308
- |------|------|
309
- | `--id <entityId>` | 账户 entityId |
307
+ | 选项 | 说明 |
308
+ | ----------------------- | ------------------- |
309
+ | `--id <entityId>` | 账户 entityId |
310
310
  | `--account-id <userId>` | 被取消分享的用户 ID |
311
311
 
312
312
  **示例:**
@@ -380,19 +380,19 @@ siluzan-tso open-account google \
380
380
  > 可选:`--industry1` / `--industry2`(网页端行业已弱化,多数情况可不填)。
381
381
  > 可选:`--advertiser-id <magKey>` 仅用于调试或必须指定已有组时。
382
382
 
383
- | 选项 | 说明 | 必填 |
384
- |------|------|------|
385
- | `--advertiser-id` | 广告主组 magKey(**一般不用**,CLI 按公司名自动处理) | |
386
- | `--account-name` | 账户名称(≤22字符) | ✅ |
387
- | `--currency` | 货币:`USD \| CNY` | ✅ |
388
- | `--timezone` | 时区,如 `Asia/Hong_Kong` / `America/New_York` | ✅ |
389
- | `--invite-email` | 受邀邮箱 | ✅ |
390
- | `--company` | 公司名称(用于匹配/创建广告主组) | ✅ |
391
- | `--industry1 / --industry2` | 行业一/二级(可选) | |
392
- | `--promotion-link` | 推广链接 | ✅ |
393
- | `--promotion-type` | `b2b \| b2c \| app` | ✅ |
394
- | `--invite-role` | `Standard \| Admin`(默认 Standard) | |
395
- | `--counts` | 开户数量 1-3(默认 1) | |
383
+ | 选项 | 说明 | 必填 |
384
+ | --------------------------- | ----------------------------------------------------- | ---- |
385
+ | `--advertiser-id` | 广告主组 magKey(**一般不用**,CLI 按公司名自动处理) | |
386
+ | `--account-name` | 账户名称(≤22字符) | ✅ |
387
+ | `--currency` | 货币:`USD \| CNY` | ✅ |
388
+ | `--timezone` | 时区,如 `Asia/Hong_Kong` / `America/New_York` | ✅ |
389
+ | `--invite-email` | 受邀邮箱 | ✅ |
390
+ | `--company` | 公司名称(用于匹配/创建广告主组) | ✅ |
391
+ | `--industry1 / --industry2` | 行业一/二级(可选) | |
392
+ | `--promotion-link` | 推广链接 | ✅ |
393
+ | `--promotion-type` | `b2b \| b2c \| app` | ✅ |
394
+ | `--invite-role` | `Standard \| Admin`(默认 Standard) | |
395
+ | `--counts` | 开户数量 1-3(默认 1) | |
396
396
 
397
397
  ---
398
398
 
@@ -500,11 +500,11 @@ siluzan-tso open-account kwai \
500
500
  --license-file "/path/to/license.jpg"
501
501
  ```
502
502
 
503
- | 选项 | 说明 |
504
- |------|------|
505
- | `--ad-type` | `1`=效果广告,`2`=品牌广告 |
506
- | `--expire-type` | `1`=有限期(追加 `--expire-at <毫秒时间戳>`),`2`=长期有效 |
507
- | `--target-country` | 投放目标国家/地区(ISO 代码,如 `US \| GB \| DE`) |
503
+ | 选项 | 说明 |
504
+ | ------------------ | ----------------------------------------------------------- |
505
+ | `--ad-type` | `1`=效果广告,`2`=品牌广告 |
506
+ | `--expire-type` | `1`=有限期(追加 `--expire-at <毫秒时间戳>`),`2`=长期有效 |
507
+ | `--target-country` | 投放目标国家/地区(ISO 代码,如 `US \| GB \| DE`) |
508
508
 
509
509
  ---
510
510
 
@@ -521,10 +521,10 @@ siluzan-tso account close --accounts <mediaCustomerId>
521
521
  siluzan-tso account close --accounts <id1,id2,id3>
522
522
  ```
523
523
 
524
- | 选项 | 说明 |
525
- |------|------|
524
+ | 选项 | 说明 |
525
+ | ------------------ | ----------------------------------------------------------------------------- |
526
526
  | `--accounts <ids>` | TikTok 账户 `mediaCustomerId`,多个逗号分隔(来自 `list-accounts -m TikTok`) |
527
- | `--json` | 输出原始 JSON |
527
+ | `--json` | 输出原始 JSON |
528
528
 
529
529
  **示例:**
530
530
 
@@ -551,12 +551,12 @@ siluzan-tso account close --accounts 1234567890123456,9876543210654321
551
551
  siluzan-tso account bm-bind --account-id <mediaCustomerId> --bm-id <bmId>
552
552
  ```
553
553
 
554
- | 选项 | 说明 | 必填 |
555
- |------|------|------|
556
- | `--account-id <id>` | Meta 广告账户 `mediaCustomerId`(来自 `list-accounts -m MetaAd`) | ✅ |
557
- | `--bm-id <id>` | Business Manager ID | ✅ |
558
- | `--action-type <type>` | 操作类型(默认 `bind`) | |
559
- | `--json` | 输出原始 JSON | |
554
+ | 选项 | 说明 | 必填 |
555
+ | ---------------------- | ----------------------------------------------------------------- | ---- |
556
+ | `--account-id <id>` | Meta 广告账户 `mediaCustomerId`(来自 `list-accounts -m MetaAd`) | ✅ |
557
+ | `--bm-id <id>` | Business Manager ID | ✅ |
558
+ | `--action-type <type>` | 操作类型(默认 `bind`) | |
559
+ | `--json` | 输出原始 JSON | |
560
560
 
561
561
  **示例:**
562
562
 
@@ -584,9 +584,9 @@ siluzan-tso account bm-bind --account-id 123456789012345 --bm-id 987654321098765
584
584
  siluzan-tso account withdraw-list [选项]
585
585
  ```
586
586
 
587
- | 选项 | 说明 |
588
- |------|------|
589
- | `--json` | 输出原始 JSON |
587
+ | 选项 | 说明 |
588
+ | ----------- | ---------------- |
589
+ | `--json` | 输出原始 JSON |
590
590
  | `--verbose` | 显示详细错误信息 |
591
591
 
592
592
  输出包含:`entityId`(提现时使用)、`mediaCustomerId`、账户名称、**Google状态**(Suspended)、余额、赠送金、货币、是否可提现。
@@ -605,11 +605,11 @@ siluzan-tso account withdraw-list
605
605
  siluzan-tso account withdraw-submit --accounts <entityId,...>
606
606
  ```
607
607
 
608
- | 选项 | 说明 | 必填 |
609
- |------|------|------|
610
- | `--accounts <ids>` | 账户 `entityId`,逗号分隔(来自 `withdraw-list` 输出) | ✅ |
611
- | `--json` | 输出原始 JSON | |
612
- | `--verbose` | 显示详细错误信息 | |
608
+ | 选项 | 说明 | 必填 |
609
+ | ------------------ | ------------------------------------------------------ | ---- |
610
+ | `--accounts <ids>` | 账户 `entityId`,逗号分隔(来自 `withdraw-list` 输出) | ✅ |
611
+ | `--json` | 输出原始 JSON | |
612
+ | `--verbose` | 显示详细错误信息 | |
613
613
 
614
614
  **完整流程示例:**
615
615
 
@@ -638,11 +638,11 @@ siluzan-tso account withdraw-submit --accounts id1,id2,id3
638
638
  siluzan-tso account bc-bind --customers <mediaCustomerId> --bc-ids <bcId>
639
639
  ```
640
640
 
641
- | 选项 | 说明 | 必填 |
642
- |------|------|------|
643
- | `--customers <ids>` | TikTok 广告账户 `mediaCustomerId`,多个逗号分隔(来自 `list-accounts -m TikTok`) | ✅ |
644
- | `--bc-ids <ids>` | Business Center ID,多个逗号分隔 | ✅ |
645
- | `--json` | 输出原始 JSON | |
641
+ | 选项 | 说明 | 必填 |
642
+ | ------------------- | --------------------------------------------------------------------------------- | ---- |
643
+ | `--customers <ids>` | TikTok 广告账户 `mediaCustomerId`,多个逗号分隔(来自 `list-accounts -m TikTok`) | ✅ |
644
+ | `--bc-ids <ids>` | Business Center ID,多个逗号分隔 | ✅ |
645
+ | `--json` | 输出原始 JSON | |
646
646
 
647
647
  **示例:**
648
648
 
@@ -664,11 +664,11 @@ siluzan-tso account bc-bind --customers 6967198846787059714 --bc-ids 73227573004
664
664
  siluzan-tso account bc-unbind --customers <mediaCustomerId> --bc-id <bcId>
665
665
  ```
666
666
 
667
- | 选项 | 说明 | 必填 |
668
- |------|------|------|
669
- | `--customers <ids>` | TikTok 广告账户 `mediaCustomerId`,多个逗号分隔 | ✅ |
670
- | `--bc-id <id>` | Business Center ID(一次只能解绑一个 BC) | ✅ |
671
- | `--json` | 输出原始 JSON | |
667
+ | 选项 | 说明 | 必填 |
668
+ | ------------------- | ----------------------------------------------- | ---- |
669
+ | `--customers <ids>` | TikTok 广告账户 `mediaCustomerId`,多个逗号分隔 | ✅ |
670
+ | `--bc-id <id>` | Business Center ID(一次只能解绑一个 BC) | ✅ |
671
+ | `--json` | 输出原始 JSON | |
672
672
 
673
673
  **示例:**
674
674
 
@@ -686,11 +686,11 @@ siluzan-tso account bc-unbind --customers 6967198846787059714 --bc-id 7322757300
686
686
  siluzan-tso account email-auth-list -c <mediaCustomerId> [--agent-type <type>]
687
687
  ```
688
688
 
689
- | 选项 | 说明 |
690
- |------|------|
691
- | `-c, --customer-id <id>` | Google 广告账户 `mediaCustomerId`(与网页查询参数 `customerId` 一致) |
692
- | `--agent-type <type>` | 可选;网关需要时再传(与 `list-accounts --json` 的 `ma.accountType` 一致) |
693
- | `--json` | 输出原始 JSON |
689
+ | 选项 | 说明 |
690
+ | ------------------------ | -------------------------------------------------------------------------- |
691
+ | `-c, --customer-id <id>` | Google 广告账户 `mediaCustomerId`(与网页查询参数 `customerId` 一致) |
692
+ | `--agent-type <type>` | 可选;网关需要时再传(与 `list-accounts --json` 的 `ma.accountType` 一致) |
693
+ | `--json` | 输出原始 JSON |
694
694
 
695
695
  ---
696
696
 
@@ -702,12 +702,12 @@ siluzan-tso account email-auth-list -c <mediaCustomerId> [--agent-type <type>]
702
702
  siluzan-tso account email-auth -c <mediaCustomerId> --email <email> [--access-role ReadOnly|Standard]
703
703
  ```
704
704
 
705
- | 选项 | 说明 | 必填 |
706
- |------|------|------|
707
- | `-c, --customer-id <id>` | Google 广告账户 `mediaCustomerId` | ✅ |
708
- | `--email <email>` | 被授权用户邮箱 | ✅ |
709
- | `--agent-type <type>` | 账户代理类型(来自 `list-accounts --json`) | |
710
- | `--access-role <role>` | 权限类型:`ReadOnly \| Standard`(默认 `Standard`) | |
705
+ | 选项 | 说明 | 必填 |
706
+ | ------------------------ | --------------------------------------------------- | ---- |
707
+ | `-c, --customer-id <id>` | Google 广告账户 `mediaCustomerId` | ✅ |
708
+ | `--email <email>` | 被授权用户邮箱 | ✅ |
709
+ | `--agent-type <type>` | 账户代理类型(来自 `list-accounts --json`) | |
710
+ | `--access-role <role>` | 权限类型:`ReadOnly \| Standard`(默认 `Standard`) | |
711
711
 
712
712
  **示例:**
713
713
 
@@ -729,13 +729,13 @@ siluzan-tso account email-auth -c 4656789737 --email user@gmail.com --access-rol
729
729
  siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --resource-name <name>
730
730
  ```
731
731
 
732
- | 选项 | 说明 |
733
- |------|------|
734
- | `-c, --customer-id <id>` | Google 广告账户 `mediaCustomerId` |
735
- | `--invitation-id <id>` | 邀请 ID(来自 `email-auth-list`) |
732
+ | 选项 | 说明 |
733
+ | ------------------------ | ---------------------------------------------------------------- |
734
+ | `-c, --customer-id <id>` | Google 广告账户 `mediaCustomerId` |
735
+ | `--invitation-id <id>` | 邀请 ID(来自 `email-auth-list`) |
736
736
  | `--resource-name <name>` | 资源名称(来自 `email-auth-list --json` 的 `resourceName` 字段) |
737
- | `--agent-type <type>` | 账户代理类型 |
738
- | `--pending` | 邀请尚未被接受时加此参数 |
737
+ | `--agent-type <type>` | 账户代理类型 |
738
+ | `--pending` | 邀请尚未被接受时加此参数 |
739
739
 
740
740
  ---
741
741
 
@@ -743,8 +743,8 @@ siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --res
743
743
 
744
744
  以下操作涉及图形交互(OAuth 跳转、充值页面等),**当前 CLI 不支持**,需引导用户打开浏览器完成:
745
745
 
746
- | 功能 | 媒体 | 网页路径 |
747
- |------|------|---------|
746
+ | 功能 | 媒体 | 网页路径 |
747
+ | --------------------------------------- | ------ | ---------------------------------------------- |
748
748
  | **账户激活**(邀请他人激活 / 充值激活) | Google | `{webUrl}/v3/foreign_trade/tso/manageAccounts` |
749
749
 
750
750
  **Agent 建议话术**: