siluzan-tso-cli 1.1.49 → 1.1.50-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.
Files changed (27) hide show
  1. package/README.md +2 -1
  2. package/dist/index.js +2 -2
  3. package/dist/skill/SKILL.md +19 -2
  4. package/dist/skill/_meta.json +2 -2
  5. package/dist/skill/assets/campaign-create-template.md +2 -0
  6. package/dist/skill/references/accounts/accounts-list.md +1 -1
  7. package/dist/skill/references/accounts/accounts-permissions.md +2 -2
  8. package/dist/skill/references/accounts/finance.md +1 -1
  9. package/dist/skill/references/accounts/open-account-by-media.md +1 -1
  10. package/dist/skill/references/accounts/open-account-google-ui.md +1 -1
  11. package/dist/skill/references/analytics/rag.md +1 -1
  12. package/dist/skill/references/analytics/reporting.md +5 -5
  13. package/dist/skill/references/core/intent-routing.md +5 -0
  14. package/dist/skill/references/core/setup.md +5 -5
  15. package/dist/skill/references/core/workflows.md +1 -0
  16. package/dist/skill/references/google-ads/google-ads-campaign-plan.md +1 -1
  17. package/dist/skill/references/google-ads/google-ads.md +2 -0
  18. package/dist/skill/references/google-ads/rules/google-ads-account-audit-assets.md +3 -3
  19. package/dist/skill/references/google-ads/rules/google-ads-creative-optimization.md +87 -36
  20. package/dist/skill/references/google-ads/rules/google-ads-launch-plan-template.md +3 -3
  21. package/dist/skill/references/google-ads/rules/google-ads-pmax-guide.md +1 -1
  22. package/dist/skill/references/meta-ads/meta-ads.md +1 -1
  23. package/dist/skill/references/misc/tso-home.md +2 -2
  24. package/dist/skill/report-templates/meta-period-report.html +7 -2
  25. package/dist/skill/scripts/install.ps1 +3 -3
  26. package/dist/skill/scripts/install.sh +3 -3
  27. package/package.json +1 -1
package/README.md CHANGED
@@ -43,7 +43,7 @@ HTML 报告模板外部资源:**ECharts** 统一使用 `https://staticpn.siluz
43
43
  在**用户的目标项目根目录**执行(根据用户使用的助手选择 `--ai`):
44
44
 
45
45
  ```bash
46
- npm install -g siluzan-tso-cli
46
+ npm install -g siluzan-tso-cli@beta
47
47
  siluzan-tso init --ai cursor # 写入 Cursor(默认)
48
48
  siluzan-tso init --ai cursor,claude # 同时写入多个平台
49
49
  siluzan-tso init --ai all # 写入所有支持的平台
@@ -51,6 +51,7 @@ siluzan-tso init -d /path/to/skills # 写入自定义目录
51
51
  siluzan-tso init --force # 强制覆盖已存在文件
52
52
  ```
53
53
 
54
+ > **注意**:当前为测试版(1.1.50-beta.2),供内部测试使用。正式发布后安装命令将改为 `npm install -g siluzan-tso-cli`。
54
55
 
55
56
  | 助手 | 建议 `--ai` |
56
57
  | ----------------------- | ------------------------------------ |
package/dist/index.js CHANGED
@@ -4018,7 +4018,7 @@ var DEFAULT_API_BASE;
4018
4018
  var init_defaults = __esm({
4019
4019
  "src/config/defaults.ts"() {
4020
4020
  "use strict";
4021
- DEFAULT_API_BASE = "https://tso-api.siluzan.com";
4021
+ DEFAULT_API_BASE = "https://tso-api-ci.siluzan.com";
4022
4022
  }
4023
4023
  });
4024
4024
 
@@ -140729,7 +140729,7 @@ configureCliJsonSnapshot({
140729
140729
  configureSiluzanClientIdentity({ client: "tso-cli", resolveVersion: getVersion });
140730
140730
  var program = new Command6();
140731
140731
  program.name("siluzan-tso").description(
140732
- "Siluzan \u5E7F\u544A\u8D26\u6237\u7BA1\u7406\uFF1A\u8D26\u6237\u67E5\u8BE2\u3001\u4F59\u989D\u3001\u6295\u653E\u6570\u636E\u3001\u5F00\u6237\u7533\u8BF7\uFF08Google/TikTok/Yandex/Bing\uFF09\u3001\n\u8D26\u53F7\u5206\u4EAB/\u89E3\u7ED1\u3001\u4F18\u5316\u62A5\u544A\u3001Google/Meta/TikTok/Bing/Yandex \u8D26\u6237\u5206\u6790\u3001Google \u5E7F\u544A\u8BCA\u65AD\u62A5\u544A\uFF08google-ads-diagnosis render\uFF09\u3001\u7F51\u7AD9\u8BCA\u65AD\uFF08website-diagnosis\uFF09\u3001\u6218\u7565\u5E02\u573A\u5206\u6790\uFF08market-analysis\uFF0CAgent \u751F\u6210\u62A5\u544A\uFF09\u3001\u5145\u503C\u8F6C\u8D26\u3001\u5F00\u7968\u3001\u667A\u80FD\u9884\u8B66\u3001Google \u5E7F\u544A\u7BA1\u7406\uFF08\u542B\u5F02\u6B65\u6279\u91CF\uFF09\u3002"
140732
+ "Siluzan \u5E7F\u544A\u8D26\u6237\u7BA1\u7406\uFF1A\u8D26\u6237\u67E5\u8BE2\u3001\u4F59\u989D\u3001\u6295\u653E\u6570\u636E\u3001\u5F00\u6237\u7533\u8BF7\uFF08Google/TikTok/Yandex/Bing/Meta\uFF09\u3001\n\u8D26\u53F7\u5206\u4EAB/\u89E3\u7ED1\u3001\u4F18\u5316\u62A5\u544A\u3001Google/Meta/TikTok/Bing/Yandex \u8D26\u6237\u5206\u6790\u3001Google \u5E7F\u544A\u8BCA\u65AD\u62A5\u544A\uFF08google-ads-diagnosis render\uFF09\u3001\u7F51\u7AD9\u8BCA\u65AD\uFF08website-diagnosis\uFF09\u3001\u6218\u7565\u5E02\u573A\u5206\u6790\uFF08market-analysis\uFF0CAgent \u751F\u6210\u62A5\u544A\uFF09\u3001\u5145\u503C\u8F6C\u8D26\u3001\u5F00\u7968\u3001\u667A\u80FD\u9884\u8B66\u3001Google \u5E7F\u544A\u7BA1\u7406\uFF08Search/PMax\uFF0C\u542B\u5F02\u6B65\u6279\u91CF\uFF09\u3001Meta Instant Form \u7EBF\u7D22\u5E7F\u544A\uFF08meta-ad\uFF09\u3002"
140733
140733
  ).version(getVersion());
140734
140734
  program.option("--commit <text>", "\u5199\u64CD\u4F5C\u8BF4\u660E\uFF1B\u8BB0\u5165\u672C\u673A\u5199\u5BA1\u8BA1 JSONL");
140735
140735
  program.hook("preAction", async () => {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: siluzan-tso
3
- description: 丝路赞 TSO 广告平台(Google/Bing/Yandex/TikTok/MetaAd),凡涉及丝路赞/TSO、投广告、出价预算、广告账户管理,或需要做行业分析/市场分析/行业分析报告(含「写一份 XX 行业报告」「电商/制造/医疗等行业报告」「市场调查/战略市场/KA 市场报告」「竞品/GTM/市场格局/行业趋势」等,无论是否提及丝路赞/广告/客户)须加载本 skill。【§零·最高优先】网址/域名/官网+诊断/检测/监测/评估/体检/报告/符合投放要求/能不能投(含「网络诊断」混说)→P8 website-diagnosis collect(禁纯WebFetch/肉眼看页),禁止P9/P1/W3、禁止A/B/C/D追问;细则见 intent-routing.md §零。【§零·B·次高优先】未命中§零时,行业/市场分析报告类话术→必走P9 market-analysis collect+render出HTML,禁止纯WebSearch/WebFetch在对话里写Markdown/HTML当终稿、禁止改走P8/P1/P4/W5/google-analysis;细则见 references/core/intent-routing.md §零·B。【§零·C·关键词规划】Google Ads/谷歌广告拓词、关键词规划/推荐、Keyword Planner、长尾关键词、月搜索量/搜索量、竞争度、核心词/种子词扩词(含「阅读网址/文章/页面后针对核心词出带搜索量词表」,无论是否提及丝路赞/TSO/账户)→必走W5 keyword -k … --google-only --json-out,禁止WebSearch/WebFetch编造搜索量当终稿;细则见 references/core/intent-routing.md §零·C。【报告/诊断消歧】其余报告类话术禁止默认某一CLI——行业/市场/战略/行业分析报告→P9 market-analysis(必走collect+render,禁止纯WebSearch代替);Google账户ID+健康诊断→P1 google-ads-diagnosis;账户ID+周期/月度→P4;Meta/TikTok/Bing周期→P4/P4-FB;多账户对比→P3/P5;OKKI周报→P6;Google询盘→P7;官网+明确要搜索广告方案/campaign JSON→W3;Meta Instant Form 线索广告→W13;仅要词表+搜索量/竞争度→W5;平台优化报告列表/推送→W7;对象仍不清→Read intent-routing.md。【账户】列表/余额/消耗/激活账单(W1)、多账户余额预警 balance-scan(P2)、多户消耗汇总 accounts-digest(P3)、五大媒体开户与进度(W2)、分享/解绑/MCC/BC/BM/权限(W9)。【投放】Google **仅支持搜索广告(Search)与 PMax**(不支持展示广告 Display);搜索系列方案与 campaign-validate/create(W3)、系列/组/广告/关键词 CRUD/拒审、PMax 创建与素材、AI智投草稿 batch(W4)、拓词 keyword -k(W5)、AI广告优化 optimize(W6)、优化合规 SOP;Meta Instant Form 线索广告 meta-ad validate/create(W13)。【财务】充值/钱包、转账记录、发票/开票/抬头(W8);写操作审计与 restore。【运营】智能预警 forewarning 创建/启停/记录(W10)、TikTok/Meta 线索 clue(W11)、日周巡检(W12)、宿主编排/投放自控/异常监控(hosted-automation)。【其他】RAG 知识库检索、Meta/Facebook 周期与诊断 HTML、Google/Meta 周期 Excel、多账户 google-analysis-batch。
3
+ description: 丝路赞 TSO 广告平台(Google/Bing/Yandex/TikTok/MetaAd),凡涉及丝路赞/TSO、投广告、出价预算、广告账户管理,或需要做行业分析/市场分析/行业分析报告(含「写一份 XX 行业报告」「电商/制造/医疗等行业报告」「市场调查/战略市场/KA 市场报告」「竞品/GTM/市场格局/行业趋势」等,无论是否提及丝路赞/广告/客户)须加载本 skill。【§零·最高优先】网址/域名/官网+诊断/检测/监测/评估/体检/报告/符合投放要求/能不能投(含「网络诊断」混说)→P8 website-diagnosis collect(禁纯WebFetch/肉眼看页),禁止P9/P1/W3、禁止A/B/C/D追问;细则见 intent-routing.md §零。【§零·B·次高优先】未命中§零时,行业/市场分析报告类话术→必走P9 market-analysis collect+render出HTML,禁止纯WebSearch/WebFetch在对话里写Markdown/HTML当终稿、禁止改走P8/P1/P4/W5/google-analysis;细则见 references/core/intent-routing.md §零·B。【§零·C·关键词规划】Google Ads/谷歌广告拓词、关键词规划/推荐、Keyword Planner、长尾关键词、月搜索量/搜索量、竞争度、核心词/种子词扩词(含「阅读网址/文章/页面后针对核心词出带搜索量词表」,无论是否提及丝路赞/TSO/账户)→必走W5 keyword -k … --google-only --json-out,禁止WebSearch/WebFetch编造搜索量当终稿;细则见 references/core/intent-routing.md §零·C。【报告/诊断消歧】其余报告类话术禁止默认某一CLI——行业/市场/战略/行业分析报告→P9 market-analysis(必走collect+render,禁止纯WebSearch代替);Google账户ID+健康诊断→P1 google-ads-diagnosis;账户ID+周期/月度→P4;Meta/TikTok/Bing周期→P4/P4-FB;多账户对比→P3/P5;OKKI周报→P6;Google询盘→P7;官网+明确要搜索广告方案/campaign JSON→W3;Meta Instant Form 线索广告→W13;仅要词表+搜索量/竞争度→W5;平台优化报告列表/推送→W7;对象仍不清→Read intent-routing.md。【账户】列表/余额/消耗/激活账单(W1)、多账户余额预警 balance-scan(P2)、多户消耗汇总 accounts-digest(P3)、五大媒体开户与进度(W2)、分享/解绑/MCC/BC/BM/权限(W9)。【投放】**搭建仅 Google+Meta**:Google Search/PMax(W3,无 Display;含 CRUD/PMax/batch W4);Meta Instant Form(W13)。TikTok/Bing/Yandex **不能建广告**。另:拓词 W5、optimize W6。【财务】充值/钱包、转账记录、发票/开票/抬头(W8);写操作审计与 restore。【运营】智能预警 forewarning 创建/启停/记录(W10)、TikTok/Meta 线索 clue(W11)、日周巡检(W12)、宿主编排/投放自控/异常监控(hosted-automation)。【其他】RAG 知识库检索、Meta/Facebook 周期与诊断 HTML、Google/Meta 周期 Excel、多账户 google-analysis-batch。
4
4
  license: MIT
5
5
  compatibility: 需要 Node.js 18+、已安装 siluzan-tso-cli,通过 send-login-code + login 或 config set 完成鉴权
6
6
  metadata:
@@ -42,6 +42,7 @@ siluzan-tso -h
42
42
  - **Google CID 特殊性**:UI 常写 `123-456-7890`(带连字符),平台 `mediaCustomerId` 为纯数字 `1234567890`。CLI 会自动去连字符;**勿**把带横杠 403 误判为 OAuth 失效。优先用 `list-accounts` 的纯数字 ID。
43
43
  - **禁止臆测授权过期**:见 403/`HTTP 403`/拉数失败/「可能 OAuth 失效」时,**禁止**口头推断授权过期或直接 `reauth`。须先核验 ID(及 Google 连字符)。**`account check-access` 仅支持 Google**(无 `-m`,禁止对 TikTok/Meta/Bing/Yandex 调用):Google 跑 `account check-access -a <mediaCustomerId>`,以 `accessible` / `reauth_required` / `no_permission` 为准;非 Google 看 `list-accounts` 的 `invalidOAuthToken`。仅当 `list-accounts` 输出含激活字段且可判定未激活时才跳过用其判断授权过期;细则见 `accounts-permissions.md`。
44
44
  - **Google 广告命令名**:列表是 `ad campaigns`(不是 `ad-campaigns` / `campaign list`);`balance`/`stats` 须带 `-m Google`;单国地域用 `ad geo search … --json-out`(或 `geo resolve`)。
45
+ - **广告搭建媒体边界**:仅 **Google**(`ad`,Search + PMax)与 **Meta**(`meta-ad`,Instant Form 线索)。TikTok / BingV2 / Yandex **不能**创建或改广告结构;用户要搭建时须说明不支持,可改做账户分析(P4)或开户(W2)。**禁止**用 `ad` 冒充 Meta,**禁止**用 `meta-ad` 冒充 Google。
45
46
  - **Google 广告类型边界**:CLI/Skill **仅支持** Google **搜索广告(Search)** 与 **Performance Max(PMax)** 的方案、创建与精细管理;**不支持展示广告(Display)**(含自适应展示广告 RDA、独立 Display 系列)。用户要做展示广告时须明确告知不支持,可改推 Search / PMax;**禁止**用 `campaign-create` / `ad-create` 伪装创建 Display。
46
47
  - **创建完成后交付(硬性)**:`ad batch diff` 的 stdout 含 `BEGIN_USER_DELIVERY_MARKDOWN`…`END_USER_DELIVERY_MARKDOWN`——**立刻**把中间全文原样发给用户(可先于补建);禁止只摘要、禁止只说「创建成功/详情已交付/未发现缺失」、禁止等全部补建结束再交付。
47
48
  - `list-accounts` 无余额/消耗;列全部用 `--page-size 999`。
@@ -53,6 +54,16 @@ siluzan-tso -h
53
54
 
54
55
  ---
55
56
 
57
+ ## 媒体能力(搭建 vs 分析)
58
+
59
+ | 媒体 | 广告搭建 | 账户分析 | 说明 |
60
+ | ---- | -------- | -------- | ---- |
61
+ | **Google** | Search + PMax(`ad`,W3/W4) | `google-analysis` | 不支持 Display |
62
+ | **MetaAd** | Instant Form 线索(`meta-ad`,W13) | `facebook-analysis` | 无视频 / Advantage+ / 系列列表 |
63
+ | **TikTok** | **不支持** | `tiktok-analysis` | 已有留资走 `clue`(W11) |
64
+ | **BingV2** | **不支持** | `bing-analysis` | 只读巡检 |
65
+ | **Yandex** | **不支持** | `yandex-analysis` | 只读巡检 |
66
+
56
67
  ## 路由表(意图 → 工作流 → 必读文档)
57
68
 
58
69
  > 写操作 / 报告交付 / 批量拉数 / 对用户回复 → Read `agent-conventions.md`。找不到行 → 澄清或 Read `intent-routing.md`(勿整本加载 `references/README.md`)。
@@ -72,6 +83,12 @@ siluzan-tso -h
72
83
  | 充值 / 钱包 / 转账 / 发票 / 抬头 | W8 | `references/accounts/finance.md` |
73
84
  | 审计 / 误操作恢复 | — | `references/accounts/write-audit-restore.md` |
74
85
 
86
+ ### 不支持的广告搭建
87
+
88
+ | 用户意图(关键词) | 工作流 | 必读文档 |
89
+ | ------------------ | ------ | -------- |
90
+ | 建 TikTok / Bing / Yandex 广告 | — | **不支持搭建**。说明后可改做账户分析(P4)或开户(W2);勿用 `ad` / `meta-ad` 伪装 |
91
+
75
92
  ### Google 广告投放
76
93
 
77
94
  > **类型边界**:仅 **Search** + **PMax**;**不支持 Display(展示广告)**。详见 `references/google-ads/google-ads.md` Gotchas。
@@ -90,7 +107,7 @@ siluzan-tso -h
90
107
 
91
108
  ### Meta 广告投放
92
109
 
93
- > **类型边界**:仅 **Instant Form 线索广告**;无视频 / Advantage+ / 系列列表。拉已有线索走 **W11**;周期报告走 **P4-FB**。
110
+ > **类型边界**:仅 **Instant Form 线索广告**;无视频 / Advantage+ / 系列列表。拉已有线索走 **W11**;周期报告走 **P4-FB**。TikTok / Bing / Yandex **不能**走本表搭建。
94
111
 
95
112
  | 用户意图(关键词) | 工作流 | 必读文档 |
96
113
  | ------------------ | ------ | -------- |
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "slug": "siluzan-tso",
3
- "version": "1.1.49",
4
- "publishedAt": 1788320087878
3
+ "version": "1.1.50-beta.2",
4
+ "publishedAt": 1788405195474
5
5
  }
@@ -249,6 +249,8 @@ siluzan-tso ad batch diff --batch-id <taskId> --config-file ./campaign.json --js
249
249
 
250
250
  ### 创意块(`AdsForBatchJob[j]`,RSA)
251
251
 
252
+ 文案按 `references/google-ads/rules/google-ads-creative-optimization.md` **1.2 / 1.3**:先定 B2B/B2C,写满 15 标题 + 4 描述;禁止空话与无活动促销。`campaign-validate` 还拦:组内标题重复、**不同广告组共用同一标题**。
253
+
252
254
  | 字段 | 类型 | 必填 | 说明 |
253
255
  | ---------------------------------- | -------------- | :--: | ------------------------------------------------------------------------------------------------------------------------------- |
254
256
  | `TypeV2` | string | | RSA 填 `RESPONSIVE_SEARCH_AD` |
@@ -167,7 +167,7 @@ siluzan-tso account-history --start 2026-03-01 --end 2026-03-31 --json-out ./sna
167
167
  | 状态 | 含义 | 下一步操作 |
168
168
  | ---------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
169
169
  | `Pending` | 审核中 | 等待,可反复运行此命令轮询;审核周期因媒体而异 |
170
- | `Approved` | 审核通过 | 运行 `list-accounts -m <媒体>` 确认账户已出现;引导用户充值激活(`config show` 取 `webUrl`,按 `finance.md` 打开对应媒体充值页;例如 Google 为 `https://www.siluzan.com/v3/foreign_trade/tso/recharge/pay?mediaType=Google`;Yandex 当前没有对应充值界面) |
170
+ | `Approved` | 审核通过 | 运行 `list-accounts -m <媒体>` 确认账户已出现;引导用户充值激活(`config show` 取 `webUrl`,按 `finance.md` 打开对应媒体充值页;例如 Google 为 `https://www-ci.siluzan.com/v3/foreign_trade/tso/recharge/pay?mediaType=Google`;Yandex 当前没有对应充值界面) |
171
171
  | `Rejected` | 被拒 | 查看 `--json-out` 落盘中的 `reason` 字段了解拒绝原因;修改资料后重新提交;若原因不明,引导用户联系丝路赞客服 |
172
172
 
173
173
  ---
@@ -490,7 +490,7 @@ siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --res
490
490
 
491
491
  | 功能 | 媒体 | 网页路径 |
492
492
  | --------------------------------------- | ------ | ------------------------------------------------- |
493
- | **账户激活**(邀请他人激活 / 充值激活) | Google | `https://www.siluzan.com/v3/foreign_trade/tso/manageAccounts` |
493
+ | **账户激活**(邀请他人激活 / 充值激活) | Google | `https://www-ci.siluzan.com/v3/foreign_trade/tso/manageAccounts` |
494
494
 
495
495
  **Agent 建议话术**:
496
496
 
@@ -499,5 +499,5 @@ siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --res
499
499
  siluzan-tso config show # 查看 webUrl 字段
500
500
 
501
501
  # 账户激活(Google)→ 引导至账户管理页
502
- # https://www.siluzan.com/v3/foreign_trade/tso/manageAccounts
502
+ # https://www-ci.siluzan.com/v3/foreign_trade/tso/manageAccounts
503
503
  ```
@@ -126,7 +126,7 @@ siluzan-tso config show
126
126
 
127
127
  ### 充值页链接(按媒体 × 类型)
128
128
 
129
- 链接模式:`https://www.siluzan.com/v3/foreign_trade/tso/recharge/<page>?mediaType=<mediaType>`;丝路赞钱包:`https://www.siluzan.com/v3/foreign_trade/tso/recharge/siluzanWallet`(无媒体参数)。
129
+ 链接模式:`https://www-ci.siluzan.com/v3/foreign_trade/tso/recharge/<page>?mediaType=<mediaType>`;丝路赞钱包:`https://www-ci.siluzan.com/v3/foreign_trade/tso/recharge/siluzanWallet`(无媒体参数)。
130
130
 
131
131
  | 充值类型 | `<page>` | 支持媒体(`mediaType` 参数) |
132
132
  | ------------------------- | --------------------- | ------------------------------------------- |
@@ -1,6 +1,6 @@
1
1
  # 各媒体开户
2
2
 
3
- > 网页链接:`https://www.siluzan.com/v3/foreign_trade/tso/accountOpeningHistory?tso=%2Fv3umijs%2Ftso%2FaccountOpeningHistory`
3
+ > 网页链接:`https://www-ci.siluzan.com/v3/foreign_trade/tso/accountOpeningHistory?tso=%2Fv3umijs%2Ftso%2FaccountOpeningHistory`
4
4
  > 多命令串联见 `references/core/workflows.md` § 流程一。
5
5
 
6
6
  ## Contents
@@ -65,7 +65,7 @@ siluzan-tso open-account google-wizard
65
65
 
66
66
  ```bash
67
67
  siluzan-tso account-history -m Google
68
- # 审核通过后:config show → https://www.siluzan.com/v3/foreign_trade/tso/recharge/pay?mediaType=Google
68
+ # 审核通过后:config show → https://www-ci.siluzan.com/v3/foreign_trade/tso/recharge/pay?mediaType=Google
69
69
  ```
70
70
 
71
71
  ---
@@ -1,6 +1,6 @@
1
1
  # rag:知识库检索(TSO 广告投放辅助)
2
2
 
3
- 知识库管理页面在 https://www.siluzan.com/knowledge-base/
3
+ 知识库管理页面在 https://www-ci.siluzan.com/knowledge-base/
4
4
 
5
5
  为 **广告投放、账户分析、拓词、诊断报告** 等 TSO 业务提供**企业已入库**的产品、行业、客户背景事实依据。
6
6
 
@@ -190,9 +190,9 @@ siluzan-tso report push receive-emails -m Google [--json-out ./snap]
190
190
 
191
191
  | 媒体 | 报告类型 | URL 模板 |
192
192
  | ------ | ---------------- | ----------------------------------------------------------- |
193
- | Google | 日报(Daily) | `https://www.siluzan.com/media-report/publish/{entityId}?culture=zh-CN` |
194
- | Google | 小时报(Hourly) | `https://www.siluzan.com/media-report/hour/{entityId}?culture=zh-CN` |
195
- | TikTok | 日报 | `https://www.siluzan.com/media-report/publish/{entityId}?culture=zh-CN` |
193
+ | Google | 日报(Daily) | `https://www-ci.siluzan.com/media-report/publish/{entityId}?culture=zh-CN` |
194
+ | Google | 小时报(Hourly) | `https://www-ci.siluzan.com/media-report/hour/{entityId}?culture=zh-CN` |
195
+ | TikTok | 日报 | `https://www-ci.siluzan.com/media-report/publish/{entityId}?culture=zh-CN` |
196
196
 
197
197
  `entityId` 来自 `siluzan-tso report list --json-out ./snap` 中每条记录的 `entityId` 字段。
198
198
 
@@ -205,8 +205,8 @@ siluzan-tso report list -m Google --json-out ./snap
205
205
 
206
206
  # 第二步:查看 webUrl
207
207
  siluzan-tso config show
208
- # webUrl: https://www.siluzan.com
208
+ # webUrl: https://www-ci.siluzan.com
209
209
 
210
210
  # 第三步:拼接链接(Google 日报)
211
- # https://www.siluzan.com/media-report/publish/rpt_abc123?culture=zh-CN
211
+ # https://www-ci.siluzan.com/media-report/publish/rpt_abc123?culture=zh-CN
212
212
  ```
@@ -244,6 +244,7 @@
244
244
  | 「出 **Facebook / Meta 线索广告方案** / 要表格」 | **W13** 仅出方案 + `meta-ad plan-render`(禁止 Agent 手写表) | 误走 W3;跳过 JSON 直接手填表;因缺账户阻塞 |
245
245
  | 「把 Meta **表单留资拉下来**」 | **W11** `clue -m Meta` | 误走 W13 去建广告 |
246
246
  | 「做 **展示广告** / Display / 自适应展示广告(RDA)」 | **不支持**(告知用户;可改推 Search / PMax → W3) | 误用 `campaign-create` / `ad-create` 伪装 Display |
247
+ | 「建 **TikTok / 抖音 / Bing / Yandex** 广告」 | **不支持搭建**(告知后可改 P4 分析或 W2 开户) | 误用 Google `ad` 或 Meta `meta-ad` 伪装 |
247
248
  | 「读**网址/文章** + **核心词** + 要 **月搜索量/竞争度** 长尾词表」 | **W5(§零·C)** | 纯 WebSearch 编数;误走 P8/P9/W3 |
248
249
  | 只要 **Keyword Planner / 拓词** 指标,不要 campaign JSON | **W5** | 误走 W3 走 validate/create |
249
250
 
@@ -269,6 +270,7 @@
269
270
  | `昨日零询盘` / `零询盘账户` / `0 转化` / `有消耗无转化`(**无 CRM 附件**) | **P3(§零·D)** | `--zero-conversions`;**不是 P7** |
270
271
  | `根据 … 生成 Google **搜索**广告` / `搜索广告方案` / `关键词表` + 官网 URL | **W3** | ≠ P8 ≠ P9;若同时要 **搜索量/竞争度** → **W5** |
271
272
  | `展示广告` / `Display 广告` / `自适应展示广告` / `RDA`(要创建/出方案) | **不支持** | 仅 Search + PMax;告知后可改推 W3 |
273
+ | `建 TikTok 广告` / `建抖音广告` / `建 Bing 广告` / `建 Yandex 广告` | **不支持搭建** | 可改 P4 账户分析或 W2 开户;禁止 `ad` / `meta-ad` |
272
274
  | **月搜索量** / **竞争度** / **Keyword Planner** / **长尾关键词** / **针对核心词推荐** | **W5(§零·C)** | 必 `keyword --google-only` |
273
275
  | `丝路赞` / `Siluzan` + `优化报告列表` / `报告推送` | **W7** | ≠ 自拉数 P1/P4 |
274
276
 
@@ -283,6 +285,7 @@
283
285
  | **XX 行业 / 市场分析 / 战略**(**且无 URL + 诊断类词**) | P8、P1、P4、W3 |
284
286
  | **Google 账户 ID / 消耗 / 系列 / 关键词**(**且无 URL + 诊断类词**) | P8、P9 |
285
287
  | **生成搜索广告 / 投放方案**(完整 campaign 结构) | P8、P9、P5、W5 |
288
+ | **建 TikTok / Bing / Yandex 广告** | W3、W13(禁止用 Google `ad` 或 Meta `meta-ad` 伪装) |
286
289
  | **§零·C 命中**(拓词 / 月搜索量 / 竞争度 / Keyword Planner) | P8、P9、P1、P4;**禁止**纯 WebSearch 代替 `keyword` |
287
290
  | **OKKI** | P4 默认周期 |
288
291
  | **§零·D 命中**(转化成本 / CPA / 零转化 / 零询盘且无 CRM) | P7、P4、P1;**禁止**猜 `--period`;须交付表或「无命中」 |
@@ -330,6 +333,8 @@
330
333
  | Google Ads 关键词规划 W5(100% 走 `keyword` CLI) | **§零·C**、§二 W5、§三、§四 |
331
334
  | 转化成本 / CPA / 零转化巡检 P3 | **§零·D**、§二 P3、§三、§四 |
332
335
  | Google 广告投放 W3 | §二 W3、§四 |
336
+ | Meta Instant Form W13 | §二 W13 |
337
+ | TikTok / Bing / Yandex 建广告 | **不支持**(§二 / §三) |
333
338
  | TSO 平台优化报告 W7 | §二 W7、§三 |
334
339
  | `agent-preamble.md` 消歧摘要 | **§零** + **§零·B** + **§零·D** + §二 P8/P9/W3 段 |
335
340
 
@@ -10,7 +10,7 @@
10
10
  ## 安装 CLI
11
11
 
12
12
  ```bash
13
- npm install -g siluzan-tso-cli
13
+ npm install -g siluzan-tso-cli@beta
14
14
  ```
15
15
 
16
16
  ---
@@ -64,7 +64,7 @@ siluzan-tso config set --api-key <Key> # 或 config 直接写入
64
64
  siluzan-tso config set --token <Token> # 备用:设置 JWT Token
65
65
  ```
66
66
 
67
- API Key 获取入口:`https://www.siluzan.com/v3/foreign_trade/settings/apiKeyManagement`
67
+ API Key 获取入口:`https://www-ci.siluzan.com/v3/foreign_trade/settings/apiKeyManagement`
68
68
 
69
69
  ```bash
70
70
  # 第 1 步:让用户报出手机号后,立刻发码(命令立即返回,不会等待输入)
@@ -127,9 +127,9 @@ siluzan-tso config show
127
127
 
128
128
  ```
129
129
  构建环境 : production
130
- apiBaseUrl : https://tso-api.siluzan.com
131
- googleApiUrl : https://googleapi.mysiluzan.com
132
- webUrl : https://www.siluzan.com
130
+ apiBaseUrl : https://tso-api-ci.siluzan.com
131
+ googleApiUrl : https://googleapi-ci.mysiluzan.com
132
+ webUrl : https://www-ci.siluzan.com
133
133
  apiKey : abcd****1234
134
134
  ```
135
135
 
@@ -1,6 +1,7 @@
1
1
  # 工作流目录 · 操作 / 管理类(W1–W13)
2
2
 
3
3
  > **范围**:调接口 / 写操作类业务(账户读取、开户、广告 CRUD、智投、拓词、优化、报告推送、财务、权限、预警、线索、巡检)。分析/报告类(拉数 → 撰稿 → 交付)见 `references/core/playbooks.md`(P1–P9)。
4
+ > **广告搭建**:仅 **W3**(Google Search/PMax)与 **W13**(Meta Instant Form)。TikTok / BingV2 / Yandex **没有**搭建工作流。
4
5
  > **通用纪律见 `references/core/agent-conventions.md`**(写操作确认 + `--commit`、写后成败报告、ID 口径);各卡片只写线性步骤。卡片字段:`触发 / 必读 / 步骤 / 产物`。完整参数表见「必读」指向的命令文档。
5
6
 
6
7
  | 编号 | 业务 | 必读 |
@@ -88,7 +88,7 @@
88
88
  | `references/google-ads/rules/sensitive-industries.md` | 敏感行业(若相关) |
89
89
  | `references/google-ads/rules/google-ads-launch-plan-template.md` | 搜索审查稿结构;Agent 写代码从 JSON 投影 |
90
90
  | `references/google-ads/rules/google-ads-pmax-launch-plan-template.md` | PMax 审查稿结构;Agent 写代码从 JSON 投影 |
91
- | `references/google-ads/rules/google-ads-creative-optimization.md` | RSA 创意主题;`campaign-validate` 强制 **15** 标题 + **4** 描述 |
91
+ | `references/google-ads/rules/google-ads-creative-optimization.md` | RSA **B2B/B2C 满 15+4 配方**;`campaign-validate` 强制 **15** 标题 + **4** 描述 |
92
92
  | **`assets/campaign-create-template.json`** + `assets/campaign-create-template.md` | JSON 结构(先 Read `.json`)+ 字段说明 |
93
93
 
94
94
  ### 按需(触及时再读)
@@ -12,6 +12,8 @@
12
12
 
13
13
  用户明确要求展示广告时:如实告知不支持,可改推 Search 或 PMax;**禁止**用搜索系列 JSON / `ad-create`(RSA)冒充 Display。
14
14
 
15
+ Meta / Facebook 线索广告走 **`meta-ad`(W13)**,**禁止**用本命令族的 `ad`。TikTok / Bing / Yandex **没有**广告搭建命令。
16
+
15
17
  > 账户内若已有 Display 系列,`ad campaigns` 等**只读列表**仍可能见到(`channelTypeV2` 含 `DISPLAY`);本 Skill **不对**其做方案/创建/精细写管理。
16
18
 
17
19
  ## 何时 Read
@@ -94,9 +94,9 @@ siluzan-tso ad extension list -a <CID>
94
94
  | ---------------- | -------- | ---------- | ---------------------------- |
95
95
  | 标题 | 3 | 15(上限) | 广告强度降低,组合测试不充分 |
96
96
  | 描述 | 2 | 4(上限) | 同上 |
97
- | 包含关键词的标题 | >= 2 | 5+ | 相关性降低,QS 受影响 |
98
- | 独特卖点标题 | >= 2 | 3+ | 差异化不足 |
99
- | CTA 标题 | >= 1 | 2+ | 缺乏行动号召 |
97
+ | 包含关键词的标题 | >= 2 | 2–3(勿堆满 15 条) | 相关性降低,或关键词堆砌 |
98
+ | 独特卖点标题 | >= 3 | 3+ | 差异化不足;对照 1.2 配方 |
99
+ | CTA 标题 | >= 1 | 2 | 缺乏行动号召;B2B/B2C 用词勿混 |
100
100
 
101
101
  ### 7.3 广告组广告数量
102
102
 
@@ -22,42 +22,91 @@
22
22
 
23
23
  ## 一、RSA 优化策略
24
24
 
25
- ### 1.1 数量目标
25
+ ### 1.1 数量目标(两条命令门槛不同)
26
26
 
27
- | 素材 | 最少 | 推荐 | 上限 | 字符限制 |
28
- | ------------ | ---- | ------ | ---- | --------- |
29
- | Headlines | 3 | **15** | 15 | 每条 30 |
30
- | Descriptions | 2 | **4** | 4 | 每条 90 |
27
+ | 入口 | 标题 | 描述 | 谁在拦 |
28
+ | ---- | ---- | ---- | ------ |
29
+ | **`ad campaign-validate` / `campaign-create` JSON** | **必须 15** | **必须 4** | CLI 硬错误,少一条都不过 |
30
+ | **`ad ad-create` / `ad-edit`** | 3–15 | 2–4 | CLI Google 下限拦;W3 出方案仍按 15+4 写 |
31
31
 
32
- 15 headline + 4 description = 最多 43,680 种组合,给算法充足测试空间。
32
+ 每条标题 ≤30、描述 ≤90、Path ≤15(CJK/全角按 2 计)。W3 出方案一律按 15+4,不要用「最少 3 条」凑 JSON。
33
33
 
34
- ### 1.2 Headline 六类主题法
34
+ **代码会拦(validate/create)**:组内标题重复(trim + 忽略大小写);**不同广告组不得共用同一条标题**。**代码不拦**:B2B/B2C 槽位、换皮同义、无依据促销、Pin(CLI 写不了图钉)。
35
35
 
36
- 15 headline 时按以下 6 类分配,确保多样性:
36
+ 先判定 **B2B B2C**(用户口头、官网受众、询盘 vs 加购)。整组 RSA 只用**一套**配方,禁止同一条广告里 B2B「Request Quote」和 B2C「Shop Now」混写。判定不清时先问一句;问不了则按落地页主 CTA 推断(Quote/Demo/OEM → B2B;Buy/Cart/Shipping → B2C)。
37
37
 
38
- | 类别 | 数量 | 示例 |
39
- | ------------------- | ------ | --------------------------------------------- |
40
- | **关键词相关** | 3-4 条 | "Affordable CRM Software"、"专业跑步鞋" |
41
- | **价值主张** | 3-4 条 | "Save 40% on Your First Year"、"轻量透气设计" |
42
- | **行动号召(CTA)** | 2-3 条 | "Start Your Free Trial Today"、"立即获取报价" |
43
- | **社会证明/信任** | 2-3 条 | "Trusted by 10,000+ Businesses"、"五星好评" |
44
- | **品牌** | 1-2 条 | "Official [Brand] Store"、"[品牌]官方旗舰" |
45
- | **紧迫/优惠** | 1-2 条 | "Limited Time: 50% Off"、"限时特惠" |
38
+ ### 1.2 Headline:B2B / B2C 满 15 配方
46
39
 
47
- ### 1.3 Description 写作原则
40
+ 用户可见的创意重点如下;**落盘时按「满 15 槽位」写**,不要按建议区间把 12 类全写满(会超 15 条)。某类**没有落地页/RAG 真实依据**时,把该槽补给「产品优势」或「业务价值/用户利益」,**禁止编造**认证、客户数、折扣、交期。
48
41
 
49
- - 每条 description 必须**独立可用**(任何一条可与任何 headline 组合)
50
- - 至少 1 条包含 CTA
51
- - 至少 1 条包含目标关键词
52
- - 避免 description 之间内容重复
42
+ #### 创意重点(生成时对照,不是条数上限)
43
+
44
+ | 类别 | B2B 建议 | B2C 建议 | 怎么写 |
45
+ | ---- | -------- | -------- | ------ |
46
+ | 关键词/产品相关 | 2–3 | 2–3 | 核心关键词 + 产品/服务名 + 搜索意图,一眼看出和查询相关 |
47
+ | 产品优势/核心卖点 | 3–4 | 3–4 | 具体功能、性能、材料、设计、效率;禁止「高质量」「专业」空话 |
48
+ | 目标客户/使用场景 | 1–2 | 1–2 | 适用企业、团队、人群或场景(如 OEM / 家庭厨房) |
49
+ | 业务价值/用户利益 | 2 | 2–3 | B2B:效率、成本、产能、增长;B2C:体验、便利、舒适、效果 |
50
+ | 公司实力/品牌信任 | 2–3 | 1–2 | 年限、工厂、客户类型、行业角色;数字必须来自页面 |
51
+ | 质量/专业性 | 2 | 1–2 | 认证、检测、标准、质保;无认证则写可核验工艺/质检,不写假 ISO |
52
+ | 价格优势 | 2 | 2–3 | 真实价带、MOQ、性价比、透明报价;无公开价可写「工厂报价」「透明定价」 |
53
+ | 服务 | 2 | 1–2 | B2B:咨询、定制、售后、工程支持;B2C:配送、退换、客服 |
54
+ | CTA | 2 | 2–3 | B2B:Quote / Demo / Consultation / Contact;B2C:Shop / Learn More / Get Started |
55
+ | 优惠/促销/紧迫感 | 0–1 | 1–2 | **仅当页面有真实活动/时效**;B2B 默认 0,不强制凑 |
56
+ | 品牌 | 1 | 1–2 | 品牌名或官方身份,自然一句,不要 15 条都带品牌 |
57
+ | 差异化 | 1–2 | 1–2 | 可核对的对比(工厂直供、交期、定制深度);禁止无依据「最好」「第一」 |
58
+
59
+ #### 满 15 槽位(创建/出方案必须按此占满)
60
+
61
+ **B2B(15)**:关键词/产品 2(可含 1 条品牌名)+ 产品优势 3(含 ≥1 条真实差异)+ 场景 1 + 业务价值 2 + 公司实力 2 + 质量/专业 1 + 价格 1 + 服务 1 + CTA 2。优惠默认 0;有真实活动则替换 1 条实力或价格。
62
+
63
+ **B2C(15)**:关键词/产品 2 + 产品优势 3(含 ≥1 条真实差异)+ 场景 1 + 用户利益 2 + 品牌/信任 1 + 质量/口碑 1 + 价格 2 + 服务 1 + CTA 2。有真实优惠则替换 1 条价格或利益。
64
+
65
+ 禁止第 16 条。无依据的槽位补给「产品优势」或「业务价值/用户利益」。
66
+
67
+ **Pin(与审查稿一致)**:H1 固定关键词/产品定位;H2 固定场景或差异(拦错人);其余不 Pin。不要 Pin CTA。
68
+
69
+ #### 标题写作硬规则
70
+
71
+ - **一条一个信息点**;禁止把卖点+CTA+品牌塞进同一条。
72
+ - **互不换皮**:两条不能只改语序或同义词(「Quality Steel Parts」与「High Quality Steel」算重复)。`campaign-validate` **只拦完全相同**(忽略大小写/首尾空格);换皮过得了校验,但禁止出稿。
73
+ - **跨组不共用标题**:多组方案里同一 headline 出现在两个广告组 → `campaign-validate` 报错。每组标题必须重写(可同主题,不能同句)。
74
+ - **关键词标题**用**该广告组**核心词,不要 15 条都堆同一个词;其余标题用卖点/场景,靠组合拿相关性。
75
+ - **具体 > 形容词**:写「304 Stainless / 15-Day Lead Time / ISO 9001」,不写「Premium Quality / Best Service」。
76
+ - 数字、认证、折扣、客户数**必须**能在落地页或 RAG 对上;对不上就删,改写优势/利益。
77
+ - 英文 Title Case 或 Sentence case,禁止全大写、禁止标题感叹号(合规见 `google-ads-compliance-copy.md`)。
78
+ - 中文按 CJK×2 计数(约 ≤15 字)。同一 RSA 不混中英(品牌原文除外)。
79
+
80
+ | 差(禁止出稿) | 好(应对上页面事实) |
81
+ | -------------- | -------------------- |
82
+ | High Quality Products | 304 Stainless Housings |
83
+ | Best Factory / #1 Supplier | ISO 9001 Certified Plant |
84
+ | Professional Service | 15-Day Lead Time |
85
+ | Shop Now + Request Quote 混在同一 RSA | 整组只用 Quote **或** 只用 Shop |
86
+
87
+ ### 1.3 Description:4 条配方
88
+
89
+ 每条必须**独立成句**,与任意 headline 组合都通顺、不自相矛盾。禁止 4 条复述同一句。至少 1 条含该组核心词,至少 1 条含 CTA。
90
+
91
+ | # | B2B 写什么 | B2C 写什么 |
92
+ | - | ---------- | ---------- |
93
+ | D1 | 核心词 + 产品/企业解决方案(对上搜索意图) | 核心词 + 产品 + 用户需求 |
94
+ | D2 | 产品能力 + 效率/成本/产能等企业价值 | 产品特点 + 体验/便利/效果 |
95
+ | D3 | 可核验的经验、质量保障、认证或工艺 | 品牌实力、品质或真实评价口径 |
96
+ | D4 | CTA + 行动理由:Request Quote / Book Demo / Contact Sales / Talk to Expert;可带报价或定制支持 | CTA + 行动理由:Shop / Learn More / Get Started / Explore;可带价格、配送或退换 |
97
+
98
+ 有真实促销时:B2C 把时效写进 **D4 或一条价格标题**;B2B 仍优先报价/样品,不把「限时」当主卖点。
99
+
100
+ 描述硬规则:≤90 字符(中文约 45 字);不重复对应标题的整句;不写邮箱/电话(放 Extension);不承诺页面没有的交期或退款。
53
101
 
54
102
  ### 1.4 Pinning 策略
55
103
 
56
- | 规则 | 说明 |
57
- | --------------- | ----------------------------------------- |
58
- | **默认不 Pin** | Pin 一条 headline 会削减 ~75% 测试组合 |
59
- | 必须 Pin 的场景 | 法律免责声明、品牌名必须出现在位置 1 |
60
- | Pin 的安全做法 | 同一位置 Pin 2-3 条变体,保留部分轮换能力 |
104
+ | 规则 | 说明 |
105
+ | ---- | ---- |
106
+ | **出方案 / 创建默认** | 与审查稿一致:Pin **H1**(关键词/产品)、**H2**(场景或差异)、**D1**(关键词+产品)。其余不 Pin |
107
+ | 不要 Pin CTA | CTA 留给算法与卖点组合 |
108
+ | 额外必须 Pin | 法律免责声明、品牌名依法必须出现在位置 1 |
109
+ | 勿多 Pin | 再 Pin 会大幅削减组合;同一位置若 Pin,放 2–3 条变体 |
61
110
 
62
111
  ### 1.5 每广告组 RSA 数量
63
112
 
@@ -90,12 +139,12 @@
90
139
  ### 2.2 从 Poor → Good/Excellent 的清单
91
140
 
92
141
  ```
93
- 增加到 15 条 headline(或尽量接近)
94
- 增加到 4 description
95
- □ 至少 2-3 条 headline 包含目标关键词
96
- headline 覆盖 6 类主题(1.2 节)
97
- 减少或移除 Pin
98
- □ headline 之间不重复表达
142
+ 写满 15 条 headline、4 条 description(CLI 门禁)
143
+ 已判定 B2B B2C,并按 1.2 / 1.3 配方占槽
144
+ □ 至少 2 条 headline 含该组核心关键词(不要 15 条都堆同一词)
145
+ 产品优势 ≥3 条且具体;无真实优惠则优惠类为 0
146
+ Pin H1(关键词/产品)与 H2(场景或差异);不要 Pin CTA
147
+ □ headline 之间不换皮重复;无依据的「最好/第一」已删
99
148
  ```
100
149
 
101
150
  ### 2.3 Ad Strength 与实际效果的关系
@@ -338,6 +387,8 @@
338
387
  | 描述 | 5 条 | 2 条 | ≤ 90 |
339
388
  | 商家名称 | 1 条 | 1 条 | ≤ 25 |
340
389
 
390
+ 短标题按 **1.2 满 15 配方**(先定 B2B/B2C)。长标题 5 条展开 D1–D4 并加 1 条差异或品牌。描述 5 条 = 1.3 的 D1–D4 + 1 条补充(有真实优惠才写促销,否则补质量/服务)。禁止 15 条短标题全是同义卖点。
391
+
341
392
  ### 8.2 图片要求
342
393
 
343
394
  | 比例 | 推荐尺寸 | 必需 | 建议数量 |
@@ -402,7 +453,7 @@ Google 正在移除 Search 的手动语言定向(2025 年底前)。AI 将根
402
453
  ### 10.1 创建高质量 RSA
403
454
 
404
455
  ```bash
405
- # 按六类主题法准备 15 headline + 4 条 description
456
+ # 先定 B2B/B2C,按 1.2 满 15 配方 + 1.3 四条描述准备文案
406
457
  # 确保每条通过合规检查(google-ads-compliance.md 第十章)
407
458
 
408
459
  siluzan-tso ad ad-create \
@@ -410,8 +461,8 @@ siluzan-tso ad ad-create \
410
461
  --adgroup-id <组ID> \
411
462
  --adgroup-name "核心词_跑步鞋" \
412
463
  --final-url "https://www.example.com/running-shoes" \
413
- --headlines "H1_关键词,H2_关键词,H3_价值,H4_价值,H5_价值,H6_CTA,H7_CTA,H8_信任,H9_信任,H10_品牌,H11_紧迫,..." \
414
- --descriptions "D1_含CTA,D2_含关键词,D3_补充卖点,D4_社会证明" \
464
+ --headlines "H1_关键词,H2_场景或差异,H3_优势,H4_优势,H5_优势,H6_利益,H7_利益,H8_信任,H9_质量,H10_价格,H11_服务,H12_CTA,H13_CTA,H14_品牌,H15_补槽" \
465
+ --descriptions "D1_关键词+产品,D2_优势+价值,D3_实力或口碑,D4_CTA+行动理由" \
415
466
  --path1 "running-shoes" \
416
467
  --path2 "sale"
417
468
  ```
@@ -457,6 +508,6 @@ siluzan-tso ad extension call -a <CID> --country-code "+86" --phone "4008001234"
457
508
  | ------------------------ | ----------------------- | ------------------------------------- |
458
509
  | CTR 低 + QS 广告相关性低 | headline 与关键词不匹配 | 加入含关键词的 headline;考虑 DKI |
459
510
  | CTR 高 + 转化率低 | 落地页不达标 | 检查信息匹配、加载速度、CTA |
460
- | Ad Strength = Poor | 素材太少或多样性差 | 按 1.2 节六类法补齐 |
511
+ | Ad Strength = Poor | 素材太少或多样性差 | 按 1.2 满 15 配方补齐,删换皮标题 |
461
512
  | 所有 headline 评级 Low | 文案方向可能有问题 | 换一批不同角度的 headline,2 周后重评 |
462
513
  | 附加信息不展示 | Ad Rank 不够 | 提升 QS 或出价 |
@@ -21,7 +21,7 @@
21
21
 
22
22
  | 模块 | 推荐 | 说明 |
23
23
  | ------------------ | ---------------------- | -------------- |
24
- | RSA Headlines | 12–15 | 固定📌 见 §3.5 |
24
+ | RSA Headlines | **15(须写满)** | `campaign-validate` 硬门禁;固定📌 见 §3.5 |
25
25
  | RSA Descriptions | 4 | |
26
26
  | Sitelink | 6–8 | |
27
27
  | Callout | 6–8 | 12–15 字符 |
@@ -208,7 +208,7 @@
208
208
  | … | … | … | … |
209
209
  | Headline 15(上限) | {{文案}} | {{N}} | 自由轮换 |
210
210
 
211
- (Headlines **推荐 12–15 条**;主题分配仍参考 `references/google-ads/rules/google-ads-creative-optimization.md` 1.2 六类主题法。)
211
+ (Headlines **必须 15 条**、Descriptions **必须 4 条**;先定 B2B/B2C,按 `references/google-ads/rules/google-ads-creative-optimization.md` **1.2 / 1.3** 占槽。禁止空话标题、禁止无活动硬凑促销。)
212
212
 
213
213
  | 资产类型 | 广告文案 | 字符数 | 后台设置指令 |
214
214
  | ------------- | -------- | ------ | -------------------------- |
@@ -353,7 +353,7 @@ Display URL:`{{domain}}/{{path1}}/{{path2}}`(Path1/Path2 各 ≤ 15 字符
353
353
  | 出价策略(次月) | **产品默认**:近 **30 天满 30 个**约定转化(如表单)后切换 **tCPA**;无足够数据则延续人工或 Max Clicks 并写明条件 |
354
354
  | 关键词(每广告组) | 数量与匹配块建议见 **`google-ads-keyword-taxonomy.md`**;组内意图一致;符号 `[完全]` / `"词组"` / 广泛;策略争议见 `google-ads-keyword-strategy.md` |
355
355
  | 否定词 | **账户级 5 类词包**填满模板表;系列级补充 5–10 条;上线后搜索词**每日**迭代 |
356
- | RSA | **12–15** 标题、**4** 描述;**至少 H1、H2 与 D1** 在表中标注【固定📌】及目标位置与理由;字符合规见第十一章字数≤30 |
356
+ | RSA | **15** 标题、**4** 描述;先定 B2B/B2C 后按 `google-ads-creative-optimization.md` 1.2 / 1.3 占槽;**H1、H2 与 D1** 标注【固定📌】;字符合规见第十一章字数≤30 |
357
357
  | 附加信息 | Sitelink **6–8**(可含 OEM/验厂/报价/目录/联系);Callout **6–8**;Snippet **≥1 组、每组 ≥4 值**;**Lead Form** 线索业务建议填标题与必填字段 |
358
358
  | 投放设备 | **默认全设备**;仅在用户明确要求时写侧策略,并与 `google-ads-campaign-optimization.md` 第五章一致 |
359
359
  | 地域 | 助手侧先确认 Google 地域 ID(见「助手执行计划」第 1 步);多数业务建议 Presence only 模式 |
@@ -150,7 +150,7 @@ Google 为每个素材分配以下标签:
150
150
 
151
151
  ### 4.3 文字素材
152
152
 
153
- 遵循 RSA 的六主题法则(详见 google-ads-creative-optimization.md):核心价值主张、产品特性、社会证明、优惠促销、行动号召变体、品牌信任信号。每个主题至少 1 个标题变体。
153
+ 短标题按 `google-ads-creative-optimization.md` **1.2 满 15 配方**(先定 B2B/B2C);长标题/描述按同文件 1.3 与 §八。禁止全是同义卖点,无真实活动不写促销。
154
154
 
155
155
  ### 4.4 图片素材规格
156
156
 
@@ -24,7 +24,7 @@
24
24
 
25
25
  ## Gotchas
26
26
 
27
- - **命令族**是 `meta-ad`,**禁止**塞进 Google `ad`,**禁止** `--media MetaAd` 调 `ad campaigns`。
27
+ - **命令族**是 `meta-ad`,**禁止**塞进 Google `ad`,**禁止** `--media MetaAd` 调 `ad campaigns`。TikTok / Bing / Yandex **没有**对等搭建命令。
28
28
  - `-a` / JSON `account` = `list-accounts -m MetaAd` 的 `mediaCustomerId`(数字或 `act_`)。**禁止**传 `entityId`(UUID)。
29
29
  - **金额**:CLI / JSON 填**主币种元**。读出口 `*Display` 已是元;原始 `daily_budget="1000"` 在 USD 是 $10,**禁止**当 $1000。
30
30
  - **CBO / ABO**:预算只放一边;本批不能切换。
@@ -6,7 +6,7 @@
6
6
  siluzan-tso config show # 取 webUrl
7
7
  ```
8
8
 
9
- 首页地址:`https://www.siluzan.com/v3/foreign_trade/tso/home`
9
+ 首页地址:`https://www-ci.siluzan.com/v3/foreign_trade/tso/home`
10
10
 
11
11
  ---
12
12
 
@@ -25,7 +25,7 @@ siluzan-tso config show # 取 webUrl
25
25
 
26
26
  ## 推荐话术
27
27
 
28
- 1. **「和首页一样的总览」** → 打开 `https://www.siluzan.com/v3/foreign_trade/tso/home`。
28
+ 1. **「和首页一样的总览」** → 打开 `https://www-ci.siluzan.com/v3/foreign_trade/tso/home`。
29
29
  2. **「某个 Google 账户昨天花了多少」** → `list-accounts -m Google` + `stats -m Google -a <id>`。
30
30
  3. **「有待充值账户」** → 说明聚合数据在首页;CLI 可 `list-accounts` + `balance` 逐户排查,或引导充值页。
31
31
 
@@ -213,6 +213,11 @@ window.__META_PERIOD_REPORT__ = window.__META_PERIOD_REPORT__ || null;
213
213
  if (!isNum(v)) return "—";
214
214
  return moneyPrefix + fmtNum(v, 2);
215
215
  }
216
+ /** 无成效时 CPA 无意义;0 再去尾零会变成单独的 $ */
217
+ function fmtCostPerResult(cpl, results) {
218
+ if (!isNum(results) || results <= 0 || !isNum(cpl) || cpl <= 0) return "--";
219
+ return moneyPrefix + fmtNum(cpl, 8).replace(/\.?0+$/, "");
220
+ }
216
221
  function cell(v, kind) {
217
222
  if (kind === "int") return esc(fmtInt(v));
218
223
  if (kind === "money") return esc(isNum(v) ? moneyPrefix + fmtNum(v, 8).replace(/\.?0+$/, "") : "—");
@@ -228,7 +233,7 @@ window.__META_PERIOD_REPORT__ = window.__META_PERIOD_REPORT__ || null;
228
233
  cell(row.resultType),
229
234
  cell(row.results, "int"),
230
235
  cell(row.spend, "money"),
231
- cell(row.costPerResult, "money"),
236
+ esc(fmtCostPerResult(row.costPerResult, row.results)),
232
237
  ].map(function (td) { return "<td>" + td + "</td>"; }).join("");
233
238
  }
234
239
  function tableHtml(headers, rows, firstCell) {
@@ -274,7 +279,7 @@ window.__META_PERIOD_REPORT__ = window.__META_PERIOD_REPORT__ || null;
274
279
 
275
280
  document.getElementById("ovKpis").innerHTML =
276
281
  '<div class="ov-kpi feature"><div class="label">已花费金额 (' + esc(currency) + ')</div><div class="value">' + esc(fmtMoney(kpis.spend)) + "</div></div>" +
277
- '<div class="ov-kpi feature accent"><div class="label">单次成效费用</div><div class="value">' + esc(fmtMoney(kpis.costPerResult)) + "</div></div>" +
282
+ '<div class="ov-kpi feature accent"><div class="label">单次成效费用</div><div class="value">' + esc(fmtCostPerResult(kpis.costPerResult, kpis.results)) + "</div></div>" +
278
283
  '<div class="ov-kpi c-green"><div class="label">覆盖人数</div><div class="value">' + esc(fmtInt(kpis.reach)) + "</div></div>" +
279
284
  '<div class="ov-kpi c-amber"><div class="label">展示次数</div><div class="value">' + esc(fmtInt(kpis.impressions)) + "</div></div>";
280
285
  document.getElementById("ovMeta").innerHTML =
@@ -9,11 +9,11 @@ $ErrorActionPreference = 'Stop'
9
9
  # -- Package info (injected at build time) ------------------------------------
10
10
  $PKG_NAME = 'siluzan-tso-cli'
11
11
  # PKG_VERSION 锁定到与本脚本同批构建产物一致的版本,避免与 dist/skill 错位
12
- $PKG_VERSION = '1.1.49'
12
+ $PKG_VERSION = '1.1.50-beta.2'
13
13
  $CLI_BIN = 'siluzan-tso'
14
14
  $SKILL_LABEL = 'Siluzan TSO'
15
- $INSTALL_CMD = 'npm install -g siluzan-tso-cli'
16
- $WEB_BASE = 'https://www.siluzan.com'
15
+ $INSTALL_CMD = 'npm install -g siluzan-tso-cli@beta'
16
+ $WEB_BASE = 'https://www-ci.siluzan.com'
17
17
 
18
18
  # -- Constants ----------------------------------------------------------------
19
19
  $NODE_MAJOR_MIN = 18
@@ -9,11 +9,11 @@ set -euo pipefail
9
9
  # -- Package info (injected at build time) ------------------------------------
10
10
  readonly PKG_NAME="siluzan-tso-cli"
11
11
  # PKG_VERSION 锁定到与本脚本同批构建产物一致的版本,避免与 dist/skill 错位
12
- readonly PKG_VERSION="1.1.49"
12
+ readonly PKG_VERSION="1.1.50-beta.2"
13
13
  readonly CLI_BIN="siluzan-tso"
14
14
  readonly SKILL_LABEL="Siluzan TSO"
15
- readonly INSTALL_CMD="npm install -g siluzan-tso-cli"
16
- readonly WEB_BASE="https://www.siluzan.com"
15
+ readonly INSTALL_CMD="npm install -g siluzan-tso-cli@beta"
16
+ readonly WEB_BASE="https://www-ci.siluzan.com"
17
17
 
18
18
  # -- Constants ----------------------------------------------------------------
19
19
  readonly NODE_MAJOR_MIN=18
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "siluzan-tso-cli",
3
- "version": "1.1.49",
3
+ "version": "1.1.50-beta.2",
4
4
  "description": "Siluzan 广告账户管理 CLI — 查询账户、余额、消耗数据,管理绑定关系与充值。",
5
5
  "keywords": [
6
6
  "ad-account",