授权拉取广告报表,实时盯盘并导出 Excel
31.3/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/penyy8540-bit/tiktok-ads-agent-kit.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 17 处,展示前 17 条)
- 发起网络请求tools/ads-cli.mjs:183
emit({ ok: true, result: await shop.request(apiPath, { method: String(flags.method || 'GET'), query, body }) }) - 执行外部命令来自配置/变量tools/ads-cli.mjs:191
const child = spawn(process.execPath, [script, '--port', String(port)], { stdio: 'inherit' }) - 执行外部命令来自配置/变量tools/ads-cli.mjs:206
const child = spawn(process.execPath, args, { windowsHide: true }) - 执行外部命令来自配置/变量tools/mcp-server.mjs:167
const child = spawn(process.execPath, [script, '--start', String(args.start), '--end', String(args.end), '--per-day', '--flat', '--out', outDir], { wi - 执行外部命令固定命令lib/config.js:41
const output = execFileSync( - 执行外部命令来自配置/变量lib/oauth.js:389
const child = spawn(command, args, { detached: true, stdio: 'ignore', windowsHide: true }) - 执行外部命令固定命令lib/oauth.js:391
const fallback = spawn('rundll32.exe', ['url.dll,FileProtocolHandler', url], { detached: true, stdio: 'ignore', windowsHide: true }) - 执行外部命令来自配置/变量lib/panel.js:946
const child = spawn(command, args, { - 读取密钥环境变量lib/shop.js:28
appKey: process.env.TIKTOK_SHOP_APP_KEY || raw.appKey || '', - 读取密钥环境变量lib/shop.js:29
appSecret: process.env.TIKTOK_SHOP_APP_SECRET || raw.appSecret || '', - 发起网络请求lib/monitor.js:81
const request = https.request( - 执行外部命令来自配置/变量lib/products.js:27
const child = spawn(python, ['-X', 'utf8', script, source, target], { windowsHide: true }) - 执行外部命令来自配置/变量tools/daily-daemon.mjs:99
const child = spawn(NODE, [REPORT, '--date', targetDate, '--days', '1', '--flat', '--out', OUT_ROOT], { - 执行外部命令来自配置/变量tools/daily-report.mjs:102
const child = spawnSync(process.execPath, [process.argv[1], '--date', date, '--days', '1', '--flat', '--out', outRoot, ...passthrough], { - 执行外部命令来自配置/变量tools/daily-report.mjs:272
const result = spawnSync(python, [builder, source, converted], { encoding: 'utf8' }) - 执行外部命令来自配置/变量tools/daily-report.mjs:360
const probe = spawnSync(candidate, ['-c', 'import openpyxl'], { encoding: 'utf8' }) - 执行外部命令来自配置/变量tools/daily-report.mjs:737
const result = spawnSync(python, [extractor, workbook, jsonPath, '--dates', dates.join(',')], { encoding: 'utf8' })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
TikTok Ads 智能体套件:OAuth 接入官方 Ads MCP,提供广告计划、素材、SKU 报表,本地仪表盘和 Excel 导出。可作为 DeepSeek Harness 插件、命令行或 stdio MCP 服务器使用。
README
由 DeepSeek 最新模型翻译生成TikTok Ads Agent Kit · dsh-plugin-tiktok-ads
一套给 AI 用的 TikTok 广告数据工具:OAuth 授权 → 官方 Ads MCP 直连 → 广告组/素材/SKU 报表 → 实时盯盘面板 → Excel 导出。
三种接入方式:DSH 插件、命令行 CLI、stdio MCP Server。零运行时依赖,只要 Node.js ≥ 22。
广告账户 ──OAuth(PKCE)──▶ TikTok for Business MCP ──▶ 本工具 ──▶ AI / 面板 / Excel
联系作者
互相学习,共同富裕。
有问题或想法,扫码加飞书聊:
备注「TikTok 广告工具」即可。
直接打开面板(不开 DSH)
面板是一个本地网页,两种打开方式:
| 方式 | 地址 | 说明 |
| 双击桌面「TikTok广告监控面板」 | http://127.0.0.1:8795/ | 启动 tools/open-panel.cmd;已在运行则直接开页面 |
| DSH 运行时 | http://127.0.0.1:8790/ | 插件随 DSH 自动启动,关掉 DSH 就没了 |
前提:本机代理要开着(默认读 Windows 系统代理,通常是 127.0.0.1:7890)。
展开完整文档(README 剩余 1 节)
TikTok Ads Agent Kit · dsh-plugin-tiktok-ads
一套给 AI 用的 TikTok 广告数据工具:OAuth 授权 → 官方 Ads MCP 直连 → 广告组/素材/SKU 报表 → 实时盯盘面板 → Excel 导出。
三种接入方式:DSH 插件、命令行 CLI、stdio MCP Server。零运行时依赖,只要 Node.js ≥ 22。
广告账户 ──OAuth(PKCE)──▶ TikTok for Business MCP ──▶ 本工具 ──▶ AI / 面板 / Excel
联系作者
互相学习,共同富裕。
有问题或想法,扫码加飞书聊:
备注「TikTok 广告工具」即可。
直接打开面板(不开 DSH)
面板是一个本地网页,两种打开方式:
| 方式 | 地址 | 说明 |
| 双击桌面「TikTok广告监控面板」 | http://127.0.0.1:8795/ | 启动 tools/open-panel.cmd;已在运行则直接开页面 |
| DSH 运行时 | http://127.0.0.1:8790/ | 插件随 DSH 自动启动,关掉 DSH 就没了 |
前提:本机代理要开着(默认读 Windows 系统代理,通常是 127.0.0.1:7890)。代理没开时面板照样能打开,会继续显示上次缓存的数据并标注「拉取失败」——把代理打开后点「刷新」即可恢复。
商品信息导入(想要 SKU 就靠它)
TikTok 广告接口只给商品 ID(SPU),SKU 编码和商品名只在卖家中心里。所以第一次用建议先做这一步,做完广告组下钻的「SKU」列、SKU 汇总、商品 × 广告合并才有数据。
1. 卖家中心:商品 → 批量操作 → 编辑商品 → 选择商品 → 模板选「全部信息」→ 生成模板 → 已下载,拿到 xlsx
2. 面板 → 左侧 「商品信息」 → 选店铺区域 → 选文件 → 导入
3. 回「广告组」点任意一行下钻 → 看 SKU 汇总和素材表的 SKU 列
完整图文步骤(含 4 张截图):docs/PRODUCT-IMPORT.md
没导入也能用,只是 SKU 列会显示 -;上新/改 SKU 后重新导出导入一次即可。
一、概况:重点功能与它们解决的问题
| 功能 | 解决什么问题 | 一句话怎么用 |
| 模块化盯盘 | 登后台翻三层菜单才能看到数据;想知道「现在这个组/这条素材跑得怎么样」要来回点 | 点「+ 添加盯盘模块」选账户/组/素材 → 一张卡一个对象,KPI + 小时曲线,自动刷新(默认 60 秒,面板里可改成 15/30 秒) |
| 日期对比 + 累计对比 | 只知道今天消耗多少,判断不出「比昨天好还是差」;更不知道「到下午 4 点为止累计出了多少单」 | 卡片上「📅 日期对比」选昨天/前天/7 天前,双曲线叠加;鼠标悬浮显示到该小时为止的累计订单 / 累计消耗 / 累计 ROI(均值) |
| 广告组下钻(SKU + 素材) | 只知道某个组烧钱,不知道是哪个 SKU、哪条素材在花;素材超 1000 条时后台翻页翻不动 | 广告组列表点任意一行 → 左边 SKU 汇总(消耗/占比/订单/ROI),右边素材表(状态/作品 ID/达人/SKU/CTR),可排序、按状态筛选、搜作品 ID |
| 数据导出 | 每天手工从后台导 Excel、格式还不统一 | 选日期区间 → 一次生成每天一个 xlsx(商品明细 / 素材明细 / SKU 销量 / 说明),网页直接下载 |
| 商品信息导入 | 广告接口只有商品 ID(SPU),看不到 SKU 编码和商品名 | 导入卖家中心导出的商品表,SKU 列/商品×广告合并立刻有数据(见上一节) |
二、三种接入方式(挑一个)
方式 1:DeepSeek Harness 插件(完整能力,含面板)
1) 把本仓库放进 DSH 插件目录:<DSH_HOME>/profiles/<profile>/plugins/dsh-plugin-tiktok-ads
2) profile 的 package.json dependencies 加 "dsh-plugin-tiktok-ads": "link:./plugins/dsh-plugin-tiktok-ads"
3) dsh.profile.bundles 里加入 "dsh-plugin-tiktok-ads"
注册 6 个工具:tiktok_ads_status / connect / disconnect / tools / call / panel。
插件会自动启动本地监控面板(默认 http://127.0.0.1:8790)。
方式 2:命令行(任何能跑命令的 AI 都能用)
git clone https://github.com/penyy8540-bit/tiktok-ads-agent-kit.git && cd tiktok-ads-agent-kit
node tools/ads-cli.mjs status # 是否已授权
node tools/ads-cli.mjs login # 生成授权链接并打开浏览器
node tools/ads-cli.mjs accounts # 已授权账户 + GMV Max 店铺
node tools/ads-cli.mjs report --days 7 # 近 7 天汇总(JSON)
node tools/ads-cli.mjs creatives --days 1 --pretty
node tools/ads-cli.mjs export --start 2026-10-28 --end 2026-10-28 --out ./reports
node tools/ads-cli.mjs panel --port 8795 # 可视化面板(不依赖 DSH)
所有命令默认输出 JSON,方便模型直接解析。
方式 3:MCP Server(Claude Desktop / Cursor / 任意 MCP 客户端)
{
"mcpServers": {
"tiktok-ads": {
"command": "node",json
"args": ["D:/path/to/dsh-plugin-tiktok-ads/tools/mcp-server.mjs"],
"env": { "TIKTOK_ADS_PROXY": "auto" }
}
}
}
暴露的工具:tiktok_status、tiktok_login、tiktok_accounts、tiktok_report、 tiktok_campaigns、tiktok_creatives、tiktok_tools_search、tiktok_call、tiktok_export。
更细的 AI 使用说明(提示词模板、字段解释)见 docs/AI-USAGE.md。
商品表(SKU / 商品名)怎么从卖家中心导出并导入见 docs/PRODUCT-IMPORT.md。
三、快速开始(5 分钟) bash
1. 准备:Node.js 22+
node -v
2. 授权(会打开浏览器登录 TikTok for Business)
node tools/ads-cli.mjs login
3. 验证
node tools/ads-cli.mjs status
node tools/ads-cli.mjs accounts
4. 拉数据
node tools/ads-cli.mjs report --days 7 --pretty
授权令牌保存在 ~/.dsh/plugin-data/tiktok-ads/auth.json(权限 0600,从不打印、不写日志、不返回给模型)。
访问令牌有效期约 24 小时,过期自动用 refresh token 续期。
国内网络 / 代理
默认 proxy: auto:先读 HTTPS_PROXY,读不到再读 Windows 系统代理。
也可以显式指定: bash
TIKTOK_ADS_PROXY=http://127.0.0.1:7890 node tools/ads-cli.mjs status
四、常用数据口径(重要)
| 概念 | 说明 |
| GMV Max 报表工具 | gmv_max_report_get(非普通 report) |
| 广告组维度 | dimensions: ["campaign_id"] |
| 商品维度 | dimensions: ["item_group_id"],必须带 filtering.campaign_ids |
| 素材维度 | dimensions: ["item_id"],必须同时带 campaign_ids + item_group_ids |
| 小时数据 | 只有账户 / 广告组级有 stat_time_hour,素材级没有小时数据 |
| 作品 ID | 素材报表里的 item_id,TikTok 网页端无法直接打开(只能复制) |
| 时区 | 报表小时口径 = 广告账户时区,面板支持按时区换算展示 |
五、可视化面板 bash
node tools/ads-cli.mjs panel --port 8795 # 或 node tools/panel-preview.mjs --port 8795
能力:
- 盯盘:一个对象一张卡,KPI(可点选 2 个做双轴)+ 小时曲线 + 每卡独立时区 + 备注 + 整日对比(今日 vs 昨天/指定日,双曲线 + 涨跌幅)
- 广告组:广告组 → SKU 占比 → 素材下钻(状态筛选、排序、作品 ID 搜索、达人昵称)
- 数据导出:选日期区间导出与桌面版同格式的 xlsx,可直接在网页下载
- 商品信息:上传卖家中心导出的商品表,合并商品 × 广告数据(SKU 编码/商品名来自这份表)→ 见上文「商品信息导入」与 docs/PRODUCT-IMPORT.md
面板只监听 127.0.0.1,仅本机可访问。
六、Excel 导出 bash
单天
node tools/daily-report.mjs --date 2026-10-28 --flat --out ./reports
日期区间(每天一个文件)
node tools/ads-cli.mjs export --start 2026-10-20 --end 2026-10-28 --out ./reports
每个 xlsx 含:商品明细 / 素材明细 / SKU 销量 / 说明 四个 sheet。
导出需要 Python + openpyxl(仅导出功能需要;只跑 CLI 报表不需要 Python)。
可用 PYTHON_PATH 指定解释器。
七、配置
优先级:环境变量 > 插件 config > 默认值
| 环境变量 | 作用 | 默认 |
| TIKTOK_ADS_DATA_DIR | 数据目录(令牌、缓存、看板) | ~/.dsh/plugin-data/tiktok-ads |
| TIKTOK_ADS_MODE | layer(约 40 工具)/ flat(约 400 工具) | layer |
| TIKTOK_ADS_PROXY | auto / off / http://host:port | auto |
| TIKTOK_ADS_RESOURCE | 自定义 MCP 端点 | TikTok 官方 layer 端点 |
DSH 插件方式下,这些字段写在 cordis.patch.yml 的 config 里(mode / expose / proxy / callbackPort / dashboardPort / monitorIntervalMinutes / rules 等)。
八、安全与隐私
- 令牌只存本地 auth.json(0600),不进入日志、不进入工具返回值、不进入面板 HTML
- 面板只绑定 127.0.0.1
- 代码零第三方依赖,除用户配置的代理外只访问 TikTok 官方域名
- .gitignore 已排除 node_modules/、__pycache__/、reports/、本地授权文件
九、项目结构 text lib/ core.js 与框架无关的核心(OAuth / MCP 会话 / callTool)——插件、命令行、MCP server、独立面板共用同一套 queries.js 常用查询(账户、广告组报表、素材报表) index.js DSH 插件入口(注册 6 个工具 + 启动面板) oauth.js OAuth DCR + PKCE + 本地回调 transport.js 零依赖 HTTPS / CONNECT 代理 mcp.js MCP Streamable HTTP 客户端 registry.js 工具目录检索 panel.js 面板 HTTP 服务端 + 数据 provider dashboard.js 面板前端(手写 SVG 图表) board.js 盯盘看板(模块、采样、告警) monitor.js 定时扫描 + 飞书推送 products.js 卖家中心商品表导入 tools/ ads-cli.mjs 命令行入口 mcp-server.mjs stdio MCP server panel-preview.mjs 独立运行面板 daily-report.mjs Excel 报表生成 dev/ 调试脚本(CDP 截图、页面体检等,不参与发布) parse-product-export.py 商品表解析 test/ 35 个单元测试 bash
npm test # 35 个测试
node tools/ads-cli.mjs status # 冒烟检查
十、English quick start
它是什么 —— 一套对智能体友好的 TikTok Ads 工具包:OAuth(DCR + PKCE)→ 官方 TikTok Ads MCP → campaign / creative / SKU 报表 → 本地面板 → Excel 导出。零运行时依赖,Node ≥ 22。
三个入口 bash
node tools/ads-cli.mjs login # OAuth; token stored locally at 0600
node tools/ads-cli.mjs report --days 7 # JSON output
node tools/mcp-server.mjs # stdio MCP server for Claude/Cursor/etc.
对外暴露的 MCP 工具:tiktok_status、tiktok_login、tiktok_accounts、tiktok_report、 tiktok_campaigns、tiktok_creatives、tiktok_tools_search、tiktok_call、tiktok_export。
几个 API 坑(踩过才知道,一踩就是几小时):
- 报表要用 gmv_max_report_get,不是通用的 report_get。
- item_group_id 报表必须带 filtering.campaign_ids。
- item_id(素材)报表必须同时带 campaign_ids 和 item_group_ids。
- 按小时粒度只有广告主 / campaign 级别有——素材级别没有。
安全 —— token 不会出现在日志或工具输出里;面板只绑定 127.0.0.1。
License
MIT © 见 LICENSE
本项目与 TikTok / 字节跳动无隶属关系,仅通过官方 TikTok for Business API 访问你自己有权限的广告账户。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
penyy8540-bit/tiktok-ads-agent-kit
授权拉取广告报表,实时盯盘并导出 Excel
相关插件 · 营销 / 广告
复古广告弹窗Nagi-ovo/dsh-ads
把 DSH 变成 2005 年门户网站|Parody ads, fake games, and popups for…
★ 679已汉化DSH
67.4
精酿竖版宣传片Finderchangchang/brewreel
精酿 BrewReel:让 DeepSeek 这类便宜模型也能做出好看的竖版宣传片。写一份产品简报,AI…
★ 166已汉化DSH
62.6
工作区分组树KannaKuron/dsh-better-workspace
给 DeepSeek Harness DSH 的侧边栏「工作区」列表装上一套两层文件夹系统——磁盘层按目录路径嵌套官方…
★ 31已汉化DSH
48.1
跨窗提醒Aisland-SJL/dsh-reminder
🔔 DeepSeek Harness 跨窗口完成与审批通知——弹窗提醒把你拉回 DSH,Codex/WorkBuddy 风格。
★ 18已汉化DSH
40.4
推理档位自动选择justhalfbit/dsh-plugin-jev-effort-selector
让 Jev System One 模型替你决定每条消息该用多深的推理。
★ 7已汉化DeepSeek 客户端
37.1
模型价格看板vitas/dsh-model-pricing
在选择模型之前比较 LLM API 价格——并在使用之后查看你实际支付了多少。 这是一个
★ 2已汉化DeepSeek 客户端
36.5
这是你的仓库?认领条目