I’ve spent $10M on Meta Ads. The new official Meta Ads MCP is going to change how I spend the next $10M — and probably how you spend your first. Last Tuesday I had Claude pull every campaign across two ad accounts, flag the three with CPLs trending +25% week-over-week, and draft replacement creative briefs against my voice bible. Total time: 11 minutes. Two months ago that loop took me 90 minutes minimum, half of it staring at the dashboard waiting for filters to load.

This is the playbook for both halves of that shift. Part one: the acquisition funnel I actually run, with $10M of evidence behind it. Part two: wiring Meta’s official MCP to Claude so the funnel runs itself, mostly. If you’re spending less than $5K/month on Meta Ads, bookmark this for later — the data is too noisy at low spend for daily AI management to pay off. If you’re at $5K to $1M/month, this is the stack I’d ship.

Quick context: I’m Maxime. I run The Kreators AI with my co-founder Jack — we manage roughly $45M of combined Meta Ads spend across US bathroom remodeling, US personal injury (MVA), SSDI, and FR mutuelle senior. I personally manage about $10M of that. 500k.io is the public journal of building solo on top, currently at $9,500 MRR. The receipts are on the dashboard.

Why Meta Ads still wins in 2026

The “Meta Ads are dead” take has been wrong for three years and is still wrong. It’s wrong because of one structural fact: Meta still owns the largest non-search intent-and-attention surface on the consumer internet, and the auction floor is still set by what advertisers will actually pay.

Here’s the 2026 picture. Average US Meta CPM sits around $23 — about 15x Nigeria’s $1.50 floor, and up roughly 20% YoY from $11.82 to $14.19 globally. That looks bad until you realize the 20% inflation is the auction working: more advertisers, better targeting, higher conversion intent. Meta’s Advantage+ Shopping campaigns now ship with a documented 32% lower cost per acquisition vs manually configured campaigns in eCommerce — and 35% of US retail ad spend is flowing through Advantage+, up from 19% the year before. The platform is getting better, not worse.

What changed isn’t Meta. What changed is the bar. Pre-2024, you could ship one creative, one audience, one bid strategy and ride it for a quarter. In 2026 that gets you killed. The platforms that lost are the ones where the AI optimization layer is weaker — not Meta. According to AdAmigo’s 2026 benchmarks, the gap between top-quartile and bottom-quartile advertisers widened by 38% YoY. That’s not a Meta problem. That’s an operator problem.

The real shift is this: Meta Ads in 2026 rewards systems over tactics. The systems are creative iteration cadence, server-side tracking, funnel architecture, and AI-augmented optimization. A solo founder with a tight system beats an agency with a sloppy one. I have data on this — when I run our internal AI workflow against a control account, the AI-augmented one ships 4-7x more creative variants per week at lower fully-loaded cost. Same platform. Different operating system.

If you’re reading “Meta Ads are dead” takes in 2026, the people writing them either stopped operating or never operated past $50K/month spend. The honest math is in I run $10M of Meta Ads — here’s the AI bet I’m making.

The acquisition funnel architecture I run ($10M of evidence)

Every funnel I’ve shipped past $100K/month spend follows the same 3-stage structure. The vertical changes. The creative changes. The architecture doesn’t.

The 3 stages, in plain English

Cold — broad reach campaigns aimed at people who’ve never heard of you. Goal: cheap impressions on lookalike + interest audiences, with enough creative variety to find what hooks. KPI: CPM, hook rate (3s video views / impressions), early CPL.

Warm — mid-funnel retargeting. People who clicked, watched 75% of a video, visited a page but didn’t convert. Goal: deepen the relationship, answer objections, push toward conversion. KPI: CTR, time-on-page, conversion rate.

Hot — high-intent retargeting + conversion campaigns. Cart abandoners, form starters, lookalikes off recent buyers. Goal: close. KPI: CPA, ROAS.

That’s it. Three stages. The 50-page agency frameworks are mostly fluff on top of this skeleton.

Budget allocation: 70/20/10

I run roughly 70% of budget on Cold, 20% on Warm, 10% on Hot. The math reasoning: Hot audiences are small and saturate fast. If you over-fund them, you bid up your own CPMs and frequency caps wreck your unit economics. Cold has to feed Warm has to feed Hot — starve Cold and the whole funnel shrinks within 2-3 weeks.

Here’s how that actually breaks out at three spend levels we run today:

Spend tierCold (70%)Warm (20%)Hot (10%)Notes
$50K/mo$35K$10K$5KSingle vertical, 1-2 ad accounts
$200K/mo$140K$40K$20K2-3 verticals, separate ad accounts
$1M/mo$700K$200K$100KFull agency split, 5-7 accounts

The percentages stay flat. The absolute dollars compound. The trap most operators fall into at the $200K/mo tier: they discover Hot has a 4x ROAS and pour budget into it. Two weeks later CPMs spike, frequency hits 8+, and the whole funnel collapses. Discipline on the split is non-negotiable.

Creative cadence: the rule that decides everything

5-7 new creatives per week minimum. Per ad account. Per vertical.

This is the single rule that separates accounts that scale from accounts that plateau. I have specific evidence — on UpgradeMatch (US bathroom remodeling) in Q1 2026, the best-performing angle (Safety) hit €4.37 CPL on a small sample. The worst (Reviews) hit €65.89. Same product, same audience, same landing page, same ad account. 15x cost gap from one decision: which angle to lead with.

You don’t find that 15x lever by optimizing bidding. You find it by shipping enough variants that the winners surface. At 5-7 new creatives per week, you cycle through 60-80 angles per quarter. At 1 per week, you cycle through 12. The math doesn’t survive at low cadence.

The kill rule: any creative with frequency >3.5 and CPL above account average for 5 days straight gets paused. No nostalgia. No “let me give it one more week.” Pause it, ship the replacement.

Audience strategy: stop overthinking it

In 2026, the audience layer matters less than it did in 2022. Advantage+ does most of the heavy lifting if your tracking is clean. My current default:

  • Cold: broad Advantage+ audience, country-level targeting, 1% lookalikes off recent purchasers as a backup set
  • Warm: website visitors past 30 days, video viewers 75%+, lead form opens
  • Hot: added-to-cart, form-started but didn’t submit, recent purchasers for upsell

Anyone still building 12 interest stacks per campaign in 2026 is fighting yesterday’s war. Spend the energy on creative variety. Meta’s AI will find the people.

Tracking: CAPI or you’re flying blind

This is non-negotiable. iOS 17+ tracking restrictions plus Safari ITP plus consent banners plus ad blockers mean Pixel-only setups miss 50-70% of conversions. Meta itself recommends running Pixel + Conversions API together — they call it dual tracking. If you’re not running CAPI server-side in 2026, your CPLs are lying to you, your lookalikes are corrupted, and your optimization signal is half noise.

Setup options: Stape, Shopify’s native CAPI, Segment, custom server endpoint. Pick one before you scale spend past $5K/month. I cover the why in more detail in the 30-day Claude Code playbook — the same logic applies to ops infrastructure.

The new official Meta Ads MCP — what it actually does

The Model Context Protocol (MCP) is Anthropic’s open standard for connecting AI assistants to external tools and data. Think of it as USB-C for AI — one connector, every tool. If you want the founder-grade explainer, MCP explained for founders is the pre-read.

What’s new: on April 29, 2026, Meta released its official Meta Ads MCP server in open beta at mcp.facebook.com/ads. This matters because — until April 29 — connecting Claude to Meta Ads required a Meta Developer App, a Marketing API access token, a System User setup, and a 3-day app review. Total friction: 25+ minutes of setup plus a multi-day wait. Most founders gave up at step 2.

The official MCP collapses all of that into one OAuth click on the same Meta Business login screen you already use. No Developer App. No tokens. No System User. According to HeyOz’s coverage, end-to-end setup time is now 5 to 7 minutes.

What the 29 tools actually do

The MCP ships with 29 tools at launch covering the full Marketing API surface. The categories:

CapabilityWhat Claude can doRisk level
Read campaigns / ad sets / adsPull structure, targeting, creative, status across any account you ownLow
Read insightsPull spend, impressions, clicks, conversions, CPL, ROAS by date range / breakdownLow
Write campaignsCreate, edit, duplicate, archive campaignsHigh
Write ad setsCreate, edit budgets, edit audiences, pause / unpauseHigh
Write adsCreate, edit creative, pause / unpauseMedium
Manage creativesUpload images, create video ads, edit copyMedium
Manage catalogsRead product catalogs, edit feeds, manage sets (eCom)Medium
Signal diagnosticsCheck Pixel + CAPI health, deduplication rates, event match qualityLow
Audience managementCreate custom audiences, lookalikes, exclusionsMedium

“Risk level” is my shorthand for “what happens if Claude does this without me checking.” Read tools are zero-risk. Write tools are where you set guardrails — covered later.

What the MCP doesn’t do (yet)

The beta has gaps worth knowing about:

  • No creative generation. The MCP can upload an image, not generate one. You wire that to a separate tool (gpt-image-1, Midjourney, Replicate).
  • No reporting export beyond what’s in insights. No PDF generation, no client deck creation. Use Claude’s native tools for that.
  • No cross-account aggregation in a single tool call. You query account-by-account. Claude stitches across calls in a single session.
  • Beta = no SLA. Meta can rate-limit, change schemas, or pause access. Production-critical flows still need a fallback path.

Acceptable trade-offs for what you get. The community MCPs like pipeboard-co/meta-ads-mcp and gomarble-ai/facebook-ads-mcp-server are still useful as fallbacks or for self-hosted setups, but the official one is the path of least resistance.

Wiring Claude + the Meta Ads MCP: the setup

Here’s the working setup, end-to-end, in five steps. Total time: under an hour if you’re starting from scratch. I’m assuming you already have Claude Desktop or Claude Code installed and a Meta Business account with at least one ad account you own.

Step 1 — Confirm Meta Business access (2 minutes)

Log into business.facebook.com, confirm you’re an admin (not just an analyst) on the ad account you want to wire. The MCP inherits whatever permissions your Meta user has. If you’re an analyst-only user, read tools work but most write tools will silently fail.

If you’re managing client accounts via Business Manager, confirm the partnership permissions are at “Manage campaigns” level minimum.

Step 2 — Add the MCP to Claude (3 minutes)

In Claude Desktop, open Settings → Connectors → Add MCP Server. Use:

URL: https://mcp.facebook.com/ads
Type: HTTP (remote)
Auth: OAuth

Click Authorize. Meta’s OAuth flow opens in your browser — same login you’d use to access Ads Manager. Pick the Business account, confirm scopes, return to Claude.

In Claude Code, the equivalent goes in ~/.config/claude-code/mcp_servers.json (or your project’s .claude/mcp.json for project-scoped):

{
  "mcpServers": {
    "meta-ads": {
      "url": "https://mcp.facebook.com/ads",
      "type": "http",
      "auth": "oauth"
    }
  }
}

Restart Claude Code. Run /mcp to confirm the server shows green.

Step 3 — First test: pull a 7-day spend report (2 minutes)

In a new Claude session, type:

“Pull total Meta Ads spend across all my ad accounts for the last 7 days. Break down by account, then by campaign within the top account. Format as a markdown table.”

If the OAuth and permissions are right, you’ll get a clean table back in 30-60 seconds. If you get a permissions error, return to Step 1. If you get a rate limit error during beta, wait 60 seconds and retry — the beta has aggressive rate limits.

Step 4 — Build a daily check skill (20-30 minutes)

A “skill” in Claude Code is a Markdown file in .claude/skills/ that defines a repeatable workflow Claude can invoke. Mine for daily Meta Ads checks lives at .claude/skills/meta-ads-daily-check.md:

---
name: meta-ads-daily-check
description: Daily health check across all Meta Ads accounts. Flags CPL spikes, frequency saturation, dead creatives.
mcp_servers: [meta-ads]
---

# Meta Ads Daily Check

Run every weekday morning. Output a single markdown report.

## Steps

1. Pull yesterday's spend, CPL, and CTR for every active campaign across all ad accounts I own.
2. Compare against the trailing 7-day average for each campaign.
3. Flag any campaign where:
   - CPL is +25% vs trailing 7-day average
   - Frequency is >3.5 on any active ad
   - CTR dropped >30% vs trailing 7-day average
4. For each flagged campaign, pull the top 3 active ads and check their frequency / CPL individually.
5. Output a markdown report with three sections:
   - 🟢 Healthy (no flags)
   - 🟡 Watch (1 flag)
   - 🔴 Action needed (2+ flags or any frequency >4)
6. For each 🔴, draft a one-paragraph proposed action (pause, refresh, budget shift). DO NOT execute. I approve manually.

## Voice
Founder-to-founder. No corporate hedging. If a campaign is dying, say "this is dying" — don't say "showing concerning trends."

Invoke it with /skill meta-ads-daily-check. The output is a report, not an action. The “DO NOT execute” line is load-bearing — covered next section.

Step 5 — Set guardrails (5 minutes)

In your project CLAUDE.md (or global ~/.claude/CLAUDE.md), add a “Meta Ads guardrails” section. Mine reads:

## Meta Ads guardrails

- NEVER create new campaigns without explicit approval per campaign.
- NEVER shift budget more than $200/day in a single action without confirming.
- NEVER pause an ad set spending >$500/day without a written rationale and confirmation.
- ALWAYS show the diff before executing any write action.
- ALWAYS read the campaign's last 7 days of insights before proposing any change.
- Read-only tools (insights, structure, signal diagnostics): no approval needed.

Claude reads CLAUDE.md on every session. These guardrails carry across every interaction with the MCP. They’re the difference between “Claude is a junior buyer who shows me the proposed change” and “Claude is a Junior buyer who just deleted a campaign.”

The full pre-read on writing these briefs is how to write a CLAUDE.md file.

What you should and shouldn’t delegate to Claude

I’ve been running the official MCP for 8 days as of writing — not enough to claim long-run results. Long enough to map the delegation matrix.

TaskDelegate fullyPropose, you approveNever delegate
Pull daily / weekly metrics
Flag CPL spikes / frequency saturation
Generate creative variants (copy + brief)
Draft replacement angles for fatigued creative
Pause ads with frequency >4 + CPL above avg
Shift budget within an existing campaign (under $200/day move)
Create new ad sets (existing campaign, existing audience)
Create new campaigns✅ (for now)
Approve creative for publish
Audience expansion decisions (new lookalikes, new countries)
Scaling decisions over $200/day single move
Compliance review (TCPA, Modernize gates, FR Hamon law)

The “human-in-the-loop” rule is unbreakable for me right now: Claude proposes, I approve. Every write action shows a diff first. Every creative goes through manual compliance check before publish — TCPA on US lead-gen accounts is too expensive to delegate. Modernize compliance gates on bathroom remodeling are too narrow.

The category I’d most warn against delegating: scaling decisions. The math isn’t where it looks. A campaign showing 4x ROAS at $100/day might collapse to 1.2x ROAS at $1,000/day because Meta surfaces lower-intent audiences as you bid up. That’s a judgment call, not a metrics call. Claude can flag the opportunity. The decision is yours.

The category I most under-delegated for the first week: reporting. I was still manually pulling weekly reports for our agency clients on Monday mornings. That’s now a Claude job — same data, 8 minutes vs 90 minutes, formatted exactly how I like it. The work I freed up went into more creative briefs, which is the actual leverage.

If you’ve read the 30-day Claude Code playbook, this is the same delegation logic applied to ad ops specifically.

Real numbers: what 8 days running this stack gave me

Honest disclaimer: I’ve been on the official Meta Ads MCP for 8 days. That’s a sample, not a verdict. Eight days of qualitative observations:

  • Time on Monday morning reporting: 90 min → 12 min. Replicable across any agency that bills by retainer and reviews accounts weekly.
  • Time on daily account checks: 35-45 min per day → 8-15 min per day. Across 5 weekdays that’s 2-2.5 hours per week back.
  • Creative brief production: the bottleneck shifted from “I haven’t written it” to “I have 8 briefs queued and the designer is the bottleneck.” That’s a different problem and a better one.
  • CPL spike detection latency: roughly 4-6 hours faster than my previous manual cadence. That matters — a CPL spike caught at 9am vs 3pm is half a day of bad spend prevented.
  • What didn’t work yet: the daily check skill flagged 4 false positives in week one. CTR drops were within normal variance for two of them. I tightened the threshold from -25% to -35% and added a “compare against same-day-of-week” rule. False positive rate dropped to 1 per week.

What you can reasonably expect at month 1 / 3 / 6:

  • Month 1: 4-6 hours/week back on reporting and daily checks. Maybe one CPL spike caught earlier than you’d otherwise have caught it. Setup pays for itself.
  • Month 3: the delegation matrix above is calibrated to your specific accounts. Claude handles 60-70% of routine optimization work. You spend the freed time on creative angles and strategic decisions.
  • Month 6: if Meta extends the MCP capabilities (creative generation, full audience builder, attribution modeling) the delegation matrix expands further. If they don’t, you’ve still bought yourself 6-10 hours/week which is the difference between adding another vertical or not.

I’m in week 2 of this stack. The framework is what I’d ship today. The 6-month numbers are forward projections I’ll update on the dashboard.

The verdict

The Meta Ads MCP isn’t going to make a bad operator into a good one. It’s going to make a good operator into a faster one — which, in 2026 ad ops, is the only thing that matters. Creative iteration speed is the bottleneck. Anything that compresses the diagnose-iterate-deploy loop wins. The official MCP compresses it.

If you’re under $5K/month in spend, skip this for now. Ship more creative manually until your data is loud enough to act on daily. If you’re over $5K/month, set up the MCP this week. The setup cost is one hour. The recurring time saved is 4-10 hours per week. The math doesn’t have a counterargument.

Two next reads. If you don’t already have a Claude Code workflow, start with the 30-day playbook — the MCP doesn’t help if your base layer is broken. If you’re trying to figure out what to build with MCPs broadly, the no-engineering MCP server guide and MCP explained for founders are the prerequisites. The agency-side bet I’m making across all of this is in I run $10M of Meta Ads — here’s the AI bet, and the bigger thesis on AI-augmented operators is in the AI agent monetization playbook.

The next $10M I spend on Meta Ads goes through this stack. If you’re spending the next $50K through your own, you’d be slow not to.

FAQ

What is the Meta Ads MCP?

The Meta Ads MCP is Meta's official Model Context Protocol server, released April 29, 2026 in open beta at mcp.facebook.com/ads. It exposes 29 tools that let Claude (and other MCP-compatible AI assistants) read and write your Meta Ads campaigns, ad sets, ads, creatives, audiences, catalogs, and signal diagnostics through natural language. No Developer App, no API token, no system user — just a one-click OAuth login through the same Meta Business screen you already use.

Can the Meta Ads MCP create campaigns autonomously?

Yes, technically. It has full write access to the Marketing API surface — campaigns, ad sets, ads, budgets, audiences, creatives. Whether you should let it run unsupervised is a different question. I let Claude propose every change and approve any spend decision over $200/day myself. Below that threshold, it can pause underperformers, rotate creatives, and shift budget within an existing campaign. New campaign creation always goes through me.

How much Meta Ads budget do I need before this stack makes sense?

$5K/month minimum. Below that, the data is too noisy to act on daily and you're better off batching weekly reviews manually. Between $5K and $50K/month, the MCP saves you 4-6 hours a week of dashboard babysitting. Above $50K/month, it pays for itself in a single avoided CPL spike. The agency side ($10M+) is a different stack — humans-in-the-loop on every creative decision, but Claude handles diagnostics, alerts, and reporting.

Does the Meta Ads MCP work with iOS 17+ tracking restrictions?

The MCP itself is independent of tracking — it talks to the Marketing API which sees whatever data Meta has. The actual tracking question is whether you've set up the Meta Conversions API server-side. In 2026, Pixel-only setups miss 50-70% of conversions on iOS. CAPI is non-negotiable. The MCP will happily report on broken tracking — your job is to fix the tracking before you point Claude at it.

What's the difference between this MCP and Meta's own AI tools (Advantage+, Meta AI Sandbox)?

Advantage+ optimizes inside a campaign you already created. The Meta Ads MCP lets you reason across campaigns, accounts, and verticals from outside the dashboard. Advantage+ won't tell you 'your bathroom remodeling vertical CPL is up 40% this week, the safety angle is fatigued, here are 5 new creative angles to test.' Claude + the MCP will. Different tools, different jobs.

How long does the setup take end-to-end?

Five to seven minutes for the official MCP. Add another 20-30 minutes if you want to wire a custom skill that runs daily checks on your behalf. Total time investment: under an hour for the working stack. Compared to the old Developer App approval flow (25+ minutes plus a 3-day review), this is a different category of friction.