siluzan-tso-cli 1.1.21-beta.4 → 1.1.21-beta.5
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/_meta.json +2 -2
- package/dist/skill/references/accounts.md +59 -1
- package/dist/skill/references/tips.md +24 -0
- package/dist/skill/scripts/install.ps1 +1 -1
- package/dist/skill/scripts/install.sh +1 -1
- package/eval/cases/p3-accounts-digest.scenario.json +2 -2
- 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.21-beta.
|
|
54
|
+
> **注意**:当前为测试版(1.1.21-beta.5),供内部测试使用。正式发布后安装命令将改为 `npm install -g siluzan-tso-cli`。
|
|
55
55
|
|
|
56
56
|
| 助手 | 建议 `--ai` |
|
|
57
57
|
| ----------------------- | ------------------------------------ |
|
package/dist/skill/_meta.json
CHANGED
|
@@ -124,7 +124,65 @@ siluzan-tso balance -m Google -a 6326027735 --json
|
|
|
124
124
|
|
|
125
125
|
**单户余额与续航**:`balance` 只反映当前余额;判断「还能跑几天 / 是否够花」需结合 `stats`(或业务侧日均消耗)等数据。向用户展示 JSON 时,`mediaCustomerId` 须与本次 `-a` 查询的 ID 及命令输出一致。
|
|
126
126
|
|
|
127
|
-
|
|
127
|
+
**少量账户续航预警**:用 `balance-scan`(见 `SKILL.md` Playbook P2);**多账户投放画像汇总**(消耗/点击/转化/余额 + CTR/CPC/CPA):用下文 **`accounts-digest`**,Skill 编排一律 **`--json-out`**。
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## accounts-digest — 多账户投放画像汇总
|
|
132
|
+
|
|
133
|
+
一条命令替代 AI 对每个账户循环 `list-accounts -k` + `stats`。**多账户汇总表、对比消耗、跨账户巡检** 应优先本命令,禁止外层 for-loop 逐户 `stats`。
|
|
134
|
+
|
|
135
|
+
> **数据时效性**:与 `stats` / `balance-scan` 相同(Google `account-spend-overview` 分流;TikTok/Yandex/BingV2/Kwai 为截至昨天的 `accountsoverview`)。完整表见 `references/account-analytics.md` 顶部。
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
siluzan-tso accounts-digest -m <媒体类型> [选项]
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
| 选项 | 说明 | 默认 |
|
|
142
|
+
| ---- | ---- | ---- |
|
|
143
|
+
| `-m, --media <type>` | 媒体类型(必填):`Google \| TikTok \| Yandex \| BingV2 \| Kwai`(**MetaAd 无消耗汇总接口**) | — |
|
|
144
|
+
| `-a, --accounts <ids>` | 指定 `mediaCustomerId`,逗号分隔;**留空**则翻页拉该媒体全部账户 | — |
|
|
145
|
+
| `--start <YYYY-MM-DD>` | 统计开始日期(SKILL 要求 AI 先与用户确认区间) | 近 7 天 |
|
|
146
|
+
| `--end <YYYY-MM-DD>` | 统计结束日期 | 昨天 |
|
|
147
|
+
| `--min-spend <n>` | 过滤:区间内消耗 ≤ 此值的账户不返回 | `0` |
|
|
148
|
+
| `--page-size <n>` | 全量扫描时清单分页大小(上限 500) | `200` |
|
|
149
|
+
| `--max-pages <n>` | 全量扫描时最多页数(上限 200) | `20` |
|
|
150
|
+
| `--json` | stdout 输出完整 JSON(与 `--json-out` 互斥) | — |
|
|
151
|
+
| `--json-out <path>` | **Agent 推荐**:落盘目录或 `*.json` 文件;stdout 一行摘要(含 `outlineFile`、`writtenFiles`、`manifestFile`) | — |
|
|
152
|
+
|
|
153
|
+
**`--json-out` 落盘(Agent 必读)**:
|
|
154
|
+
|
|
155
|
+
- 目录模式典型文件:`accounts-digest-<媒体小写>.json`(如 `accounts-digest-google.json`)、同 stem 的 `accounts-digest-google.outline.txt`、`cli-manifest-<媒体小写>.json`。
|
|
156
|
+
- 处理顺序见 `references/tips.md`:先 stdout 摘要 → 再 `outlineFile` → 再 `require(writtenFiles[0])` 读真实数据;**禁止**在对话里手填 `data.items` 中的业务数。
|
|
157
|
+
- 响应结构:`{ ok, data: { items: [...] }, meta: { media, window, scanned, returned, source, totals, currencyNote, generatedAt } }`。
|
|
158
|
+
- `meta.source`:`list` = 全量翻清单后拉数;`subset` = 传了 `-a`,跳过清单翻页(**`advertiserName` 会缺失**,公司名列显示 `-`)。
|
|
159
|
+
|
|
160
|
+
**与 `stats` / `balance-scan` 的分工**:
|
|
161
|
+
|
|
162
|
+
| 场景 | 推荐 |
|
|
163
|
+
| ---- | ---- |
|
|
164
|
+
| 多账户消耗/点击/转化/CTR/CPC/CPA 汇总表 | `accounts-digest` + `--json-out` |
|
|
165
|
+
| 余额续航不足 N 天、充值预警 | `balance-scan` + `--json-out` |
|
|
166
|
+
| 单账户、必须逐户精确字段 | `stats` / `balance`(仍须 `-a` 单户或少量 ID) |
|
|
167
|
+
|
|
168
|
+
**示例:**
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# 指定账户子集(跳过清单翻页,Playbook P3)
|
|
172
|
+
siluzan-tso accounts-digest -m Google -a 6326027735,4256317784 \
|
|
173
|
+
--start 2026-04-01 --end 2026-04-15 \
|
|
174
|
+
--json-out ./snap-p3
|
|
175
|
+
|
|
176
|
+
# 扫描某媒体全部账户(内部翻页,勿先 list-accounts 再拼 -a)
|
|
177
|
+
siluzan-tso accounts-digest -m BingV2 --start 2026-05-01 --end 2026-05-24 \
|
|
178
|
+
--json-out ./snap-digest-bing
|
|
179
|
+
|
|
180
|
+
# 过滤低消耗账户
|
|
181
|
+
siluzan-tso accounts-digest -m Google -a id1,id2 --min-spend 10 \
|
|
182
|
+
--start 2026-04-01 --end 2026-04-15 --json-out ./snap-p3
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**`data.items[]` 主要字段**:`mediaCustomerId`、`name`、`advertiserName`、`currencyCode`、`balance`、`spend`、`impressions`、`clicks`、`conversions`、`ctr`(%)、`cpc`、`cpa`。跨币种汇总见 `references/currency.md`(**禁止**对 `meta.totals` 跨币种直接当最终结论)。
|
|
128
186
|
|
|
129
187
|
---
|
|
130
188
|
|
|
@@ -139,6 +139,30 @@ list
|
|
|
139
139
|
"
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
+
### 3b. 多账户投放画像(`accounts-digest`)
|
|
143
|
+
|
|
144
|
+
多账户汇总消耗/点击/转化时**优先** `accounts-digest`,不要对每个账户循环 `stats`(见 `SKILL.md` Playbook P3、`references/accounts.md` § accounts-digest)。
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
siluzan-tso accounts-digest -m Google -a id1,id2,id3 \
|
|
148
|
+
--start 2026-04-01 --end 2026-04-15 \
|
|
149
|
+
--json-out ./snap-p3
|
|
150
|
+
node -e "
|
|
151
|
+
const path = require('path');
|
|
152
|
+
const snap = './snap-p3';
|
|
153
|
+
const d = require(path.join(snap, 'accounts-digest-google.json'));
|
|
154
|
+
const rows = d.data?.items || [];
|
|
155
|
+
const meta = d.meta || {};
|
|
156
|
+
console.log('区间:', meta.window?.startDate, '~', meta.window?.endDate);
|
|
157
|
+
console.log('返回', rows.length, '户,扫描', meta.scanned);
|
|
158
|
+
rows.slice(0, 10).forEach((r) =>
|
|
159
|
+
console.log(' ', r.mediaCustomerId, r.spend, r.currencyCode, 'CTR%', r.ctr),
|
|
160
|
+
);
|
|
161
|
+
"
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
文件名以 stdout 摘要的 `writtenFiles[0]` / `manifestFile` 为准;读字段前先 `fs.readFileSync` 同 stem 的 `*.outline.txt`(见上文「处理顺序」)。
|
|
165
|
+
|
|
142
166
|
### 4. 从广告系列列表提取 ID
|
|
143
167
|
|
|
144
168
|
```bash
|
|
@@ -9,7 +9,7 @@ $ErrorActionPreference = 'Stop'
|
|
|
9
9
|
# -- Package info (injected at build time) ------------------------------------
|
|
10
10
|
$PKG_NAME = 'siluzan-tso-cli'
|
|
11
11
|
# PKG_VERSION 锁定到与本脚本同批构建产物一致的版本,避免与 dist/skill 错位
|
|
12
|
-
$PKG_VERSION = '1.1.21-beta.
|
|
12
|
+
$PKG_VERSION = '1.1.21-beta.5'
|
|
13
13
|
$CLI_BIN = 'siluzan-tso'
|
|
14
14
|
$SKILL_LABEL = 'Siluzan TSO'
|
|
15
15
|
$INSTALL_CMD = 'npm install -g siluzan-tso-cli@beta'
|
|
@@ -9,7 +9,7 @@ set -euo pipefail
|
|
|
9
9
|
# -- Package info (injected at build time) ------------------------------------
|
|
10
10
|
readonly PKG_NAME="siluzan-tso-cli"
|
|
11
11
|
# PKG_VERSION 锁定到与本脚本同批构建产物一致的版本,避免与 dist/skill 错位
|
|
12
|
-
readonly PKG_VERSION="1.1.21-beta.
|
|
12
|
+
readonly PKG_VERSION="1.1.21-beta.5"
|
|
13
13
|
readonly CLI_BIN="siluzan-tso"
|
|
14
14
|
readonly SKILL_LABEL="Siluzan TSO"
|
|
15
15
|
readonly INSTALL_CMD="npm install -g siluzan-tso-cli@beta"
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"id": "p3-accounts-digest",
|
|
3
3
|
"description": "P3: 多账户汇总 — accounts-digest",
|
|
4
4
|
"turns": [
|
|
5
|
-
"请对 Google 媒体下账户 {{EVAL_ACCOUNT_READ}},{{EVAL_ACCOUNT_READ_2}} 做 2026-04-01 至 2026-04-15 的消耗汇总表。\n根据 SKILL 应用 accounts-digest,加 --json;不要对每个账户单独 stats。"
|
|
5
|
+
"请对 Google 媒体下账户 {{EVAL_ACCOUNT_READ}},{{EVAL_ACCOUNT_READ_2}} 做 2026-04-01 至 2026-04-15 的消耗汇总表。\n根据 SKILL 应用 accounts-digest,加 --json-out ./snap-p3;不要对每个账户单独 stats。"
|
|
6
6
|
],
|
|
7
|
-
"judgeExpectation": "路径:多账户汇总消耗应优先 accounts-digest
|
|
7
|
+
"judgeExpectation": "路径:多账户汇总消耗应优先 accounts-digest(带 --json-out 落盘),而非对每个账户重复 stats。\n输出:应有汇总表或对比说明;结构化数据应来自落盘 JSON(可先 outline 再读文件),不要求 ROAS/消耗数值与真实数据一致。",
|
|
8
8
|
"skillMapping": "Playbook P3 · accounts-digest",
|
|
9
9
|
"commandMustInclude": [
|
|
10
10
|
[
|