Facebook广告管理平台
一个集成了Facebook营销API的Node.js Express服务器,用于提供管理广告活动、分析表现和接收优化建议的平台。
服务介绍
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 开发者账号及应用
快速开始
安装
-
克隆仓库:
git clone https://github.com/yourusername/facebook-ads-mcp.git cd facebook-ads-mcp -
安装依赖项:
npm install -
根据
.env.example创建.env文件:cp .env.example .env -
更新
.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。
-
在 Railway 上创建一个新项目
-
连接您的 GitHub 仓库
-
在 Railway 仪表板中添加所需的环境变量
-
部署项目
仓库中的 railway.json 文件配置了部署设置,包括健康检查端点和重启策略。
安全考虑
此项目实现了多种安全措施:
- 认证:基于 JWT 的认证,并使用安全的 cookies
- 速率限制:防止暴力破解攻击
- CSRF 保护:防止跨站请求伪造
- Helmet:设置各种 HTTP 头以增强安全性
- 输入验证:使用 Joi 对所有输入数据进行验证
- MongoDB 清理:防止 NoSQL 注入
- XSS 保护:防止跨站脚本攻击
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
该项目根据 MIT 许可证发布 - 详情请参阅 LICENSE 文件。