Skip to main content
Glama

Facebook Ads Management Control Panel

by codprocess
README.md7.69 kB
# Facebook Ads Management Control Panel (MCP) A comprehensive Node.js Express server that integrates with the Facebook Marketing API to provide a robust platform for managing Facebook ad campaigns, analyzing performance, and receiving optimization recommendations. ## Features - **Facebook OAuth Authentication**: Secure login with Facebook credentials - **Ad Account Management**: View and manage multiple Facebook ad accounts - **Campaign Management**: Create, read, update, and delete campaigns - **Ad Set Management**: Create, read, update, and delete ad sets with targeting options - **Ad Management**: Create, read, update, and delete ads with creative options - **Analytics**: Comprehensive analytics for campaigns, ad sets, and ads - **Recommendations**: Intelligent recommendations for budget optimization, targeting, and creative performance - **API Documentation**: Detailed API documentation for all endpoints - **Railway Deployment**: Easy deployment to Railway with minimal configuration ## Tech Stack - **Backend**: Node.js, Express - **Database**: MongoDB with Mongoose ODM - **Authentication**: Passport.js with Facebook OAuth, JWT - **API Integration**: Facebook Marketing API - **Validation**: Joi - **Logging**: Winston - **Security**: Helmet, CORS, Rate Limiting, CSRF Protection - **Deployment**: Railway ## Project Structure ``` 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 ``` ## Prerequisites - Node.js (v14 or higher) - MongoDB database (local or Atlas) - Facebook Developer Account with an app that has Marketing API permissions ## Getting Started ### Installation 1. Clone the repository: ```bash git clone https://github.com/yourusername/facebook-ads-mcp.git cd facebook-ads-mcp ``` 2. Install dependencies: ```bash npm install ``` 3. Create a `.env` file based on `.env.example`: ```bash cp .env.example .env ``` 4. Update the `.env` file with your configuration: - MongoDB connection string - Facebook App ID and Secret - JWT secret key - Other configuration options ### Running Locally Start the development server: ```bash npm run dev ``` The server will be available at `http://localhost:3000`. ## API Endpoints ### Authentication - `GET /auth/facebook`: Initiate Facebook OAuth flow - `GET /auth/facebook/callback`: Handle Facebook OAuth callback - `POST /auth/refresh`: Refresh JWT token - `POST /auth/logout`: Logout user - `GET /auth/me`: Get current user - `PUT /auth/me`: Update current user ### Ad Accounts - `GET /api/ad-accounts`: Get all ad accounts - `GET /api/ad-accounts/sync`: Sync ad accounts from Facebook - `GET /api/ad-accounts/:id`: Get ad account by ID - `GET /api/ad-accounts/:id/insights`: Get insights for an ad account - `GET /api/ad-accounts/:id/campaigns`: Get campaigns for an ad account ### Campaigns - `GET /api/campaigns`: Get all campaigns - `GET /api/campaigns/sync`: Sync campaigns from Facebook - `POST /api/campaigns`: Create a new campaign - `GET /api/campaigns/:id`: Get campaign by ID - `PUT /api/campaigns/:id`: Update campaign - `DELETE /api/campaigns/:id`: Delete campaign - `GET /api/campaigns/:id/insights`: Get insights for a campaign - `GET /api/campaigns/:id/adsets`: Get ad sets for a campaign - `GET /api/campaigns/:id/analytics`: Get analytics for a campaign - `POST /api/campaigns/:id/fetch-analytics`: Fetch and store analytics for a campaign ### Ad Sets - `GET /api/ad-sets`: Get all ad sets - `GET /api/ad-sets/sync`: Sync ad sets from Facebook - `POST /api/ad-sets`: Create a new ad set - `GET /api/ad-sets/:id`: Get ad set by ID - `PUT /api/ad-sets/:id`: Update ad set - `DELETE /api/ad-sets/:id`: Delete ad set - `GET /api/ad-sets/:id/insights`: Get insights for an ad set - `GET /api/ad-sets/:id/ads`: Get ads for an ad set - `GET /api/ad-sets/:id/analytics`: Get analytics for an ad set - `POST /api/ad-sets/:id/fetch-analytics`: Fetch and store analytics for an ad set - `GET /api/ad-sets/:id/targeting-recommendations`: Get targeting recommendations for an ad set ### Ads - `GET /api/ads`: Get all ads - `GET /api/ads/sync`: Sync ads from Facebook - `POST /api/ads`: Create a new ad - `GET /api/ads/:id`: Get ad by ID - `PUT /api/ads/:id`: Update ad - `DELETE /api/ads/:id`: Delete ad - `GET /api/ads/:id/insights`: Get insights for an ad - `GET /api/ads/:id/analytics`: Get analytics for an ad - `POST /api/ads/:id/fetch-analytics`: Fetch and store analytics for an ad - `GET /api/ads/:id/creative-recommendations`: Get creative recommendations for an ad - `GET /api/ads/:id/preview`: Get preview URL for an ad ### Analytics - `GET /api/analytics/overview`: Get account overview analytics - `GET /api/analytics/campaigns`: Get analytics for all campaigns - `GET /api/analytics/campaigns/:id`: Get analytics for a specific campaign - `GET /api/analytics/ad-sets`: Get analytics for all ad sets - `GET /api/analytics/ad-sets/:id`: Get analytics for a specific ad set - `GET /api/analytics/ads`: Get analytics for all ads - `GET /api/analytics/ads/:id`: Get analytics for a specific ad - `POST /api/analytics/fetch`: Fetch and store analytics for all entities - `GET /api/analytics/comparison`: Get performance comparison between two time periods - `GET /api/analytics/metrics`: Get available metrics for analytics ### Recommendations - `GET /api/recommendations/budget`: Get budget optimization recommendations - `GET /api/recommendations/targeting`: Get targeting recommendations for an ad set - `GET /api/recommendations/creative`: Get creative performance recommendations - `GET /api/recommendations/all`: Get all recommendations for an ad account - `GET /api/recommendations/summary`: Get recommendations summary for an ad account - `GET /api/recommendations/best-practices`: Get best practices recommendations ### Health Check - `GET /health`: Health check endpoint - `GET /health/db`: Database health check endpoint - `GET /health/deep`: Deep health check endpoint ## Deployment to Railway This project is configured for easy deployment to Railway. 1. Create a new project on [Railway](https://railway.app/) 2. Connect your GitHub repository 3. Add the required environment variables in the Railway dashboard 4. Deploy the project The `railway.json` file in the repository configures the deployment settings, including the health check endpoint and restart policy. ## Security Considerations This project implements several security measures: - **Authentication**: JWT-based authentication with secure cookies - **Rate Limiting**: Prevents brute force attacks - **CSRF Protection**: Prevents cross-site request forgery - **Helmet**: Sets various HTTP headers for security - **Input Validation**: Validates all input data using Joi - **MongoDB Sanitization**: Prevents NoSQL injection - **XSS Protection**: Prevents cross-site scripting attacks ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## License This project is licensed under the MIT License - see the LICENSE file for details.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/codprocess/facebook-ads-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server