我构建了一个运行 Facebook 广告的 Claude 技能——这是代码
我构建了一个 Claude 技能,通过 Graph API 读取我的 Meta Ads 账户,识别低效广告,以我的品牌语调重写广告文案,并创建新的广告集——所有这些无需我打开广告管理器。整个项目不超过 300 行 TypeScript。回报是立竿见影的:我将每周广告管理时间从约 3 小时缩短到约 20 分钟。
每周三。28,400+ 读者。纯干货。
✓ 请查收邮箱 — 点击确认链接以完成订阅。
✓ 订阅成功!
✓ 您已在订阅列表中。
目录
2026 年 6 月更新。
TL;DR: 我构建了一个 Claude 技能,通过 Graph API 读取我的 Meta Ads 账户,识别低效广告,以我的品牌语调重写广告文案,并创建新的广告集——所有这些无需我打开广告管理器。整个项目不超过 300 行 TypeScript。回报是立竿见影的:我将每周广告管理时间从约 3 小时缩短到约 20 分钟。
[运营者视角] 我为 Pickleland 和我的咨询品牌投放广告。两个账户,不同受众,持续的创意疲劳。我曾将周日下午花在广告管理器里做本该由模型完成的工作。于是我将其自动化了。
为什么我停止手动管理 Facebook 广告
运营 Facebook 广告的实际工作分为三项任务:
- 监控 — 检查哪些广告集在烧钱,哪些在赚钱
- 诊断 — 弄清楚为什么某个广告效果不佳(创意疲劳?定向不准?落地页问题?)
- 迭代 — 撰写新文案,创建新广告集,调整预算
任务 1 是机械性的。任务 3 大部分是机械性的(有语调约束)。任务 2 需要判断力——也是唯一需要人工介入的环节。
Claude 技能可以完成 1 和 3。在任何内容发布前,我会审核任务 2 的输出。这就是我最终确定的架构。
Meta Graph API 设置(这是烦人的部分)
在写任何代码之前:你需要一个 Meta Business 账户、一个系统用户和一个永久访问令牌。Facebook 的开发者门户体验不佳,但流程如下:
- 在 developers.facebook.com 创建 Meta App(类型:Business)
- 添加 Marketing API 产品
- 在你的业务组合 → 设置 → 用户 → 系统用户下,创建一个系统用户,并赋予其在广告账户上的
ADVERTISER角色 - 生成具有以下权限的令牌:
ads_read、ads_management、business_management
将令牌存储为 META_ACCESS_TOKEN,将广告账户 ID(格式:act_XXXXXXXX)存储为 META_AD_ACCOUNT_ID,写入 .env 文件。
技能文件结构
.claude/skills/fb-ads/
SKILL.md ← Claude 读取的指令
index.ts ← 实际的工具实现
types.ts ← 共享类型SKILL.md 告诉 Claude 何时以及如何使用该技能。我的文件内容如下:
# Facebook Ads Manager Skill
Use this skill when the user says "check my ads", "run ads report",
"pause underperformers", or "write new ad copy". Never run this
without explicit user instruction — it touches live ad spend.
## What it can do
- Pull performance data for all active ad sets (last 7 or 30 days)
- Flag ad sets with ROAS < 1.5 or CTR < 0.8% as underperformers
- Rewrite ad copy for flagged creatives in Ale's voice
- Create new ad sets with revised copy (PAUSED by default — you approve before activating)
## What it will NOT do
- Change budgets on live ad sets without explicit confirmation
- Activate new ad sets automatically
- Delete anything“永不自动激活”的约束是不可协商的。该技能以暂停状态创建内容。我手动审核并激活。任何涉及实时广告支出的操作都需要人工检查点。
TypeScript 核心代码
(代码块保留英文——仅翻译周围的文字。)
日常使用方式
该技能从 Claude Code(我的日常工具)中调用。典型的周一早晨工作流:
> check my ads from the last 7 daysClaude 运行 runAdsReport(7),将结果格式化为表格,标记低效广告,并询问是否需要重写文案。我说是。它生成新文案,并排显示两个版本,然后以新创意创建暂停状态的广告集。我在广告管理器中审核,激活喜欢的,归档失败的。
总耗时:20 分钟。告别周日下午的广告管理器时光。
这无法替代的部分
该技能无法判断产品与市场契合度问题是否伪装成了文案问题。如果 ROAS 普遍糟糕,那是漏斗或产品本身的问题,而不是标题的问题。Claude 会忠实地在破损漏斗上重写文案——但重写无法拯救它。
诊断步骤仍然是我的职责。我阅读报告,查看漏斗数据,然后决定我们是在迭代创意,还是解决更上游的问题。代理在一切事务上都很快,唯独这个判断除外。
运营者的结论
如果你在手动管理广告,每周打开广告管理器超过两次,那你在做脚本本该做的运营工作。Graph API 有完善的文档,Meta 的权限流程虽然烦琐,但只需配置一次。用一个下午构建这个技能。第一周就能看到时间回报。
每周三。28,400+ 读者。纯干货。
✓ 请查收邮箱 — 点击确认链接以完成订阅。
✓ 订阅成功!
✓ 您已在订阅列表中。
将AI实战手册发送到您的邮箱
每周三。28,400+ 读者。纯干货。
请查收邮箱。
我们已向您发送确认邮件 — 点击其中的链接以完成订阅。如果一分钟内没收到,请检查垃圾邮件。
订阅成功。
欢迎 — 下一期很快就会送达您的邮箱。
您已在订阅列表中 — 每周三留意查收。