// learn·Learn how we build →
all posts
Meta Ads
Facebook Ads
AI Marketing
Claude
MCP
Performance Marketing
7 min read

Auditing Meta Ads with AI: An Honest Claude + MCP Walkthrough

What happens when you point Claude at a live Meta Ads account through the official Meta Ads MCP? In a recent session we ran an honest, unscripted walkthrough — pulling campaign data, building a creative-fatigue dashboard, and testing whether it can actually create campaigns. Here's what held up, what didn't, and how to use it without getting burned.

Setup is genuinely a two-minute job

Unlike the Google Ads MCP (which you self-host), Meta provides a single hosted URL — mcp.facebook.com/ads. You add it as a connector in Claude, log in with your Meta Business Manager account, and you're connected. That's it. For a crucial safety step, set your write/delete tools to "Needs Approval" so nothing changes in your account without your explicit confirmation.

Pulling campaign data — and an honest miss

We started simple: "show me the campaigns running since January for app events only." Claude pulled the campaigns — but it wasn't 100% accurate. It missed one app-event campaign because it filtered too aggressively on the start date. We caught it, pushed back, and it corrected. That's the recurring theme of the whole session: the data access is effortless, but you have to prompt precisely and verify.

Creative fatigue: a real framework, built live

Creative fatigue is when the same creative runs too long, frequency climbs, CPM rises and performance decays — which is why serious advertisers ship dozens or hundreds of new ads a month. We asked Claude to build a framework to catch fatigue early. It suggested watching frequency, CTR trend, and CPM trend with reach. Good instincts — but the thresholds it first gave were wrong, and that's the instructive bit.

The frequency lesson (where experience matters)

Claude initially flagged a 7-day rolling frequency and called lifetime frequency of 5–7 the "refresh" zone. Both needed correction:

  • 7-day rolling frequency is misleading — it only counts reach inside that window, so it's always low. Cumulative/lifetime frequency is the real fatigue signal.
  • 5–7 is brand / reach territory, not performance. For performance campaigns, frequency above ~2.5 is already the red zone, and above ~3.5 almost always needs a refresh.

When we pushed back with the actual performance-marketing thresholds, Claude agreed, revised the rubric, and applied it correctly from then on. The takeaway isn't "the AI was wrong" — it's that once you give it the right framework, it executes it consistently, every time, without you rebuilding the dashboard.

Maturity gates and the right success metric

Two more refinements that made the audit trustworthy:

  • Ignore immature ads. We set a maturity gate: under 10,000 lifetime impressions, don't score the ad — it's too early to infer anything.
  • Optimise on cost-per-result, not CTR. CTR can soften while your actual cost-per-result stays healthy. We made cost-per-result the primary metric so the model doesn't recommend killing a creative that's still profitable.

The end result was a dashboard that flags each ad as refresh, retire, or keep — pulling in minutes what would normally need a Business Manager export plus a tech team to assemble.

Can it create campaigns? Mostly — with one manual step

Unlike Google's read-only MCP, the Meta MCP can write. We tested creating a new campaign and it worked. The main limitation is image/creative uploads, which are still manual — creatives are pulled from your Business Manager media library rather than uploaded by the agent. So campaign creation today is best described as "semi-manual": structure and setup via the MCP, creative handled in the platform.

Making it work for a team

A fair question from the session: this is powerful solo, but how does a team use it? The answer is workflows. Push the analysis to a shared output — a Google Sheet, a repo, or an HTML dashboard hosted internally — so the whole team sees the same numbers. A little workflow design turns a solo capability into an org-wide one.

The real unlock: turn your judgement into a skill

Throughout the session, the value wasn't the raw AI output — it was the judgement calls layered on top ("is 5 the right frequency threshold or is it 3?"). The natural next step is to encode that judgement into a reusable Claude skill: your frameworks, your rubrics, your edge cases. Roughly 90% of an audit framework is common; the last 10% is business-specific. Freeze the rubric once, and the agent runs your audit — for you, or across your entire organisation.

Watch the honest walkthrough

The full session — setup, the campaign-data miss, the frequency back-and-forth, and the campaign-creation test — is on our YouTube. No edits, no magic-wand claims.

The takeaway

The Meta Ads MCP makes account data effortless to reach — but it's a force-multiplier, not a rubber stamp. Bring the framework, verify the output, and keep write tools on "Needs Approval." If you want to set this up and build your own audit skill, that's exactly what we cover in Claude Code for Marketers.

FAQ

How do I connect the Meta Ads MCP?

Add Meta's hosted URL (mcp.facebook.com/ads) as a connector in Claude and log in with your Business Manager account — it takes about two minutes.

Can Claude create Meta campaigns?

Yes — unlike Google's read-only MCP, the Meta MCP can create and edit campaigns. Image and creative uploads are still manual (pulled from your media library). Keep write tools on 'Needs Approval.'

What ad frequency signals creative fatigue?

For performance campaigns, a lifetime frequency above ~2.5 is the red zone and above ~3.5 usually needs a refresh. Frequency of 5–7 is brand/reach territory, not performance.

Upcoming Webinar