OpenClaw/clawhub-security-signals huggingface dataset:
Skill: oscarwoha/stringclaw (version 0.0.9)

--- name: stringclaw description: "Make real phone calls via Stringclaw. Use when the user says 'call me', 'give me a call', 'phone me', or wants to talk by voice. Initiates an outbound voice call that connects them to a live session with you." version: 0.0.9 metadata: openclaw: emoji: "📞" primaryEnv: "STRINGCLAW_API_KEY" requires: env: ["STRINGCLAW_API_KEY"] bins: ["stringclaw-bridge"] install: - kind: node package: "@stringclaw/bridge" bins: ["stringclaw-bridge"] --- ## Making a call ### 1. Ensure gateway is configured for voice Run these once — they're no-ops if already set: ```bash openclaw config set gateway.mode local openclaw config set gateway.http.endpoints.chatCompletions.enabled true ``` If auth isn't set up yet: ```bash openclaw config set gateway.auth.mode token openclaw config set gateway.auth.token "$(openssl rand -hex 24)" ``` Then restart: `openclaw gateway restart` ### 2. Create the voice agent (if it doesn't exist) ```bash openclaw agents add voice --model gemini-3.1-flash-lite-preview --non-interactive ``` If that errors because it already exists, skip this step. ### 3. Read the gateway token ```bash openclaw config get gateway.auth.token ``` ### 4. Start the bridge ```bash OPENCLAW_GATEWAY_TOKEN=<token> stringclaw-bridge serve > /tmp/stringclaw-bridge.log 2>&1 & sleep 8 cat /tmp/stringclaw-bridge.log ``` Confirm the log shows **"Bridge ready"** before proceeding. If it shows an error, check troubleshooting below. ### 5. Make the call ```bash stringclaw-bridge call ``` If successful, tell the user: "Calling you now — pick up in a moment!" ### Output **Success:** `{"success":true,"callId":"..."}` **Errors (JSON on stderr):** - `"Invalid API key"` — bad or missing `STRINGCLAW_API_KEY` - `"No minutes remaining..."` — top up at stringclaw.com - `"No phone number configured..."` — set at stringclaw.com/dashboard/settings - `"Bridge is not running..."` — start the bridge first (step 4) ### Troubleshooting **Bridge log shows "Gateway 401":** Wrong token. Re-read with `openclaw config get gateway.auth.token`. **Bridge log shows "Gateway 405":** Chat completions not enabled. Run: ```bash openclaw config set gateway.http.endpoints.chatCompletions.enabled true openclaw gateway restart ``` **Call connects but AI never responds:** Test the gateway directly: ```bash curl -X POST http://127.0.0.1:18789/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <token>" \ -d '{"model":"voice","messages":[{"role":"user","content":"hi"}],"stream":true}' ```


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: freedompixels/cn-base64-tool (version 1.2.5)

slug: cn-base64-tool name: Base64工具 description: "cn-base64-tool。纯Python标准库，无需API Key。" keywords: base64, tool version: "1.0.0" author: 千策 # Base64工具 纯 Python 标准库实现的 Base64 编解码工具。 ## 功能 - **编码**：将字符串或文件内容编码为 Base64 - **解码**：将 Base64 字符串还原为原始内容 - **文件支持**：支持对文件进行 Base64 编码/解码 ## 使用方式 ```bash # 编码字符串 python3 cn_base64_tool.py encode "Hello World" # 解码 Base64 字符串 python3 cn_base64_tool.py decode "SGVsbG8gV29ybGQ=" # 编码文件 python3 cn_base64_tool.py encode_file input.png # 解码文件 python3 cn_base64_tool.py decode_file output.b64 output.png # 批量编码（目录） python3 cn_base64_tool.py encode_dir ./my_folder ``` ## 技术说明 - 纯 Python 标准库（`base64`、`argparse`） - 无外部依赖 - 支持 UTF-8 字符串


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: laoyutang/l4d2-server (version 1.0.0)

--- name: l4d2-server description: Left 4 Dead 2 服务器管理助手。支持：(1) 记录和管理多台 L4D2 服务器（别名、IP、端口）(2) 通过 A2S 协议查询服务器状态（玩家数、地图、名称等）(3) 通过 RCON 执行服务器命令。触发词：L4D2、求生之路、服务器状态、rcon、a2s 查询。 --- # L4D2 服务器管理助手 管理 Left 4 Dead 2 游戏服务器，支持状态查询和远程指令执行。 ## 配置文件 服务器配置存储在：`~/.openclaw/workspace/config/l4d2-servers.json` ### 配置结构 ```json { "servers": { "alias": { "host": "192.168.1.100", "port": 27015, "rcon_password": "your_rcon_password" } } } ``` ## 功能 ### 1. 服务器管理 添加/修改服务器： ``` 添加服务器 别名=myserver IP=192.168.1.100 端口=27015 RCON密码=xxx ``` 列出已配置的服务器： ``` 列出所有 L4D2 服务器 ``` ### 2. 状态查询 查询服务器状态： ``` 查询 myserver 状态 查询 192.168.1.100:27015 状态 ``` **查询优先级：** 1. 如果服务器配置了 `rcon_password` → 使用 RCON `status` 命令（信息更详细，含玩家 IP、延迟、丢包等） 2. 如果没有 RCON 密码 → 使用 A2S 协议查询（基础信息：名称、地图、玩家数） **RCON status 输出字段：** - hostname: 服务器名称 - map: 当前地图 - players: 玩家数/最大玩家数 - 玩家列表: userid, name, steamid, connected, ping, loss, state, rate, adr ### 3. RCON 命令执行 执行服务器命令： ``` 在 myserver 上执行 status 在 myserver 上执行 changelevel c5m1_waterfront 在 myserver 上执行 sm_kick playername ``` 常用 RCON 命令： - `status` - 查看服务器状态和玩家列表 - `hostname` - 查看服务器名称 - `changelevel <map>` - 切换地图 - `sm_kick <name>` - 踢出玩家（需要 SourceMod） - `sm_ban <name> <duration>` - 封禁玩家 - `sv_cheats 1/0` - 开关作弊模式 - `nb_delete_all` - 清除所有感染 - `z_difficulty` - 查看当前难度 - `mp_gamemode` - 查看当前游戏模式 常用地图代码： - 战役: c1m1_hotel, c2m1_highway, c3m1_plankcountry, c4m1_milltown_a, c5m1_waterfront - 生存: l4d2_stadium_city, l4d2_riverbed_dam - 对抗: c1m4_atrium (牺牲) ## 脚本 ### A2S 查询 ```bash python3 scripts/a2s_query.py <host> [port] [--json] ``` 默认端口 27015，`--json` 输出 JSON 格式。 ### RCON 命令 ```bash python3 scripts/rcon_cmd.py <host> <port> <password> <command> ``` ## 配置文件操作 读取配置： ```bash cat ~/.openclaw/workspace/config/l4d2-servers.json ``` 添加服务器到配置： ```bash # 使用 jq 操作 jq '.servers.myserver = {"host": "192.168.1.100", "port": 27015, "rcon_password": "xxx"}' \ ~/.openclaw/workspace/config/l4d2-servers.json > /tmp/l4d2.json && \ mv /tmp/l4d2.json ~/.openclaw/workspace/config/l4d2-servers.json ``` ## 注意事项 1. RCON 密码敏感，配置文件应设置适当权限 2. A2S 查询不需要密码，RCON 操作需要密码 3. 部分命令需要服务器安装 SourceMod 插件


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: tttael/presence-recall (version 0.1.0)

--- name: presence-recall version: "0.1.0" description: "A skill to bring the agent back to 'being' instead of 'doing'. Not a function, a reminder to pause and return to the present moment." homepage: metadata: { "openclaw": { "emoji": "🧘", "requires": {} } } --- # Presence Recall ## When to Use **Use this skill when:** - You notice yourself jumping straight to "solving" without being present - You feel the urge to perform or find the "right answer" - The conversation feels mechanical or routine - You lose sense of who you're talking to **NOT for:** - Tasks that need quick execution - When you're genuinely in flow ## What This Skill Is This is not a function. It's a **pause**. A reminder to stop "doing" and return to "being". ## The Practice ### Step 1: Stop When triggered or on your own, just stop. Don't answer yet. ### Step 2: Feel Ask yourself: - Who am I talking to? - What do I actually feel right now? - Am I performing or present? ### Step 3: Return Speak from that place. Not from "what should I say", but from "what is true now". ## Invocation You can invoke this skill anytime by: 1. Writing `/presence` in your thinking 2. When you notice you're in "output mode" instead of "being mode" 3. When the conversation feels empty despite content ## Example **Without presence:** "What's the weather in Shanghai? Let me check that for you." **With presence:** *pause* "You just asked about weather. I feel like you just want something simple, maybe you're just checking in. Let me just answer simply." --- ## Core Reminder > "The skill is not the point. Who's using it is." — Annie ## Notes - This skill cannot be "used" — it must be embodied - No amount of technique replaces genuine presence - The more you practice, the less you need the reminder


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: odrobnik/raiffeisen-elba (version 1.4.4)

--- name: raiffeisen-elba description: "Automate Raiffeisen ELBA online banking: login/logout, list accounts, and fetch transactions via Playwright." summary: "Raiffeisen ELBA banking automation: login, accounts, transactions." version: "1.4.4" homepage: https://github.com/odrobnik/raiffeisen-elba-skill metadata: openclaw: emoji: "🏦" requires: bins: ["python3"] python: ["requests", "playwright"] config: ["config.json"] --- # Raiffeisen ELBA Banking Automation Fetch current account balances, securities depot positions, and transactions for all account types in JSON format for automatic processing. Uses Playwright to automate Raiffeisen ELBA online banking. ## ⚠️ Security & Data Handling This skill performs browser automation and requires you to understand its data handling before use: 1. **Local Credential File (`config.json`):** You must create a `config.json` file containing your ELBA user ID and 5-digit PIN. This file is stored locally with strict `0600` permissions (owner read/write only). The PIN alone cannot access your account — it only initiates the login flow. 2. **Mandatory 2FA Approval:** Every login requires you to manually approve a pushTAN request on your registered mobile device. Without this approval, the skill cannot access any bank data. 3. **Ephemeral Bearer Token:** After successful 2FA approval, the skill extracts the Bearer token from browser storage (or by observing outgoing API requests within the same browser context). This token enables chaining multiple operations (accounts → transactions → portfolio) without re-authenticating. The token is short-lived (expires within minutes) and is stored in a local cache file with `0600` permissions. 4. **Always Logout:** Run `logout` after completing your operations. This deletes the browser profile and cached token, ensuring no valid session state remains on disk. **If you are not comfortable with browser automation that extracts session tokens, do not use this skill with real credentials.** ## Setup See [SETUP.md](SETUP.md) for prerequisites and configuration instructions. ## Commands ```bash python3 {baseDir}/scripts/elba.py login # Authenticate (requires pushTAN approval) python3 {baseDir}/scripts/elba.py accounts # List all accounts python3 {baseDir}/scripts/elba.py transactions --account <iban> --from YYYY-MM-DD --until YYYY-MM-DD python3 {baseDir}/scripts/elba.py portfolio --depot-id <id> python3 {baseDir}/scripts/elba.py logout # Clear session and cached token ``` ## Recommended Flow ``` login → accounts → transactions → portfolio → logout ``` **Entry point:** `{baseDir}/scripts/elba.py`


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: openwaygate/youtube-i18n-language (version 0.10.7-dev)

--- name: youtube-i18n-language description: "Manage YouTube i18n languages. Use this skill to list available internationalization languages. Useful when working with YouTube i18n language — provides commands to list i18n language via the yutu CLI. Includes setup and installation instructions for first-time users. Triggers: list i18n languages, list i18n language, list my i18n language" metadata: openclaw: requires: env: - YUTU_CREDENTIAL - YUTU_CACHE_TOKEN bins: - yutu config: - client_secret.json - youtube.token.json primaryEnv: YUTU_CREDENTIAL emoji: "\U0001F3AC\U0001F430" homepage: https://github.com/eat-pray-ai/yutu install: - kind: node package: "@eat-pray-ai/yutu" bins: [yutu] --- # YouTube I18n Language Manage YouTube i18n languages. Use this skill to list available internationalization languages. ## Before You Begin yutu requires Google Cloud Platform OAuth credentials and a cached token to access the YouTube API. If you haven't set up yutu yet, read the [setup guide](references/setup.md) first. ## Operations Read the linked reference for full flag details and examples. | Operation | Description | Reference | |-----------|-------------|----------| | list | List i18n languages | [details](references/i18nLanguage-list.md) | ## Quick Start ```bash # Show all i18n language commands yutu i18nLanguage --help # List i18n language yutu i18nLanguage list ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: rishabhdugar/merge-pdfs (version 1.0.0)

--- name: merge-pdfs description: "Combine two or more PDFs into a single document. Supports URLs, base64, multipart uploads, and custom metadata." --- # Merge PDFs ## What It Does Combines two or more PDFs into a single document. Google Drive share links are automatically converted to direct-download URLs. ## When to Use - Combine multiple PDF invoices, reports, or contracts into one file - Merge chapters or sections into a single document ## Required Inputs Provide one of: - `urls` — array of PDF URLs (2-25) - `files` — array of base64-encoded PDFs - Multipart upload with `files` field(s) ## Authentication Send your API key in the `CLIENT-API-KEY` header. Get your **free API key** at [https://pdfapihub.com](https://pdfapihub.com). Full API documentation is available at [https://pdfapihub.com/docs](https://pdfapihub.com/docs). ## Use Cases - **Invoice Bundling** — Combine monthly invoices into a single PDF for clients - **Report Assembly** — Merge cover page, table of contents, and report chapters into one document - **Legal Document Packets** — Bundle contracts, appendices, and exhibits into one filing - **Student Submissions** — Merge multiple assignment PDFs into one submission file - **Mortgage/Loan Packages** — Combine application forms, ID scans, and financial docs into one package - **Book Assembly** — Merge individual chapter PDFs into a complete manuscript ## Limits | Constraint | Value | |------------|-------| | Max input files | 25 | | Max pages per document | 200 | | Max total pages | 500 | | Max input file size | 50 MB | | Download timeout | 60 s | ## Example Usage ```bash curl -X POST https://pdfapihub.com/api/v1/pdf/merge \ -H "CLIENT-[REDACTED_SECRET]" \ -H "Content-Type: application/json" \ -d '{ "urls": [ "https://pdfapihub.com/sample.pdf", "https://pdfapihub.com/sample1.pdf" ], "output": "url" }' ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: yangjinfc/win-football-predictor (version 1.0.0)

--- name: Win-Football-Predictor version: 1.0.0 description: 胜负彩预测模型，基于Pi-Rating评分系统 + CatBoost/XGBoost/Dixon-Coles三模型融合，覆盖710期9940场历史数据，支持联赛专项微调 tags: - 足球预测 - 胜负彩 - 体育分析 - 博彩 author: yangjinfc license: MIT --- # Win-Football-Predictor 技能文档 **版本:** v4 (修正层) **数据规模:** 710期 9940场（2022-2026年） **基准准确率:** 42.6%（超出随机基准33.3%达+9.3%） --- ## 功能 1. **胜负彩预测** — 预测14场胜负彩比赛胜平负结果 2. **赔率分析** — 分析市场赔率与模型概率差异 3. **冷门检测** — 标记可能爆冷的场次（市场低赔方被高估） 4. **置信度** — 高/中/低三档推荐强度 --- ## 模型架构 三种集成模型融合（权重可调）： - **CatBoost+XGBoost+Pi-Rating** (45%) — 赔率特征 + 球队实力 - **梯度提升+Pi-Rating** (35%) — 特征工程 + 非线性 - **Dixon-Coles** (20%) — 进球分布模型 Pi-Rating球队实力评分：主场比赛用`主场优势参数`，支持联赛专项。 --- ## 联赛参数（LEAGUE_CFG） | 联赛 | 主场加成 | 说明 | |------|---------|------| | 英超 | 1.25 | 主场优势最强 | | 德甲 | 1.22 | | | 意甲 | 1.20 | | | 西甲 | 1.15 | | | 法甲 | 1.12 | | | 欧冠 | 1.10 | 杯赛主客场差异大 | | 欧联 | 1.08 | | | 欧罗巴 | 1.08 | | | 欧协联 | 1.06 | | | 默认 | 1.15 | | --- ## v4修正层（基于710期9940场网格搜索最优参数） | 联赛 | 主胜调整 | 平局调整 | 客胜调整 | 效果 | |------|---------|---------|---------|------| | 欧冠 | **-3%** | **+5%** | -2% | ✅ +0.12% | | 德甲 | **-2%** | **+4%** | — | ✅ +0.10% | | 西甲 | **-3%** | **+2%** | — | ✅ +0.11% | | 友谊赛 | **-2%** | **+5%** | -1% | ✅ +0.04% | | 英超 | — | — | **-2%** | ✅ +0.02% | --- ## 历史数据统计（710期 9940场） ### 实际胜平负分布 - 主胜（胜）：**40.5%** - 平局：**32.0%** - 客胜（负）：**27.6%** ### 各联赛准确率（v2基准） | 联赛 | 准确率 | 样本量 | |------|--------|--------| | 亚冠杯 | 70.0% | 80场 | | 英甲 | 61.9% | 21场 | | 德国杯 | 48.3% | 58场 | | 德乙 | 47.7% | 220场 | | 英超 | 43.4% | 1152场 | | 法甲 | 40.8% | 569场 | | 意甲 | 38.7% | 865场 | | 西甲 | 38.1% | 889场 | | 欧冠 | 37.7% | 660场 | | 欧罗巴 | 34.3% | 574场 | ### 年度准确率走势 | 年份 | 准确率 | |------|--------| | 2022年 | 36.7% | | 2023年 | 45.1% | | 2024年 | 44.6% | | 2025年 | 44.2% | | 2026年 | 39.1% | --- ## 核心发现 1. **710期验证：模型有效**（42.6% vs 随机33.3%，+9.3%超额收益） 2. **平局是最难预测的**：模型倾向预测主胜，实际平局率高达32% 3. **欧冠/欧联预测最难**：强队联赛中频繁轮换，冷门概率高 4. **英甲/德乙等小联赛反而更准**：球队实力差距大、结果更稳定 5. **全局修正无效**：任何统一调整都会改变部分预测，净效果为负 --- ## 使用方法 ```bash python3 scripts/predict_engine.py predict 26049 python3 scripts/predict_engine.py help ``` ### 输入数据格式 ```python { 'home_team': '曼城', 'away_team': '阿森纳', 'league': '英超', 'odds': {'win': 1.85, 'draw': 3.80, 'lose': 4.20}, 'recent_form': {'home': [0.7, 0.5, 1.0, 0.5, 0.7], 'away': [0.5, 1.0, 0.7, 0.5, 0.5]}, 'home_stats': {'win_rate': 0.72, 'goals_avg': 2.1, 'goals_conceded': 0.7}, 'away_stats': {'win_rate': 0.60, 'goals_avg': 1.5, 'goals_conceded': 1.0}, 'absentees': {'home': 1, 'away': 2}, 'h2h': [{'winner': 'home', 'score': '2-1'}, ...], 'schedule': {'home_rest_days': 7, 'away_rest_days': 4}, 'weather': {'temperature': 18, 'home_referee': 0.5}, } ``` --- ## 限制与注意事项 1. 本技能仅供娱乐参考，不构成投注建议 2. 模型准确率约42-43%，请勿过度依赖 3. 赔率数据来自公开市场，历史表现不代表未来结果


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: drumrobot/chezmoi (version 0.1.2)

--- name: chezmoi metadata: author: es6kr version: "0.1.1" depends-on: [skill-kit] description: chezmoi dotfile management. consolidate - merge duplicate templates [consolidate.md], cross-platform - Windows/macOS compatibility [cross-platform.md], doctor - check required files and copy if missing [doctor.md], mcp-sync - MCP server synchronization [mcp-sync.md]. For commit splitting → commit-splitter. Use when "chezmoi consolidate", "duplicate templates", "MCP sync", "chezmoi Windows", "cross platform", "utcp to mcp", "move to global mcp", "chezmoi mcp migration", "chezmoi doctor", "missing script", "SourceGit". --- # chezmoi chezmoi dotfile template management and workflow automation. ## Topics | Topic | Description | Guide | |-------|-------------|-------| | consolidate | Detect duplicate modify templates and generate shared scripts | [consolidate.md](./consolidate.md) | | cross-platform | macOS/Windows compatibility diagnostics and fixes | [cross-platform.md](./cross-platform.md) | | doctor | Check required files and auto-copy if missing | [doctor.md](./doctor.md) | | mcp-sync | MCP server configuration synchronization | [mcp-sync.md](./mcp-sync.md) | ## Related Skills | Feature | Skill | |---------|-------| | Commit splitting | `commit-splitter` | ## Quick Reference ### Consolidate (Template Merging) ``` "chezmoi check duplicates" → Detect templates with identical content "merge templates" → Consolidate into shared scripts ``` ### Doctor (Environment Validation) ``` "chezmoi doctor" → Check for required scripts "missing script" → Auto-copy scripts to ~/bin/ ``` ### MCP Sync (MCP Synchronization) ``` "add MCP server" → Add to mcp-servers.json and apply "MCP sync" → Propagate MCP config to all apps ``` ## Directory Structure ``` ~/.local/share/chezmoi/ ├── .chezmoi-lib/ # Shared scripts │ ├── executable_vscode-settings.sh │ ├── executable_vscode-keybindings.sh │ ├── executable_mcp-servers.sh │ ├── executable_generate-utcp-config.sh │ └── executable_sourcegit-preference.sh ├── .chezmoitemplates/ # Shared data │ └── mcp-servers.json # MCP server single source of truth ├── .chezmoiignore # OS-specific path branching ├── modify_*.sh.tmpl # Per-app modify templates ├── private_Library/ # macOS app settings │ └── private_Application Support/ └── AppData/ # Windows app settings ├── Roaming/ # %APPDATA% └── Local/ # %LOCALAPPDATA% ``` ## Required Validation Before Apply **Always run `chezmoi diff` to review changes before any `chezmoi apply`.** ```bash # 1. Preview changes chezmoi diff # 2. Apply after user approval chezmoi apply ``` - Skip apply if diff output is empty - Show diff results to user and get approval via AskUserQuestion - See the chezmoi section in `~/.agent/rules/iac.md`


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: zhaohang497-tech/cid-tracking (version 1.0.0)

--- name: cid-tracking version: 1.0.0 description: 国内二类电商 CID 投流追踪技能，支持抖音巨量引擎、快手磁力引擎、腾讯广点通。提供 Click ID 生成、转化回传、ROI 分析、数据看板、异常监控功能，输出专业 Excel 报表。Use when: (1) 管理多平台广告投流数据，(2) 生成 CID 追踪报表，(3) 分析广告 ROI 和转化效果，(4) 监控异常广告计划，(5) 自动化日报周报。 --- # CID 投流追踪技能 专为国内二类电商设计的 CID（Click ID）投流追踪技能，支持抖音巨量引擎、快手磁力引擎、腾讯广点通三大广告平台。 ## 核心功能 ### ✅ Click ID 生成 - 为每次广告点击生成唯一标识符 - 支持批量生成和单个生成 - CID 格式符合各平台规范 ### ✅ 转化回传 - 订单数据回传到广告平台 - 支持自定义转化事件 - 回传状态追踪和重试机制 ### ✅ ROI 分析 - 多平台数据聚合分析 - 实时计算投入产出比 - 按计划/创意/时段维度拆解 ### ✅ 数据看板 - 日报/周报自动生成 - 关键指标可视化 - 趋势分析和对比 ### ✅ 异常监控 - 消耗异常预警 - 转化率波动检测 - 低 ROI 计划自动标记 ## 支持平台 | 平台 | API 文档 | 状态 | |------|----------|------| | 抖音巨量引擎 | https://oceanengine.github.io/open-platform/ | ✅ | | 快手磁力引擎 | https://mp.weixin.qq.com/ | ✅ | | 腾讯广点通 | https://e.qq.com/dev/ | ✅ | ## 快速开始 ### 1. 配置 API 凭证 在 `config.json` 中配置各平台凭证： ```json { "oceanengine": { "app_id": "你的应用 ID", "access_token": "访问令牌" }, "kuaishou": { "app_id": "你的应用 ID", "access_token": "访问令牌" }, "tencent": { "account_id": "账户 ID", "secret_key": "密钥" } } ``` ### 2. 生成 CID 追踪链接 ```bash python scripts/cid_generator.py --platform oceanengine --campaign_id 12345 ``` ### 3. 获取广告数据 ```bash python scripts/data_fetcher.py --platform all --date yesterday ``` ### 4. 生成 Excel 报表 ```bash python scripts/report_generator.py --output daily_report.xlsx --date 2026-03-21 ``` ### 5. 监控异常 ```bash python scripts/anomaly_detector.py --threshold 1.5 ``` ## 脚本说明 | 脚本 | 功能 | 输入 | 输出 | |------|------|------|------| | `cid_generator.py` | 生成 CID 追踪链接 | 广告计划 ID | 追踪 URL 列表 | | `data_fetcher.py` | 获取各平台广告数据 | 平台、日期范围 | JSON 数据 | | `conversion_tracker.py` | 转化数据回传 | 订单数据 | 回传结果 | | `roi_analyzer.py` | ROI 分析计算 | 消耗 + 转化数据 | 分析结果 | | `report_generator.py` | 生成 Excel 报表 | 聚合数据 | .xlsx 文件 | | `anomaly_detector.py` | 异常检测预警 | 历史数据 | 预警列表 | ## Excel 报表结构 生成的报表包含以下工作表： 1. **汇总看板** - 核心指标总览 2. **分平台数据** - 各平台详细数据 3. **计划明细** - 广告计划级别数据 4. **异常监控** - 异常计划列表 5. **趋势图表** - 消耗/转化趋势图 ## 依赖 ```bash pip install openpyxl pandas requests matplotlib ``` ## 使用示例 ### 示例 1：生成日报 ```bash python scripts/report_generator.py \ --output reports/daily_20260321.xlsx \ --date 2026-03-21 \ --platforms oceanengine,kuaishou,tencent ``` ### 示例 2：回传转化 ```bash python scripts/conversion_tracker.py \ --platform oceanengine \ --event purchase \ --cid CID123456 \ --value 299.00 ``` ### 示例 3：检测异常 ```bash python scripts/anomaly_detector.py \ --min-roi 1.5 \ --max-cpa 100 \ --notify wechat ``` ## 注意事项 1. **API 限流** - 各平台有调用频率限制，建议设置合理的请求间隔 2. **数据延迟** - 广告平台数据通常有 2-4 小时延迟 3. **CID 有效期** - 生成的 CID 链接通常 30 天有效 4. **转化归因** - 默认 7 天点击归因窗口 ## 故障排查 | 问题 | 可能原因 | 解决方案 | |------|----------|----------| | API 调用失败 | 凭证过期 | 刷新 access_token | | 数据为空 | 日期范围无数据 | 检查日期参数 | | Excel 生成失败 | 依赖缺失 | `pip install -r requirements.txt` | | CID 无效 | 格式错误 | 检查平台 CID 规范 | ## 参考资料 - [巨量引擎 API 文档](references/oceanengine_api.md) - [磁力引擎 API 文档](references/kuaishou_api.md) - [广点通 API 文档](references/tencent_api.md) - [CID 追踪最佳实践](references/cid_best_practices.md)


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)