siluzan-tso-cli 1.1.19-beta.11 → 1.1.19-beta.14
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 -1
- package/dist/skill/SKILL.md +30 -4
- package/dist/skill/_meta.json +2 -2
- package/dist/skill/references/geo-continents.json +195 -0
- package/dist/skill/report-templates/REPORT-WORKFLOW.md +3 -1
- package/dist/skill/report-templates/google-inquiry-analysis.md +334 -0
- package/dist/skill/report-templates/okki-weekly-google-client.md +10 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -51,7 +51,7 @@ siluzan-tso init -d /path/to/skills # 写入自定义目录
|
|
|
51
51
|
siluzan-tso init --force # 强制覆盖已存在文件
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
> **注意**:当前为测试版(1.1.19-beta.
|
|
54
|
+
> **注意**:当前为测试版(1.1.19-beta.14),供内部测试使用。正式发布后安装命令将改为 `npm install -g siluzan-tso-cli`。
|
|
55
55
|
|
|
56
56
|
| 助手 | 建议 `--ai` |
|
|
57
57
|
| ----------------------- | ------------------------------------ |
|
package/dist/skill/SKILL.md
CHANGED
|
@@ -2,10 +2,7 @@
|
|
|
2
2
|
name: siluzan-tso
|
|
3
3
|
description: >-
|
|
4
4
|
Siluzan TSO 广告 skill(siluzan-tso-cli):Google/Bing/Yandex/TikTok/Kwai 账户开户、授权与分享、数据与消耗、Google 广告管理、发票与转账、优化报告与智能预警、TikTok/Meta 线索。
|
|
5
|
-
|
|
6
|
-
关键字规划师/拓词/竞品网址拓词/词包清洗/否词/建户关键词编排:先读 references/keyword-planner-workflows.md。
|
|
7
|
-
①竞品URL+种子拓词→JSON筛排TopN ②多种子长尾 ③月搜阈值与词根/意图洗词 ④google-analysis keywords 叠分批 keyword 市场指标 ⑤search-terms 与拓词对照否词线索 ⑥CPC/竞争度/搜索量筛高意图 ⑦否词表+ad keyword-negative-create ⑧Campaign→AdGroup→匹配表+ad 落地 ⑨keyword --json-out 供脚本复用。无 Forecast、无 Planner 官方按月 12 个月趋势接口。
|
|
8
|
-
运营「OKKI 周报」固定话术(如「使用okki周报模板生成…」)→ `report-templates/okki-weekly-google-client.md`:拉数仅用现有 `stats`/`balance`/`google-analysis`(不新增拉数子命令);**多 Sheet Excel 由 Agent 落盘后写脚本生成**,CLI **不**提供内置「写 Excel」子命令。
|
|
5
|
+
各能力执行细节按本文「功能以及对应文档」表路由到 references/;周期报告、OKKI 周报、Google 账户询盘分析等固定触发模板见 report-templates/ 与 REPORT-WORKFLOW.md。
|
|
9
6
|
license: MIT
|
|
10
7
|
metadata:
|
|
11
8
|
requires: nodejs,siluzan-tso-cli
|
|
@@ -57,6 +54,8 @@ Windows 注意:部分 Agent 客户端通过 PowerShell / cmd 代执行命令
|
|
|
57
54
|
| `references/write-audit-restore.md` | 本机写审计、`--commit`、补偿写 `audit restore-plan` / `restore-apply` |
|
|
58
55
|
| `report-templates/report-template.html` | 默认 HTML 报告样式参考 |
|
|
59
56
|
| `report-templates/okki-weekly-google-client.md` | **OKKI 周报**:固定话术 + 精简维度 CLI 拉数;**Excel 由 Agent 脚本写**(见 P6),无 CLI 内置写表命令 |
|
|
57
|
+
| `report-templates/google-inquiry-analysis.md` | **Google 询盘分析**:固定话术(`Goog账户询盘分析` 等)→ 严格 3 个月窗口 + 用户上传询盘资料 + 8 Sheet xlsx(见 P7);国家→大洲映射见 `references/geo-continents.json` |
|
|
58
|
+
| `references/geo-continents.json` | 国家中文名 → 7 大洲映射(亚洲/中东/欧洲/北美/南美/非洲/大洋洲),供询盘分析 Sheet 3 / Sheet 4 印度切片使用 |
|
|
60
59
|
|
|
61
60
|
---
|
|
62
61
|
|
|
@@ -255,6 +254,33 @@ siluzan-tso accounts-digest -m Google -a id1,id2,... --start <S> --end <D> --jso
|
|
|
255
254
|
- **强制顺序**:先 `fs.readFileSync(outlineFile,'utf8')` 读 outline 的最后一行(TS 式类型,几百字节)→ 再写聚合脚本 → 由脚本 `require()` 真实 JSON 做计算。**禁止**直接 `Read` JSON 看结构——批跑常见 `keywords-*.json` 数 MB × N 账户,几次 `Read` 就把对话窗口塞满。
|
|
256
255
|
- 注意 outline 是 **`.outline.txt`** 不是 `.outline.json`,**禁止 `require()`**;其第 1 行注释明确写了 `// schema-only, NOT the data.`,**禁止**把它当业务数据贴给用户。
|
|
257
256
|
|
|
257
|
+
### P7 · Google 账户询盘分析(运营固定模板)
|
|
258
|
+
|
|
259
|
+
> **触发**:用户话术含 **`Goog账户询盘分析`** / **`Google 账户询盘分析`** / **`分析XXX Google账号的询盘效果`** / **`我给你询盘信息分析Google账号XXX效果`**,或同时包含「询盘 + 账户 + Google」三要素。
|
|
260
|
+
>
|
|
261
|
+
> **不要**按 `google-period-report.md` 默认 8 维流程;改读 **`report-templates/google-inquiry-analysis.md`** 全文并按其结构交付。
|
|
262
|
+
|
|
263
|
+
1. **时间窗口强约束**:**严格 3 个月** = 分析月份 + 向前 2 个完整自然月。**禁止**扩展到 7 个月(即使样表里有 7 个月);样表的 4~7 列旧数据由 Agent 在 Sheet 4/6 中跨 7 月写时**留空或不写**,仅写当前 3 月。
|
|
264
|
+
2. **询盘资料入场**:
|
|
265
|
+
- **流程 A**(用户已附文件):宿主 Agent 解析任意载体(xlsx/csv/pdf/截图/文本表格)→ 抽取询盘行 → 落盘 `./snap-inquiry/inquiries.json`(字段见模板「询盘字段清单」)。
|
|
266
|
+
- **流程 B**(仅给账户 ID):先反问账户 + 分析月份,同时贴出字段清单 + 1 行示例让用户回贴/上传。**禁止**自行编造询盘数据。
|
|
267
|
+
3. **CLI 拉数**(同一 `--json-out` 目录):
|
|
268
|
+
```bash
|
|
269
|
+
siluzan-tso list-accounts -m Google -k <mediaCustomerId> --json-out ./snap-inquiry
|
|
270
|
+
siluzan-tso google-analysis -a <mediaCustomerId> \
|
|
271
|
+
--start <S> --end <D> \
|
|
272
|
+
--sections daily-metrics,campaigns,keywords,search-terms,campaign-geo,geographic \
|
|
273
|
+
--json-out ./snap-inquiry
|
|
274
|
+
# Sheet 6 月份×国家明细:3 次月度 geographic 循环
|
|
275
|
+
siluzan-tso google-analysis -a <mediaCustomerId> --start <M1S> --end <M1E> --sections geographic --json-out ./snap-inquiry/m1
|
|
276
|
+
siluzan-tso google-analysis -a <mediaCustomerId> --start <M2S> --end <M2E> --sections geographic --json-out ./snap-inquiry/m2
|
|
277
|
+
siluzan-tso google-analysis -a <mediaCustomerId> --start <M3S> --end <M3E> --sections geographic --json-out ./snap-inquiry/m3
|
|
278
|
+
```
|
|
279
|
+
4. **先 outline 后脚本**:与 P6 同纪律。读各 `*.outline.txt` 拿字段结构 → 写聚合脚本读 JSON → 计算 8 Sheet 数据。
|
|
280
|
+
5. **国家 → 大洲映射**:脚本里读 `references/geo-continents.json`,未命中标 `未知大洲` 不阻塞,结尾打印未命中清单。Sheet 4「印度 vs 非印度」切片:直接判断 `countryOrRegionZh === "印度"`,无需走大洲表。
|
|
281
|
+
6. **必产 8 Sheet xlsx**:版式/Sheet 名/列定义/数值格式以 `report-templates/google-inquiry-analysis.md` 为准;**只能**由 Agent 在当前环境执行脚本(Node `xlsx`/`exceljs`,Python `openpyxl` 均可)生成,**禁止**假设 `siluzan-tso … excel` 这类 CLI 子命令存在。
|
|
282
|
+
7. 遵守 SKILL 硬规范:金额 `*Display`、`budgetAmount` 是分(÷100)、禁止手填业务数、禁止编造 ID。
|
|
283
|
+
|
|
258
284
|
---
|
|
259
285
|
|
|
260
286
|
## Tips
|
package/dist/skill/_meta.json
CHANGED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_meta": {
|
|
3
|
+
"description": "国家中文名 → 大洲映射,用于 google-inquiry-analysis.md Sheet 3 国家维度透视的「所属大洲」列。",
|
|
4
|
+
"buckets": ["亚洲", "中东", "欧洲", "北美", "南美", "非洲", "大洋洲"],
|
|
5
|
+
"coverage": "覆盖 tso-cli/src/commands/google-analysis/geo-en2zh.json 的 105 个条目,外加运营样表中出现但未在字典里的常见国家(伊朗、津巴布韦、委内瑞拉、突尼斯、苏丹、阿塞拜疆、立陶宛等)。",
|
|
6
|
+
"secondary_merge_hint": "运营常用 5 桶(印度+印尼 / 中东 / 非洲 / 欧美 / 亚洲):由 Agent 脚本在写表前对本字典做二次合并,伪代码见模板「国家 → 大洲映射」节。",
|
|
7
|
+
"unmatched_policy": "未命中标 `未知大洲`,不阻塞;脚本结尾打印未命中清单,运营回流补字典。"
|
|
8
|
+
},
|
|
9
|
+
|
|
10
|
+
"中国": "亚洲",
|
|
11
|
+
"香港": "亚洲",
|
|
12
|
+
"台湾": "亚洲",
|
|
13
|
+
"日本": "亚洲",
|
|
14
|
+
"韩国": "亚洲",
|
|
15
|
+
"蒙古": "亚洲",
|
|
16
|
+
"印度": "亚洲",
|
|
17
|
+
"印度尼西亚": "亚洲",
|
|
18
|
+
"巴基斯坦": "亚洲",
|
|
19
|
+
"孟加拉国": "亚洲",
|
|
20
|
+
"斯里兰卡": "亚洲",
|
|
21
|
+
"尼泊尔": "亚洲",
|
|
22
|
+
"阿富汗": "亚洲",
|
|
23
|
+
"马尔代夫": "亚洲",
|
|
24
|
+
"不丹": "亚洲",
|
|
25
|
+
"新加坡": "亚洲",
|
|
26
|
+
"马来西亚": "亚洲",
|
|
27
|
+
"泰国": "亚洲",
|
|
28
|
+
"越南": "亚洲",
|
|
29
|
+
"菲律宾": "亚洲",
|
|
30
|
+
"缅甸": "亚洲",
|
|
31
|
+
"柬埔寨": "亚洲",
|
|
32
|
+
"老挝": "亚洲",
|
|
33
|
+
"文莱": "亚洲",
|
|
34
|
+
"东帝汶": "亚洲",
|
|
35
|
+
"哈萨克斯坦": "亚洲",
|
|
36
|
+
"乌兹别克斯坦": "亚洲",
|
|
37
|
+
"吉尔吉斯斯坦": "亚洲",
|
|
38
|
+
"塔吉克斯坦": "亚洲",
|
|
39
|
+
"土库曼斯坦": "亚洲",
|
|
40
|
+
|
|
41
|
+
"沙特阿拉伯": "中东",
|
|
42
|
+
"阿联酋": "中东",
|
|
43
|
+
"卡塔尔": "中东",
|
|
44
|
+
"巴林": "中东",
|
|
45
|
+
"科威特": "中东",
|
|
46
|
+
"阿曼": "中东",
|
|
47
|
+
"也门": "中东",
|
|
48
|
+
"伊朗": "中东",
|
|
49
|
+
"伊拉克": "中东",
|
|
50
|
+
"约旦": "中东",
|
|
51
|
+
"黎巴嫩": "中东",
|
|
52
|
+
"叙利亚": "中东",
|
|
53
|
+
"以色列": "中东",
|
|
54
|
+
"巴勒斯坦": "中东",
|
|
55
|
+
"土耳其": "中东",
|
|
56
|
+
"塞浦路斯": "中东",
|
|
57
|
+
"阿塞拜疆": "中东",
|
|
58
|
+
"亚美尼亚": "中东",
|
|
59
|
+
"格鲁吉亚": "中东",
|
|
60
|
+
|
|
61
|
+
"英国": "欧洲",
|
|
62
|
+
"爱尔兰": "欧洲",
|
|
63
|
+
"法国": "欧洲",
|
|
64
|
+
"德国": "欧洲",
|
|
65
|
+
"意大利": "欧洲",
|
|
66
|
+
"西班牙": "欧洲",
|
|
67
|
+
"葡萄牙": "欧洲",
|
|
68
|
+
"荷兰": "欧洲",
|
|
69
|
+
"比利时": "欧洲",
|
|
70
|
+
"卢森堡": "欧洲",
|
|
71
|
+
"瑞士": "欧洲",
|
|
72
|
+
"奥地利": "欧洲",
|
|
73
|
+
"希腊": "欧洲",
|
|
74
|
+
"瑞典": "欧洲",
|
|
75
|
+
"挪威": "欧洲",
|
|
76
|
+
"丹麦": "欧洲",
|
|
77
|
+
"芬兰": "欧洲",
|
|
78
|
+
"冰岛": "欧洲",
|
|
79
|
+
"波兰": "欧洲",
|
|
80
|
+
"捷克": "欧洲",
|
|
81
|
+
"斯洛伐克": "欧洲",
|
|
82
|
+
"匈牙利": "欧洲",
|
|
83
|
+
"罗马尼亚": "欧洲",
|
|
84
|
+
"保加利亚": "欧洲",
|
|
85
|
+
"克罗地亚": "欧洲",
|
|
86
|
+
"斯洛文尼亚": "欧洲",
|
|
87
|
+
"塞尔维亚": "欧洲",
|
|
88
|
+
"北马其顿": "欧洲",
|
|
89
|
+
"波斯尼亚和黑塞哥维那": "欧洲",
|
|
90
|
+
"阿尔巴尼亚": "欧洲",
|
|
91
|
+
"黑山": "欧洲",
|
|
92
|
+
"马耳他": "欧洲",
|
|
93
|
+
"马恩岛": "欧洲",
|
|
94
|
+
"乌克兰": "欧洲",
|
|
95
|
+
"白俄罗斯": "欧洲",
|
|
96
|
+
"俄罗斯": "欧洲",
|
|
97
|
+
"摩尔多瓦": "欧洲",
|
|
98
|
+
"立陶宛": "欧洲",
|
|
99
|
+
"拉脱维亚": "欧洲",
|
|
100
|
+
"爱沙尼亚": "欧洲",
|
|
101
|
+
|
|
102
|
+
"美国": "北美",
|
|
103
|
+
"加拿大": "北美",
|
|
104
|
+
"墨西哥": "北美",
|
|
105
|
+
"古巴": "北美",
|
|
106
|
+
"海地": "北美",
|
|
107
|
+
"多米尼加共和国": "北美",
|
|
108
|
+
"牙买加": "北美",
|
|
109
|
+
"巴哈马": "北美",
|
|
110
|
+
"危地马拉": "北美",
|
|
111
|
+
"洪都拉斯": "北美",
|
|
112
|
+
"萨尔瓦多": "北美",
|
|
113
|
+
"尼加拉瓜": "北美",
|
|
114
|
+
"哥斯达黎加": "北美",
|
|
115
|
+
"巴拿马": "北美",
|
|
116
|
+
"波多黎各": "北美",
|
|
117
|
+
"特立尼达和多巴哥": "北美",
|
|
118
|
+
|
|
119
|
+
"巴西": "南美",
|
|
120
|
+
"阿根廷": "南美",
|
|
121
|
+
"智利": "南美",
|
|
122
|
+
"秘鲁": "南美",
|
|
123
|
+
"哥伦比亚": "南美",
|
|
124
|
+
"委内瑞拉": "南美",
|
|
125
|
+
"厄瓜多尔": "南美",
|
|
126
|
+
"玻利维亚": "南美",
|
|
127
|
+
"乌拉圭": "南美",
|
|
128
|
+
"巴拉圭": "南美",
|
|
129
|
+
"圭亚那": "南美",
|
|
130
|
+
"苏里南": "南美",
|
|
131
|
+
|
|
132
|
+
"埃及": "非洲",
|
|
133
|
+
"利比亚": "非洲",
|
|
134
|
+
"突尼斯": "非洲",
|
|
135
|
+
"阿尔及利亚": "非洲",
|
|
136
|
+
"摩洛哥": "非洲",
|
|
137
|
+
"毛里塔尼亚": "非洲",
|
|
138
|
+
"苏丹": "非洲",
|
|
139
|
+
"南苏丹": "非洲",
|
|
140
|
+
"埃塞俄比亚": "非洲",
|
|
141
|
+
"肯尼亚": "非洲",
|
|
142
|
+
"坦桑尼亚": "非洲",
|
|
143
|
+
"乌干达": "非洲",
|
|
144
|
+
"卢旺达": "非洲",
|
|
145
|
+
"布隆迪": "非洲",
|
|
146
|
+
"索马里": "非洲",
|
|
147
|
+
"吉布提": "非洲",
|
|
148
|
+
"厄立特里亚": "非洲",
|
|
149
|
+
"尼日利亚": "非洲",
|
|
150
|
+
"尼日尔": "非洲",
|
|
151
|
+
"马里": "非洲",
|
|
152
|
+
"布基纳法索": "非洲",
|
|
153
|
+
"塞内加尔": "非洲",
|
|
154
|
+
"冈比亚": "非洲",
|
|
155
|
+
"几内亚比绍": "非洲",
|
|
156
|
+
"几内亚": "非洲",
|
|
157
|
+
"塞拉利昂": "非洲",
|
|
158
|
+
"利比里亚": "非洲",
|
|
159
|
+
"科特迪瓦": "非洲",
|
|
160
|
+
"加纳": "非洲",
|
|
161
|
+
"多哥": "非洲",
|
|
162
|
+
"贝宁": "非洲",
|
|
163
|
+
"喀麦隆": "非洲",
|
|
164
|
+
"中非共和国": "非洲",
|
|
165
|
+
"乍得": "非洲",
|
|
166
|
+
"刚果共和国": "非洲",
|
|
167
|
+
"刚果民主共和国": "非洲",
|
|
168
|
+
"加蓬": "非洲",
|
|
169
|
+
"赤道几内亚": "非洲",
|
|
170
|
+
"圣多美和普林西比": "非洲",
|
|
171
|
+
"安哥拉": "非洲",
|
|
172
|
+
"赞比亚": "非洲",
|
|
173
|
+
"津巴布韦": "非洲",
|
|
174
|
+
"马拉维": "非洲",
|
|
175
|
+
"莫桑比克": "非洲",
|
|
176
|
+
"博茨瓦纳": "非洲",
|
|
177
|
+
"纳米比亚": "非洲",
|
|
178
|
+
"南非": "非洲",
|
|
179
|
+
"莱索托": "非洲",
|
|
180
|
+
"斯威士兰": "非洲",
|
|
181
|
+
"马达加斯加": "非洲",
|
|
182
|
+
"毛里求斯": "非洲",
|
|
183
|
+
"塞舌尔": "非洲",
|
|
184
|
+
"科摩罗": "非洲",
|
|
185
|
+
"约翰内斯堡": "非洲",
|
|
186
|
+
|
|
187
|
+
"澳大利亚": "大洋洲",
|
|
188
|
+
"新西兰": "大洋洲",
|
|
189
|
+
"巴布亚新几内亚": "大洋洲",
|
|
190
|
+
"斐济": "大洋洲",
|
|
191
|
+
"所罗门群岛": "大洋洲",
|
|
192
|
+
"瓦努阿图": "大洋洲",
|
|
193
|
+
"萨摩亚": "大洋洲",
|
|
194
|
+
"汤加": "大洋洲"
|
|
195
|
+
}
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
| ---------------------- | ------------------------------------ | ----------------------- | ------------------------- | ----------------------- |
|
|
26
26
|
| 周期分析 / 月报 / 周报 | `google-period-report.md` | `meta-period-report.md` | `tiktok-period-report.md` | `bing-period-report.md` |
|
|
27
27
|
| OKKI 周报 / 固定话术发客户(Google) | `okki-weekly-google-client.md` | — | — | — |
|
|
28
|
+
| **询盘分析** / 固定运营触发(Goog账户询盘分析 / 我给你询盘信息分析Google账号XXX效果) | `google-inquiry-analysis.md`(**严格 3 个月** + 用户上传询盘资料 + 8 Sheet xlsx;见 SKILL **P7**) | — | — | — |
|
|
28
29
|
| 深度诊断 / 健康检查 | `google-account-diagnosis-report.md` | 同周期,注明能力受限 | 同周期 | 同周期 |
|
|
29
30
|
|
|
30
31
|
无精确匹配时,用最接近媒体的同类 `*.md`,并在报告开头注明。
|
|
@@ -33,7 +34,7 @@
|
|
|
33
34
|
|
|
34
35
|
### 步骤 3:展示默认维度 + 询问追加
|
|
35
36
|
|
|
36
|
-
**例外**:模板为 `okki-weekly-google-client.md`
|
|
37
|
+
**例外**:模板为 `okki-weekly-google-client.md` 或 `google-inquiry-analysis.md` 时**跳过**本节「追问可选追加」,按该文件固定维度拉数即可。`google-inquiry-analysis.md` 还要求**严格 3 个月**时间窗(分析月份 + 向前 2 个完整自然月),不可扩展。
|
|
37
38
|
|
|
38
39
|
1. 按选定 `*.md` 的**默认维度**开始拉数(**不必等用户回复后再拉**,可并行)。
|
|
39
40
|
2. 同时向用户发一条消息,说明本次默认包含哪些维度,并列出当前平台支持的**可选追加维度**,询问是否需要添加。
|
|
@@ -75,6 +76,7 @@
|
|
|
75
76
|
| ------------------------------ | ----------------------------------------------------------------- |
|
|
76
77
|
| 月报、周报、投放总结、效果回顾 | 周期分析 → 对应媒体 `*-period-report.md` |
|
|
77
78
|
| **使用 okki 周报模板 / OKKI 周报 / okki 周报**(Google + 区间) | **固定话术 + 精简表 +(按需)Excel** → `okki-weekly-google-client.md`(见 SKILL **P6**);Excel **仅**由 Agent 脚本生成,**无** CLI 内置写表子命令 |
|
|
79
|
+
| **Goog账户询盘分析 / Google 账户询盘分析 / 分析XXX Google账号的询盘效果 / 我给你询盘信息分析Google账号XXX效果**(或含「询盘 + 账户 + Google」三要素) | **询盘 + 账户合并分析 + 严格 3 个月 + 8 Sheet xlsx** → `google-inquiry-analysis.md`(见 SKILL **P7**);询盘资料用户上传任意载体,宿主 Agent 解析落盘 `inquiries.json`,xlsx **仅**由 Agent 脚本生成 |
|
|
78
80
|
| 健康检查、诊断、账户分析 | 诊断 → `google-account-diagnosis-report.md`(Google)或周期型降级 |
|
|
79
81
|
| 对比、汇报、给客户看 | 以周期型为骨架,简化版本 |
|
|
80
82
|
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
# Google 账户询盘分析(运营固定触发模板)
|
|
2
|
+
|
|
3
|
+
> **触发话术**(等价即可,命中即走本模板)
|
|
4
|
+
>
|
|
5
|
+
> - `Goog账户询盘分析` / `Google 账户询盘分析`
|
|
6
|
+
> - `分析XXX Google账号的询盘效果`
|
|
7
|
+
> - `我给你询盘信息分析Google账号XXX效果`(附询盘资料 + 账户 ID)
|
|
8
|
+
> - 含「询盘 + 账户 + Google」三要素的近义表述
|
|
9
|
+
|
|
10
|
+
命中以上触发词时:**不要**按 `google-period-report.md` 的「8 维 + 追问」流程;按本文**固定字段 + 固定话术 + 固定时间窗**交付(数据全部来自 CLI 落盘 JSON,见 `references/account-analytics.md`)。
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 用户两种入场流程
|
|
15
|
+
|
|
16
|
+
### 流程 A:用户直接带询盘资料
|
|
17
|
+
|
|
18
|
+
`我给你询盘信息分析Google账号<id>效果` + 附件(**任意载体**:xlsx / csv / pdf / 截图 / 纯文本表格 / 飞书表格粘贴均可)。
|
|
19
|
+
|
|
20
|
+
由**宿主 Agent**(Claude / Cursor / WorkBuddy 等)负责解析附件 → 抽取询盘行 → 落盘为 `./snap-inquiry/inquiries.json`。本 Skill 不约束载体格式,只规定字段清单(见下)。
|
|
21
|
+
|
|
22
|
+
### 流程 B:用户没给资料
|
|
23
|
+
|
|
24
|
+
用户说 `分析<id>Google账号的询盘效果`(仅给账户)。**Agent 须做**:
|
|
25
|
+
|
|
26
|
+
1. 反问账户与分析月份(见下方「须先确认」)。
|
|
27
|
+
2. 同时贴出**询盘字段清单 + 1 行示例**,让用户用任意方式补齐再回传:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
请把近 3 个月({S} ~ {E})的询盘记录回贴或上传(Excel / CSV / 截图 / 文本表格均可),字段如下:
|
|
31
|
+
月份 | 序号(可空) | 国家(中文) | 时间(YYYY-MM-DD 或 Excel 序列) | 产品 | 客户来源 | IP(可空)
|
|
32
|
+
示例:4月份 | 1 | 印度 | 2026-04-12 | 滴灌带 | WhatsApp(www.extruder.cn)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
3. 拿到资料后由宿主 Agent 解析、落盘 `inquiries.json`,再进入「拉数与写 Excel」节。
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 须先确认
|
|
40
|
+
|
|
41
|
+
1. **账户**:`mediaCustomerId` 来自 `list-accounts -m Google -k <id>`,**禁止猜 ID**。
|
|
42
|
+
2. **分析月份**:默认**上一个完整自然月**(例:今天 5/13 → 默认 4 月)。用户未明确时**反问**(A) 上月 B) 本月 1 号到昨天 C) 自定义 YYYY-MM)。
|
|
43
|
+
3. **时间窗口(硬约束)**:**严格 3 个月** = 分析月份 + 向前 2 个完整自然月。例:分析月 = 2026-04 → `--start 2026-02-01 --end 2026-04-30`。**所有月度表只展示 3 行**(不延伸到 7 个月)。
|
|
44
|
+
4. **询盘字段最小集**:`月份 / 国家(中文) / 时间 / 产品 / 客户来源`;可选 `序号 / IP`。
|
|
45
|
+
5. **日期规范化**:`2026.4.1` / `2026/4/1` 等先规范成 `YYYY-MM-DD` 再传 CLI。
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 架构约定 · Excel 由谁生成
|
|
50
|
+
|
|
51
|
+
- **`siluzan-tso` 不提供**「一键生成询盘分析 Excel」CLI 子命令,**也不要**新增。
|
|
52
|
+
- 需交付 Excel 时:由 **Agent**(宿主或 WorkBuddy 编排)在 CLI `--json-out` 落盘后,自行编写 **Node.js / Python** 脚本(`exceljs` / `xlsx` / `openpyxl`)读 JSON → 写 `.xlsx`。
|
|
53
|
+
- **数值一律来自落盘 JSON 或 `inquiries.json`,禁止在脚本里写死业务数字。**
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 拉数(同一目录落盘)
|
|
58
|
+
|
|
59
|
+
`./snap-inquiry` 为示例目录。设 `S` = 起始月 1 号、`E` = 分析月最后一天。
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
mkdir -p ./snap-inquiry
|
|
63
|
+
|
|
64
|
+
# 1) 账户清单(核 mediaCustomerId 与 advertiserName / currencyCode)
|
|
65
|
+
siluzan-tso list-accounts -m Google -k <mediaCustomerId> --json-out ./snap-inquiry
|
|
66
|
+
|
|
67
|
+
# 2) 区间维度(一次拿齐 Sheet 4/5/7/8 所需)
|
|
68
|
+
siluzan-tso google-analysis -a <mediaCustomerId> --start <S> --end <E> --json-out ./snap-inquiry \
|
|
69
|
+
--sections daily-metrics,campaigns,keywords,search-terms,campaign-geo,geographic \
|
|
70
|
+
--limit 100
|
|
71
|
+
|
|
72
|
+
# 3) 按月循环(Sheet 6 必需:geographic 不返回日期字段)
|
|
73
|
+
for month in <S月, S+1月, E月>:
|
|
74
|
+
mkdir -p ./snap-inquiry/<YYYY-MM>
|
|
75
|
+
siluzan-tso google-analysis -a <mediaCustomerId> \
|
|
76
|
+
--start <月1号> --end <月末> --json-out ./snap-inquiry/<YYYY-MM> \
|
|
77
|
+
--sections geographic
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**说明**:
|
|
81
|
+
|
|
82
|
+
- `daily-metrics`:按日数据,脚本按月聚合得到 Sheet 4 上半区 3 行;金额、点击率、转化率字段已归一(见 `references/account-analytics.md` 顶部「指标字段对照」)。
|
|
83
|
+
- `campaigns`:Sheet 5 主表,含 `biddingStrategyTypeV2`(策略)、`startDate`(开始日期)、`budgetAmount`(**分**,÷100 为元)。
|
|
84
|
+
- `keywords` / `search-terms`:Sheet 7 / 8;`limit=100` 给 TOP100。
|
|
85
|
+
- `campaign-geo`:含 `campaignName`,用于 Sheet 6「暂停的系列」列辅助派生(若运营不需要可留空);也用于 Sheet 3 国家级消耗 join。
|
|
86
|
+
- `geographic`:账户级国家聚合;Sheet 6 月度循环主源;Sheet 4 下半区「印度 vs 非印度」按月切片。
|
|
87
|
+
- **`countryOrRegionZh`** 中文国家名在 `campaign-geo` / `geographic` 中**自动补字段**(见 `references/account-analytics.md`「中文化字段」);未命中字典时回落英文 `countryOrRegion`。
|
|
88
|
+
|
|
89
|
+
**写脚本前先读 `<section>-<id>.outline.txt`**(几百字节 TS 类型字面量),别直接 `Read` 几 MB 的 JSON。
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 询盘字段规范(宿主 Agent 解析输出)
|
|
94
|
+
|
|
95
|
+
宿主 Agent 解析任意载体后,**统一落盘** `./snap-inquiry/inquiries.json`:
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
[
|
|
99
|
+
{
|
|
100
|
+
"month": "4月份",
|
|
101
|
+
"seq": 1,
|
|
102
|
+
"country": "印度",
|
|
103
|
+
"time": "2026-04-12",
|
|
104
|
+
"product": "滴灌带",
|
|
105
|
+
"source": "WhatsApp(www.extruder.cn)",
|
|
106
|
+
"ip": null
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
- `month`:保留运营原文(`1月份` / `4月份` …)。
|
|
112
|
+
- `country`:**中文名**,与 `countryOrRegionZh` 字典对齐(脚本会自动 lookup 大洲)。Agent 解析时遇到英文/缩写应先翻译为中文,未知国家保留原文并在脚本里标 `未知大洲`。
|
|
113
|
+
- `time`:`YYYY-MM-DD`;Excel 日期序列号也接受,由解析方转换。
|
|
114
|
+
- `product`:自由文本(`滴灌带` / `打包带` / `片材` / `滴头` / `模具` / `贴条` / `涂布水带` …),脚本以此作 Sheet 3 产品维度透视分桶 key。
|
|
115
|
+
- `source`:自由文本(`WhatsApp` / `tawk.to` / `info邮箱` / `网站留言` / `微信(xxxx)` / `阿里巴巴` / `made-in-china` / `Youtube` / `TikTok` …),脚本以此作 Sheet 3 客户来源透视分桶 key。
|
|
116
|
+
- `ip`:可空。
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 国家 → 大洲映射
|
|
121
|
+
|
|
122
|
+
- **数据源**:`references/geo-continents.json`(中文国家名 → 7 大洲)。
|
|
123
|
+
- **默认 7 桶**:`亚洲` / `中东` / `欧洲` / `北美` / `南美` / `非洲` / `大洋洲`。
|
|
124
|
+
- **运营常用 5 桶合并**(与样表 Sheet 3 一致):`印度+印尼` / `中东` / `非洲` / `欧美` / `亚洲(除印度印尼)`。**由脚本在写表前做二次合并**,伪代码:
|
|
125
|
+
|
|
126
|
+
```javascript
|
|
127
|
+
function bucketForSheet3(country, continents) {
|
|
128
|
+
if (country === "印度" || country === "印度尼西亚") return "印度+印尼";
|
|
129
|
+
const c = continents[country];
|
|
130
|
+
if (c === "欧洲" || c === "北美" || c === "南美") return "欧美";
|
|
131
|
+
return c || "未知";
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
- **未命中**:标 `未知大洲`(不阻塞、不报错)。脚本在末尾打印未命中国家清单,让运营回补字典。
|
|
136
|
+
- **若同一国家在询盘里出现中英文两种写法**:脚本归一化(先按 `geo-en2zh.json` 翻译英文 → 中文,再查 continents)。
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## xlsx 版式规范
|
|
141
|
+
|
|
142
|
+
工作簿 8 个 Sheet,**顺序与名称须完全一致**(按运营样表《2026 年 4 月月报-TO 询盘分析模板》)。表头、合并单元格、数值格式严格执行;列宽 / 排序为可选,但**不得**因此改数。
|
|
143
|
+
|
|
144
|
+
### 数值格式(强约束)
|
|
145
|
+
|
|
146
|
+
- **金额、CPL / CPA / CPC / 平均费用**:保留 **2 位小数**,写明货币代码(如 `¥123.45 CNY`)。
|
|
147
|
+
- **点击率 / 转化率 / 互动率**(`ctr` / `conversionRate` / `interactionRate`):CLI 已归一为 **0~1 小数**(schemaVersion: 2),写入 Excel 时**直接写 0~1**(与运营样表对齐,Excel 单元格用百分比格式自动渲染)。话术 `x%` 用 `(v * 100).toFixed(2) + "%"`。
|
|
148
|
+
- **空值**:`interactions === 0` 时「平均费用」「互动率」填 `—`,**禁止**除零。
|
|
149
|
+
|
|
150
|
+
### Sheet 顺序
|
|
151
|
+
|
|
152
|
+
| 顺序 | Sheet 名 | 主源 |
|
|
153
|
+
| ---: | --- | --- |
|
|
154
|
+
| 1 | `会议核心内容` | Agent 复盘(不拉数) |
|
|
155
|
+
| 2 | `询盘明细---<S月>-<E月>月份` | `inquiries.json` |
|
|
156
|
+
| 3 | `询盘分析-最近3个月` | `inquiries.json` + `campaign-geo-*.json` |
|
|
157
|
+
| 4 | `账号分析-最近3个月` | `daily-metrics-*.json`(按月聚合)+ `geographic-*.json` × 3 月 |
|
|
158
|
+
| 5 | `广告系列消费明细` | `campaigns-*.json` |
|
|
159
|
+
| 6 | `国家消费明细<S月>-<E月>月份` | `./<YYYY-MM>/geographic-*.json` × 3 + `inquiries.json` 左 join |
|
|
160
|
+
| 7 | `关键词` | `keywords-*.json` |
|
|
161
|
+
| 8 | `搜索字词` | `search-terms-*.json` |
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
### Sheet 1 `会议核心内容`
|
|
166
|
+
|
|
167
|
+
| 行 | 内容 |
|
|
168
|
+
| --- | --- |
|
|
169
|
+
| R1 | 一句话总结:`本次会议主要围绕广告投放策略展开,讨论并决策了多个国家的投放暂停、新增及预算调整事宜。`(**Agent 须按本期数据重写**,禁止照搬原样文案) |
|
|
170
|
+
| R2 起 | 4 大块(**Agent 基于其他 7 个 Sheet 的发现撰写,禁止编造**):<br>① **投放策略调整**:国家层面(暂停/新增/调整哪些国家)/ 产品层面(哪些产品系列要切换 Pmax 等)/ 渠道层面(WhatsApp / info邮箱 等转化表现)<br>② **数据分析与预算**:数据准确性、预算建议(基于 Sheet 4 月趋势 + Sheet 5 系列消耗占比)<br>③ **待办** / 投放策略执行清单<br>④ **风险与下次会议焦点** |
|
|
171
|
+
|
|
172
|
+
**禁造数**:每条结论必须能在其他 Sheet 里找到对应数据来源,否则不写。
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
### Sheet 2 `询盘明细---<S月>-<E月>月份`
|
|
177
|
+
|
|
178
|
+
| 行 | 内容 |
|
|
179
|
+
| --- | --- |
|
|
180
|
+
| R1(A→G) | `月份` \| `序号` \| `国家` \| `时间` \| `产品` \| `客户来源` \| `IP` |
|
|
181
|
+
| R2… | 来自 `inquiries.json` 逐行;`seq` 缺失时用 1..N 递增;`time` 写 `YYYY-MM-DD`;`ip` 缺失留空 |
|
|
182
|
+
|
|
183
|
+
按 `month` + `seq` 升序。**不**对询盘做去重 / 校验。
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
### Sheet 3 `询盘分析-最近3个月`
|
|
188
|
+
|
|
189
|
+
左右两区。**左区**:明细子集(仅本期 3 个月的询盘 + IP 列);**右区**:4 个透视表。
|
|
190
|
+
|
|
191
|
+
**左区**(A→F):与 Sheet 2 同表头,但仅 `time` 落在 `[S, E]` 区间内的行。
|
|
192
|
+
|
|
193
|
+
**右区**(H 起)4 个透视:
|
|
194
|
+
|
|
195
|
+
1. **国家 × 询盘 & 消耗**(H→K)
|
|
196
|
+
表头:`国家(分析月份询盘国家)` \| `询盘个数` \| `所属大洲` \| `消耗`
|
|
197
|
+
`询盘个数` = `inquiries.json` 按国家 count;
|
|
198
|
+
`所属大洲` = 按上文「运营常用 5 桶合并」规则;
|
|
199
|
+
`消耗` = `campaign-geo-*.json` 按 `countryOrRegionZh` 聚合的 `spend`(同一国家多系列累加);
|
|
200
|
+
末行 `总计`。
|
|
201
|
+
|
|
202
|
+
2. **客户来源 × 询盘数**(H→I,国家透视下方留空 1 行后接续)
|
|
203
|
+
表头:`客户来源` \| `询盘个数`;按 `source` 字段 count;末行 `总计`。
|
|
204
|
+
|
|
205
|
+
3. **产品 × 询盘 & 消耗 & CPL**(H→K,再留空 1 行后接续)
|
|
206
|
+
表头:`产品` \| `询盘个数` \| `消耗` \| `CPL`;
|
|
207
|
+
`消耗`:产品维度的消耗在 `campaigns-*.json` 中需运营自配「产品 → 系列前缀映射」(见下方「可选:产品 → 系列前缀映射」节)。如未配置,**留空** + 脚注:`[ 数据不可用:未配置产品→系列映射 ]`,**禁止**编造分摊;
|
|
208
|
+
`CPL` = `消耗 / 询盘个数`,询盘个数为 0 时填 `—`。
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
### Sheet 4 `账号分析-最近3个月`
|
|
213
|
+
|
|
214
|
+
上下两区。
|
|
215
|
+
|
|
216
|
+
**上区**(B→L,跳过 A 列保持与运营样表一致)3 行月汇总:
|
|
217
|
+
|
|
218
|
+
| R | 内容 |
|
|
219
|
+
| --- | --- |
|
|
220
|
+
| R1 | (A 列空)`汇总` |
|
|
221
|
+
| R2 | `时间` \| `点击次数` \| `展示次数` \| `点击率` \| `平均每次点击费用` \| `费用` \| `转化次数` \| `每次转化费用` \| `转化率` \| `询盘个数` \| `CPL` |
|
|
222
|
+
| R3..R5 | 倒序写 3 个月(**E 月在上**,S 月在下):脚本读 `daily-metrics-*.json` 按月(`date` 前 7 位 `YYYY-MM`)求和;`点击率` = sum(clicks)/sum(impressions);`转化率` = sum(conversions)/sum(clicks);`每次转化费用` = sum(spend)/sum(conversions),转化 0 填 `—`;`询盘个数` = `inquiries.json` 按月 count;`CPL` = sum(spend)/`询盘个数`(询盘 0 填 `—`) |
|
|
223
|
+
|
|
224
|
+
**下区**(B→G)3 月 × 印度/非印度切片(共 6 行):
|
|
225
|
+
|
|
226
|
+
| R | 内容 |
|
|
227
|
+
| --- | --- |
|
|
228
|
+
| R7 | `时间` \| `国家` \| `消费` \| `线索数` \| `成本` \| 备注列 `此版块非必须` |
|
|
229
|
+
| R8..R13 | 每月一对(`印度` / `非印度`):脚本读 `./<YYYY-MM>/geographic-*.json`,按 `countryOrRegionZh === "印度" \|\| countryOrRegion === "India"` 二分;`消费` = 该桶 `spend` 求和;`线索数` = `inquiries.json` 同月同桶(中国/印度国家中文名匹配) count;`成本` = `消费 / 线索数`,线索 0 填 `—` |
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
### Sheet 5 `广告系列消费明细`
|
|
234
|
+
|
|
235
|
+
**上区**:
|
|
236
|
+
|
|
237
|
+
| R | 内容 |
|
|
238
|
+
| --- | --- |
|
|
239
|
+
| R1 | `广告系列表现明细 · 账户 <mediaCustomerId(带连字符)> · <分析月份>` |
|
|
240
|
+
| R2(A→M,13 列) | `系列名称` \| `系列ID` \| `策略` \| `开始日期` \| `消耗 (¥)` \| `展示` \| `点击` \| `CTR` \| `平均CPC` \| `转化` \| `CPA (¥)` \| `转化率` \| `消耗占比` |
|
|
241
|
+
| R3… | 读 `campaigns-*.json`:`campaignName` / `campaignId` / `biddingStrategyTypeV2`(中文化:`MAXIMIZE_CONVERSIONS` → `Max转化`、`TARGET_SPEND` → `目标支出`、`MANUAL_CPC` → `手动CPC` 等;未命中保留原文)/ `startDate` / `spend` / `impressions` / `clicks` / `ctr` / `averageCpc` / `conversions` / `costPerConversion` / `conversionRate` / **`消耗占比` = `spend` / `sum(spend)`**(脚本算,写 0~1 小数) |
|
|
242
|
+
| 末行 | `合计`:A 列写 `合计`;金额、展示、点击、转化 求和;CTR/CVR/CPA 按合计反推(**禁止**对各行比率求平均) |
|
|
243
|
+
|
|
244
|
+
**下区**:
|
|
245
|
+
|
|
246
|
+
| R | 内容 |
|
|
247
|
+
| --- | --- |
|
|
248
|
+
| 空 1 行 | — |
|
|
249
|
+
| 标题 | `优化建议 · 账户 <id> · <分析月份>` |
|
|
250
|
+
| 表头(A→H) | `#` \| `问题/机会类别` \| `现状描述` \| `影响分析` \| `具体优化建议` \| `(留空)` \| `(留空)` \| `优先级` |
|
|
251
|
+
| 数据 | Agent 基于本期 Sheet 4/5/6/7/8 撰写 5~8 条建议;每条引用具体数字(如 `CPA ¥287,远高于均值 ¥111`);`优先级` 取 `高` / `中` / `低`;**禁止**在建议里包含模板占位符或硬编码示例数字 |
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
### Sheet 6 `国家消费明细<S月>-<E月>月份`
|
|
256
|
+
|
|
257
|
+
| R | 内容 |
|
|
258
|
+
| --- | --- |
|
|
259
|
+
| R1(A→N,14 列) | `月份(Excel 序列号)` \| `国家/地区(匹配)` \| `点击次数` \| `展示次数` \| `点击率` \| `平均每次点击费用` \| `费用` \| `转化次数` \| `每次转化费用` \| `转化率` \| `询盘个数` \| `(留空)` \| `(留空)` \| `暂停的系列` |
|
|
260
|
+
| R2… | 笛卡尔积:`3 个月 × N 个国家`;脚本循环读 `./<YYYY-MM>/geographic-*.json`,每行 `countryOrRegionZh`(回落 `countryOrRegion`)+ 该月该国家的指标;`询盘个数` = `inquiries.json` 同月同国家 count(左 join,缺失为 0);`暂停的系列` 留空给运营手填(不要编造) |
|
|
261
|
+
|
|
262
|
+
排序:按月份升序(与运营样表"45931 / 45962 / 45992 / 46023"顺序一致——分别对应 2025-10 ~ 2026-01 起算的 Excel 日期序列号);同月内按 `点击次数` 降序。
|
|
263
|
+
|
|
264
|
+
> **月份列用 Excel 日期序列号**还是 `YYYY-MM` 字符串?运营样表用日期序列号(如 `45931`、`46023`);本模板**任选其一**,但**全表统一**;若用字符串则 R1 表头改为 `月份(YYYY-MM)`。
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
### Sheet 7 `关键词`
|
|
269
|
+
|
|
270
|
+
| R | 内容 |
|
|
271
|
+
| --- | --- |
|
|
272
|
+
| R1 | `关键词表现 · 账户 <id> · <分析月份>` |
|
|
273
|
+
| R2(A→J,10 列) | `关键词` \| `匹配方式` \| `系列` \| `消耗 (¥)` \| `展示` \| `点击` \| `CTR` \| `平均CPC` \| `转化` \| `CPA (¥)` |
|
|
274
|
+
| R3… | 读 `keywords-*.json`(`keywords[]`):`keyword` / `keywordMatchTypeZh`(中文匹配方式:`Broad` / `Phrase` / `Exact`)/ `campaignName` / `spend` / `impressions` / `clicks` / `ctr` / `averageCpc` / `conversions` / `costPerConversion` |
|
|
275
|
+
|
|
276
|
+
按 `转化` 降序、`消耗` 降序双排序。
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
### Sheet 8 `搜索字词`
|
|
281
|
+
|
|
282
|
+
| R | 内容 |
|
|
283
|
+
| --- | --- |
|
|
284
|
+
| R1 | `搜索字词--TOP100` |
|
|
285
|
+
| R2 | `<S> - <E>`(如 `2026年4月1日 - 2026年4月30日` 等中文区间) |
|
|
286
|
+
| R3(A→Q,17 列) | `搜索字词` \| `搜索字词匹配类型` \| `已添加/已排除` \| `广告系列` \| `广告组` \| `搜索广告关键字` \| `点击次数` \| `展示次数` \| `点击率` \| `货币代码` \| `平均每次点击费用` \| `费用` \| `绝对页首展示次数百分比` \| `页首展示次数百分比` \| `转化次数` \| `每次转化费用` \| `转化率` |
|
|
287
|
+
| R4… | 读 `search-terms-*.json`(`data[]`):`searchTermText` / `matchTypeZh` / **`已添加/已排除`**(若 JSON 字段不存在则填 `—`,**禁止**臆造)/ `campaignName` / `adGroupName` / `keywordText`(关键字)/ 数值字段;`货币代码` 来自 `list-accounts` 同账户 `currencyCode` |
|
|
288
|
+
|
|
289
|
+
按 `费用` 降序前 100。
|
|
290
|
+
|
|
291
|
+
> **关于"绝对页首展示次数百分比 / 页首展示次数百分比"**:当前 `SearchTermListRow` 类型只显式声明了通用指标,但 `[key: string]: unknown` 兜底使原始字段照常落盘。脚本应读 JSON 原始字段名(实际跑一次确认网关返回字段名,如 `absoluteTopImpressionPercentage` / `topImpressionPercentage`),命中即写、未返回则填 `—`。
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## 可选:产品 → 系列前缀映射
|
|
296
|
+
|
|
297
|
+
样表里产品(`滴灌带` / `打包带` / `预制孔水带`)与系列名前缀对应(`A-滴灌带-…` / `B-打包带-…` / `C-预制孔水带设备`)。若运营给出映射,脚本可补 Sheet 3 第 3 个透视的「消耗」「CPL」列;否则**留空 + 脚注**。
|
|
298
|
+
|
|
299
|
+
映射示例(由运营每次会议前确认,不写死在模板):
|
|
300
|
+
|
|
301
|
+
```json
|
|
302
|
+
{
|
|
303
|
+
"滴灌带": ["A-滴灌带-"],
|
|
304
|
+
"打包带": ["B-打包带-"],
|
|
305
|
+
"预制孔水带": ["C-预制孔水带"]
|
|
306
|
+
}
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
脚本逻辑:`产品消耗 = sum(campaigns[campaignName 以前缀 startsWith].spend)`。
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## 与其他报告模板的差异
|
|
314
|
+
|
|
315
|
+
| 项 | `google-period-report.md` | `okki-weekly-google-client.md` | **本文(询盘分析)** |
|
|
316
|
+
| --- | --- | --- | --- |
|
|
317
|
+
| 时间窗 | 用户给定 | 用户给定(通常 1 周) | **严格 3 个自然月** |
|
|
318
|
+
| 默认维度 | 8 维 + 追问 | 6 维固定 | **7 维固定(多 `geographic` 月度循环 3 次)** |
|
|
319
|
+
| 是否需要询盘原始数据 | 否 | 否 | **是**(用户上传 / 反问索要) |
|
|
320
|
+
| 输出形态 | 长文报告 | 客户话术 + 多 Sheet xlsx | **8 Sheet xlsx(不含客户话术)** |
|
|
321
|
+
| Excel 由谁写 | Agent 脚本(可选) | Agent 脚本 | **Agent 脚本(必需)** |
|
|
322
|
+
| 大洲映射 | 不涉及 | 不涉及 | **`references/geo-continents.json`** |
|
|
323
|
+
| 印度 vs 非印度切片 | 否 | 否 | **是**(Sheet 4 下半区) |
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## 验收口径
|
|
328
|
+
|
|
329
|
+
- 用户说出 3 条触发话术之一 → AI 切到本模板(**不**走 `google-period-report.md`)。
|
|
330
|
+
- AI 反问:账户 + 分析月份 + 询盘资料(若用户未给)。
|
|
331
|
+
- AI 跑 1 次区间多维度 + 3 次月度 `geographic` 循环;产物全部落 `./snap-inquiry`。
|
|
332
|
+
- AI 产出 8 Sheet `.xlsx`,**每个数字可追溯到 `./snap-inquiry/**/*.json` 或 `inquiries.json` 的具体字段**。
|
|
333
|
+
- 未命中大洲映射的国家:标 `未知大洲`,**不阻塞**、**不编造**;末尾打印未命中清单。
|
|
334
|
+
- 产品 → 系列映射未给:Sheet 3 产品透视的「消耗 / CPL」列填空 + 脚注,**不分摊、不编造**。
|
|
@@ -111,10 +111,20 @@ siluzan-tso google-analysis -a <mediaCustomerId> --start <S> --end <E> --json-ou
|
|
|
111
111
|
- 首行标题:`{结束日所在月份}月份数据复盘:`(例:`12月份数据复盘:`)。
|
|
112
112
|
- 5 条结构化要点:
|
|
113
113
|
1. **账户层级**:整体消耗、展示、点击、点击率与 3% 基准对比、询盘/转化数、平均询盘成本(数据来自 stats/overview 与上表合计)。
|
|
114
|
+
总结:
|
|
115
|
+
建议:
|
|
114
116
|
2. **关键词层级**:高转化词、高消耗低转化词、出价/竞争力建议。
|
|
117
|
+
总结:
|
|
118
|
+
建议:
|
|
115
119
|
3. **搜索字词层级**:标红/高意向词、否词与加词建议。
|
|
120
|
+
总结:
|
|
121
|
+
建议:
|
|
116
122
|
4. **设备层级**(基于 `campaign-device`):各设备在系列上的消耗/转化分布;可点出高消耗系列×设备组合。
|
|
123
|
+
总结:
|
|
124
|
+
建议:
|
|
117
125
|
5. **国家层级**(基于 `campaign-geo`):各国家/地区在系列上的消耗/转化;高消耗低转化地域与降权/调价建议。
|
|
126
|
+
总结:
|
|
127
|
+
建议:
|
|
118
128
|
|
|
119
129
|
文案由 Agent 据 JSON 撰写,**不得编造**表中不存在的数字。
|
|
120
130
|
|