Get Meta Ads Kit running and see your first daily briefing in 10 minutes.
Prerequisites
Before starting, make sure you have:
- Node.js 14+ installed
- A Facebook account with access to a Meta ad account
- Permission to read ad insights (most ad account admins have this)
Step 1: Clone the repository
git clone https://github.com/themattberman/meta-ads-kit.git
cd meta-ads-kit
Step 2: Install social-cli
social-cli is the open-source engine that talks to the Meta Marketing API.
npm install -g @vishalgojha/social-cli
Verify it’s installed:
This opens your browser to authorize with Meta. Log in with your Facebook account and approve the permissions.
Step 4: Set your ad account
List your available ad accounts:
social marketing accounts
You’ll see output like:
ID: act_123456789, Name: My Brand
ID: act_987654321, Name: Client Account
Set the default ad account:
social marketing set-default-account act_YOUR_ACCOUNT_ID
cp ad-config.example.json ad-config.json
Edit ad-config.json with your benchmarks:
{
"account": {
"id": "act_YOUR_ACCOUNT_ID",
"name": "Your Brand Name"
},
"benchmarks": {
"target_cpa": 25.00,
"target_roas": 3.0,
"max_frequency": 3.5,
"min_ctr": 1.0,
"max_cpc": 2.50
},
"alerts": {
"bleeder_ctr_threshold": 1.0,
"bleeder_frequency_threshold": 3.5,
"fatigue_ctr_drop_pct": 20,
"spend_pace_alert_pct": 15
}
}
Don’t know your benchmarks? Leave the defaults — the agent will learn them from your data.
Step 6: Run your first daily check
chmod +x run.sh
./run.sh daily-check
You’ll see the 5 Daily Questions with your actual ad data:
Question 1: Am I on track?
Spend Pacing (Today)
Daily Budget: $500.00
Spent So Far: $127.50 (as of 10:30 AM)
Pace: On track (25.5% of budget, 43% through day)
Question 2: What’s running?
Active Campaigns (3)
- Summer Sale 2026: ACTIVE, $200/day budget
- Retargeting - Cart: ACTIVE, $150/day budget
- Brand Awareness: ACTIVE, $150/day budget
Campaign Performance
1. Summer Sale 2026
Spend: $1,400 | CTR: 2.3% | CPC: $0.87 | Conv: 47 | CPA: $29.79
2. Retargeting - Cart
Spend: $1,050 | CTR: 1.8% | CPC: $1.12 | Conv: 32 | CPA: $32.81
3. Brand Awareness
Spend: $1,050 | CTR: 1.1% | CPC: $0.65 | Conv: 12 | CPA: $87.50
Question 4: Who’s winning and losing?
Winners 🏆
1. Ad #238471234 - Hero Image A
CTR: 3.2% | CPC: $0.72 | Freq: 1.8 | Spend: $287
→ Scale candidate (high CTR, low frequency)
2. Ad #238471567 - Testimonial Carousel
CTR: 2.8% | CPC: $0.81 | Freq: 2.1 | Spend: $195
→ Strong performer
Bleeders 🩸
1. Ad #238472891 - Generic Product
CTR: 0.7% | CPC: $1.89 | Freq: 4.2 | Spend: $312
→ Pause candidate (high frequency, low CTR)
2. Ad #238473102 - Lifestyle B
CTR: 0.8% | CPC: $1.65 | Freq: 3.8 | Spend: $245
→ Review for pause
Question 5: Any fatigue?
Fatigue Signals 😴
Ad #238471234 - Hero Image A
- CTR declining: 3.8% → 3.2% (last 3 days)
- Frequency climbing: 1.8 → 2.3
- Status: Monitor (early fatigue signal)
Ad #238473102 - Lifestyle B
- CTR dropped 40% from peak
- Frequency at 3.8
- Status: Refresh needed
Next steps
Now that you’ve run your first daily check, you can:
Understand the 5 Questions
Learn what each question tells you and how to interpret the data
Explore Skills
Discover all 5 skills from monitoring to creative upload
Take Actions
Pause bleeders, scale winners, and optimize budgets
Automate It
Set up morning briefings with cron or OpenClaw
Running with OpenClaw
For a conversational experience, use OpenClaw:
npm install -g openclaw
cd meta-ads-kit
openclaw start
Then message the agent naturally:
You: "How are my ads doing?"
You: "Any bleeders I should pause?"
You: "Which ads should I scale?"
You: "Check for creative fatigue"
The agent runs the appropriate reports, analyzes results, and asks before taking any action.
Set up automated morning briefings: “Run my daily ads check every morning at 8am and send me the summary”