siluzan-tso-cli 1.1.44 → 1.1.45-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 +1001 -118
- package/dist/skill/SKILL.md +1 -0
- package/dist/skill/_meta.json +2 -2
- package/dist/skill/references/README.md +1 -0
- package/dist/skill/references/accounts/accounts-balance-stats.md +3 -3
- 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 +44 -1
- package/dist/skill/references/analytics/rag.md +1 -1
- package/dist/skill/references/analytics/reporting.md +5 -5
- package/dist/skill/references/core/playbooks.md +1 -1
- package/dist/skill/references/core/setup.md +5 -5
- package/dist/skill/references/misc/tso-home.md +2 -2
- package/dist/skill/references/operations/hosted-automation-monitoring-json.md +1 -1
- package/dist/skill/references/report-templates/README.md +2 -0
- package/dist/skill/references/report-templates/REPORT-WORKFLOW.md +6 -4
- package/dist/skill/references/report-templates/yandex-period-report-excel.md +123 -0
- package/dist/skill/references/report-templates/yandex-period-report.md +121 -0
- package/dist/skill/report-templates/README.md +2 -0
- package/dist/skill/report-templates/REPORT-WORKFLOW.md +6 -4
- package/dist/skill/report-templates/yandex-period-report-excel.md +123 -0
- package/dist/skill/report-templates/yandex-period-report.html +968 -0
- package/dist/skill/report-templates/yandex-period-report.md +121 -0
- package/dist/skill/scripts/install.ps1 +3 -3
- package/dist/skill/scripts/install.sh +3 -3
- package/package.json +3 -1
package/dist/skill/SKILL.md
CHANGED
|
@@ -95,6 +95,7 @@ siluzan-tso -h
|
|
|
95
95
|
| Google 账户周期 / 月度 / 季度报告(非 OKKI / 非询盘 / 非强调健康诊断) | **P4** | `report-templates/google-period-report.md` + `references/analytics/account-analytics.md`;Excel 加 `google-period-report-excel.md` |
|
|
96
96
|
| Meta/Facebook 周期或诊断 | **P4-FB** | `report-templates/meta-period-report.md` + `assets/meta-period-report-rules.md` + `references/analytics/facebook-analysis-guide.md` |
|
|
97
97
|
| TikTok / Bing 周期报告 | **P4** | `references/analytics/account-analytics.md` + 对应 `report-templates/*-period-report.md` |
|
|
98
|
+
| Yandex 账户分析 / 周期 / 月报 | **P4** | `report-templates/yandex-period-report.md` + `references/analytics/account-analytics.md`;Excel 加 `yandex-period-report-excel.md` |
|
|
98
99
|
| 账户级按日 Excel | **P4-DAILY** | `report-templates/stats-daily-excel.md` |
|
|
99
100
|
| 多账户 × 多维度批处理 | **P5** | `references/analytics/google-analysis-batch.md` + `references/analytics/account-analytics.md` |
|
|
100
101
|
| OKKI 周报 | **P6** | `report-templates/okki-weekly-google-client.md` |
|
package/dist/skill/_meta.json
CHANGED
|
@@ -100,6 +100,7 @@
|
|
|
100
100
|
| `okki-weekly-google-client.md` | OKKI 周报(P6) |
|
|
101
101
|
| `google-inquiry-analysis.md` | 询盘分析(P7) |
|
|
102
102
|
| `tiktok-period-report.md` / `bing-period-report.md` | TikTok / Bing 周期(P4) |
|
|
103
|
+
| `yandex-period-report.md` / `yandex-period-report-excel.md` | Yandex 周期 HTML / Excel(P4) |
|
|
103
104
|
| `REPORT-WORKFLOW.md` | 通用六步流程 |
|
|
104
105
|
|
|
105
106
|
样式参考 HTML 见根目录 `report-templates/README.md`。
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
## balance-scan — 多账户余额续航扫描
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
一键扫描某媒体下**全部有效账户**的余额与日均消耗。`data.items` 返回**所有已检查账户**(不只预警行);用 `hitReason` 标记续航/余额不足。**P2 必用**;**禁止**外层循环逐户 `balance`。
|
|
15
15
|
|
|
16
16
|
> **数据异常(exit 2)**:无账户 / 全部 OAuth 失效 / **余额全为 null** 时 CLI 退出码 **2**,`--json-out` 的 `ok=false` 且 `meta.dataIssue` 为 `no_accounts` | `all_oauth_invalid` | `all_balances_null`。须向用户说明原因,**禁止**当成「无预警命中」。可试 `--refresh-dp` / `login` / `--verbose`。
|
|
17
17
|
|
|
@@ -22,7 +22,7 @@ siluzan-tso balance-scan -m <媒体类型> [选项]
|
|
|
22
22
|
| 选项 | 说明 | 默认 |
|
|
23
23
|
| ------------------------------------- | ------------------------------------------------------------------------------------ | ------------ |
|
|
24
24
|
| `-m, --media <type>` | 必填:`Google \| TikTok \| Yandex \| MetaAd \| BingV2 \| Kwai` | — |
|
|
25
|
-
| `-a, --accounts <ids>` | 指定 `mediaCustomerId
|
|
25
|
+
| `-a, --accounts <ids>` | 指定 `mediaCustomerId`(逗号分隔);**跳过清单翻页**,对这些 ID 拉数后全部输出 | — |
|
|
26
26
|
| `--threshold-days <n>` | 剩余续航天数阈值 | `7` |
|
|
27
27
|
| `--spend-days <n>` | 日均消耗回看自然日数(截至昨天不含今天;日均 = 窗口合计 / N) | `7` |
|
|
28
28
|
| `--min-balance <n>` | 绝对余额阈值(与 threshold 取并集) | — |
|
|
@@ -47,7 +47,7 @@ siluzan-tso balance-scan -m BingV2 -a id1,id2,id3 --json-out ./snap-p2-subset
|
|
|
47
47
|
siluzan-tso balance-scan -m MetaAd --json-out ./snap-p2-meta
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
**读盘要点**:先看 `meta.dataIssue
|
|
50
|
+
**读盘要点**:先看 `meta.dataIssue`(非空则失败)。`data.items` = **全部已检查账户**(OAuth 失效户不在 items,见 `meta.skippedInvalidOAuth`);`meta.hitCount` = 触阈值条数。预警筛 `hitReason !== "none"`;`hitReason="none"` 表示已检查但未触阈值。按 `remainingDays` 升序交付。用 **`dailySpend`** 做日均(口径见 `meta.spendDays` / `meta.spendWindow`),勿把 `stats` 区间合计 `spend` 当「每天消耗」。与 `balance` / `accounts-digest` 分工见 `references/core/agent-conventions.md` §八。
|
|
51
51
|
|
|
52
52
|
---
|
|
53
53
|
|
|
@@ -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`;Kwai、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`;Kwai、Yandex 当前没有对应充值界面) |
|
|
171
171
|
| `Rejected` | 被拒 | 查看 `--json-out` 落盘中的 `reason` 字段了解拒绝原因;修改资料后重新提交;若原因不明,引导用户联系丝路赞客服 |
|
|
172
172
|
|
|
173
173
|
---
|
|
@@ -488,7 +488,7 @@ siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --res
|
|
|
488
488
|
|
|
489
489
|
| 功能 | 媒体 | 网页路径 |
|
|
490
490
|
| --------------------------------------- | ------ | ------------------------------------------------- |
|
|
491
|
-
| **账户激活**(邀请他人激活 / 充值激活) | Google | `https://www.siluzan.com/v3/foreign_trade/tso/manageAccounts` |
|
|
491
|
+
| **账户激活**(邀请他人激活 / 充值激活) | Google | `https://www-ci.siluzan.com/v3/foreign_trade/tso/manageAccounts` |
|
|
492
492
|
|
|
493
493
|
**Agent 建议话术**:
|
|
494
494
|
|
|
@@ -497,5 +497,5 @@ siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --res
|
|
|
497
497
|
siluzan-tso config show # 查看 webUrl 字段
|
|
498
498
|
|
|
499
499
|
# 账户激活(Google)→ 引导至账户管理页
|
|
500
|
-
# https://www.siluzan.com/v3/foreign_trade/tso/manageAccounts
|
|
500
|
+
# https://www-ci.siluzan.com/v3/foreign_trade/tso/manageAccounts
|
|
501
501
|
```
|
|
@@ -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
|
---
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
- Meta / Facebook Ads 账户分析
|
|
12
12
|
- TikTok 账户分析
|
|
13
13
|
- Bing(BingV2)账户分析
|
|
14
|
+
- Yandex 账户分析
|
|
14
15
|
- 报告模板
|
|
15
16
|
|
|
16
17
|
---
|
|
@@ -45,7 +46,7 @@
|
|
|
45
46
|
> 线性步骤见 `playbooks.md`:单户画像 **P1**、Google 周期 **P4**、Meta 周期 **P4-FB**、多账户批处理 **P5**、OKKI **P6**、询盘 **P7**。
|
|
46
47
|
> 「使用 okki 周报模板」→ **P6**(勿按默认 8 维追问)。Google 周期 Excel(非 OKKI/询盘)→ **P4** + `report-templates/google-period-report-excel.md`。
|
|
47
48
|
|
|
48
|
-
拉数落盘:`google-analysis … --json-out <dir>`(Google)或 `
|
|
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` §三、§七。
|
|
49
50
|
|
|
50
51
|
---
|
|
51
52
|
|
|
@@ -368,6 +369,46 @@ Bing 的 `ctr` / `conversionRate` 为 0~1 小数\*\*(`0.007434` = 0.74%),
|
|
|
368
369
|
|
|
369
370
|
---
|
|
370
371
|
|
|
372
|
+
## Yandex 账户分析
|
|
373
|
+
|
|
374
|
+
> **网关**:直打 YandexAPI `{yandexApiUrl}/yandex-analysis/*`(从 TSO `apiBaseUrl` 推导:`tso-api-ci` → `yandexapi-ci.mysiluzan.com`;可用 `SILUZAN_YANDEX_API` 覆盖)。
|
|
375
|
+
>
|
|
376
|
+
> **日期**:`start`/`end` 不能晚于今天;省略默认近 7 天(含今天)。**search-terms** 仅支持近 **180 天**(Direct 限制),超窗网关/CLI 均会拒绝。
|
|
377
|
+
>
|
|
378
|
+
> **账户 ID**:Yandex Client-Login / mediaCustomerId(如 `porg-xxx`,与 `list-accounts -m Yandex` 一致),**不是**纯数字。
|
|
379
|
+
>
|
|
380
|
+
> **金额**:已从 micros 转为账户币种小数(`/1e6`)。`ctr` / `conversionRate` 为 **0~1 小数**(先读 outline)。
|
|
381
|
+
|
|
382
|
+
与 `bing-analysis` 同架构:`yandex-analysis -a … --json-out …`(省略子命令名默认执行 `run`);周期报告默认 **HTML**:`yandex-analysis render`(见 `report-templates/yandex-period-report.md`)。用户要 Excel → `yandex-period-report-excel.md`(Agent 脚本,无 excel 子命令)。
|
|
383
|
+
|
|
384
|
+
| 选项 | 说明 |
|
|
385
|
+
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
386
|
+
| `--sections` / `--exclude` | `overview` `daily` `search` `campaigns` `keywords` `search-terms` `geo` `devices`(8 个);别名:`geographic`→`geo`,`device`→`devices`,`search-queries`→`search-terms` |
|
|
387
|
+
| `--limit` | 仅 `campaigns` / `keywords` / `search-terms` / `geo`:默认 100,最大 10000 |
|
|
388
|
+
| `--start` / `--end` | 同传或同省略;不能晚于今天;省略=近 7 天(含今天) |
|
|
389
|
+
| `--concurrency` | 默认 5,上限 16 |
|
|
390
|
+
|
|
391
|
+
```bash
|
|
392
|
+
mkdir -p ./snap-yandex
|
|
393
|
+
|
|
394
|
+
# 全 8 维
|
|
395
|
+
siluzan-tso yandex-analysis -a <porg-xxx> --json-out ./snap-yandex
|
|
396
|
+
|
|
397
|
+
# 总览 + 系列 + 关键词
|
|
398
|
+
siluzan-tso yandex-analysis -a <porg-xxx> --start 2026-07-01 --end 2026-07-31 \
|
|
399
|
+
--sections overview,campaigns,keywords --limit 50 --json-out ./snap-yandex
|
|
400
|
+
|
|
401
|
+
# 周期报告 HTML(Agent 写完 narrative JSON 后)
|
|
402
|
+
siluzan-tso yandex-analysis render \
|
|
403
|
+
--data ./yandex-period-report.json \
|
|
404
|
+
--snapshot-dir ./snap-yandex \
|
|
405
|
+
--out ./yandex-period-report.html
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
`search` / `campaigns` / `keywords` / `geo` / `devices` 在 Direct 侧过滤 `AdNetworkType=SEARCH`。无 Metrica / 写操作。报告模板:`report-templates/yandex-period-report.md`(8 个分析章节必写总结+建议;`tables.weekly` 由 daily 聚合)。
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
371
412
|
## 报告模板
|
|
372
413
|
|
|
373
414
|
报告产物可以是 HTML、Excel、PDF、PPT、Markdown 等,数据口径须与快照 JSON 一致。章节与数据块参考 `report-templates/`:
|
|
@@ -381,6 +422,8 @@ Bing 的 `ctr` / `conversionRate` 为 0~1 小数\*\*(`0.007434` = 0.74%),
|
|
|
381
422
|
| `meta-period-report.md` | Meta(Facebook)周期报告 |
|
|
382
423
|
| `tiktok-period-report.md` | TikTok 周期报告 |
|
|
383
424
|
| `bing-period-report.md` | Bing 周期报告 |
|
|
425
|
+
| `yandex-period-report.md` | Yandex 周期报告(HTML:`yandex-analysis render`) |
|
|
426
|
+
| `yandex-period-report-excel.md` | Yandex 周期报告 Excel(Agent 脚本) |
|
|
384
427
|
| `website-diagnosis-report.md` | 网站/落地页诊断(`website-diagnosis`,见 P8);**默认交付 HTML**(`website-diagnosis render`,禁止仅 Markdown) |
|
|
385
428
|
| `README.md` | 索引与规则 |
|
|
386
429
|
|
|
@@ -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
|
```
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
- **步骤**:
|
|
44
44
|
1. 全量巡检:`balance-scan -m <媒体> --threshold-days 7 --json-out ./snap-p2`(可选 `--min-balance 100` / `--target-days 60`)。
|
|
45
45
|
2. 已知子集:`balance-scan -m <媒体> -a id1,id2,id3 --json-out ./snap-p2-subset`(跳过翻页)。
|
|
46
|
-
-
|
|
46
|
+
- **产物**:`data.items` 为全部已检查账户(按 `remainingDays` 升序);预警筛 `hitReason !== "none"`;`hitReason="none"` 表示未触阈值;消耗过低的僵尸账户 `remainingDays` 为 null、不纳入预警。**禁止**逐账户 `balance`。
|
|
47
47
|
|
|
48
48
|
---
|
|
49
49
|
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -25,7 +25,7 @@ siluzan-tso balance-scan -m Google [--threshold-days <n>] [--min-balance <n>] [-
|
|
|
25
25
|
| 近 7 日估算日均消耗 | **`data.items[].dailySpend`** = 近 7 日总消耗 / 7(窗口为 **[T-7, T-1]**,即截至昨天的 7 个自然日,**不含当天**,避免拉到当天未结算数据) |
|
|
26
26
|
| 按余额÷日均估算的续航天数 | **`data.items[].remainingDays`** = `balance / dailySpend`(消耗过低 < `minDailySpend` 时为 `null`) |
|
|
27
27
|
| 建议充值额(按 `meta.thresholds.targetDaysForTopup` 目标) | **`data.items[].recommendedTopup`** |
|
|
28
|
-
| 命中原因(阈值逻辑) | **`data.items[].hitReason`**:`low-days` \| `low-balance` \| `both`
|
|
28
|
+
| 命中原因(阈值逻辑) | **`data.items[].hitReason`**:`low-days` \| `low-balance` \| `both` \| `none`(已检查但未触阈值)。`data.items` 含全部已检查账户;预警筛 `hitReason !== "none"`。`meta.hitCount` 为触阈值条数 |
|
|
29
29
|
| 币种 / 状态 / OAuth | `data.items[].currencyCode`、`data.items[].status`、`data.items[].invalidOAuthToken` |
|
|
30
30
|
| 本轮扫描元数据 | **`meta`**:`scannedAccounts`、`validAccounts`、`hitCount`、`thresholds`(含 `days`、`minBalance`、`minDailySpend`、`targetDaysForTopup`)、`generatedAt` 等 |
|
|
31
31
|
|
|
@@ -29,6 +29,8 @@
|
|
|
29
29
|
| `meta-account-diagnosis-report.md` / `.html` | **Meta(Facebook)诊断报告(默认)**:四步流程 → `facebook-analysis diagnosis-render` 出 HTML(在 7 Section 内对齐 Google 诊断结构,未覆盖小节标 `notAvailable`) |
|
|
30
30
|
| `tiktok-period-report.md` / `.html` | **TikTok 广告主周期报告(默认)**:四步流程 → `tiktok-analysis render` 出 HTML |
|
|
31
31
|
| `bing-period-report.md` / `.html` | **Bing(BingV2)分析报告(默认)**:四步流程 → `bing-analysis render` 出 HTML |
|
|
32
|
+
| `yandex-period-report.md` / `.html` | **Yandex Direct 周期报告(默认)**:四步流程 → `yandex-analysis render` 出 HTML(样式对齐开发样例) |
|
|
33
|
+
| `yandex-period-report-excel.md` | **仅用户要 Excel 时**:Agent 脚本写 xlsx;无 CLI excel 子命令 |
|
|
32
34
|
| `okki-weekly-google-client.md` | **OKKI 周报**:Google 发客户固定话术 + 精简维度 CLI;**Excel 仅 Agent 脚本**,见 `references/core/playbooks.md` P6 |
|
|
33
35
|
| `google-inquiry-analysis.md` | **Google 询盘分析**:严格 3 个月 + 用户询盘 + 8 Sheet xlsx,见 `references/core/playbooks.md` P7 |
|
|
34
36
|
| `website-diagnosis-report.md` / `.html` | **网站诊断**:终稿为 **HTML**(对齐 TSO `WebsiteAnalysisReport/v3`);配合 `website-diagnosis collect`,见 P8 |
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
|
|
24
24
|
根据媒体与用户意图,选择 `report-templates/` 下对应的 `*.md`:
|
|
25
25
|
|
|
26
|
-
| 意图 | Google | Meta | TikTok | Bing |
|
|
27
|
-
| ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------- | ----------------------- |
|
|
28
|
-
| 周期分析 / 月报 / 周报 | `google-period-report.md` | `meta-period-report.md` | `tiktok-period-report.md` | `bing-period-report.md` |
|
|
26
|
+
| 意图 | Google | Meta | TikTok | Bing | Yandex |
|
|
27
|
+
| ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------- | ----------------------- | --------------------------- |
|
|
28
|
+
| 周期分析 / 月报 / 周报 | `google-period-report.md` | `meta-period-report.md` | `tiktok-period-report.md` | `bing-period-report.md` | `yandex-period-report.md` |
|
|
29
29
|
| OKKI 周报 / 固定话术发客户(Google) | `okki-weekly-google-client.md` | — | — | — |
|
|
30
30
|
| **询盘分析** / 固定运营触发(Goog账户询盘分析 / 我给你询盘信息分析Google账号XXX效果) | `google-inquiry-analysis.md`(**严格 3 个月** + 用户上传询盘资料 + 8 Sheet xlsx;见 SKILL **P7**) | — | — | — |
|
|
31
31
|
| 深度诊断 / 健康检查 | `google-account-diagnosis-report.md` | `meta-account-diagnosis-report.md`(`facebook-analysis diagnosis-render` 出 HTML) | 同周期,注明能力受限 | 同周期 |
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
|
|
60
60
|
### 步骤 4:拉取数据
|
|
61
61
|
|
|
62
|
-
- **`google-analysis` / `facebook-analysis` / `tiktok-analysis` / `bing-analysis` / `report …` 账户分析子命令**:统一 **`--json-out <目录>`** 落盘,再由脚本读 **`manifest-<accountId>.json` / `report-manifest-<accountId>.json`**(清单文件名见 stdout 摘要的 `manifestFile`)与各 **`<section>-<accountId>.json`**(见 `references/analytics/account-analytics.md`)。
|
|
62
|
+
- **`google-analysis` / `facebook-analysis` / `tiktok-analysis` / `bing-analysis` / `yandex-analysis` / `report …` 账户分析子命令**:统一 **`--json-out <目录>`** 落盘,再由脚本读 **`manifest-<accountId>.json` / `report-manifest-<accountId>.json`**(清单文件名见 stdout 摘要的 `manifestFile`)与各 **`<section>-<accountId>.json`**(见 `references/analytics/account-analytics.md`)。
|
|
63
63
|
- **`stats`、`ad campaigns` 等辅助命令**:按 `references/core/tips.md` 与各命令文档做结构化拉数。
|
|
64
64
|
- 仅执行与**本次报告维度**对应的命令(默认 + 用户追加)。
|
|
65
65
|
- 数据失败/缺失:在对应章节写 `[ 数据不可用:{原因} ]`,不写推测。
|
|
@@ -83,6 +83,7 @@
|
|
|
83
83
|
- **Google 周期报告**:产出 `google-period-report.json`(见 `google-period-report.md`,仅 `meta` + `narrative` 为必填)。
|
|
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
|
+
- **Yandex 周期报告**:产出 `yandex-period-report.json`(见 `yandex-period-report.md`,`meta`/`kpis`/`tables` 可由 `--snapshot-dir` 自动合并)。
|
|
86
87
|
- **其余场景**(OKKI、询盘等未接入 render 的模板):可直接组织 Markdown/HTML 正文。
|
|
87
88
|
|
|
88
89
|
### 步骤 5b:生成终稿(按媒体与格式)
|
|
@@ -94,6 +95,7 @@
|
|
|
94
95
|
| **Google 周期报告** | `google-analysis render` → **HTML**(必做) | **周期/定制 Sheet**:`google-period-report-excel.md`(P4,先 outline 后脚本);**不**默认 `render` |
|
|
95
96
|
| **TikTok 周期报告** | `tiktok-analysis render` → **HTML**(必做) | Agent 脚本写 xlsx;**不**默认 `render` |
|
|
96
97
|
| **Bing 周期报告** | `bing-analysis render` → **HTML**(必做) | Agent 脚本写 xlsx;**不**默认 `render` |
|
|
98
|
+
| **Yandex 周期报告** | `yandex-analysis render` → **HTML**(必做) | Agent 脚本按 `yandex-period-report-excel.md` 写 xlsx;**不**默认 `render` |
|
|
97
99
|
| **Google 诊断/OKKI/询盘** | 按 `report-template*.html` 写 HTML(默认 `report-template.html`) | **诊断**:同左;**OKKI**:P6;**询盘**:P7 |
|
|
98
100
|
| **网站诊断** | `website-diagnosis render` → HTML | — |
|
|
99
101
|
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Yandex Direct 账户周期报告 — Excel 交付规格
|
|
2
|
+
|
|
3
|
+
> **适用场景**:用户明确要求 **Yandex 账户 + 统计区间 + Excel/xlsx**。
|
|
4
|
+
> **工作流**:**P4**(与 `yandex-period-report.md` 共用拉数维度;交付形态不同)。
|
|
5
|
+
> **禁止**:加载宿主「xlsx / Excel」第三方 Skill 代替本流程;**无** CLI 内置写表子命令,须 Agent 脚本(`exceljs` / `xlsx` / `openpyxl`)读落盘 JSON 写 `.xlsx`。
|
|
6
|
+
> 用户未指定格式时走 `yandex-period-report.md` → `yandex-analysis render` HTML,**不要**默认走本文。
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 执行门禁(**全部满足后才允许写脚本**)
|
|
11
|
+
|
|
12
|
+
| # | 门禁 | 命令 / 动作 |
|
|
13
|
+
| --- | --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
|
|
14
|
+
| 1 | Read 当次必读 | `agent-conventions.md`、`account-analytics.md`、`yandex-period-report.md`(本文) |
|
|
15
|
+
| 2 | **账户 ID 核验** | `siluzan-tso list-accounts -m Yandex -k <porg-xxx> --json-out ./snap-yandex` |
|
|
16
|
+
| 3 | 确认 `currency` | 来自 overview 落盘或 list-accounts(Yandex 常用 USD/RUB 等) |
|
|
17
|
+
| 4 | **拉数** | `yandex-analysis -a <已核验 id> --start … --end … --json-out <dir>`(全 8 维或用户指定 Sheet 对应维) |
|
|
18
|
+
| 5 | **先 outline 后脚本** | 对本次每个 section Read `*.outline.txt`;业务 JSON 仅在脚本内读取 |
|
|
19
|
+
| 6 | 写脚本 | 字段名只来自 outline;`ctr`/`conversionRate` 为 **0~1 小数** |
|
|
20
|
+
| 7 | 交付前审阅 | 按 `agent-conventions.md` §七;xlsx 无法 Read 时贴自检表 + 脚本 stdout 摘要 |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 账户 ID
|
|
25
|
+
|
|
26
|
+
`list-accounts -m Yandex -k <porg-xxx>` 核验;全流程用同一 Client-Login。报告首行:`统计区间:YYYY-MM-DD ~ YYYY-MM-DD(货币:XXX)`。
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 推荐 Sheet ↔ CLI section
|
|
31
|
+
|
|
32
|
+
用户已列出 Sheet 名时以用户清单为准;未列出时可用下表默认 7 Sheet(周报由脚本从 daily 聚合,不必单独拉):
|
|
33
|
+
|
|
34
|
+
| Sheet(建议名) | `yandex-analysis` section | 读法 |
|
|
35
|
+
| --------------- | ------------------------- | ---------------------------- |
|
|
36
|
+
| 账户总览 | `overview` | 对象:`totals` / `balance` … |
|
|
37
|
+
| 日报表 | `daily` | `items[]` |
|
|
38
|
+
| 周报表 | (无) | 脚本按 ISO 周聚合 `daily` |
|
|
39
|
+
| Search 网络 | `search` | `items[]` |
|
|
40
|
+
| 广告系列 | `campaigns` | `items[]` |
|
|
41
|
+
| 关键词 | `keywords` | `items[]` |
|
|
42
|
+
| 搜索词 | `search-terms` | `items[]`(区间 ≤180 天) |
|
|
43
|
+
| 地域 | `geo` | `items[]` |
|
|
44
|
+
| 设备 | `devices` | `items[]` |
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
mkdir -p ./snap-yandex
|
|
48
|
+
siluzan-tso list-accounts -m Yandex -k <porg-xxx> --json-out ./snap-yandex
|
|
49
|
+
|
|
50
|
+
siluzan-tso yandex-analysis -a <porg-xxx> --start <S> --end <E> --json-out ./snap-yandex
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
落盘文件名以 stdout 摘要 `results[].file` 为准。
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 统一度量列(列表 Sheet)
|
|
58
|
+
|
|
59
|
+
| Excel 列名 | API 字段 | 说明 |
|
|
60
|
+
| ---------- | -------------------- | ----------------------------- |
|
|
61
|
+
| 消耗 | `spend` | 账户币种小数,2 位 |
|
|
62
|
+
| 展示 | `impressions` | 整数 |
|
|
63
|
+
| 点击 | `clicks` | 整数 |
|
|
64
|
+
| CTR | `ctr` | 0~1;单元格 `0.00%` 或文案 % |
|
|
65
|
+
| CPC | `averageCpc` | 小数 |
|
|
66
|
+
| 转化 | `conversions` | 小数/整数按 outline |
|
|
67
|
+
| 转化率 | `conversionRate` | 0~1 |
|
|
68
|
+
| CPA | `costPerConversion` | 可为 null |
|
|
69
|
+
|
|
70
|
+
### 维度列(按 Sheet)
|
|
71
|
+
|
|
72
|
+
| Sheet | 维度列(API) |
|
|
73
|
+
| -------- | ----------------------------------------------------------------------------- |
|
|
74
|
+
| Search | `network` |
|
|
75
|
+
| 广告系列 | `campaignId`(文本)、`campaignName`、`status`/`state`、`campaignType` |
|
|
76
|
+
| 关键词 | `keyword`、`campaignName`、`criteriaType`、`adGroupId`(文本) |
|
|
77
|
+
| 搜索词 | `searchQuery`、`matchedKeyword`、`campaignName` |
|
|
78
|
+
| 地域 | `locationName` / `targetingLocationName` |
|
|
79
|
+
| 设备 | `device` |
|
|
80
|
+
| 日报 | `date` |
|
|
81
|
+
| 周报 | `weekLabel`、`startDate`、`endDate`、`days`(脚本生成) |
|
|
82
|
+
|
|
83
|
+
**账户总览 Sheet**:KPI 区(余额、本期消耗、日均、点击、CTR、CPC、转化)+ **全部叙事**(执行摘要、各维总结/建议、≥3 条跨维优化建议)写在本 Sheet;列表 Sheet 仅数据表。
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 禁止猜的字段 / 口径
|
|
88
|
+
|
|
89
|
+
| ❌ 禁止 | ✅ 正确 |
|
|
90
|
+
| ------------------------------------ | ---------------------------------------------------- |
|
|
91
|
+
| 把 `ctr` 当已是百分数再 ÷100 | 落盘为 0~1;Excel 用百分比格式或 `*100` 后加 `%` |
|
|
92
|
+
| 编造学习期 / 翻译字段 | API 无则叙事说明「数据不可用」 |
|
|
93
|
+
| `campaignId` 写成数字 | `String(id)` + 文本格式 |
|
|
94
|
+
| search-terms 拉超过 180 天 | 缩短区间或排除该维 |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 禁止的数据探查方式
|
|
99
|
+
|
|
100
|
+
- `cat …json \| python -m json.tool \| head`
|
|
101
|
+
- 宿主 **Read** 打开业务 `*.json`
|
|
102
|
+
- 把 JSON 片段贴进对话当字段依据
|
|
103
|
+
|
|
104
|
+
**允许**:Read `*.outline.txt`;脚本 stdout 打印行数 / 汇总。
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 交付前自检
|
|
109
|
+
|
|
110
|
+
- [ ] `accountId` = 用户要求的 `porg-xxx`
|
|
111
|
+
- [ ] 每个 Sheet 列均能在对应 outline 找到源字段
|
|
112
|
+
- [ ] `itemCount` 与 Excel 数据行一致(±合计行)
|
|
113
|
+
- [ ] 全部 ID 列为文本
|
|
114
|
+
- [ ] 未调用 `yandex-analysis render`(Excel 路径)
|
|
115
|
+
- [ ] 未使用第三方 xlsx Skill 替代拉数口径
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## 相关文档
|
|
120
|
+
|
|
121
|
+
- `yandex-period-report.md` — 默认 HTML 四步
|
|
122
|
+
- `references/analytics/account-analytics.md` — 命令与日期
|
|
123
|
+
- `references/core/tips.md` — 摘要 → outline → 脚本
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Yandex Direct — 账户分析报告(模板纲要)
|
|
2
|
+
|
|
3
|
+
> 统计区间:`{startDate}` ~ `{endDate}`(**不能晚于今天**;省略默认近 7 天含今天)
|
|
4
|
+
> 账户:`{mediaCustomerId}`(如 `porg-xxx`,与 `list-accounts -m Yandex` 一致)
|
|
5
|
+
> **默认交付物**:一份可打开的 **HTML 文件**(`yandex-period-report.html`,样式对齐开发样例)。
|
|
6
|
+
> 用户**未指定格式**时一律走下方 **标准四步流程**;**禁止** Agent 手写/拼接 HTML。
|
|
7
|
+
> **用户明确要求 Excel / xlsx** 时:拉数步骤不变,改为 Agent 脚本写 `.xlsx`;**不要**调用 `yandex-analysis render`;禁止假设存在内置 excel 子命令。见 `yandex-period-report-excel.md`。
|
|
8
|
+
|
|
9
|
+
数据块(YandexAPI `/yandex-analysis` 8 维 + 本地周聚合):总览、按日、Search 网络、系列、关键词、搜索词、地域、设备;周报由 `daily` 本地聚合(后端无独立 weekly)。
|
|
10
|
+
|
|
11
|
+
| CLI `--sections` | 落盘形状(CI 实测) | 报告 `tables.*` / KPI |
|
|
12
|
+
| ---------------- | -------------------------------------------------------- | ---------------------------------------------------------- |
|
|
13
|
+
| `overview` | 对象:`account` / `currency` / `balance` / `totals` … | → `meta` + `kpis`(余额、日均、续航天数) |
|
|
14
|
+
| `daily` | `{ account, startDate, endDate, items: DayRow[] }` | → `tables.daily[]`;并聚合 → `tables.weekly[]` |
|
|
15
|
+
| `search` | `{ …, items: SearchRow[] }` | → `tables.search[]` |
|
|
16
|
+
| `campaigns` | `{ …, items: CampaignRow[] }`(默认 limit=100) | → `tables.campaigns[]` |
|
|
17
|
+
| `keywords` | `{ …, items: KeywordRow[] }` | → `tables.keywords[]` |
|
|
18
|
+
| `search-terms` | `{ …, items: SearchTermRow[] }`(**仅近 180 天**) | → `tables.searchTerms[]` |
|
|
19
|
+
| `geo` | `{ …, items: GeoRow[] }` | → `tables.geo[]` |
|
|
20
|
+
| `devices` | `{ …, items: DeviceRow[] }` | → `tables.devices[]` |
|
|
21
|
+
|
|
22
|
+
> 金额已为账户币种小数;`ctr` / `conversionRate` 为 **0~1 小数**。写叙事前先读各维 `*.outline.txt`。
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 标准四步流程(默认 · 交付 HTML)
|
|
27
|
+
|
|
28
|
+
| 步骤 | 执行者 | 动作 |
|
|
29
|
+
| ---------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
30
|
+
| **1. 拉数** | Agent 调 CLI | `yandex-analysis -a <porg-xxx> --start <s> --end <e> --json-out ./snap-yandex`(全 8 维或 `--sections` 指定子集) |
|
|
31
|
+
| **2. 分析** | Agent | 用 **node/python 脚本**读落盘 JSON(勿用 Read 打开业务 `*.json`),对照 outline 完成聚合与洞察 |
|
|
32
|
+
| **3. 写 JSON** | Agent | 撰写 `yandex-period-report.json`:仅 `meta.accountId` + `narrative`(8 个分析章节)为必填;`kpis`/`tables` 可省略由 `--snapshot-dir` 合并 |
|
|
33
|
+
| **4. 渲染 HTML** | CLI | `yandex-analysis render` — **校验 narrative 8 个分析章节必含字段**,缺项报错不生成 HTML;**禁止** Agent 手写/拼接 HTML |
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# 步骤 1
|
|
37
|
+
siluzan-tso yandex-analysis -a <porg-xxx> --start <s> --end <e> --json-out ./snap-yandex
|
|
38
|
+
|
|
39
|
+
# 步骤 4(步骤 2~3 完成后)
|
|
40
|
+
siluzan-tso yandex-analysis render \
|
|
41
|
+
--data ./yandex-period-report.json \
|
|
42
|
+
--snapshot-dir ./snap-yandex \
|
|
43
|
+
--out ./yandex-period-report.html
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### `yandex-period-report.json` 顶层结构
|
|
47
|
+
|
|
48
|
+
- `meta`:`accountId`(必填)/ `accountName` / `currency` / `region` / `startDate` / `endDate` / `platform`;可省略由 `--snapshot-dir` 从 overview 补空。
|
|
49
|
+
- `kpis`:`spend` / `impressions` / `clicks` / `conversions` / `ctr` / `averageCpc` / `costPerConversion` / `conversionRate` / `roi` / `balance` / `avgDailySpend` / `activeDays` / `runwayDays` / `balanceAsOf`;可省略。
|
|
50
|
+
- `tables`(可省略,由 `--snapshot-dir` 映射):
|
|
51
|
+
- `daily[]`:`{date, spend, impressions, clicks, ctr, averageCpc, conversions, …}`
|
|
52
|
+
- `weekly[]`:`{weekLabel, startDate, endDate, days, spend, impressions, clicks, ctr, averageCpc, conversions, costPerConversion}`(CLI 由 daily 聚合)
|
|
53
|
+
- `search[]`:`{network, spend, …}`
|
|
54
|
+
- `campaigns[]`:`{campaignId, campaignName, status, state, campaignType, budget, strategy, …metrics}`
|
|
55
|
+
- `keywords[]`:`{keyword, campaignName, criteriaType, network, …metrics}`
|
|
56
|
+
- `searchTerms[]`:`{searchQuery, matchedKeyword, campaignName, …metrics}`
|
|
57
|
+
- `geo[]`:`{locationName, targetingLocationName, network, …metrics}`
|
|
58
|
+
- `devices[]`:`{device, network, …metrics}`
|
|
59
|
+
- `narrative`(**Agent 必填**):
|
|
60
|
+
- `executiveSummary[]`:≥1 段执行摘要
|
|
61
|
+
- `sections.{overview,search,campaigns,keywords,searchTerms,geo,devices,daily}`:每个维度各 `{analysis[](≥1,含数字依据), suggestions[](≥1)}`
|
|
62
|
+
- `recommendations[]`:≥3 条跨维度优化建议(可用 `{priority,text,anchor}`,anchor 对齐样例锚点如 `#keyword` / `#query`)
|
|
63
|
+
|
|
64
|
+
### 快照合并范围(`--snapshot-dir`)
|
|
65
|
+
|
|
66
|
+
`render` 传 `--snapshot-dir` 时,CLI 自动补全:
|
|
67
|
+
|
|
68
|
+
1. `meta`(仅补空字段)
|
|
69
|
+
2. **`kpis` / `tables.*` 一律以 CLI 快照覆盖**(有对应 section 时)
|
|
70
|
+
3. `tables.weekly` 由 `daily.items` 本地 ISO 周聚合
|
|
71
|
+
|
|
72
|
+
Agent 只需撰写 `narrative`;**禁止手写 HTML**,也**禁止**自填 `kpis`/`tables` 数值。
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 日期规则(必读)
|
|
77
|
+
|
|
78
|
+
- `--start` / `--end` 须**同传或同省略**;**不能晚于今天**;省略=近 7 天(含今天)。
|
|
79
|
+
- **search-terms** 仅支持近 **180 天**;超窗网关/CLI 拒绝——拉长区间时对该维用 `--exclude search-terms` 或缩短区间。
|
|
80
|
+
- 用户说「X 月 / 月报」且该月已结束:`--start` 当月 1 日、`--end` 当月最后一天。
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 拉数(一次目录)
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
mkdir -p ./snap-yandex
|
|
88
|
+
|
|
89
|
+
siluzan-tso list-accounts -m Yandex -k <porg-xxx> --json-out ./snap-yandex
|
|
90
|
+
|
|
91
|
+
siluzan-tso yandex-analysis -a <porg-xxx> --start <S> --end <E> --json-out ./snap-yandex
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
- 写脚本前先读各 `yandex-*-<id>.outline.txt`(或 stdout 摘要里的 outline),再脚本读 `.json`。
|
|
95
|
+
- `search` / `campaigns` / `keywords` / `geo` / `devices` 在 Direct 侧过滤 `AdNetworkType=SEARCH`。
|
|
96
|
+
- **无**学习期 / 关键词翻译等专用接口——相关洞察仅能基于现有字段与叙事,勿编造后端字段。
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## HTML 章节与锚点(对齐开发样例)
|
|
101
|
+
|
|
102
|
+
| 锚点 | 章节 | 数据 / 叙事来源 |
|
|
103
|
+
| ----------- | -------------- | ---------------------------------------------------- |
|
|
104
|
+
| `#overview` | 账户总览 | `kpis` + `tables.weekly` + 每日折叠 + `sections.overview` |
|
|
105
|
+
| `#next` | 后续优化动作 | `narrative.recommendations` |
|
|
106
|
+
| `#search` | Search 网络 | `tables.search` + `sections.search` |
|
|
107
|
+
| `#campaign` | Campaign | `tables.campaigns` + `sections.campaigns` |
|
|
108
|
+
| `#keyword` | 关键词 | `tables.keywords` + `sections.keywords` |
|
|
109
|
+
| `#query` | 搜索词 | `tables.searchTerms` + `sections.searchTerms` |
|
|
110
|
+
| `#geo` | 地域 | `tables.geo` + `sections.geo` |
|
|
111
|
+
| `#device` | 设备 | `tables.devices` + `sections.devices` |
|
|
112
|
+
| `#daily` | 日报表 | `tables.daily` + `sections.daily` |
|
|
113
|
+
| `#weekly` | 周报表 | `tables.weekly`(同 daily 叙事) |
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 相关文档
|
|
118
|
+
|
|
119
|
+
- `yandex-period-report-excel.md` — 用户要 xlsx 时
|
|
120
|
+
- `references/analytics/account-analytics.md` — `yandex-analysis` 命令与日期
|
|
121
|
+
- `references/core/agent-conventions.md` — 落盘读盘与交付自检
|
|
@@ -29,6 +29,8 @@
|
|
|
29
29
|
| `meta-account-diagnosis-report.md` / `.html` | **Meta(Facebook)诊断报告(默认)**:四步流程 → `facebook-analysis diagnosis-render` 出 HTML(在 7 Section 内对齐 Google 诊断结构,未覆盖小节标 `notAvailable`) |
|
|
30
30
|
| `tiktok-period-report.md` / `.html` | **TikTok 广告主周期报告(默认)**:四步流程 → `tiktok-analysis render` 出 HTML |
|
|
31
31
|
| `bing-period-report.md` / `.html` | **Bing(BingV2)分析报告(默认)**:四步流程 → `bing-analysis render` 出 HTML |
|
|
32
|
+
| `yandex-period-report.md` / `.html` | **Yandex Direct 周期报告(默认)**:四步流程 → `yandex-analysis render` 出 HTML(样式对齐开发样例) |
|
|
33
|
+
| `yandex-period-report-excel.md` | **仅用户要 Excel 时**:Agent 脚本写 xlsx;无 CLI excel 子命令 |
|
|
32
34
|
| `okki-weekly-google-client.md` | **OKKI 周报**:Google 发客户固定话术 + 精简维度 CLI;**Excel 仅 Agent 脚本**,见 `references/core/playbooks.md` P6 |
|
|
33
35
|
| `google-inquiry-analysis.md` | **Google 询盘分析**:严格 3 个月 + 用户询盘 + 8 Sheet xlsx,见 `references/core/playbooks.md` P7 |
|
|
34
36
|
| `website-diagnosis-report.md` / `.html` | **网站诊断**:终稿为 **HTML**(对齐 TSO `WebsiteAnalysisReport/v3`);配合 `website-diagnosis collect`,见 P8 |
|