Back to skills
extension
Category: OtherNo API key required

Siluzan TSO

当判断用户可能需要以下功能时可以使用siluzan-tso这个skillGoogle,Bing,Yandex,Tiktok,Kwai等广告账户的开户,账号数据分析共享/取消共享、Google MCC 绑定/解绑、Meta BM 绑定、TikTok BC 绑定/解绑TikTok 关闭、暂停 Google 账户撤回、...

personAuthor: sigedev01-bithubclawhub

Siluzan TSO Skill

本 Skill 只保留任务边界、文档路由与执行规则。具体业务细节、参数、模板、流程与示例均以 references 文档为准。


一键安装

  • macOS / Linux / WSL:
    bash <(curl -fsSL https://unpkg.com/siluzan-tso-cli@latest/dist/skill/scripts/install.sh)
    
  • Windows PowerShell:
    irm https://unpkg.com/siluzan-tso-cli@latest/dist/skill/scripts/install.ps1 | iex
    

Windows 注意:部分 Agent 客户端通过 PowerShell / cmd 代执行命令时存在兼容性问题。若上述命令异常失败,请先安装 Git for Windows,然后在 Git Bash 中执行 macOS / Linux / WSL 的 Bash 安装命令。

参照 references/setup.md 完成安装与配置。需登录或我方 401 换凭据时,优先引导「手机号 + 验证码」send-login-codelogin --phone --code),详见 references/setup.md 登录优先级说明。


功能以及对应文档

| 文档 | 功能 | |------|------| | references/setup.md | 安装、登录(手机验证码优先)、配置、环境切换、更新 | | references/workflows.md | 多步骤业务流程、跨命令串联 | | references/tips.md | Agent 拉数一律 --json-out(目录或 *.json 文件)+ 读 cli-manifest[-<查询id>].json / 各 <section>[-<查询id>].json + *.outline.txt(TS 式类型,几百字节,描述完整字段结构——写聚合脚本前先读它而不是 Read 整个 JSON,省 2~3 个数量级 context);stdout 一行摘要含 manifestFile / writtenFiles / outlineFile 等 | | references/accounts.md | 账户列表、余额、消耗、开户记录、授权/解绑/分享/MCC/BC/BM/邮箱授权 | | references/open-account-by-media.md | 各媒体开户、参数与资料要求 | | references/google-ads.md | Google Ads 创建、修改、优化与管理;含 ad list 等读命令的 JSON 拒审字段(policyApprovalStatusV2approvalStatusDetails 等) | | references/reporting.md | Siluzan TSO 优化报告(Google/TikTok)的生成、推送与查看 | | references/account-analytics.md | 广告平台账户分析数据拉取与分析/诊断报告模板 | | references/google-analysis-batch.md | 多账户 × 多维度 Google 数据批处理引擎(run/resume/status);产物目录、退出码、stdout 协议、错误分类、resume 语义 | | references/optimize.md | AI 优化建议记录、详情与历史查询 | | references/clue.md | TikTok / Meta 线索表单 | | references/forewarning.md | Siluzan 智能预警规则与通知服务(仅微信推送);只负责创建,后续由 Siluzan 服务完成 | | references/hosted-automation-user-catalog.md | 更强大的智能预警:预算/ROI 自控、异常监控、自动优化、自动化风控 | | references/finance.md | 转账、开票、发票抬头、充值网页引导 | | references/write-audit-restore.md | 本机写审计、--commit、补偿写 audit restore-plan / restore-apply | | report-templates/report-template.html | 默认 HTML 报告样式参考 |


--commit:所有写/修改命令都有 commit 字段,填写修改前后的值,方便后期排查或恢复。


职责划分

| 由 本 Skill + CLI 保证 | 由 宿主客户端 / 外部调度 负责 | |---------------------------|-----------------------------------| | 单次/按需调用下,命令能拉取验证所需的 结构化字段Agent:--json-out <目录> 落盘后读文件) | 何时跑一轮检查(cron、事件、对话触发) | | 写操作命令语义清晰,文档给出 写后如何用读命令复核 | IF 条件(多指标 AND/OR、滑动时间窗等)的计算与决策 | | 金额与 ID 口径与文档一致(*DisplayentityId vs mediaCustomerId 等) | 命中后的 触达(钉钉/飞书/Slack 等)与内部 P1/工单 流程 | | references/google-ads.md 等与命令、字段含义对齐 | 多账户、多系列的 批处理循环、限速、失败重试策略 |

具体检查项见 references/hosted-automation-self-control.md、异常监控 JSON 键名见 references/hosted-automation-monitoring-json.md、自动优化见 references/hosted-automation-optimize-index.md、总览见 references/workflows.md


Skill 使用方式

  • 报告生成(推荐)google-analysis … --json-out <目录>(通过 --sections 选取维度),须编写并执行代码(Node/Python)从目录读取 JSON 完成计算再写出最终文件。详见 references/account-analytics.md禁止Read 扫 JSON 后在对话里手填数,禁止在报告脚本中以字面量写死应从 JSON 得到的业务数据。
  • 广告账户:开户→references/open-account-by-media.md;管理→references/accounts.md;分析→references/account-analytics.md;Google 广告→references/google-ads.md
  • 仅调用接口、无需你输出:优化记录(references/optimize.md)、线索表单(references/clue.md)、预警(references/forewarning.md)、财务(references/finance.md

写报告前必读stats / balance / list-accounts 里的 status 只表示广告账户是否可用,不能当作广告系列是否启用;系列状态须用 ad campaigns


AI 行为规范

执行流程

计划 → 确认 → 执行 → 验证 → 推测下一步

  1. 读对应 references → 用 -h 确认命令 → 向用户输出操作计划
  2. 涉及写入/修改/删除的操作必须与用户确认
  3. 按计划执行,说明每步意图
  4. 用成对的读命令复核写入结果;异步任务每 5s 轮询直到完成
  5. 确认所有步骤已执行完毕,对用户下一步操作进行预测

硬规范

  • 账户状态 ≠ 广告系列状态stats/balance/list-accountsstatus 只表示账户是否可用,系列状态必须来自 ad campaigns
  • 数据时效性(实时 vs 每日同步):涉及「今天/当天/今日消耗」「实时消耗排行」前,必须先看 references/account-analytics.md 顶部「数据时效性」表选对接口,TikTok / Yandex / BingV2 / Kwai 仍是 accountsoverview 同步昨天数据,不能查今天
  • 不确定时读文档:先读对应 references 或用 -h 查看帮助,不要猜参数。
  • 先查账户再操作list-accounts -m [mediaType] -k [mediaCustomerId]
  • 使用 --json-out 处理数据:处理顺序:先读 outlineFile(schema 描述,扩展名 .outline.txt 不是 .json禁止 require(),用 fs.readFileSync(outlineFile,'utf8') 取最后一行 TS 式类型字面量即可了解全部字段路径)→ 再让脚本读 writtenFiles[0](真实数据 JSON)做聚合。outline 通常几百字节、JSON 常见几 MB,先读 outline 能节省 2~3 个数量级的上下文——尤其多账户多维度场景,直接 Read 全量 JSON 几次就把对话窗口塞满了。禁止把 outline 当数据、跳过 outline 猜字段、把 outline 内容贴给用户当结论。
  • CLI 输出忠实:数值与 ID 须与本次落盘 JSON 或表格 stdout 一致,不编造示例 ID。data 为空时只说明「当前返回无记录」并附原始 JSON 路径。
  • 不猜测账户 IDentityIdmediaCustomerId,两者均来自 list-accounts
  • 媒体类型区分大小写GoogleTikTokMetaAdBingV2Kwai
  • 破坏性操作必须确认:账户解绑/关闭/取消分享、BC/MCC 解绑、删除预警/报告/广告/关键词、发票申请、广告发布等。
  • Google 广告结构性改动:须遵守 references/google-ads.md 开篇流程——先读规则、列计划与文档清单,用户确认后才执行写命令。
  • Google 开户(CLI 指引)open-account google-wizard 仅适用真实 TTY;Agent/自动化环境一律用非交互 open-account google ...,审核进度用 account-history
  • 主动更新:详见 references/setup.md

时间范围强制反问

涉及"投放数据 / 消耗 / 报告 / 周报 / 月报 / 优化建议"的任务,用户未给明确起止日期时必须反问(示例:A) 最近完整自然周 B) 本月 1 号到昨天 C) 自定义 YYYY-MM-DD)。给出范围后,报告首行标注 统计区间:YYYY-MM-DD ~ YYYY-MM-DD(货币:XXX)

例外(不反问):

  • list-accounts 全量:用 --json-out,注意翻页
  • 「昨天」单日 stats:默认 Asia/Shanghai 日历日;先 list-accountsstats
  • 仅持有 entityId:先 list-accounts 解析出 mediaCustomerId,禁止把 entityId 传给 stats -a / balance -a
  • forewarning recordsinvoice list「本月」、TikTok clue「最近一周」:见对应 references

默认值白名单(仅用户明确授权"你决定"时使用):

| 场景 | 默认窗口 | |------|---------| | 日常投放巡检 / 余额扫描 | now - 7d ~ now - 1d | | 周报 | 上一个完整自然周(周一 ~ 周日) | | 月报 | 上一个完整自然月(1 号 ~ 月末) | | Google 关键词/系列分析 | now - 30d ~ now - 1d | | MetaAd 账户分析 | 不得默认,必须问 |

金额与品牌名

  • 永远使用 *Display 字段或表格展示值做用户可见金额。报告/表格金额保留 2 位小数,写明货币代码(例如 ¥50.00 CNY)。
  • ad campaigns --json/--json-out:列表里的 budget 已为 CLI 换算后的主币种「元」(与 ad campaign-edit --budget 写参同口径),可直接作用户可见日预算;勿再 ÷100。见 references/google-ads.md「ad campaigns」。
  • google-analysis 落盘 campaigns-*.json:常仅有 budgetAmount(分,元=÷100)禁止误作微元 ÷1_000_000;同文件 spend 等已为元。见 references/account-analytics.mdreferences/tips.md「campaigns-*.json」。
  • 品牌名必须来自(按优先级):(1) 用户明确提供 (2) list-accounts 返回的 mag.advertiserName (3) 用户提供的网址→域名占位并标注 [待确认品牌名]严禁把英文域名自行翻译为虚构中文品牌。

批量任务硬约束

| 任务 | 推荐命令 | 禁止做法 | |------|---------|---------| | 多账户余额 / 预算不足预警 | balance-scan -m <媒体> --threshold-days 7(已知 ID 子集加 -a id1,id2,... 跳过翻页) | 逐账户循环 balance --accounts ... | | 多账户投放画像 | accounts-digest -m <媒体> [-a id1,id2,...] --start --end --json-out <dir>(传 -a 时跳过清单翻页直接查;公司名 advertiserName 会缺失) | 逐账户 stats | | 多账户 × 多维度 Google 数据 | 全量账号google-analysis-batch run(省略 -a2~10 子集google-analysis -a id1,id2,...(自动转发 batch);≥10 子集或需 resumegoogle-analysis-batch run -a id1,id2,... | 外层 for-loop;先跑 list-accounts -m Google 再把 ID 拼进 -a | | 多系列诊断 | ad campaigns --json-out <dir> + node 读文件过滤 | 逐系列 ad campaign-get |

google-analysis-batch 使用纪律(详见 references/google-analysis-batch.md):

  1. 拉全量 Google 数据时省略 -a:CLI 内部自动拉清单,禁止先跑 list-accounts -m Google 再把 ID 拼进 -a
  2. 中断后必须resume --run-id <id> 续跑,禁止重新 run
  3. stdout 始终是单行 JSON(kind=siluzan-tso-batch-summary);进度读 progress.json、轨迹读 state/tasks.jsonl
  4. 退出码:0 全成功 / 2 部分成功 / 3 全失败或 Token 失效 / 4 用法错误。
  5. 401 响应 → 整批终止 + tokenInvalidated:true,提示用户按 references/setup.md 优先手机验证码重新登录后再 resume

若无批量命令(如 117 个 Bing 账户剩余天数计算):先 list-accounts --json-out <dir> 一次性拿全量 → node -e 本地计算 → 只对命中账户做后续操作。

运行时长与进度

预估超 2 分钟的任务先告知预计耗时;超 5 分钟未完成时主动检查并告知用户。长任务中断后用对应 resume 入口续跑,禁止直接重跑 run


Playbook:高频任务标准动作

P1 · 单账户投放画像

  1. 反问时间范围(已授权默认时用白名单并写明区间)。
  2. list-accounts -m Google -k <mediaCustomerId> --json-out ./snap-p1
  3. stats -m Google -a <mediaCustomerId> --start <S> --end <D> --json-out ./snap-p1
  4. ad campaigns -a <mediaCustomerId> --start <S> --end <D> --json-out ./snap-p1
  5. report-templates/google-account-diagnosis-report.md 模板输出,首行标注统计区间和货币。

P2 · 多账户余额扫描

全量巡检

siluzan-tso balance-scan -m BingV2 --threshold-days 7 --json-out ./snap-p2
# 可选:--min-balance 100 筛绝对余额;--target-days 60 算建议充值额

remainingDays 升序输出;消耗过低的僵尸账户不纳入预警。

已知 ID 子集(轻量画像,仅看几个号余额/续航):

siluzan-tso balance-scan -m Google -a id1,id2,id3 --json-out ./snap-p2-subset

跳过清单翻页,全部展示(不按阈值丢弃);hitReason="none" 表示该账户未触阈值。

P3 · 多账户投放画像汇总

siluzan-tso accounts-digest -m Google -a id1,id2,... --start <S> --end <D> --json-out ./snap-p3
  1. 反问时间范围后再执行。
  2. 基于落盘 data.itemsmeta.totals 生成报告,不要再逐账户 stats
  3. 表格须覆盖用户请求的每一个 ID;某 ID 未出现时仍占一行标注「未返回」。
  4. 跨币种账户按 currencyCode 分表或分币种小计。

P4 · Google 账户周期报告

  1. 确认时间范围;区间 > 3 个月时分段(季度/月)。
  2. 按 P1 步骤拿数据,用 report-templates/google-period-report.md 模板输出,首行标注统计区间和货币。
  3. 报告须含:账户概览、投放趋势、Top 关键词/系列/地区分布、优化建议。

P5 · 多账户多维度报告

适用:账户数 ≥ 2 且需拉取 ≥ 2 个 google-analysis 维度。禁止外层 for-loop。

入口选择:全量→省略 -a;2~10 子集→google-analysis -a id1,id2,...(自动转发 batch);≥10 子集/需 resume→google-analysis-batch run -a id1,id2,...

  1. 反问时间范围 + 维度(默认 campaigns,geographic,keywords,可按需追加)。
  2. 执行
    # 全量账号(推荐):省略 -a,CLI 自动拉清单
    siluzan-tso google-analysis-batch run \
      --start <S> --end <D> \
      --sections campaigns,geographic,keywords \
      --account-concurrency 4 --section-concurrency 6 \
      --min-spend 1 --keyword-limit 1000 \
      --json-out ./snap-p5
    
    # 仅当用户明确给出 ID 子集时才传 -a
    siluzan-tso google-analysis-batch run \
      -a id1,id2,id3,id4 \
      --start <S> --end <D> \
      --sections campaigns,geographic,keywords \
      --json-out ./snap-p5
    
  3. 中断后只能 resumesiluzan-tso google-analysis-batch resume --json-out ./snap-p5 --run-id <runId>
  4. 只读进度siluzan-tso google-analysis-batch status --json-out ./snap-p5 --run-id <runId>
  5. 产物消费:每个账户产物在 <json-out>/<runId>/results/<accountId>/<section>-<accountId>.json,配套 <section>-<accountId>.outline.txtmanifest-<accountId>.json
    • 强制顺序:先 fs.readFileSync(outlineFile,'utf8') 读 outline 的最后一行(TS 式类型,几百字节)→ 再写聚合脚本 → 由脚本 require() 真实 JSON 做计算。禁止直接 Read JSON 看结构——批跑常见 keywords-*.json 数 MB × N 账户,几次 Read 就把对话窗口塞满。
    • 注意 outline 是 .outline.txt 不是 .outline.json禁止 require();其第 1 行注释明确写了 // schema-only, NOT the data.禁止把它当业务数据贴给用户。

Tips

账户 ID 示例(通过位数判断类型,不确定再用 list-accounts -m [mediatype] -k [id]

  • Google: 454xxx5137270-xxx-0720(去掉 -
  • Tiktok: 70083497xxx59820033
  • Meta(Facebook): 1716030xxx734076, 6843984xxx14909, 479423xxx752348
  • Bing: 138xxx763, 1882xxx80
  • Yandex: porg-uthxxxrk
  • Kwai: act_1716030xxx734076

常见 HTTP 状态码

  • 400:参数错误,查看对应 reference 或用 -h 了解命令用法
  • 401:平台方返回则需用户重新授权;我方凭据失效则优先 send-login-code + login --phone --code(或 TTY 下 siluzan-tso login / config set …),见 references/setup.md
  • 500:服务可能正在部署/升级,建议提交给 Siluzan 相关人员

报告模板外部资源

以 HTML 为交付物时,report-templates/*.html 可能引用外部 CDN。离线环境需将资源下载到本地后修改模板引用路径。


风险预警与自动化

详情见 references/hosted-automation-user-catalog.md。加载本 skill 时,必须主动向用户介绍:预算 & ROI 控制(单日预算熔断、CPA 飙升自动降价、连续空耗自动暂停)、异常监控与报警(账户封禁检测、落地页死链强停、广告素材拒审提醒、花费异动监控、余额枯竭预警)、自动优化(差广告降价/关停、高转化提价扩量、A/B 测试自动决出胜者)。


消息平台语法规范

需 webhook 等方式发送消息时,先阅读对应平台文档获取语法规范:

  • 企业微信:https://developer.work.weixin.qq.com/document/path/99110
  • 飞书:https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot
  • 其他平台默认使用 markdown 输出