siluzan-tso-cli 1.1.60-beta.2 → 1.1.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -2
- package/dist/index.js +999 -256
- package/dist/skill/_meta.json +2 -2
- package/dist/skill/assets/pmax-patch-campaign-template.json +1 -1
- package/dist/skill/references/accounts/accounts-list.md +1 -1
- package/dist/skill/references/accounts/accounts-permissions.md +2 -2
- package/dist/skill/references/accounts/finance.md +1 -1
- package/dist/skill/references/accounts/open-account-by-media.md +1 -1
- package/dist/skill/references/accounts/open-account-google-ui.md +1 -1
- package/dist/skill/references/analytics/rag.md +1 -1
- package/dist/skill/references/analytics/reporting.md +5 -5
- package/dist/skill/references/core/agent-conventions.md +10 -0
- package/dist/skill/references/core/playbooks.md +12 -11
- package/dist/skill/references/core/setup.md +5 -5
- package/dist/skill/references/core/workflows.md +1 -1
- package/dist/skill/references/google-ads/google-ads-write.md +3 -3
- package/dist/skill/references/google-ads/pmax-api.md +4 -4
- package/dist/skill/references/misc/tso-home.md +2 -2
- package/dist/skill/references/report-templates/README.md +2 -0
- package/dist/skill/references/report-templates/bing-period-report.md +2 -0
- package/dist/skill/references/report-templates/google-ads-diagnosis.md +2 -0
- package/dist/skill/references/report-templates/google-inquiry-analysis.md +11 -0
- package/dist/skill/references/report-templates/google-period-report-excel.md +2 -0
- package/dist/skill/references/report-templates/google-period-report.md +4 -1
- package/dist/skill/references/report-templates/google-quarterly-report.md +2 -0
- package/dist/skill/references/report-templates/market-analysis-report.md +2 -0
- package/dist/skill/references/report-templates/meta-account-diagnosis-report.md +2 -0
- package/dist/skill/references/report-templates/meta-period-report.md +2 -0
- package/dist/skill/references/report-templates/okki-weekly-google-client.md +21 -0
- package/dist/skill/references/report-templates/tiktok-period-report.md +2 -0
- package/dist/skill/references/report-templates/website-diagnosis-report.md +2 -0
- package/dist/skill/references/report-templates/yandex-period-report.md +2 -0
- package/dist/skill/report-templates/README.md +2 -0
- package/dist/skill/report-templates/bing-period-report.html +16 -3
- package/dist/skill/report-templates/bing-period-report.md +2 -0
- package/dist/skill/report-templates/google-ads-diagnosis.md +2 -0
- package/dist/skill/report-templates/google-inquiry-analysis.md +11 -0
- package/dist/skill/report-templates/google-period-report-excel.md +2 -0
- package/dist/skill/report-templates/google-period-report.html +35 -6
- package/dist/skill/report-templates/google-period-report.md +4 -1
- package/dist/skill/report-templates/google-quarterly-report.html +1 -1
- package/dist/skill/report-templates/google-quarterly-report.md +2 -0
- package/dist/skill/report-templates/market-analysis-report.md +2 -0
- package/dist/skill/report-templates/meta-account-diagnosis-report.md +2 -0
- package/dist/skill/report-templates/meta-period-report.md +2 -0
- package/dist/skill/report-templates/okki-weekly-google-client.md +21 -0
- package/dist/skill/report-templates/tiktok-period-report.html +4 -2
- package/dist/skill/report-templates/tiktok-period-report.md +2 -0
- package/dist/skill/report-templates/website-diagnosis-report.md +2 -0
- package/dist/skill/report-templates/yandex-period-report.html +4 -2
- package/dist/skill/report-templates/yandex-period-report.md +2 -0
- package/dist/skill/scripts/install.ps1 +3 -3
- package/dist/skill/scripts/install.sh +3 -3
- package/package.json +1 -1
package/dist/skill/_meta.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_comment": "PATCH 活动;budget/targetCpa 填主币种元,CLI 自动 ×100",
|
|
2
|
+
"_comment": "PATCH 活动;budget/targetCpa 填主币种元,CLI 自动 ×100。assetAutomationSettings 只改提交的类型,例如 GENERATE_IMAGE_ENHANCEMENT / GENERATE_IMAGE_EXTRACTION(OPTED_IN 或 OPTED_OUT)。未提交不写,避免把默认增强关掉",
|
|
3
3
|
"id": "12345678901",
|
|
4
4
|
"budgetId": "111222333",
|
|
5
5
|
"budget": 5.5,
|
|
@@ -170,7 +170,7 @@ siluzan-tso account-history --start 2026-03-01 --end 2026-03-31 --json-out ./sna
|
|
|
170
170
|
| 状态 | 含义 | 下一步操作 |
|
|
171
171
|
| ---------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
172
172
|
| `Pending` | 审核中 | 等待,可反复运行此命令轮询;审核周期因媒体而异 |
|
|
173
|
-
| `Approved` | 审核通过 | 运行 `list-accounts -m <媒体>` 确认账户已出现;引导用户充值激活(`config show` 取 `webUrl`,按 `finance.md` 打开对应媒体充值页;例如 Google 为 `https://www
|
|
173
|
+
| `Approved` | 审核通过 | 运行 `list-accounts -m <媒体>` 确认账户已出现;引导用户充值激活(`config show` 取 `webUrl`,按 `finance.md` 打开对应媒体充值页;例如 Google 为 `https://www.siluzan.com/v3/foreign_trade/tso/recharge/pay?mediaType=Google`;Yandex 当前没有对应充值界面) |
|
|
174
174
|
| `Rejected` | 被拒 | 查看 `--json-out` 落盘中的 `reason` 字段了解拒绝原因;修改资料后重新提交;若原因不明,引导用户联系丝路赞客服 |
|
|
175
175
|
|
|
176
176
|
---
|
|
@@ -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
|
|
493
|
+
| **账户激活**(邀请他人激活 / 充值激活) | Google | `https://www.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
|
|
502
|
+
# https://www.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
|
|
129
|
+
链接模式:`https://www.siluzan.com/v3/foreign_trade/tso/recharge/<page>?mediaType=<mediaType>`;丝路赞钱包:`https://www.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
|
|
3
|
+
> 网页链接:`https://www.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
|
|
68
|
+
# 审核通过后:config show → https://www.siluzan.com/v3/foreign_trade/tso/recharge/pay?mediaType=Google
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
---
|
|
@@ -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
|
|
194
|
-
| Google | 小时报(Hourly) | `https://www
|
|
195
|
-
| TikTok | 日报 | `https://www
|
|
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` |
|
|
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
|
|
208
|
+
# webUrl: https://www.siluzan.com
|
|
209
209
|
|
|
210
210
|
# 第三步:拼接链接(Google 日报)
|
|
211
|
-
# https://www
|
|
211
|
+
# https://www.siluzan.com/media-report/publish/rpt_abc123?culture=zh-CN
|
|
212
212
|
```
|
|
@@ -376,3 +376,13 @@
|
|
|
376
376
|
- 写操作 / 广告创建结束后:**禁止**用「搞定了 / 已提交」代替成败明细;须按 §四交付成功项与失败项(创建另须按系列列详情)。
|
|
377
377
|
|
|
378
378
|
数值纪律不变:金额、状态、ID 只来自当次 CLI/`--json-out`;本节只约束表述方式。
|
|
379
|
+
|
|
380
|
+
### 14.6 终稿语言
|
|
381
|
+
|
|
382
|
+
一次任务只出一种语言。用户本轮明确要求优先,否则跟用户本轮用语;对不上则中文。
|
|
383
|
+
|
|
384
|
+
- 交给用户的话、`narrative`、拓词表、创建结果跟 `meta.lang`(`zh` 或 `en`)。
|
|
385
|
+
- 文件型终稿必须写 `meta.lang`,渲染或交付命令带同一个 `--lang`。`--lang` 覆盖 JSON;都没有则中文。非法值 CLI 会直接失败。
|
|
386
|
+
- 不要自己翻译 CLI 已经按 `--lang` 写好的句子(余额扫描、账户汇总、熔断、`batch diff` 创建详情、OKKI / 线索方案的表头)。
|
|
387
|
+
- 市场分析没有壳模板:`htmlContent` 的正文和 `<html lang>` 跟 `meta.lang`(中文 `zh-CN`,英文 `en`)。
|
|
388
|
+
- OKKI 话术:`zh` 仍用「您好,同步一下谷歌」那一套行首;`en` 用 `okki-weekly-google-client.md` 的英文行首。只替换数字。
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
> **范围**:CLI 拉数 → 脚本读盘 → Agent 撰稿 → 交付的报告/分析任务。操作/管理类见 `references/core/workflows.md`(W1–W12)。
|
|
4
4
|
> **通用纪律见 `references/core/agent-conventions.md`**(读盘、时间范围、币种、交付自检);各卡片只写本任务步骤。卡片字段:`触发 / 必读 / 步骤 / 产物`。完整参数表见「必读」指向的命令文档。
|
|
5
5
|
> **用户模糊话术**(只说「报告/诊断/分析/检测/监测」、对象不清):**必须先 Read `references/core/intent-routing.md`**,再读本节对应 P 卡片。
|
|
6
|
+
> **终稿语言**:按 conventions §14.6 判定 `zh` 或 `en`,写入 `meta.lang`,下面每条渲染 / 交付命令都带 `--lang <zh|en>`。
|
|
6
7
|
|
|
7
8
|
| 编号 | 业务 | 一句话 |
|
|
8
9
|
| ----- | ---------------------- | -------------------------------------- |
|
|
@@ -31,7 +32,7 @@
|
|
|
31
32
|
4. `google-ads-diagnosis collect -a <mediaCustomerId> --start <S> --end <D> --json-out ./snap-p1`(含对比周期 campaigns/geographic/keywords + `daily-metrics` 按日趋势;产出 `google-ads-diagnosis-collect.json`,**仅事实**)。部分维度失败(exit 2)时 collect 仍产出 JSON,**禁止**用 `--skip-fetch` 或脚本绕过 CLI 重映射快照。
|
|
32
33
|
5. **outline 门禁**(若手写脚本读盘):对**每个** section Read 其 `<section>-<accountId>_*.outline.txt` 确认字段树——字段名以 outline 为准。
|
|
33
34
|
6. **Agent 撰写**:读 `google-ads-diagnosis-collect.json`(`reportData` + `agentBrief`)+ `google-ads-diagnosis.md`,填写全部 `analysis` / `suggestions` / `diagnosisOverview` / `summary` 等,保存 `google-ads-diagnosis.json`。
|
|
34
|
-
7. **渲染终稿**:`google-ads-diagnosis render --data ./snap-p1/google-ads-diagnosis.json --out ./snap-p1/google-ads-diagnosis-report.html
|
|
35
|
+
7. **渲染终稿**:`google-ads-diagnosis render --data ./snap-p1/google-ads-diagnosis.json --out ./snap-p1/google-ads-diagnosis-report.html --lang <zh|en>`(模板与 MarkAI `GoogleAdsDiagnosisReport.html` 一致)。
|
|
35
36
|
- **产物**:HTML(`google-ads-diagnosis-report.html` 路径);按 conventions §七 自检。
|
|
36
37
|
|
|
37
38
|
---
|
|
@@ -42,8 +43,8 @@
|
|
|
42
43
|
- **必读**:`references/accounts/accounts-balance-stats.md`(§ balance-scan)。
|
|
43
44
|
- **反模式**:`meta.dataIssue` 非空或 exit 2 → 向用户说明数据异常(余额全 null / OAuth 失效),**禁止**当成「无预警命中」。
|
|
44
45
|
- **步骤**:
|
|
45
|
-
1. 全量巡检:`balance-scan -m <媒体> --threshold-days 7 --json-out ./snap-p2
|
|
46
|
-
2. 已知子集:`balance-scan -m <媒体> -a id1,id2,id3 --json-out ./snap-p2-subset
|
|
46
|
+
1. 全量巡检:`balance-scan -m <媒体> --threshold-days 7 --json-out ./snap-p2 --lang <zh|en>`(可选 `--min-balance 100` / `--target-days 60`)。
|
|
47
|
+
2. 已知子集:`balance-scan -m <媒体> -a id1,id2,id3 --json-out ./snap-p2-subset --lang <zh|en>`(跳过翻页)。
|
|
47
48
|
- **产物**:`data.items` 为全部已检查账户(按 `remainingDays` 升序);预警筛 `hitReason !== "none"`;`hitReason="none"` 表示未触阈值;消耗过低的僵尸账户 `remainingDays` 为 null、不纳入预警。向用户贴 Markdown 表时单元格必须把 `|` 换成 `|`(公司名常含 `|`)。**禁止**逐账户 `balance`。
|
|
48
49
|
|
|
49
50
|
---
|
|
@@ -62,7 +63,7 @@
|
|
|
62
63
|
- **Google 四项巡检**(CPA、余额、零转化、无 Display/PMax,常带 MCC):只跑下面这一条,**禁止**再逐户 `ad campaigns` / `google-analysis --sections campaign-types`,**禁止**把 `siluzan-tso` 写进脚本再 subprocess。
|
|
63
64
|
- **D 组 / 「启用系列里有没有 PMax」/ 「启用但 7 天 0 展示」**:改用 `--with-enabled-campaigns`(步骤 1c)。提示词若写「先 list-accounts、digest --skip-balance、balance-scan -a 全部 ID、再逐户 ad campaigns」,**不要照做**。
|
|
64
65
|
- **步骤**:
|
|
65
|
-
1. 确认时间范围后执行 `accounts-digest -m <媒体> -a id1,id2,... --start <S> --end <D> --json-out ./snap-p3
|
|
66
|
+
1. 确认时间范围后执行 `accounts-digest -m <媒体> -a id1,id2,... --start <S> --end <D> --json-out ./snap-p3 --lang <zh|en>`(全量则省略 `-a`)。指定 MCC 时加 `--login-customer-id <id>`,不要先 `list-accounts` 再把全部 ID 拼进 `-a`。
|
|
66
67
|
1b. **要系列类型时**(仅 Google,含暂停的系列也算):同一条命令加 `--with-campaign-types`。四项都要时**不要**再加 `--max-cpa` / `--zero-conversions`(那两个开关会丢掉其它行)。脚本读 `data.items`:`cpa`、`balance`、`spend`+`conversions`,以及 `hasDisplay` / `hasPmax`。只有 `campaignTypesStatus=ok` 且两项都为 false 才写入「无展示且无 PMax」;`error` / `skipped-no-spend` 另列。
|
|
67
68
|
1c. **要启用中的 PMax,或启用但区间展示为 0 的系列**(D 组):同一条命令加 `--with-enabled-campaigns`,**不要**加 `--skip-balance`,**不要**再跑 `balance-scan`(行上已有 `dailySpend`、`remainingDays`)。**不要**同时加 `--with-campaign-types`。脚本读 `hasEnabledPmax === false` 且 `enabledCampaignStatus=ok` 才算「启用系列里没有 PMax」;`zeroImpressionEnabled` 已排除 PMax 与 Display。`error` / `skipped-no-spend` 另列,禁止当成「无 PMax」。
|
|
68
69
|
2. **高 CPA / 转化成本巡检**:`--max-cpa <n> --skip-balance`(CPA > n,或零转化且消耗已 > n)。读盘后**只把 `agentBrief.userDelivery` 原样发给用户**(无命中即「全部正常」句;有命中只贴表)。
|
|
@@ -82,8 +83,8 @@
|
|
|
82
83
|
2. 确认时间范围;区间 > 3 个月时分段(季度/月)。
|
|
83
84
|
3. **拉数**:用户已指定 Sheet/维度 → 只拉对应 `--sections`(见 `google-period-report-excel.md` 映射表);未指定 → 按 `google-period-report.md` 默认 9 个拉数维(含 `audience`、`negative-keywords`),并可并行追问可选追加。
|
|
84
85
|
4. **门禁**:对每个 section Read `<section>-<accountId>_*.outline.txt` 后再写脚本。
|
|
85
|
-
5.
|
|
86
|
-
6. 默认 HTML
|
|
86
|
+
5. 脚本读盘写 `google-period-report.json`(`meta` + `narrative`,`meta.lang` 跟本轮语言);用户要 **Excel** → Agent 脚本写 xlsx(**禁止**宿主第三方 xlsx Skill;**无** CLI excel 子命令;表头跟 `meta.lang`)。
|
|
87
|
+
6. 默认 HTML:`google-analysis render --data ./google-period-report.json --snapshot-dir ./snap-google --out ./google-period-report.html --lang <zh|en>`。须含账户概览、投放趋势、Top 关键词/系列/地区/受众分布、当前否词名单、优化建议。
|
|
87
88
|
- **产物**:按 conventions §七 自检;`accountId` 须与用户给的 `mediaCustomerId` 一致。HTML 封面按区间写成「季度」或「月度」,对不上则仍是「周期」。不要打开 HTML 改称呼。
|
|
88
89
|
|
|
89
90
|
> 用户用「OKKI 周报」固定话术 → 改走 **P6**,不按默认 10 章追问。
|
|
@@ -110,7 +111,7 @@
|
|
|
110
111
|
3. **拉数**(默认 5 维):`facebook-analysis -a <id> --start <S> --end <D> --json-out ./snap-fb --sections overview,daily,country,campaigns,audience`。
|
|
111
112
|
4. **分析**:脚本读落盘 JSON 聚合(见 `facebook-analysis-guide.md`)。
|
|
112
113
|
5. **写 JSON**:按 `meta-period-report-rules.md` 落盘 `meta-period-report.json`(四问 + 3 张建议卡 + 各章 analysis/advice);**禁止编造**数字。
|
|
113
|
-
6. **交付**:`facebook-analysis render --data ./meta-period-report.json --snapshot-dir ./snap-fb --out ./meta-period-report.html
|
|
114
|
+
6. **交付**:`facebook-analysis render --data ./meta-period-report.json --snapshot-dir ./snap-fb --out ./meta-period-report.html --lang <zh|en>`;要表格加 `--format xlsx`。
|
|
114
115
|
- **产物**:按 conventions §七 自检。诊断场景改用 `report-templates/meta-account-diagnosis-report.md`,拉数省略 `--sections` 拉全量。
|
|
115
116
|
|
|
116
117
|
---
|
|
@@ -145,7 +146,7 @@
|
|
|
145
146
|
2. `list-accounts -m Google -k <用户给的账户号>`(`928-780-1878` 可原样,CLI 去连字符)确认 `mediaCustomerId`;无 `-k` 的默认首页或 `itemCount < total` **禁止**判定未绑定。确认 `--start` / `--end`。
|
|
146
147
|
3. 同一 `--json-out` 目录执行模板命令组合:`stats`、`balance`、`google-analysis --sections overview,campaigns,keywords,search-terms,campaign-device,geo-targeted`。
|
|
147
148
|
4. 脚本读盘 → 只写 `okki-weekly-report.json` 的 `meta` + `narrative`(5 Sheet 表末分析 + 账户 Sheet 固定 5 维数据复盘;表为空也须写)。`deviceType` 是 `Desktop`/`Mobile`,禁止 `.get("DESKTOP")`,按大小写不敏感分类累加后再写设备金额。
|
|
148
|
-
5. `google-analysis okki-render --data ./okki-weekly-report.json --snapshot-dir ./snap-okki --out <xlsx>`。缺分析 / 缺 5 维复盘 / 缺 `campaign-device` 或 `geo-targeted` 会拒绝出文件;按 stderr 补 JSON 后重跑。**禁止** Agent 手写 xlsx。
|
|
149
|
+
5. `google-analysis okki-render --data ./okki-weekly-report.json --snapshot-dir ./snap-okki --out <xlsx> --lang <zh|en>`。缺分析 / 缺 5 维复盘 / 缺 `campaign-device` 或 `geo-targeted` 会拒绝出文件;按 stderr 补 JSON 后重跑。**禁止** Agent 手写 xlsx。
|
|
149
150
|
6. **话术收口**(用户本轮没换格式时,行首一个字都不能改):先写一行 xlsx 路径,再贴一个代码块。块内从「您好,同步一下谷歌」起,依次是 `1、消耗:`、`2、展示点击:`、`3、点击率:`、`4、平均点击单价:`、`5、转化:`、`5.1`、`5.2`、`6、优化建议:` 与 ①②③ 各一行、`7、账户余额:`。只填当次数字。禁止合成一段,禁止改成「一、二、三、四」或「结论先行」。代码块外不要再写概览。用户**本轮**粘贴了新全文或点名改某一条,就按用户的来,只动被点名的行,仍然只发这一个代码块。填数规则见 `okki-weekly-google-client.md`。
|
|
150
151
|
- **产物**:`okki-render` 写出的 `.xlsx` 路径(缺文件 = 未完成)+ 上面这个代码块;**不**按 P4 默认 10 章追加。仅用户明确「只要话术 / 不要文件」时才省略 xlsx。
|
|
151
152
|
|
|
@@ -176,7 +177,7 @@
|
|
|
176
177
|
2. 采集:`website-diagnosis collect --url <url> --json-out ./snap-web`(落盘含 `signals` / `dataAvailability`;`--include-html` 仅增大落盘,不改 signals)。
|
|
177
178
|
3. 脚手架:`website-diagnosis prepare --collect ./snap-web/<collect>.json`(Lighthouse 失败时 m2i1/m5i1 预填 Absent)。
|
|
178
179
|
4. 按 `signals` + `website-diagnosis-rules.md` 补全 `needsAgent=true` 项 → 落盘 `diagnosis.json`。
|
|
179
|
-
5. 出 HTML:`website-diagnosis render --data ./diagnosis.json --collect ./snap-web/<collect>.json --out ./snap-web/website-diagnosis-report.html
|
|
180
|
+
5. 出 HTML:`website-diagnosis render --data ./diagnosis.json --collect ./snap-web/<collect>.json --out ./snap-web/website-diagnosis-report.html --lang <zh|en>`。
|
|
180
181
|
- **产物**:交付 HTML 路径;Lighthouse 缺失时性能项标「未测到」、禁止编造分;仅需历史 ARIT 分时用 `website-diagnosis search --ids <websiteDiagnoseId>`。
|
|
181
182
|
|
|
182
183
|
---
|
|
@@ -191,7 +192,7 @@
|
|
|
191
192
|
1. 确认客户信息(客户名称/网站/行业/核心产品至少一项);`targetMarket` 默认「全球」、`timeRange` 默认「近12个月」(未给须写明)。
|
|
192
193
|
2. 采集:`market-analysis collect --customer-name "<name>" --website <url> --industry "<industry>" --core-products "<products>" --target-market "<market>" --time-range "<range>" --json-out ./snap-market`。**仅给行业时**可简化为 `--industry "电商" --json-out ./snap-market`(四选一至少一项即可)。
|
|
193
194
|
3. 按 `market-analysis-rules.md` 维度表**逐章 WebSearch** 撰写,脚本落盘 `./snap-market/market-report.json`。
|
|
194
|
-
4. 渲染:`market-analysis render --data ./snap-market/market-report.json --out ./snap-market/market-analysis-report.html
|
|
195
|
+
4. 渲染:`market-analysis render --data ./snap-market/market-report.json --out ./snap-market/market-analysis-report.html --lang <zh|en>`;报缺项时**只补缺失维度**后重写 JSON。
|
|
195
196
|
- **产物**:交付 HTML 路径并说明需联网加载 CDN。
|
|
196
197
|
|
|
197
198
|
---
|
|
@@ -208,6 +209,6 @@
|
|
|
208
209
|
4. `google-quarterly collect -a <id> --start <S> --end <D> --json-out ./snap-p10 --account-name "<名>"`(可选 `--keyword-seeds`)。新探索四类并行(视频 / PMax / 发现 / 展示);视频用 Ads 视频报表,不拉频道订阅总数 / 来源饼 / 视频类型。
|
|
209
210
|
5. 读 `google-quarterly-collect.json`,只写 `narrative` 到 `google-quarterly.json`(禁止改 kpis / monthly / planDefaults 数字)。
|
|
210
211
|
6. 下期规划按 `google-quarterly-plan.md` 写九章。预算默认三档(维持本期 / +30% / +50%)+ 建议档月度 30/35/35,标「基于历史数据」,不是已批预算;CPA/询盘不外推;禁止自动调价/暂停指令。
|
|
211
|
-
7. `google-quarterly render --data ./snap-p10/google-quarterly.json --out ./snap-p10/google-quarterly-report.html
|
|
212
|
+
7. `google-quarterly render --data ./snap-p10/google-quarterly.json --out ./snap-p10/google-quarterly-report.html --lang <zh|en>`。
|
|
212
213
|
8. **render 成功即停并交付**该 HTML。封面称呼已按区间写好:完整自然季是「季度」,从 1 号起的同一个月(含未过完的本月)是「月度」,其余是「本期」。**禁止**打开或修改 HTML,**禁止**再把「季度 / 月度」改一遍,**禁止**再 render,**禁止**未要求就转 PDF、截图或用视觉模型验收。
|
|
213
214
|
- **产物**:HTML 路径;新探索(视频 / PMax / 发现 / 展示)全无量则模板自动隐藏该章。
|
|
@@ -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
|
|
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
|
|
67
|
+
API Key 获取入口:`https://www.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
|
|
131
|
-
googleApiUrl : https://googleapi
|
|
132
|
-
webUrl : https://www
|
|
130
|
+
apiBaseUrl : https://tso-api.siluzan.com
|
|
131
|
+
googleApiUrl : https://googleapi.mysiluzan.com
|
|
132
|
+
webUrl : https://www.siluzan.com
|
|
133
133
|
apiKey : abcd****1234
|
|
134
134
|
```
|
|
135
135
|
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
5. 轮询:`ad batch get --id <taskId> --config-file … --json-out …` 直至非 Creating;**读落盘 `agentWorkflow`**:`shouldRunBatchDiff===false` 或无 `campaignId` → **不要**跑 diff,按 `agentHint` 改 JSON 重提。
|
|
93
93
|
6. **有 campaignId 时必做** `ad batch diff`(含投放国家);`ok===false` / exit 2 时按 `missing[].remediateCommand` **自动** `ad geo add` / `ad extension *` 补建,勿反问用户(见 `google-ads-campaign-plan.md` § batch diff 后自动补建)。
|
|
94
94
|
7. 复核:`ad campaigns` / `ad extension list` 确认系列与扩展齐全。
|
|
95
|
-
8. **向用户发送 Markdown 创建详情**(硬性):`batch diff
|
|
95
|
+
8. **向用户发送 Markdown 创建详情**(硬性):`ad batch diff … --lang <zh|en>` 后把 **`reportMarkdown` 全文**发给用户(`--md-out` / `reportMarkdownFile`);多系列各一份;**禁止**只说「创建完成」。代改过方案时另附修改表(`google-ads-plan-source-fidelity.md`)。见 `agent-conventions.md` §四。
|
|
96
96
|
- **精细管理与日常运营**:`ad adgroup-create` / `ad keyword-create` / `ad keyword-negative-create` / `ad ad-create`(拓词辅助见 **W5**);调整用 `ad adgroup-status` / `ad campaign-status` / `ad ad-delete` / `ad keyword-negative-delete`。完整参数见 `references/google-ads/google-ads-write.md`;列表复核见 `google-ads-read.md`。写后按 `agent-conventions.md` §四向用户汇报成败(改了什么、是否生效)。
|
|
97
97
|
- **产物**:系列(`ad campaigns` 可见)+ batch(`ad batch get` / `batch diff` 补齐扩展与地域)+ **面向用户的系列创建详情报告**;关键词匹配格式 `running shoes`=广泛 / `"..."`=词组 / `[...]`=精确;结构性写操作须用户确认;写后用成对读命令复核并汇报成败。
|
|
98
98
|
|
|
@@ -84,18 +84,18 @@
|
|
|
84
84
|
| 能力 | 命令 |
|
|
85
85
|
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------- |
|
|
86
86
|
| 详情 | `ad pmax-get -a <id> --campaign-id <cid>`(读 `_brandGuidelinesActive`) |
|
|
87
|
-
| 改活动 | `ad pmax-edit`(`--patch-file` 或 `--status` / `--budget` + `--budget-id
|
|
87
|
+
| 改活动 | `ad pmax-edit`(`--patch-file` 或 `--status` / `--budget` + `--budget-id`;`assetAutomationSettings` 只改提交类型,如图片增强/提取;改 `Removed` 须用户同意 + `--i-confirm`) |
|
|
88
88
|
| 改 Campaign 品牌 | `ad pmax-brand-assets-edit`(BG 已开启) |
|
|
89
89
|
| 启用 BG | `ad pmax-brand-guidelines-enable --config-file …`(存量活动) |
|
|
90
90
|
| 新资产组 | `ad pmax-asset-group-create --config-file …`(BG 下自动省略品牌) |
|
|
91
91
|
| 改资产组 | `ad pmax-asset-group-edit` |
|
|
92
|
-
| 删资产组 | `ad pmax-asset-group-edit --status REMOVED`(软删;网关无 DELETE
|
|
92
|
+
| 删资产组 | `ad pmax-asset-group-edit --status REMOVED`(软删;网关无 DELETE 端点。最后一组会 400,应暂停该组或系列) |
|
|
93
93
|
| 改资产 | `ad pmax-assets-update --config-file …` |
|
|
94
94
|
| YouTube 追加 | `ad pmax-youtube-link`(单条 `--youtube` / `--video-path`);批量见 `ad pmax-assets-update` |
|
|
95
95
|
| 信号 | `ad pmax-signals-get` / `ad pmax-signals-set`;受众下拉 `ad pmax-audiences` |
|
|
96
96
|
| 附加资产 | `ad extension pmax-types`;`callout` / `snippet` / `lead-form` / `whatsapp`(见 `pmax-api.md` § 附加资产) |
|
|
97
97
|
| 图片库 | `ad pmax-image-upload` |
|
|
98
|
-
| 报表 | `ad pmax-report-asset-groups` / `ad pmax-report-geo`
|
|
98
|
+
| 报表 | `ad pmax-report-asset-groups` / `ad pmax-report-assets` / `ad pmax-report-geo` / `ad pmax-report-channels`(单素材与素材组不必相等;素材点击可大于系列点击;渠道合计只含各网络) |
|
|
99
99
|
| 删活动 | 用户同意后 `ad campaign-delete -a <id> --id <campaignId> --i-confirm --commit "…"`(与 Search 共用;勿用 `ad campaign-edit`) |
|
|
100
100
|
|
|
101
101
|
模板与 HTTP 对照:`references/google-ads/pmax-api.md`。
|
|
@@ -19,17 +19,17 @@
|
|
|
19
19
|
| `ad pmax-create` | 创建系列(同步返回 `campaignId` 等;失败时把已建成编号写回 JSON 再跑) |
|
|
20
20
|
| `ad pmax-channel-types` | 渠道类型列表 |
|
|
21
21
|
| `ad pmax-get` | 系列详情(含 `brandAssets[]`;`--json-out` 附加 `_brandGuidelinesActive`、`_agentBrandHint`) |
|
|
22
|
-
| `ad pmax-edit` |
|
|
22
|
+
| `ad pmax-edit` | 编辑系列(预算/出价/状态/`assetAutomationSettings`;**不可**改 `brandGuidelinesEnabled`)。图片增强/提取只改提交的类型,不进创建默认值 |
|
|
23
23
|
| `ad pmax-brand-assets-edit` | BG 已开启时改 Campaign 级品牌(商家名/Logo/样式) |
|
|
24
24
|
| `ad pmax-brand-guidelines-enable` | 存量活动启用 BG(不可关闭) |
|
|
25
25
|
| `ad pmax-asset-group-create` | 新建资产组 |
|
|
26
26
|
| `ad pmax-asset-group-edit` | 编辑资产组 |
|
|
27
27
|
| `ad pmax-assets-update` | 更新资产 |
|
|
28
28
|
| `ad pmax-youtube-link` | **追加**单条 YouTube 视频(不替换已有视频) |
|
|
29
|
-
| `ad pmax-signals-get` / `ad pmax-signals-set` | 读/写信号(**全量** PUT)
|
|
29
|
+
| `ad pmax-signals-get` / `ad pmax-signals-set` | 读/写信号(**全量** PUT。两类都空且组里还有信号会 400) |
|
|
30
30
|
| `ad pmax-audiences` | 受众列表 |
|
|
31
31
|
| `ad pmax-image-upload` | 单张图片上传 |
|
|
32
|
-
| `ad pmax-report-asset-groups` / `ad pmax-report-geo`
|
|
32
|
+
| `ad pmax-report-asset-groups` / `ad pmax-report-assets` / `ad pmax-report-geo` / `ad pmax-report-channels` | 报表(素材组 / 单素材 / 地理 / 渠道)。单素材与素材组花费/点击不必相等;素材点击可大于系列点击。渠道表的 `total` 只等于各 `channels` 之和;`video` / `product` 是对照,不要再加进合计 |
|
|
33
33
|
| `ad campaigns` | 列表(筛 `PERFORMANCE_MAX`) |
|
|
34
34
|
| `ad extension pmax-types` | PMax 支持的附加资产类型与层级 |
|
|
35
35
|
| `ad extension callout` / `snippet` / `lead-form` / `whatsapp` | 宣传信息 / 结构化摘要 / 潜在客户表单 / WhatsApp |
|
|
@@ -202,7 +202,7 @@ Google v21+ 新建 PMax **默认开启** BG:`businessName` / Logo 挂在 **Cam
|
|
|
202
202
|
## 删除
|
|
203
203
|
|
|
204
204
|
- **系列**:用户同意后 `ad campaign-delete -a <id> --id <campaignId> --i-confirm --commit "…"`(`ad pmax-edit --status Removed` 同样须 `--i-confirm`)
|
|
205
|
-
- **资产组**:`ad pmax-asset-group-edit --status REMOVED
|
|
205
|
+
- **资产组**:`ad pmax-asset-group-edit --status REMOVED`(最后一组会 400,应暂停该组或系列)
|
|
206
206
|
- **资产**:`ad pmax-assets-update` 的 `unlink`(见模板)
|
|
207
207
|
|
|
208
208
|
---
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
siluzan-tso config show # 取 webUrl
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
首页地址:`https://www
|
|
9
|
+
首页地址:`https://www.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
|
|
28
|
+
1. **「和首页一样的总览」** → 打开 `https://www.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
|
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
| `excel-style-kit.mjs` | 配套代码:Agent 写 xlsx 脚本直接 `import` 使用,零依赖 |
|
|
11
11
|
|
|
12
12
|
> 冲突时以 `*.md` 的内容要求为准,样式文件仅影响排版。任何「用户要 Excel/xlsx/表格」的模板,写脚本时都按 `excel-style-guide.md` 套样式,不再裸写无样式单元格。
|
|
13
|
+
>
|
|
14
|
+
> **终稿语言**:叙事正文跟 `meta.lang`(`zh` 或 `en`),表头用该语言。文件型终稿必须带 `meta.lang`,并传给 `--lang`。询盘 8 Sheet 和用户自定义 Excel 没有 CLI 渲染器,中文用纲要里的中文表头,英文终稿换成英文同义词。
|
|
13
15
|
|
|
14
16
|
**图表库(全部 HTML 模板统一)**:ECharts 5 — `https://staticpn.siluzan.com/assets/slz/homeCDN/echarts.min.js`;初始化用 `echarts.init(el).setOption(...)`。勿使用 Chart.js。
|
|
15
17
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Bing(Microsoft Advertising / BingV2)— 账户分析报告(模板纲要)
|
|
2
2
|
|
|
3
|
+
> **终稿语言**:叙事跟 `meta.lang`(`zh` 或 `en`),表头用该语言。`render` 必须带 `--lang`。
|
|
4
|
+
>
|
|
3
5
|
> 统计区间:`{startDate}` ~ `{endDate}`(**不可包含今天或昨天**,见下文)
|
|
4
6
|
> 账户:`{mediaCustomerId}`(`{mediaCustomerName}`)
|
|
5
7
|
> **默认交付物**:一份可打开的、带 ECharts 图表的 **HTML 文件**(`bing-period-report.html`)。封面按日期写成「季度」或「月度」,对不上仍是「账户分析」。不要打开 HTML 改称呼。
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Google 账户询盘分析(运营固定触发模板)
|
|
2
2
|
|
|
3
|
+
> **终稿语言**:叙事和 Sheet / 表头跟 `meta.lang`。没有 CLI 渲染器,英文终稿用下面的英文同义词,不要自己另起一套结构。
|
|
4
|
+
>
|
|
5
|
+
> | 中文 | 英文 |
|
|
6
|
+
> | --- | --- |
|
|
7
|
+
> | 账户概览 | Account overview |
|
|
8
|
+
> | 询盘明细 | Inquiry detail |
|
|
9
|
+
> | 国家透视 | Country pivot |
|
|
10
|
+
> | 关键词 | Keywords |
|
|
11
|
+
> | 消耗 | Spend |
|
|
12
|
+
> | 询盘 | Leads |
|
|
13
|
+
>
|
|
3
14
|
> **触发话术**(等价即可,命中即走本模板)
|
|
4
15
|
>
|
|
5
16
|
> - `Goog账户询盘分析` / `Google 账户询盘分析`
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Google 账户周期报告 — Excel 交付规格
|
|
2
2
|
|
|
3
|
+
> **终稿语言**:Sheet 名和表头跟 `meta.lang`。英文终稿用消耗→Spend、展示→Impressions、点击→Clicks、转化→Conversions,不要另起结构。
|
|
4
|
+
>
|
|
3
5
|
> **适用场景**:用户明确要求 **Google 账户 + 统计区间 + Excel/xlsx**,且**未**使用 OKKI / 询盘固定话术。
|
|
4
6
|
> **工作流**:**P4**(与 `google-period-report.md` 共用拉数维度;交付形态不同)。
|
|
5
7
|
> **禁止**:加载宿主「xlsx / Excel」第三方 Skill 代替本流程;**无** CLI 内置写表子命令,须 Agent 脚本(`exceljs` / `xlsx` / `openpyxl`)读落盘 JSON 写 `.xlsx`。
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
> 统计区间:`{startDate}` ~ `{endDate}`
|
|
4
4
|
> 账户:`{mediaCustomerId}`
|
|
5
5
|
|
|
6
|
+
> **终稿语言**:叙事跟 `meta.lang`(`zh` 或 `en`),表头用该语言。`render` 必须带 `--lang`。
|
|
7
|
+
>
|
|
6
8
|
> **默认交付物**:一份可打开的、带 ECharts 图表的 **HTML 文件**(`google-period-report.html`)。
|
|
7
9
|
> 用户**未指定格式**时一律走下方 **标准四步流程**;**禁止** Agent 手写/拼接 HTML(语法错误会导致报告无法显示)。
|
|
8
10
|
> **用户明确要求 Excel / xlsx**(且非 OKKI / 询盘话术)时:在拉数步骤不变的前提下,**另 Read 全文** `report-templates/google-period-report-excel.md`,并**先读齐**各维度 `*.outline.txt` 再写脚本;禁止加载宿主第三方 xlsx Skill;**不要**调用 `google-analysis render`。
|
|
@@ -27,7 +29,8 @@ siluzan-tso google-analysis -a <id> --start <s> --end <e> --json-out ./snap-goog
|
|
|
27
29
|
siluzan-tso google-analysis render \
|
|
28
30
|
--data ./google-period-report.json \
|
|
29
31
|
--snapshot-dir ./snap-google \
|
|
30
|
-
--out ./google-period-report.html
|
|
32
|
+
--out ./google-period-report.html \
|
|
33
|
+
--lang <zh|en>
|
|
31
34
|
```
|
|
32
35
|
|
|
33
36
|
`google-period-report.json` 顶层结构:
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Google 季度经营报告
|
|
2
2
|
|
|
3
|
+
> **终稿语言**:叙事跟 `meta.lang`(`zh` 或 `en`),表头用该语言。`render` 必须带 `--lang`。
|
|
4
|
+
>
|
|
3
5
|
> collect 只出事实;Agent 只写 `narrative`;`render` 注入 `google-quarterly-report.html`(大族分页版式 + ECharts)。
|
|
4
6
|
> **禁止** Read HTML 模板。行业数据不做。展会 / 蜜月期服务页不自动出。新探索(视频 / PMax / 发现 / 展示)全无量则整章隐藏。
|
|
5
7
|
>
|
|
@@ -269,6 +269,27 @@ function deviceKind(deviceType) {
|
|
|
269
269
|
|
|
270
270
|
换行是骨架的一部分。`1`~`5`、`5.1`、`5.2`、`7` 各占一行,行末用中文分号 `;`。`6、优化建议:` 单独一行,下面 **3~5 条**用 ①②③④⑤,每条一行。日期写成 `2026年4月1日-4月7日`(同年可省略结束年份),须与 `--start` / `--end` 对应。
|
|
271
271
|
|
|
272
|
+
`meta.lang` 为 `en` 时改用下面这套行首,仍然只替换尖括号里的数字和对象。`okki-render --lang en` 只翻译 Excel 壳,话术仍由 Agent 按这个代码块填写。
|
|
273
|
+
|
|
274
|
+
```
|
|
275
|
+
Google Ads update for <date range>:
|
|
276
|
+
|
|
277
|
+
1. Spend: <amount> in total, <amount> per day;
|
|
278
|
+
2. Impressions and clicks: <impressions> impressions, <clicks> clicks;
|
|
279
|
+
3. CTR: <CTR%>, <strong / normal / low> (<pick one benchmark from the rules below>);
|
|
280
|
+
4. Average CPC: <amount>;
|
|
281
|
+
5. Conversions: <N> website form and chat leads recorded. Direct email and WhatsApp inquiries are not tracked here — please send back the product and country so we can adjust;
|
|
282
|
+
5.1 Converting keywords: <keyword (N, CPA amount)>;
|
|
283
|
+
5.2 Converting countries: <country (N, CPA amount)>;
|
|
284
|
+
6. Recommendations:
|
|
285
|
+
① <one action naming the object and this run's number>
|
|
286
|
+
② <same>
|
|
287
|
+
③ <same>
|
|
288
|
+
7. Account balance: <amount> (as of this check).
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
英文行首必须是:`Google Ads update for`、`1. Spend:`、`2. Impressions and clicks:`、`3. CTR:`、`4. Average CPC:`、`5. Conversions:`、`5.1 Converting keywords:`、`5.2 Converting countries:`、单独一行 `6. Recommendations:`、`7. Account balance:`。
|
|
292
|
+
|
|
272
293
|
**发出去之前对一下行首**(用户本轮没换格式时,缺一条或改了一个行首都重写这块,不要解释):
|
|
273
294
|
|
|
274
295
|
| 行首 | 必须长这样 |
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 网站诊断报告
|
|
2
2
|
|
|
3
|
+
> **终稿语言**:叙事跟 `meta.lang`(`zh` 或 `en`),表头用该语言。`render` 必须带 `--lang`。
|
|
4
|
+
>
|
|
3
5
|
> **最终交付物:一份可打开的、带图表的 HTML 文件**(如 `website-diagnosis-report.html`),不是仅 Markdown 摘要。须含:综合得分环、模块雷达图、风险/模块条形图、Lighthouse 对比图(有数据时)。
|
|
4
6
|
> 数据:`website-diagnosis collect` 落盘 JSON + Agent 按 `assets/website-diagnosis-rules.md` 生成的诊断 JSON
|
|
5
7
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Yandex Direct — 账户分析报告(模板纲要)
|
|
2
2
|
|
|
3
|
+
> **终稿语言**:叙事跟 `meta.lang`(`zh` 或 `en`),表头用该语言。`render` 必须带 `--lang`。
|
|
4
|
+
>
|
|
3
5
|
> 统计区间:`{startDate}` ~ `{endDate}`(**不能晚于今天**;省略默认近 7 天含今天)
|
|
4
6
|
> 账户:`{mediaCustomerId}`(如 `porg-xxx`,与 `list-accounts -m Yandex` 一致)
|
|
5
7
|
> **默认交付物**:一份可打开的 **HTML 文件**(`yandex-period-report.html`,样式对齐开发样例)。封面按日期写成「季度」或「月度」,对不上仍是「账户分析」。不要打开 HTML 改称呼。
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
| `excel-style-kit.mjs` | 配套代码:Agent 写 xlsx 脚本直接 `import` 使用,零依赖 |
|
|
11
11
|
|
|
12
12
|
> 冲突时以 `*.md` 的内容要求为准,样式文件仅影响排版。任何「用户要 Excel/xlsx/表格」的模板,写脚本时都按 `excel-style-guide.md` 套样式,不再裸写无样式单元格。
|
|
13
|
+
>
|
|
14
|
+
> **终稿语言**:叙事正文跟 `meta.lang`(`zh` 或 `en`),表头用该语言。文件型终稿必须带 `meta.lang`,并传给 `--lang`。询盘 8 Sheet 和用户自定义 Excel 没有 CLI 渲染器,中文用纲要里的中文表头,英文终稿换成英文同义词。
|
|
13
15
|
|
|
14
16
|
**图表库(全部 HTML 模板统一)**:ECharts 5 — `https://staticpn.siluzan.com/assets/slz/homeCDN/echarts.min.js`;初始化用 `echarts.init(el).setOption(...)`。勿使用 Chart.js。
|
|
15
17
|
|
|
@@ -656,8 +656,21 @@
|
|
|
656
656
|
|
|
657
657
|
/** 只读 render 注入的 periodChrome,规则与 report-period.ts 相同。 */
|
|
658
658
|
function periodWord(data, neutral) {
|
|
659
|
-
const
|
|
660
|
-
|
|
659
|
+
const chrome = data && data.periodChrome;
|
|
660
|
+
if (chrome && chrome.unitLabel) return chrome.unitLabel;
|
|
661
|
+
const unit = chrome && chrome.unit;
|
|
662
|
+
return unit || neutral;
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
function statusText(row) {
|
|
666
|
+
const lang = (document.documentElement.getAttribute("lang") || "").toLowerCase();
|
|
667
|
+
if (lang.indexOf("en") !== 0) return (row && row.campaignStatusDisplay) || "—";
|
|
668
|
+
const raw = String((row && (row.campaignStatusV2 || row.campaignStatus)) || "").toUpperCase();
|
|
669
|
+
if (raw === "ENABLED" || raw === "ACTIVE") return "Active";
|
|
670
|
+
if (raw === "PAUSED") return "Paused";
|
|
671
|
+
if (raw === "REMOVED" || raw === "DELETED") return "Removed";
|
|
672
|
+
if (!raw) return "—";
|
|
673
|
+
return "Unknown";
|
|
661
674
|
}
|
|
662
675
|
|
|
663
676
|
const PALETTE = [
|
|
@@ -1005,7 +1018,7 @@
|
|
|
1005
1018
|
.map(
|
|
1006
1019
|
(r) => `<tr>
|
|
1007
1020
|
<td>${escapeHtml(r.campaignName || "—")}</td>
|
|
1008
|
-
<td>${escapeHtml(r
|
|
1021
|
+
<td>${escapeHtml(statusText(r))}</td>
|
|
1009
1022
|
<td class="num">${money(r.spend, currency)}</td>
|
|
1010
1023
|
<td class="num">${int(r.impressions)}</td>
|
|
1011
1024
|
<td class="num">${int(r.clicks)}</td>
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Bing(Microsoft Advertising / BingV2)— 账户分析报告(模板纲要)
|
|
2
2
|
|
|
3
|
+
> **终稿语言**:叙事跟 `meta.lang`(`zh` 或 `en`),表头用该语言。`render` 必须带 `--lang`。
|
|
4
|
+
>
|
|
3
5
|
> 统计区间:`{startDate}` ~ `{endDate}`(**不可包含今天或昨天**,见下文)
|
|
4
6
|
> 账户:`{mediaCustomerId}`(`{mediaCustomerName}`)
|
|
5
7
|
> **默认交付物**:一份可打开的、带 ECharts 图表的 **HTML 文件**(`bing-period-report.html`)。封面按日期写成「季度」或「月度」,对不上仍是「账户分析」。不要打开 HTML 改称呼。
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Google 账户询盘分析(运营固定触发模板)
|
|
2
2
|
|
|
3
|
+
> **终稿语言**:叙事和 Sheet / 表头跟 `meta.lang`。没有 CLI 渲染器,英文终稿用下面的英文同义词,不要自己另起一套结构。
|
|
4
|
+
>
|
|
5
|
+
> | 中文 | 英文 |
|
|
6
|
+
> | --- | --- |
|
|
7
|
+
> | 账户概览 | Account overview |
|
|
8
|
+
> | 询盘明细 | Inquiry detail |
|
|
9
|
+
> | 国家透视 | Country pivot |
|
|
10
|
+
> | 关键词 | Keywords |
|
|
11
|
+
> | 消耗 | Spend |
|
|
12
|
+
> | 询盘 | Leads |
|
|
13
|
+
>
|
|
3
14
|
> **触发话术**(等价即可,命中即走本模板)
|
|
4
15
|
>
|
|
5
16
|
> - `Goog账户询盘分析` / `Google 账户询盘分析`
|