F

Facebook广告管理平台

@codprocess/facebook-ads-mcp
0 Stars 46 次浏览 codprocess 更新于 2026-08-23

一个集成了Facebook营销API的Node.js Express服务器,用于提供管理广告活动、分析表现和接收优化建议的平台。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

Facebook 广告管理控制面板 (MCP)

一个全面的 Node.js Express 服务器,集成了 Facebook 营销 API,提供了一个强大的平台来管理 Facebook 广告活动、分析表现并接收优化建议。

功能

  • Facebook OAuth 认证:使用 Facebook 凭据安全登录
  • 广告账户管理:查看和管理多个 Facebook 广告账户
  • 活动管理:创建、读取、更新和删除广告活动
  • 广告组管理:创建、读取、更新和删除具有定位选项的广告组
  • 广告管理:创建、读取、更新和删除具有创意选项的广告
  • 分析:针对活动、广告组和广告的全面分析
  • 建议:针对预算优化、定位和创意表现的智能建议
  • API 文档:所有端点的详细 API 文档
  • Railway 部署:通过最少配置轻松部署到 Railway

技术栈

  • 后端:Node.js, Express
  • 数据库:MongoDB 和 Mongoose ODM
  • 认证:Passport.js 结合 Facebook OAuth, JWT
  • API 集成:Facebook 营销 API
  • 验证:Joi
  • 日志记录:Winston
  • 安全:Helmet, CORS, 速率限制, CSRF 保护
  • 部署:Railway

项目结构

facebook-ads-mcp/
├── src/
│   ├── config/             # Configuration files
│   ├── middleware/         # Express middleware
│   ├── models/             # Mongoose models
│   ├── routes/             # API routes
│   ├── services/           # Business logic
│   ├── utils/              # Utility functions
│   └── app.js              # Express app setup
├── server.js               # Server entry point
├── .env.example            # Environment variables example
├── package.json            # Dependencies and scripts
├── railway.json            # Railway deployment config
└── README.md               # Project documentation

前提条件

  • Node.js (v14 或更高版本)
  • MongoDB 数据库(本地或 Atlas)
  • 具有营销 API 权限的 Facebook 开发者账号及应用

快速开始

安装

  1. 克隆仓库:

    git clone https://github.com/yourusername/facebook-ads-mcp.git
    cd facebook-ads-mcp
    
  2. 安装依赖项:

    npm install
    
  3. 根据 .env.example 创建 .env 文件:

    cp .env.example .env
    
  4. 更新 .env 文件以包含您的配置信息:

    • MongoDB 连接字符串
    • Facebook 应用 ID 和密钥
    • JWT 密钥
    • 其他配置选项

本地运行

启动开发服务器:

npm run dev

服务器将可通过 http://localhost:3000 访问。

API 端点

认证

  • GET /auth/facebook: 启动 Facebook OAuth 流程
  • GET /auth/facebook/callback: 处理 Facebook OAuth 回调
  • POST /auth/refresh: 刷新 JWT 令牌
  • POST /auth/logout: 用户登出
  • GET /auth/me: 获取当前用户
  • PUT /auth/me: 更新当前用户

广告账户

  • GET /api/ad-accounts: 获取所有广告账户
  • GET /api/ad-accounts/sync: 从 Facebook 同步广告账户
  • GET /api/ad-accounts/:id: 按 ID 获取广告账户
  • GET /api/ad-accounts/:id/insights: 获取广告账户的洞察数据
  • GET /api/ad-accounts/:id/campaigns: 获取广告账户下的广告活动

广告活动

请注意,您提供的原文中最后部分关于“广告活动”的内容似乎被截断了。如果需要这部分内容的具体翻译,请提供完整的信息。

  • GET /api/campaigns: 获取所有广告活动
  • GET /api/campaigns/sync: 从 Facebook 同步广告活动
  • POST /api/campaigns: 创建新的广告活动
  • GET /api/campaigns/:id: 按 ID 获取广告活动
  • PUT /api/campaigns/:id: 更新广告活动
  • DELETE /api/campaigns/:id: 删除广告活动
  • GET /api/campaigns/:id/insights: 获取广告活动的洞察数据
  • GET /api/campaigns/:id/adsets: 获取广告活动下的广告集
  • GET /api/campaigns/:id/analytics: 获取广告活动的分析数据
  • POST /api/campaigns/:id/fetch-analytics: 获取并存储广告活动的分析数据

广告集

  • GET /api/ad-sets: 获取所有广告集
  • GET /api/ad-sets/sync: 从 Facebook 同步广告集
  • POST /api/ad-sets: 创建新的广告集
  • GET /api/ad-sets/:id: 按 ID 获取广告集
  • PUT /api/ad-sets/:id: 更新广告集
  • DELETE /api/ad-sets/:id: 删除广告集
  • GET /api/ad-sets/:id/insights: 获取广告集的洞察数据
  • GET /api/ad-sets/:id/ads: 获取广告集下的广告
  • GET /api/ad-sets/:id/analytics: 获取广告集的分析数据
  • POST /api/ad-sets/:id/fetch-analytics: 获取并存储广告集的分析数据
  • GET /api/ad-sets/:id/targeting-recommendations: 获取广告集的目标推荐

广告

  • GET /api/ads: 获取所有广告
  • GET /api/ads/sync: 从 Facebook 同步广告
  • POST /api/ads: 创建新的广告
  • GET /api/ads/:id: 按 ID 获取广告
  • PUT /api/ads/:id: 更新广告
  • DELETE /api/ads/:id: 删除广告
  • GET /api/ads/:id/insights: 获取广告的洞察数据
  • GET /api/ads/:id/analytics: 获取广告的分析数据
  • POST /api/ads/:id/fetch-analytics: 获取并存储广告的分析数据
  • GET /api/ads/:id/creative-recommendations: 获取广告的创意推荐
  • GET /api/ads/:id/preview: 获取广告预览 URL

分析

  • GET /api/analytics/overview: 获取账户概览分析
  • GET /api/analytics/campaigns: 获取所有广告活动的分析
  • GET /api/analytics/campaigns/:id: 获取特定广告活动的分析
  • GET /api/analytics/ad-sets: 获取所有广告集的分析
  • GET /api/analytics/ad-sets/:id: 获取特定广告集的分析
  • GET /api/analytics/ads: 获取所有广告的分析
  • GET /api/analytics/ads/:id: 获取特定广告的分析
  • POST /api/analytics/fetch: 获取并存储所有实体的分析
  • GET /api/analytics/comparison: 获取两个时间段之间的表现比较
  • GET /api/analytics/metrics: 获取可用于分析的指标

推荐

  • GET /api/recommendations/budget: 获取预算优化建议
  • GET /api/recommendations/targeting: 获取广告集的目标建议
  • GET /api/recommendations/creative: 获取创意表现建议
  • GET /api/recommendations/all: 获取广告账户的所有建议
  • GET /api/recommendations/summary: 获取广告账户的建议摘要
  • GET /api/recommendations/best-practices: 获取最佳实践建议

健康检查

  • GET /health: 健康检查端点
  • GET /health/db: 数据库健康检查端点
  • GET /health/deep: 深度健康检查端点

部署到 Railway

此项目已配置为可以轻松部署到 Railway。

  1. Railway 上创建一个新项目

  2. 连接您的 GitHub 仓库

  3. 在 Railway 仪表板中添加所需的环境变量

  4. 部署项目

仓库中的 railway.json 文件配置了部署设置,包括健康检查端点和重启策略。

安全考虑

此项目实现了多种安全措施:

  • 认证:基于 JWT 的认证,并使用安全的 cookies
  • 速率限制:防止暴力破解攻击
  • CSRF 保护:防止跨站请求伪造
  • Helmet:设置各种 HTTP 头以增强安全性
  • 输入验证:使用 Joi 对所有输入数据进行验证
  • MongoDB 清理:防止 NoSQL 注入
  • XSS 保护:防止跨站脚本攻击

贡献

欢迎贡献!请随时提交 Pull Request。

许可证

该项目根据 MIT 许可证发布 - 详情请参阅 LICENSE 文件。