Let a Claude /loop
Run Your Meta Ads

Let a Claude /loop Run Your Meta Ads

Build complex Meta campaigns in minutes, not hours in Business Manager – then put them on a loop that optimizes exactly as far as you allow.

The Campaign You Never
Had Time to Build

Every marketer I know carries the same quiet backlog: the campaign structure they know they should be running – the clean creative test, the parallel audience hypothesis, the proper naming so the data stays legible – and never build. Not because it's hard to design. Because setting it up means hours of clicking through Meta's slow, buggy Business Manager, and there's always something more urgent than fighting a web interface.

That bottleneck just disappeared. Meta ships an official Meta Ads MCP now – a connector that puts your ad account inside an agent session. You describe the campaign; the agent builds it.

Clicking it together
Hours in Business Manager
  • ✗ Every ad set built screen by screen
  • ✗ Complex tests postponed forever
  • ✗ Beginners burn money while learning
  • ✗ Naming and tracking left for later
Describing it
Minutes in one conversation
  • ✓ Full structure from one description
  • ✓ The dream setup ships the same day
  • ✓ A far gentler on-ramp for newcomers
  • ✓ Names and tracking wired from the start

This unlocks two very different groups at once. Experienced marketers finally get to run the complex setups they always dreamed of but never had the hours for. And entry-level marketers get a much less steep learning curve – the agent knows the objectives, the budget mechanics, the naming discipline – so the learning period burns a lot less money.

If you've followed this series, you know where we stand: the funnel is built and the tracking is wired. This is the week the traffic turns on – and the week the same agent that built everything else starts running the ads. Interactively first. Then, once you trust it, on a loop.

Describe the Campaign,
Get the Campaign

The setup is almost suspiciously simple. The MCP is hosted by Meta itself – you add it to Claude or Codex as a connector, log in with your normal Meta account in the browser, and you're connected. No developer app, no API token to manage. One detail worth getting right: Meta offers three permission tiers on the consent screen – take read/write, decline the financial tier. Building campaigns never requires access to payment methods.

Here's what that looks like in practice. Running the ads for Bridesmaid, the wedding-planning startup this series builds in the open, I gave the agent one instruction: create a version-two campaign with a freshly-engaged audience, twenty euros a day, in parallel to the first one – with the current best performer as a control alongside three new ads.

What came back, named and wired
📦 BM | Conversions | ABO | 2026-06-10 | v2
└ 🎯 BM | UK | Women | 25-34 | Newly-Engaged | IG only | v2 · €20/day
├ BM | Story | Yes-Easy-Part | v2 (control)
├ BM | Story | Dont-Call-Venue | v2
├ BM | Story | Stop-Figuring | v2
└ BM | Story | Not-A-Checklist | v2

The real challenger campaign from our account – one prompt, full structure: campaign, ad set, four ads, every name following the convention, tracking parameters on every link.

Bridesmaid story ad – Yes-Easy-Part
Yes-Easy-Part · control
Bridesmaid story ad – Dont-Call-Venue
Dont-Call-Venue
Bridesmaid story ad – Stop-Figuring
Stop-Figuring
Bridesmaid story ad – Not-A-Checklist
Not-A-Checklist

The four story creatives for the v2 ad set – one control, three fresh angles, all written and generated in the same session.

Minutes later the structure existed: the campaign, the ad set with budget and conversion event, four ads – each on its own creative angle, with the tracking parameters from last week's setup baked into every link. The three new creatives? Claude wrote the angles and generated the images with an image model, in the same conversation. And critically: everything is created paused. Nothing spends a cent until a human flips it live.

Honesty about the edges: the MCP builds the skeleton – structure, budgets, tracking – and reads performance, but a few finishing touches still live in the Ads Manager UI, like picking detailed-targeting segments and some creative-polish fields. Our division of labor is simple: the agent drives the structure, and once per campaign I spend five minutes in the UI on the finish. If you want the strategy underneath the structure, the Growth Codex chapters on campaign structure and ad creatives are the frameworks this build encodes.

Help me set up a Meta ads campaign through Meta's official Ads MCP, step by step. First ask which agent I'm using (Claude or Codex), whether the MCP is already connected, and what I'm promoting – my product, landing page, target customer, daily budget, and the conversion event I track. Walk me through connecting the MCP with the narrowest permissions that still allow campaign creation (read/write, not the financial tier). Then help me design the structure before creating anything: campaign objective, one ad set with a clear audience, and two to four ads with distinct creative angles – and help me write those angles and generate the creatives with the image model of my choice. Use a strict naming convention with my project's prefix on every campaign, ad set and ad, and put tracking parameters on every link. Create everything in paused state, show me the full structure for review, and let me launch it myself.

Optimize on Data
Meta Can't See

Setup is the convenience. This is the unfair advantage. When the same agent that runs your ads also holds your analytics stack, every performance review reads three sources at once: Meta's delivery numbers, your product analytics, and your own database – the conversion truth we wired last week. Meta isn't blind to conversions – it does get signup data back. But only for the roughly 40% of people who consent to tracking, and at a budget this small that consented sliver is far too thin to steer on. So in practice Meta leans on what it measures cleanly: the click. Your database carries no such gap – it sees every signup, consented or not, and what each one did next.

Our first campaign made the difference brutally concrete. Two ads, two stories:

Meta said

The second ad had the best click-rate in the account and the cheapest clicks. On the surface: the winner.

The database said

Zero signups. Ever. Every single conversion belonged to the other ad – the one with the worse click-rate.

The call

Paused at the €100 review. The full budget now concentrates on the ad that actually converts.

A Claude Code review session – the agent's ranked assessment and spend dashboard on the left, the Meta Ads journal's tri-source reconciliation (Meta's numbers, the database, the call) open on the right

The actual review session – the agent's ranked read on the left, the Meta Ads journal reconciling Meta's numbers, the database and the call on the right.

Clicks are not customers. If we had optimized on Meta's surface metrics, we would have scaled the pretty ad that converts nobody. The database settled it – the same reconciling-truth pattern from the analytics setup, now making spend decisions.

And the own-data review goes one level deeper than which ad wins. Our database tracks what signups do after signing up – and it showed that most paid signups never sent a single message in the product. That's not an ad problem; that's an onboarding problem, and no amount of creative testing fixes it. Knowing which problem you actually have is exactly the discipline the Growth Codex calls what to improve – find the bottleneck before pouring more in at the top.

Help me review my Meta ads against my own data, not just Meta's. First ask what I have available: Meta's numbers (through the Ads MCP or an export), my product analytics, and my own database of signups. Then build the review around three questions: which ad actually produced signups in my database (not just clicks), what those signups did after signing up (did they activate or go quiet), and what my landing-page data says about where people drop off. Flag any ad with strong click metrics but zero conversions in my database, and tell me what you'd pause, what you'd scale, and which problems aren't ad problems at all. Walk me through your reasoning so I can challenge it.

Put It on a Loop,
Hold the Leash

First, what the loop actually is. In Claude Code Desktop, /loopis a built-in command: you hand it a prompt and a cadence – /loop 12h “run my ad review”– and it re-runs that prompt on its own, waking the session on the schedule you set (give it no interval and it paces itself). The session stays alive between runs, so every wake-up still carries the context of the last. That's the whole trick: a prompt that re-fires on a schedule and remembers.

And a repeatable review is exactly the kind of prompt /loopwants. Once you've run that review interactively a few times, it has a shape – pull the numbers, reconcile the sources, judge each ad, propose the one or two changes worth making. Hand that shape to the loop and it becomes self-prompting: it wakes on your cadence, runs the review, prompts itself about what to do better, and logs everything – so every run starts smarter than the last.

1
Wake on schedule

Once or twice a day – Claude Code Desktop's /loop wakes the session on its own.

2
Pull all three sources

Meta's delivery numbers, your product analytics, your database of signups.

3
Reconcile and judge

Cost per real signup per ad – expecting the sources to disagree, trusting the database.

4
Propose – or act, within your limits

Pause this, scale that, draft a fresh creative. How far it goes is your call.

5
Log the run to a journal

Spend pacing, per-ad signal, the decision – the next run reads the full history.

The part that makes this safe to sleep on is the leash. You decide how much freedom the loop gets, on a dial: only suggest changes · update campaign settings · manage budgets within a cap · create new creatives for your approval. You place the checkpoints where decisions need you, and your guidance lives in the prompt – every correction you make becomes a rule for the next run.

Ours runs conservatively, and the rails are non-negotiable: every object the agent creates starts paused, it only ever touches campaigns it can identify by name as ours, bulk operations are forbidden, and any money change waits for an explicit yes – shown to me with the exact object and amount first. Self-improving describes the proposals, never the spending. This was born as the reporting loop in the analytics setup; now it carries the whole operation.

Help me put my Meta ads review on a schedule, with autonomy limits I choose. First ask how often it should run (once or twice a day is plenty), and exactly how much freedom I want to give you, as a dial: only suggest changes, update campaign settings, manage budgets within a cap I set, or create new creatives for my approval. Then set it up as a Claude Code /loop – a recurring prompt on the cadence I chose – where each run pulls performance from the ad platform, my analytics and my database, reconciles them, proposes the one or two changes worth making, and appends everything to a journal file so the next run starts from the full history. Hard rules to build in: never act outside the limits I set, only touch campaigns that carry my project's naming prefix, never run bulk operations, and any change that moves money waits for my explicit yes with the exact object and amount named.

What the Loop Found
in Week One

So what did the loop actually surface, reviewing day after day? On a few hundred euros of spend, blended cost per signup is sitting around €22 over the last ten days – four to five times our ~€5 target. The useful part isn't that number; it's that the loop traced exactly where the money leaks. Three findings, straight from the journal – early-stage and small-sample, so read them as directional signals, not settled science:

Find 1 · The fake winner

Of four v1 creatives, the two with the best click metrics signed up nobody. Six-Questions (1.98% CTR, €0.93 CPC) and Vendor-Email (1.78%, €1.17): zero signups, both paused. The only converter was the worston clicks – Yes-Easy-Part (1.58% CTR, €1.44 CPC), carrying all 9 signups at ~€20 each. Optimizing on click-rate would have killed the one ad that works.

Find 2 · The ghost problem

Of 26 signups, 15 (58%) never sent a single message; 42% activated. And it's bimodal – of the 11 who do engage, 6 went past 15 messages. People who start go deep; most just never start. Ad-attributed signups activate worse (36%) than organic (47%).

Find 3 · The signup leak

Over 14 days, 51 people began signup and only 24 finished – a 53% drop at the signup step itself. Every signup today is email-only; the working hypothesis is that Google and Apple one-tap sign-in cuts that friction. (One Jun 10–11 outage turned 10 starts into 0 completions before it self-recovered.)

A Claude Code review session – charts for the three findings (the fake winner, the ghost problem, the signup leak) on the left, the Meta Ads journal's standing open problems on the right

One review session, three leaks – the agent's charts on the left, the journal's standing open problems on the right.

Notice what the three findings share: the top of the funnel is fine. Clicks are cheap, the creatives land, the traffic shows up. Every leak sits belowthe click – in the signup form, in the first message, in activation. Which is the whole argument for reviewing on your own data: Meta can only optimize toward the click, and the click was never the problem.

That's the shape of the week. The MCP takes the setup tax to zero – describe the campaign, get the campaign, everything paused until you say go. Your own data keeps the reviews honest – clicks are not customers, and your database is the judge. And the loop makes it relentless – on a schedule, on a journal, on a leash you set. None of it is locked to one tool: Claude or Codex, the pattern holds.

Every one of these findings is already an open workstream – and the most interesting one, that post-click drop-off, is where this series goes next. The same loop is now running A/B tests through Claude Code and PostHog to lift those signup-completion and activation rates – and what those tests are teaching us is the next Captain's Insight.

Cheers,

Ben

Ready to Go Deeper?

Questions & Answers

Ben Sufiani, The Captain

Ben Sufiani

The Captain

Founder from Cologne with 15 years of startup experience across 9 ventures. After helping thousands master growth marketing, Ben learned vibe coding from scratch and launched CaptAIn within three months. He leads the Vibe Coding Cologne community, blending real founder experience with teaching clarity.