siluzan-tso-cli 1.1.48 → 1.1.49-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/index.js +2511 -1680
- package/dist/skill/SKILL.md +2 -2
- package/dist/skill/_meta.json +2 -2
- package/dist/skill/assets/google-period-report.schema.json +8 -0
- package/dist/skill/assets/okki-weekly-report.schema.json +78 -0
- package/dist/skill/references/README.md +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/account-analytics.md +3 -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 +1 -1
- package/dist/skill/references/core/intent-routing.md +2 -2
- package/dist/skill/references/core/playbooks.md +5 -3
- package/dist/skill/references/core/setup.md +5 -5
- package/dist/skill/references/core/subagent-orchestration.md +3 -3
- package/dist/skill/references/misc/tso-home.md +2 -2
- package/dist/skill/references/report-templates/README.md +1 -1
- package/dist/skill/references/report-templates/REPORT-WORKFLOW.md +3 -3
- package/dist/skill/references/report-templates/excel-style-guide.md +1 -1
- package/dist/skill/references/report-templates/google-period-report-excel.md +2 -1
- package/dist/skill/references/report-templates/google-period-report.md +1 -1
- package/dist/skill/references/report-templates/okki-weekly-google-client.md +37 -18
- package/dist/skill/report-templates/README.md +1 -1
- package/dist/skill/report-templates/REPORT-WORKFLOW.md +3 -3
- package/dist/skill/report-templates/excel-style-guide.md +1 -1
- package/dist/skill/report-templates/google-period-report-excel.md +2 -1
- package/dist/skill/report-templates/google-period-report.html +2 -0
- package/dist/skill/report-templates/google-period-report.md +1 -1
- package/dist/skill/report-templates/okki-weekly-google-client.md +37 -18
- package/dist/skill/scripts/install.ps1 +3 -3
- package/dist/skill/scripts/install.sh +3 -3
- package/dist/skill/snippets/handoff-p6-okki.md +15 -6
- package/package.json +1 -1
package/dist/skill/SKILL.md
CHANGED
|
@@ -20,7 +20,7 @@ allowed-tools: Bash(siluzan-tso:*) Read Write
|
|
|
20
20
|
|
|
21
21
|
> **加载**:按下方路由表 Read **一个**工作流卡片 + **一个**命令/报告 reference 后执行。写操作、报告交付、批量拉数、对用户写结论、或上下文被压缩时,再 Read `references/core/agent-conventions.md`(含 §十四沟通)。
|
|
22
22
|
>
|
|
23
|
-
> **报告 / 诊断 / 分析 / 拓词 / 转化成本·CPA·零询盘话术模糊**:先 Read `references/core/intent-routing.md`(含 **§零·D**:无 CRM 的转化巡检 → P3,不是 P7),再回路由表。数据任务一律 `--json-out` + 代码读盘(示例见 `references/core/tips.md`)。未指定格式时 P1/P4/P4-FB/P8/P9 默认 **HTML**;**P6
|
|
23
|
+
> **报告 / 诊断 / 分析 / 拓词 / 转化成本·CPA·零询盘话术模糊**:先 Read `references/core/intent-routing.md`(含 **§零·D**:无 CRM 的转化巡检 → P3,不是 P7),再回路由表。数据任务一律 `--json-out` + 代码读盘(示例见 `references/core/tips.md`)。未指定格式时 P1/P4/P4-FB/P8/P9 默认 **HTML**;**P6 默认 `okki-render` 出 5 Sheet `.xlsx`**、**P7 默认 8 Sheet `.xlsx`**(「表格形式」= xlsx,禁止 Markdown 表 / 手写 HTML / P6 Agent 手写 xlsx)。巡检类任务须交付摘要或显式失败原因。
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -109,7 +109,7 @@ siluzan-tso -h
|
|
|
109
109
|
| Yandex 账户分析 / 周期 / 月报 | **P4** | `report-templates/yandex-period-report.md` + `references/analytics/account-analytics.md`;Excel 加 `yandex-period-report-excel.md` |
|
|
110
110
|
| 账户级按日 Excel | **P4-DAILY** | `report-templates/stats-daily-excel.md` |
|
|
111
111
|
| 多账户 × 多维度批处理 | **P5** | `references/analytics/google-analysis-batch.md` + `references/analytics/account-analytics.md` |
|
|
112
|
-
| OKKI 周报 / 表格形式(OKKI) | **P6** | `report-templates/okki-weekly-google-client.md
|
|
112
|
+
| OKKI 周报 / 表格形式(OKKI) | **P6** | `report-templates/okki-weekly-google-client.md`(写 `okki-weekly-report.json` → `google-analysis okki-render` 出 5 Sheet `.xlsx`;「表格形式」= Excel) |
|
|
113
113
|
| Google 询盘分析(**须 CRM 询盘资料**;口语零询盘/CPA → **P3**) | **P7** | `report-templates/google-inquiry-analysis.md` + `references/analytics/geo-continents.json` |
|
|
114
114
|
| 网址/域名/官网 + 诊断·检测·监测·报告 / **是否符合广告投放要求** / 能不能投 | **P8** | `references/core/intent-routing.md` §零 + `references/analytics/website-diagnosis-guide.md` + `assets/website-diagnosis-rules.md`(**必** `website-diagnosis collect`;**≠ P9 ≠ W3**;禁纯 WebFetch) |
|
|
115
115
|
| 市场/行业分析报告 / 战略市场 / KA 市场报告 | **P9** | `references/analytics/market-analysis-guide.md` + `assets/market-analysis-rules.md`(须 collect+render;**≠ P8**) |
|
package/dist/skill/_meta.json
CHANGED
|
@@ -30,6 +30,14 @@
|
|
|
30
30
|
"ctr": { "type": "number", "description": "0~1 小数" },
|
|
31
31
|
"averageCpc": { "type": "number" },
|
|
32
32
|
"costPerConversion": { "type": "number" },
|
|
33
|
+
"activeDays": {
|
|
34
|
+
"type": "number",
|
|
35
|
+
"description": "本期消耗>0 的自然日数;来自 overview.record.activeDays,不在 currentPeriod"
|
|
36
|
+
},
|
|
37
|
+
"averageDailyCost": {
|
|
38
|
+
"type": "number",
|
|
39
|
+
"description": "本期日均消耗;来自 overview.record.averageDailyCost,不在 currentPeriod"
|
|
40
|
+
},
|
|
33
41
|
"previousPeriod": {
|
|
34
42
|
"type": "object",
|
|
35
43
|
"description": "环比上期(用于 KPI 卡片环比箭头),可省略",
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "siluzan-tso/okki-weekly-report.schema.json",
|
|
4
|
+
"title": "OkkiWeeklyReport",
|
|
5
|
+
"description": "OKKI 周报 JSON(对齐 okki-weekly-google-client.md)。Agent 只写 meta + narrative;tables/kpis 由 google-analysis okki-render --snapshot-dir 合并。render 校验 5 Sheet 表末分析 + 账户 Sheet 固定 5 维数据复盘,缺项拒绝出 xlsx。",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["meta", "narrative"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"meta": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"required": ["accountId"],
|
|
12
|
+
"properties": {
|
|
13
|
+
"accountId": { "type": "string" },
|
|
14
|
+
"accountName": { "type": "string" },
|
|
15
|
+
"startDate": { "type": "string", "format": "date" },
|
|
16
|
+
"endDate": { "type": "string", "format": "date" },
|
|
17
|
+
"currency": { "type": "string" }
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"narrative": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"required": ["sheetAnalysis", "review"],
|
|
23
|
+
"properties": {
|
|
24
|
+
"sheetAnalysis": {
|
|
25
|
+
"type": "object",
|
|
26
|
+
"description": "每个 Sheet 表末「分析」;表为空也必须写",
|
|
27
|
+
"required": ["campaigns", "keywords", "searchTerms", "devices", "geo"],
|
|
28
|
+
"properties": {
|
|
29
|
+
"campaigns": { "$ref": "#/$defs/sheetAnalysis" },
|
|
30
|
+
"keywords": { "$ref": "#/$defs/sheetAnalysis" },
|
|
31
|
+
"searchTerms": { "$ref": "#/$defs/sheetAnalysis" },
|
|
32
|
+
"devices": { "$ref": "#/$defs/sheetAnalysis" },
|
|
33
|
+
"geo": { "$ref": "#/$defs/sheetAnalysis" }
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"review": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"description": "账户 Sheet 底部「数据复盘」固定 5 维,每维 overview + summary + suggestion",
|
|
39
|
+
"required": ["account", "keywords", "searchTerms", "devices", "geo"],
|
|
40
|
+
"properties": {
|
|
41
|
+
"account": { "$ref": "#/$defs/reviewBlock" },
|
|
42
|
+
"keywords": { "$ref": "#/$defs/reviewBlock" },
|
|
43
|
+
"searchTerms": { "$ref": "#/$defs/reviewBlock" },
|
|
44
|
+
"devices": { "$ref": "#/$defs/reviewBlock" },
|
|
45
|
+
"geo": { "$ref": "#/$defs/reviewBlock" }
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"$defs": {
|
|
52
|
+
"sheetAnalysis": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"required": ["summary", "suggestions"],
|
|
55
|
+
"properties": {
|
|
56
|
+
"summary": {
|
|
57
|
+
"type": "array",
|
|
58
|
+
"minItems": 1,
|
|
59
|
+
"items": { "type": "string", "minLength": 1 }
|
|
60
|
+
},
|
|
61
|
+
"suggestions": {
|
|
62
|
+
"type": "array",
|
|
63
|
+
"minItems": 1,
|
|
64
|
+
"items": { "type": "string", "minLength": 1 }
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"reviewBlock": {
|
|
69
|
+
"type": "object",
|
|
70
|
+
"required": ["overview", "summary", "suggestion"],
|
|
71
|
+
"properties": {
|
|
72
|
+
"overview": { "type": "string", "minLength": 1 },
|
|
73
|
+
"summary": { "type": "string", "minLength": 1 },
|
|
74
|
+
"suggestion": { "type": "string", "minLength": 1 }
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
| 文件 | 用途 |
|
|
126
126
|
| ----------------------- | --------------------------------- |
|
|
127
127
|
| `handoff-p5-batch.md` | P5 batch 与按账户聚合 Task prompt |
|
|
128
|
-
| `handoff-p6-okki.md` | P6 OKKI 拉数 / 写
|
|
128
|
+
| `handoff-p6-okki.md` | P6 OKKI 拉数 / 写 JSON + okki-render |
|
|
129
129
|
| `handoff-p7-inquiry.md` | P7 询盘拉数与 xlsx |
|
|
130
130
|
|
|
131
131
|
`agent-preamble.md` 仅用于构建时注入 `SKILL.md`,不复制到 `dist/skill/snippets/`。
|
|
@@ -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
|
---
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
## 工作流入口(线性步骤见 playbooks)
|
|
45
45
|
|
|
46
46
|
> 线性步骤见 `playbooks.md`:单户画像 **P1**、Google 周期 **P4**、Meta 周期 **P4-FB**、多账户批处理 **P5**、OKKI **P6**、询盘 **P7**。
|
|
47
|
-
> 「使用 okki 周报模板」→ **P6**(勿按默认 8
|
|
47
|
+
> 「使用 okki 周报模板」→ **P6**(勿按默认 8 维追问;终稿 `google-analysis okki-render`,禁止 Agent 手写 xlsx)。Google 周期 Excel(非 OKKI/询盘)→ **P4** + `report-templates/google-period-report-excel.md`。
|
|
48
48
|
|
|
49
49
|
拉数落盘:`google-analysis … --json-out <dir>`(Google)或 `yandex-analysis` / `bing-analysis` / `facebook-analysis` / `tiktok-analysis`;目录内生成 `<section>-<accountId>.json` + `manifest-<accountId>.json`(Meta/TikTok/Bing/Yandex 为 `report-manifest-<accountId>.json`)。读盘协议、交付自检与报告首行标注统一见 `references/core/agent-conventions.md` §三、§七。
|
|
50
50
|
|
|
@@ -157,6 +157,8 @@ siluzan-tso google-analysis -a <id> --exclude materials,gold-account --json-out
|
|
|
157
157
|
|
|
158
158
|
**唯一判别规则**:`record` 非 `null` → 读 `record`(汇总维度);否则 → 读 `items[]`(列表维度)。
|
|
159
159
|
|
|
160
|
+
`overview` 的 `activeDays` / `averageDailyCost` **只在 `record` 根上**(本期、消耗>0 的自然日;日均=`totalCost/activeDays`)。`currentPeriod` / `previousPeriod` **没有**这两个字段——禁止 `cur.get("activeDays")`(会整行写成「—」)。上期活跃天数接口不返回;要环比另拉上期 `daily-metrics` 数 `spend>0` 的天数,禁止编造。`google-analysis render --snapshot-dir` 会把这两个字段并进 `kpis`。
|
|
161
|
+
|
|
160
162
|
| 桶 | 维度 | 读法 |
|
|
161
163
|
| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
|
|
162
164
|
| **列表** | `keywords`、`search-terms`、`campaigns`、`campaign-hour`、`ads`、`extensions`、`devices`、`geographic`、`geo-matched`、`campaign-geo`、`campaign-geo-matched`、`campaign-device`、`audience`、`asset-images`、`videos`、`materials`、`daily-metrics`、`conversion-actions` | `d.items[]` |
|
|
@@ -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
|
```
|
|
@@ -221,7 +221,7 @@
|
|
|
221
221
|
|
|
222
222
|
**A · 币种**:首行含 `统计区间:…(货币:CNY|USD)`;全文符号与 `currencyCode` 一致(CNY=¥、USD=$,未混用);与当次 `list-accounts -k` 结果相同;多账户分币种分表、无跨币种「总计」行。
|
|
223
223
|
|
|
224
|
-
**B · 结构完整**(对照当次 `report-templates/*.md`):模板要求的每一章/Sheet 都存在;无整章空白(缺数据章节写 `[ 数据不可用:… ]`,禁止编造数字填坑);优化建议独立成节、引用当次数字(Meta 周期:四问 + 3 张建议卡 + 各章 analysis/advice;Google 诊断:每模块除表格外有「分析」+「建议」);Excel 的表头列须能在当次 `*.outline.txt` 找到对应字段、产物内账户 ID = 用户当轮给出的 `mediaCustomerId`;**Excel 内全部 ID 列为文本**(见上文「写 Excel 时所有 ID 必须是文本」)。**P6
|
|
224
|
+
**B · 结构完整**(对照当次 `report-templates/*.md`):模板要求的每一章/Sheet 都存在;无整章空白(缺数据章节写 `[ 数据不可用:… ]`,禁止编造数字填坑);优化建议独立成节、引用当次数字(Meta 周期:四问 + 3 张建议卡 + 各章 analysis/advice;Google 诊断:每模块除表格外有「分析」+「建议」);Excel 的表头列须能在当次 `*.outline.txt` 找到对应字段、产物内账户 ID = 用户当轮给出的 `mediaCustomerId`;**Excel 内全部 ID 列为文本**(见上文「写 Excel 时所有 ID 必须是文本」)。**P6**:磁盘上必须已有 `google-analysis okki-render` 写出的 `.xlsx`(禁止 Agent 手写表)。**P7**:磁盘上必须已有 `.xlsx`。对话 Markdown 表、手写 HTML/PDF **不能**当作终稿通过自检(用户明确只要话术除外)。
|
|
225
225
|
|
|
226
226
|
**C · 数字可信**(抽样,不读大 JSON):总消耗/CPA 数量级与生成过程中脚本 stdout 打印的汇总一致(若无,补跑一次极小 `node -e` 只打印 totals);账户 ID、区间与用户需求一致;无「示例账户」「占位 123456」等模板残留;表格行数符合预期(如 P3 每个 `-a` ID 占一行)。
|
|
227
227
|
|
|
@@ -222,7 +222,7 @@
|
|
|
222
222
|
| **P4** | **单个媒体广告账户** 某区间的 **周期汇总** | 周期报告、月度报告、季度报告、月报、投放月报、Google 账户报告(**未强调「诊断/健康/网站/网址」**) | 媒体 + 账户 ID + 区间 | HTML(默认);用户要 Excel 见 P4 excel 纲要 |
|
|
223
223
|
| **P4-DAILY** | **账户级按日表**(无多维) | 按天导出、投放数据 Excel(非 Google/Meta 周期报告) | 媒体 + 账户 ID + 区间 | xlsx(`stats --by-day`) |
|
|
224
224
|
| **P4-FB** | **Meta/Facebook 账户** 周期或诊断 | Facebook 报告、Meta 月报、FB **账户**诊断报告 | Meta 账户 ID + 区间 | HTML(`facebook-analysis render`);要表格 `--format xlsx` |
|
|
225
|
-
| **P6** | **OKKI 周报**(固定客户模板) | 见 §三魔法短语;「表格形式 / 表格 / 各维度表格」仍是 P6 | 账户 ID + 区间 | **必产** 5 Sheet xlsx
|
|
225
|
+
| **P6** | **OKKI 周报**(固定客户模板) | 见 §三魔法短语;「表格形式 / 表格 / 各维度表格」仍是 P6 | 账户 ID + 区间 | **必产** 5 Sheet xlsx(`google-analysis okki-render`;禁止 Markdown 表/手写 HTML/Agent 手写 xlsx) |
|
|
226
226
|
| **P7** | **Google 账户 + CRM 询盘资料** 效果 | 见 §三魔法短语;**须有询盘附件/字段表**(≠ 口语「零询盘」) | 账户 + 分析月 + 询盘资料 | 8 Sheet xlsx |
|
|
227
227
|
| **P3** | **多个广告账户** 消耗/CPA/零转化巡检 | 多账户对比、消耗排名、**转化成本监控**、**CPA**、**零转化**、口语「零询盘」(无 CRM)——见 **§零·D** | 媒体 + 账户列表或全量 + 区间 | 表格 / 话术 |
|
|
228
228
|
| **P2** | **多账户余额** 续航预警 | 余额扫描、快没钱了、充值预警 | 媒体(可选账户子集) | 列表 |
|
|
@@ -263,7 +263,7 @@
|
|
|
263
263
|
| 用户话术(含子串即可) | 工作流 | 备注 |
|
|
264
264
|
| ------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | --------------------------------------------------------- |
|
|
265
265
|
| **网址 / URL / 域名 / 官网 / 落地页** + **诊断 / 检测 / 监测 / 评估 / 体检 / 报告 / 符合投放要求 / 能不能投**(含「网络诊断」「网络检测」) | **P8** | 与 **§零** 同义;**优先 §零**;必 `website-diagnosis` CLI |
|
|
266
|
-
| `OKKI 周报` / `okki 周报` / `使用 okki 周报模板` | **P6** | **不按 P4 默认 8
|
|
266
|
+
| `OKKI 周报` / `okki 周报` / `使用 okki 周报模板` | **P6** | **不按 P4 默认 8 维**;写 JSON 后 `okki-render` 出 xlsx;「表格形式」= Excel,禁止对话 Markdown 表 / Agent 手写 xlsx |
|
|
267
267
|
| `Google 账户询盘分析` / `分析 … Google 账号的询盘效果`(**且有询盘附件/字段表**) | **P7** | 严格 3 个月窗口;无 CRM → 改 **§零·D / P3** |
|
|
268
268
|
| `转化成本监控` / `CPA 监控` / `谷歌ADS转化成本` / `低余额账户转化成本` | **P3(§零·D)** | `accounts-digest`;可加 `--max-cpa` |
|
|
269
269
|
| `昨日零询盘` / `零询盘账户` / `0 转化` / `有消耗无转化`(**无 CRM 附件**) | **P3(§零·D)** | `--zero-conversions`;**不是 P7** |
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
| P4 | Google 账户周期报告 | 默认 8 维周期汇总 |
|
|
13
13
|
| P4-FB | Meta/Facebook 周期报告 | facebook-analysis 默认 5 维,默认 HTML |
|
|
14
14
|
| P5 | 多账户多维度批处理 | google-analysis-batch,禁外层 for-loop |
|
|
15
|
-
| P6 | OKKI 周报 |
|
|
15
|
+
| P6 | OKKI 周报 | 写 JSON → okki-render 出 5 Sheet xlsx |
|
|
16
16
|
| P7 | Google 询盘分析 | 严格 3 个月 8 Sheet xlsx |
|
|
17
17
|
| P8 | 网站诊断 | website-diagnosis,默认 HTML |
|
|
18
18
|
| P9 | 战略市场分析 | market-analysis,默认 HTML |
|
|
@@ -135,8 +135,10 @@
|
|
|
135
135
|
1. (可选)Read `subagent-orchestration.md` § P6 决定是否分阶段委派。
|
|
136
136
|
2. 确认 `mediaCustomerId` 与 `--start` / `--end`。
|
|
137
137
|
3. 同一 `--json-out` 目录执行模板命令组合:`stats`、`balance`、`google-analysis --sections overview,campaigns,keywords,search-terms,campaign-device,campaign-geo-matched`。
|
|
138
|
-
4. 脚本读盘 →
|
|
139
|
-
-
|
|
138
|
+
4. 脚本读盘 → 只写 `okki-weekly-report.json` 的 `meta` + `narrative`(5 Sheet 表末分析 + 账户 Sheet 固定 5 维数据复盘;表为空也须写)。
|
|
139
|
+
5. `google-analysis okki-render --data ./okki-weekly-report.json --snapshot-dir ./snap-okki --out <xlsx>`。缺分析 / 缺 5 维复盘 / 缺 `campaign-device` 或 `campaign-geo-matched` 会拒绝出文件;按 stderr 补 JSON 后重跑。**禁止** Agent 手写 xlsx。
|
|
140
|
+
6. 按 `okki-weekly-google-client.md` **默认客户话术**填数交付(用户另有话术/增删条目时从其自定义);数值与 xlsx 一致。
|
|
141
|
+
- **产物**:`okki-render` 写出的 `.xlsx` 路径(缺文件 = 未完成)+ 对话内客户话术;**不**按 P4 默认 8 维追加。仅用户明确「只要话术 / 不要文件」时才省略 xlsx。
|
|
140
142
|
|
|
141
143
|
---
|
|
142
144
|
|
|
@@ -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
|
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
| 单次 `list-accounts -k`、P1 三步拉数、`-h` 查参 | **主会话** | — | 为查一个账户开子会话 |
|
|
39
39
|
| `balance-scan` / `accounts-digest` 单命令 | **主会话** | — | 外层 for-loop 逐账户 |
|
|
40
40
|
| 预计 CLI **>2 分钟** 或 stderr/stdout 很长 | **委派** | 内置 **Bash** 或 Task + `snippets/handoff-*.md` 拉数段 | 在主会话逐行读日志 |
|
|
41
|
-
| **P6 OKKI**:拉数 → 写
|
|
41
|
+
| **P6 OKKI**:拉数 → 写 JSON → okki-render(两阶段) | **委派** | 阶段 1:Bash/Task 拉数;阶段 2:Task 只读 snap 写叙事 JSON 并跑 `okki-render` | 子会话做写操作确认 |
|
|
42
42
|
| **P7 询盘**:`m1`/`m2`/`m3` 三月拉数 | **并行委派** | 3× Task(`handoff-p7-inquiry.md` 子目录变体) | 3× 主会话顺序跑 |
|
|
43
43
|
| **P5** `google-analysis-batch run` 全量 | **主会话或单次 Bash** | **一次** batch;CLI 内置并发 | per-account 子会话调 API |
|
|
44
44
|
| **P5** batch **完成后** 按账户聚合 | **可选并行** | N× Task,只读 `results/<accountId>/` | 子会话 `run` 新 batch |
|
|
@@ -106,8 +106,8 @@ summary: <1-3 句中文,无业务数字除非来自 manifest>
|
|
|
106
106
|
|
|
107
107
|
1. 主 Agent:确认账户与日期区间。
|
|
108
108
|
2. **决策**:拉数阶段若日志长 → Bash/Task + `handoff-p6-okki.md` §拉数;否则主会话执行模板 §拉数命令。
|
|
109
|
-
3.
|
|
110
|
-
4. 主 Agent:合并交付 **xlsx
|
|
109
|
+
3. **决策**:写叙事 JSON + `okki-render` → Task handoff(只读 `snapDir`,先 outline 后 JSON,见 `references/core/tips.md`);或主会话若上下文充足。**禁止** Agent 手写 xlsx。
|
|
110
|
+
4. 主 Agent:合并交付 **xlsx 路径**(须来自 `okki-render`)+ 客户话术;金额与 ID 与 manifest 一致。**没有 `.xlsx` 不得收口**(用户明确只要话术除外)。
|
|
111
111
|
|
|
112
112
|
### P5 · 多账户多维度
|
|
113
113
|
|
|
@@ -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
|
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
| `bing-period-report.md` / `.html` | **Bing(BingV2)分析报告(默认)**:四步流程 → `bing-analysis render` 出 HTML |
|
|
34
34
|
| `yandex-period-report.md` / `.html` | **Yandex Direct 周期报告(默认)**:四步流程 → `yandex-analysis render` 出 HTML(样式对齐开发样例) |
|
|
35
35
|
| `yandex-period-report-excel.md` | **仅用户要 Excel 时**:Agent 脚本写 xlsx;无 CLI excel 子命令 |
|
|
36
|
-
| `okki-weekly-google-client.md` | **OKKI
|
|
36
|
+
| `okki-weekly-google-client.md` | **OKKI 周报**:写 `okki-weekly-report.json` → `google-analysis okki-render` 出 5 Sheet Excel + 客户话术,见 `references/core/playbooks.md` P6 |
|
|
37
37
|
| `google-inquiry-analysis.md` | **Google 询盘分析**:严格 3 个月 + 用户询盘 + 8 Sheet xlsx,见 `references/core/playbooks.md` P7 |
|
|
38
38
|
| `website-diagnosis-report.md` / `.html` | **网站诊断**:终稿为 **HTML**(对齐 TSO `WebsiteAnalysisReport/v3`);配合 `website-diagnosis collect`,见 P8 |
|
|
39
39
|
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
- **TikTok 周期报告**:产出 `tiktok-period-report.json`(见 `tiktok-period-report.md`,`meta` 可由 `--snapshot-dir` 自动合并)。
|
|
85
85
|
- **Bing 周期报告**:产出 `bing-period-report.json`(见 `bing-period-report.md`,`meta`/`kpis` 可由 `--snapshot-dir` 自动合并)。
|
|
86
86
|
- **Yandex 周期报告**:产出 `yandex-period-report.json`(见 `yandex-period-report.md`,`meta`/`kpis`/`tables` 可由 `--snapshot-dir` 自动合并)。
|
|
87
|
-
- **OKKI(P6
|
|
87
|
+
- **OKKI(P6)**:产出 `okki-weekly-report.json` 后走 `google-analysis okki-render` 出 **5 Sheet `.xlsx`**(必产);**询盘(P7)**仍由 Agent 脚本写 8 Sheet `.xlsx`。对话 Markdown 表 / 手写 HTML **不能**代替终稿。
|
|
88
88
|
|
|
89
89
|
### 步骤 5b:生成终稿(按媒体与格式)
|
|
90
90
|
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
| **Bing 周期报告** | `bing-analysis render` → **HTML**(必做) | Agent 脚本写 xlsx;**不**默认 `render` |
|
|
98
98
|
| **Yandex 周期报告** | `yandex-analysis render` → **HTML**(必做) | Agent 脚本按 `yandex-period-report-excel.md` 写 xlsx;**不**默认 `render` |
|
|
99
99
|
| **Google 诊断** | 按 `report-template*.html` 写 HTML(默认 `report-template.html`) | 同左;用户要 Excel 时 Agent 脚本写 xlsx |
|
|
100
|
-
| **OKKI 周报(P6)** | **必产 5 Sheet `.xlsx
|
|
100
|
+
| **OKKI 周报(P6)** | **必产 5 Sheet `.xlsx`**(`google-analysis okki-render`;「表格形式」= xlsx) | 同左;仅用户明确「只要话术 / 不要文件」才省略 |
|
|
101
101
|
| **Google 询盘(P7)** | **必产 8 Sheet `.xlsx`**(Agent 脚本) | 同左 |
|
|
102
102
|
| **网站诊断** | `website-diagnosis render` → HTML | — |
|
|
103
103
|
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
| 用户措辞 | 映射 |
|
|
126
126
|
| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
127
127
|
| 月报、周报、投放总结、效果回顾 | 周期分析 → 对应媒体 `*-period-report.md` |
|
|
128
|
-
| **使用 okki 周报模板 / OKKI 周报 / okki 周报**(Google + 区间;含「表格形式」) | **固定话术 + 必产 5 Sheet `.xlsx`** → `okki-weekly-google-client.md`(见 SKILL **P6
|
|
128
|
+
| **使用 okki 周报模板 / OKKI 周报 / okki 周报**(Google + 区间;含「表格形式」) | **固定话术 + 必产 5 Sheet `.xlsx`** → `okki-weekly-google-client.md`(见 SKILL **P6**);终稿必须 `google-analysis okki-render`;「表格形式」= Excel,**禁止**对话 Markdown 表 / 手写 HTML / Agent 手写 xlsx |
|
|
129
129
|
| **Goog账户询盘分析 / Google 账户询盘分析 / 分析XXX Google账号的询盘效果 / 我给你询盘信息分析Google账号XXX效果**(或含「询盘 + 账户 + Google」三要素) | **询盘 + 账户合并分析 + 严格 3 个月 + 8 Sheet xlsx** → `google-inquiry-analysis.md`(见 SKILL **P7**);询盘资料用户上传任意载体,宿主 Agent 解析落盘 `inquiries.json`,xlsx **仅**由 Agent 脚本生成 |
|
|
130
130
|
| 健康检查、诊断、账户分析 | 诊断 → `google-account-diagnosis-report.md`(Google)或周期型降级 |
|
|
131
131
|
| 对比、汇报、给客户看 | 以周期型为骨架,简化版本 |
|
|
@@ -85,7 +85,7 @@ sheet.setColWidths([20, 60]); // 字符数,两列型表格:标签列窄、
|
|
|
85
85
|
| `google-period-report-excel.md` | 本文件 | `google` |
|
|
86
86
|
| `yandex-period-report-excel.md` | 本文件 | `yandex` |
|
|
87
87
|
| `stats-daily-excel.md` | 本文件 | 按 `-m` 媒体参数对应色 |
|
|
88
|
-
| `okki-weekly-google-client.md` |
|
|
88
|
+
| `okki-weekly-google-client.md` | **不用本套件**;走 `google-analysis okki-render` 锁死 5 Sheet | `google` |
|
|
89
89
|
| `google-inquiry-analysis.md` | 本文件(8 Sheet 固定版式) | `google` |
|
|
90
90
|
|
|
91
91
|
**注意**:各模板文件里规定的 Sheet 名 / 列名 / 数据口径(业务内容)以各自 `*.md` 为准,本文件只管「怎么好看」,不改「写什么」。
|
|
@@ -62,6 +62,7 @@ siluzan-tso google-analysis -a <id> --start <S> --end <E> --json-out ./snap-p4 \
|
|
|
62
62
|
|
|
63
63
|
| 维度 | ❌ 禁止猜 | ✅ outline 真实字段 |
|
|
64
64
|
| ----------------- | ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
|
65
|
+
| `overview` | `currentPeriod.activeDays`、`previousPeriod.activeDays`、`currentPeriod.averageDailyCost` | `record.activeDays`、`record.averageDailyCost`(只在 **record 根**;period 块没有。上期这两字段接口不返回;要环比另拉上期 `daily-metrics` 数 `spend>0` 天数) |
|
|
65
66
|
| `keywords` | `keywordText`、`status`、`matchType`(单独作展示列) | `keyword`、`userStatus`、`keywordMatchTypeZh`(或 `keywordMatchType`) |
|
|
66
67
|
| `search-terms` | `query` | `searchTermText`;匹配类型用 `matchTypeZh`;状态用 `queryTargetingStatusZh` |
|
|
67
68
|
| `geographic` | `geoName`、`countryCriterionIdName` | `countryOrRegion`、`countryNameZh`、`countryCode` |
|
|
@@ -117,6 +118,6 @@ siluzan-tso google-analysis -a <id> --start <S> --end <E> --json-out ./snap-p4 \
|
|
|
117
118
|
## 相关文档
|
|
118
119
|
|
|
119
120
|
- `google-period-report.md` — 默认维度与可选追加
|
|
120
|
-
- `okki-weekly-google-client.md` — OKKI 固定 5 Sheet(P6
|
|
121
|
+
- `okki-weekly-google-client.md` — OKKI 固定 5 Sheet(P6,`google-analysis okki-render`)
|
|
121
122
|
- `references/core/tips.md` — 摘要 → outline → 脚本
|
|
122
123
|
- `references/core/playbooks.md` — P4 步骤卡片
|
|
@@ -33,7 +33,7 @@ siluzan-tso google-analysis render \
|
|
|
33
33
|
`google-period-report.json` 顶层结构:
|
|
34
34
|
|
|
35
35
|
- `meta`:`accountId`(必填)/ `accountName` / `currency` / `startDate` / `endDate`;可省略由 `--snapshot-dir` 从 `overview` + manifest 自动合并。
|
|
36
|
-
- `kpis`:账户级 KPI(消耗/展示/点击/转化/CTR/CPC/CPA,含可选 `previousPeriod`
|
|
36
|
+
- `kpis`:账户级 KPI(消耗/展示/点击/转化/CTR/CPC/CPA,含可选 `previousPeriod` 环比;另含 `activeDays` / `averageDailyCost`);Agent 可省略,但 **render 合并后** `cost`/`impressions`/`clicks` 至少一项须为有效数字,否则拒绝出 HTML(避免执行摘要卡片全「—」)。本期 KPI 由 CLI 优先对 `campaigns` 全系列累加并重算比率;无 campaigns 时回退 `overview.currentPeriod`,再回退 `dimension-summary`。`activeDays` / `averageDailyCost` 来自 `overview.record` 根(**不是** `currentPeriod`);环比仍来自 `overview.previousPeriod`(上期无活跃天数,不编造)。
|
|
37
37
|
- `charts.dailyTrend`:每日趋势(`dates`/`cost`/`conversions`/`cpa`);可省略由 `daily-metrics` 自动合并。
|
|
38
38
|
- `tables.{dimensionSummary,campaigns,devices,geographic,keywords}`:对应 §3~§7 表格数据;可省略由同名 `google-analysis` section 自动合并。
|
|
39
39
|
- `narrative`(**Agent 必填,唯一由 Agent 撰写的内容**):
|
|
@@ -6,24 +6,24 @@
|
|
|
6
6
|
> **媒体**:当前模板仅规范 **Google**(`mediaCustomerId`)。其他媒体用各自 `*-period-report.md`。
|
|
7
7
|
> **Excel 版式基准**:与运营样表《**数据复盘分析**》类 xlsx 对齐(如 `2025.12数据复盘分析.xlsx`);工作簿 5 个 Sheet、顺序与表头以下文规范为准。
|
|
8
8
|
>
|
|
9
|
-
> **默认交付(硬性,缺文件 = 任务未完成)**:磁盘上的 **5 Sheet `.xlsx
|
|
9
|
+
> **默认交付(硬性,缺文件 = 任务未完成)**:磁盘上的 **5 Sheet `.xlsx`**(由 `google-analysis okki-render` 生成)+ 对话内客户话术。
|
|
10
10
|
> 「表格形式 / 表格 / 各维度表格 / 表 / 做成表」= **Excel `.xlsx`**,**不是**对话 Markdown 表,**不是**手写 HTML/PDF。
|
|
11
11
|
> 仅当用户明确「只要话术 / 不要文件 / 不要 Excel」时才省略 xlsx。
|
|
12
|
-
> **禁止**:用对话 Markdown 表、手写 HTML、PDF 代替 `.xlsx
|
|
12
|
+
> **禁止**:用对话 Markdown 表、手写 HTML、PDF 代替 `.xlsx`;**禁止** Agent 手写 / 脚本写 xlsx。
|
|
13
13
|
|
|
14
14
|
## Contents
|
|
15
15
|
|
|
16
16
|
- 须先确认
|
|
17
|
-
-
|
|
17
|
+
- 标准四步流程(拉数 → 写 JSON → okki-render)
|
|
18
18
|
- 拉数(一次目录)
|
|
19
|
-
- xlsx
|
|
19
|
+
- xlsx 版式规范(由 CLI 锁死)
|
|
20
20
|
- 对外客户话术(默认结构,填数来自 JSON)
|
|
21
21
|
- 复盘小结(Excel「数据复盘」区块 / 对内补充)
|
|
22
22
|
- 与 `google-period-report.md` 的差异
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
26
|
-
识别到上述意图时:**不要**再走 `google-period-report.md` 的「默认 8 维 + 追问追加」流程;按本文**固定维度 + 默认客户话术(可用户自定义)+ 5 Sheet `.xlsx`**
|
|
26
|
+
识别到上述意图时:**不要**再走 `google-period-report.md` 的「默认 8 维 + 追问追加」流程;按本文**固定维度 + 默认客户话术(可用户自定义)+ `okki-render` 出 5 Sheet `.xlsx`** 交付。**先 `okki-render` 再发话术**;没有 `.xlsx` 路径不得收口。
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
@@ -33,17 +33,35 @@
|
|
|
33
33
|
2. **统计区间**:`--start` / `--end`(用户未给齐时按 SKILL 反问;授权默认时可用「上一完整自然周」白名单并写明)。
|
|
34
34
|
3. **询盘口径**:默认使用区间内 `conversions`(转化次数,来自 `stats` 或 `overview`)。若运营定义为某类转化,须在首段脚注说明(必要时补拉 `google-analysis --sections conversion-actions` 仅作说明)。
|
|
35
35
|
4. **日期写法**:`2026.4.1`、`2026/4/1` 等先规范为 `YYYY-MM-DD`(如 `2026-04-01`)再传 `--start` / `--end`。
|
|
36
|
-
5. **交付**:默认 **客户话术 + 5 Sheet `.xlsx
|
|
36
|
+
5. **交付**:默认 **客户话术 + 5 Sheet `.xlsx`(必产,由 `okki-render` 写出)**。「表格形式」一律当 Excel。仅用户明确只要可复制话术、不要文件时,才省略 xlsx。
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
|
40
|
-
##
|
|
40
|
+
## 标准四步流程(拉数 → 写 JSON → okki-render)
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
| 步骤 | 执行者 | 动作 |
|
|
43
|
+
| --- | --- | --- |
|
|
44
|
+
| **1. 拉数** | Agent 调 CLI | 下方固定命令组合,同一 `--json-out` 目录 |
|
|
45
|
+
| **2. 分析** | Agent | 用 **node/python 脚本**读落盘 JSON(先 outline 再 JSON),完成筛选/聚合/洞察 |
|
|
46
|
+
| **3. 写 JSON** | Agent | 按 `assets/okki-weekly-report.schema.json` 撰写 `okki-weekly-report.json`:**只写 `meta` + `narrative`**;表格留给步骤 4 合并 |
|
|
47
|
+
| **4. 渲染 xlsx** | CLI | `google-analysis okki-render` — **校验 5 Sheet 表末分析 + 账户 Sheet 固定 5 维数据复盘**,缺项报错不生成文件;**禁止** Agent 手写 xlsx |
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
siluzan-tso google-analysis okki-render \
|
|
51
|
+
--data ./okki-weekly-report.json \
|
|
52
|
+
--snapshot-dir ./snap-okki \
|
|
53
|
+
--out ./okki-weekly-report.xlsx
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
`okki-weekly-report.json` 顶层结构:
|
|
57
|
+
|
|
58
|
+
- `meta`:`accountId`(必填)/ `accountName` / `currency` / `startDate` / `endDate`;日期可由 `--snapshot-dir` 补空。
|
|
59
|
+
- `narrative`(**Agent 必填,唯一由 Agent 撰写的内容**):
|
|
60
|
+
- `sheetAnalysis.{campaigns,keywords,searchTerms,devices,geo}`:每个 Sheet 各 `{summary[](≥1), suggestions[](≥1)}`。**表为空也必须写**(例如「本周期无搜索词,暂无加词/否词建议」)。
|
|
61
|
+
- `review.{account,keywords,searchTerms,devices,geo}`:账户 Sheet「数据复盘」固定 5 维,每维 `{overview, summary, suggestion}` 均非空。
|
|
62
|
+
- `tables` / `kpis`:Agent 可省略;**render 以快照覆盖**。设备/国家只认 `campaign-device` / `campaign-geo-matched`。
|
|
63
|
+
|
|
64
|
+
**禁止**:自己写 Node/Python 出 xlsx、用 Markdown 表代替、跳过 `okki-render`。`okki-render` 失败时按 stderr 缺项补 JSON 后重跑,不得改用手写表。
|
|
47
65
|
|
|
48
66
|
---
|
|
49
67
|
|
|
@@ -70,12 +88,13 @@ siluzan-tso google-analysis -a <mediaCustomerId> --start <S> --end <E> --json-ou
|
|
|
70
88
|
- `balance`:**当前**余额(非历史快照),话术写「截至查询时点」。
|
|
71
89
|
- 「设备」「国家」两 Sheet **必须**用 **`campaign-device` / `campaign-geo-matched`**(按系列/组拆行),**不要**用账户级 `devices` / `geographic`,也**不要**用 `campaign-geo`(定向地理位置,与 OKKI「地理位置报告」口径不一致)。落盘文件名为 `campaign-device-<id>.json`、`campaign-geo-matched-<id>.json`。跨系列汇总在脚本中做。
|
|
72
90
|
- 可选:`campaign-geo-matched` 支持 `--cost-greater` / `--click-greater` / `--conversions-greater`(见 `references/analytics/account-analytics.md`)。
|
|
73
|
-
- TopN
|
|
74
|
-
-
|
|
91
|
+
- TopN、占比、洞察在写 `narrative` 前由脚本对 JSON 完成,禁止心算。
|
|
92
|
+
- 写 JSON 前先读各 `<section>-<id>.outline.txt` 再读 `.json`。
|
|
93
|
+
- 合计行、CTR/CPA、日期标题、Sheet 列顺序由 `okki-render` 计算,Agent 不要往 JSON 里填表格行。
|
|
75
94
|
|
|
76
95
|
---
|
|
77
96
|
|
|
78
|
-
## xlsx
|
|
97
|
+
## xlsx 版式规范(由 CLI 锁死,Agent 不必重写)
|
|
79
98
|
|
|
80
99
|
工作簿 → Sheet 名(须完全一致)→ 版式。**不**单独建「广告系列」Sheet(系列表在 `账户报告` 内)。状态枚举若为英文须转中文。
|
|
81
100
|
|
|
@@ -99,7 +118,7 @@ siluzan-tso google-analysis -a <mediaCustomerId> --start <S> --end <E> --json-ou
|
|
|
99
118
|
|
|
100
119
|
| 顺序 | Sheet 名 | 数据来源 |
|
|
101
120
|
| ---: | ---------- | ------------------------------------------------------------------------------------ |
|
|
102
|
-
| 1 | `账户报告` | `campaigns` +
|
|
121
|
+
| 1 | `账户报告` | `campaigns` + `narrative.review`(5 维复盘,`okki-render` 写入) |
|
|
103
122
|
| 2 | `关键词` | `keywords` |
|
|
104
123
|
| 3 | `搜索词` | `search-terms` |
|
|
105
124
|
| 4 | `设备` | **`campaign-device-*.json`**(按系列/组拆行) |
|
|
@@ -148,7 +167,7 @@ siluzan-tso google-analysis -a <mediaCustomerId> --start <S> --end <E> --json-ou
|
|
|
148
167
|
总结:
|
|
149
168
|
建议:
|
|
150
169
|
|
|
151
|
-
|
|
170
|
+
文案写入 `narrative.review`(每维 `overview` / `summary` / `suggestion`),由 `okki-render` 画到账户 Sheet 底部;缺任一维会拒绝出文件。**不得编造**表中不存在的数字。
|
|
152
171
|
|
|
153
172
|
---
|
|
154
173
|
|
|
@@ -265,5 +284,5 @@ siluzan-tso google-analysis -a <mediaCustomerId> --start <S> --end <E> --json-ou
|
|
|
265
284
|
| 项 | `google-period-report.md` | 本文 OKKI 周报 |
|
|
266
285
|
| -------- | ------------------------- | -------------------------------------------------------------------------------------------------------------- |
|
|
267
286
|
| 默认维度 | 8 维 + 主动追问追加 | **固定** `overview,campaigns,keywords,search-terms,campaign-device,campaign-geo-matched` + `stats` + `balance` |
|
|
268
|
-
| 输出形态 | 长文分析报告(默认 HTML
|
|
287
|
+
| 输出形态 | 长文分析报告(默认 HTML,`google-analysis render`) | **必产** 5 Sheet `.xlsx`(`google-analysis okki-render`)+ 客户话术;「表格形式」= Excel;**禁止**对话 Markdown 表 / 手写 HTML / Agent 手写 xlsx |
|
|
269
288
|
| 典型用户 | 内部分析 | **发客户**的同步简报 |
|