how i automated my entire meta ads management with claude (the exact system)

last week i ran meta ads for an AC installer and opened ads manager twice. both times just to look.
the account spent 575 euros and brought back 97 leads. that's 5.93 a lead in a market where everyone else pays around 12.
claude did the launching, the watching, and the killing. i made one decision all week: which ads go live.
here's the whole system, word for word:
> claude wired into the ad account through the autoady MCP
> a folder of skill files that hold my rules: structure, voice, copy, kills
> one prompt that launches twelve fresh ads every monday, paused
> a schedule that runs the whole loop while i sleep
> a friday report that tells me what won and what died
a year ago, this was a person's whole job.
they checked numbers every morning. they killed losers late, rebuilt campaigns by hand, then wrote the client report on sunday night.
by the end of this article you'll be able to:
- wire claude into the account in two minutes
- turn your rules into skill files
- launch a week of ads from one prompt
- put the loop on a schedule
- let the kill rules watch the account every day
- get the friday report without writing it

[ start with the wiring ] ↓↓↓
1. why this works now
the old ads loop leaked time in three places.
kills came a week late because the buyer worked from exports. fatigue first showed up in CPL two weeks after it started, when the same people had already seen the ad too often.
then launch day ate half a day. the buyer named every ad, built every ad set, pasted every line of copy, checked every budget, and tested less because each new batch meant doing all of that again.
the autoady MCP changed the loop, so claude now reads spend, leads, CPL, CTR, and frequency for each live ad. it reads them from the account as they move, then writes campaigns, creatives, and copy back through the same link.
the read and the write happen in the same chat. claude does not wait for you to clean an export, hunt down an ad id, or copy a result into another sheet before it can act.
your job gets smaller because you only choose which ideas deserve a test, look over the work, and make the go call.
keep that call with you.
[ wire it in next ] ↓↓↓
2. the two minute setup
open claude and go to settings → connectors → add custom connector.
paste this url:
https://www.autoady.io/api/mcp
sign in. done.
autoady is already wired to your meta account, so claude can read and write once the connector is live.
the creative supply comes from the render line i shared in the last article. it makes forty concepts overnight through gpt-image-2 and nano banana, at around forty cents a render, then i cull them to the best twelve.
you could render two hundred and keep twenty. the math barely changes because the weak ideas cost almost nothing to throw away.
today starts after that folder exists. the ads are ready, named by angle, and waiting for the weekly loop.
[ now give claude your rules ] ↓↓↓
3. teach it your rules as skill files
tell claude "launch my ads" with no rules and it will invent an account shape.
next monday it may invent another one, and three months later the account reads like four people ran it and none of them met.
so you put your rules in small markdown files. claude reads them before it touches the account, like a new buyer learning your desk, except you only train this buyer once.
my folder holds four files.
campaign-structure.md is the account shape:
campaigns:
testing: one campaign
scaling: one campaign
testing:
CBO: off
ad_sets: one ad set per angle, never per format
names: "[angle]-[format]-[date]"
test_budget: about 3x the market CPL per ad set each day, no more
entry_status: every new ad enters testing PAUSED
scaling:
entry_rule: beat the 30-day average CPL after more than 50 euros of spend
account_rules:
audiences: broad
advantage_plus_changes: off
meta_enhancements: always off
put the angle first in every name. when you look back next month, you can group the ads by the idea they tested before you care about the format or date.
the scaling gate also stops a lucky early lead from moving an ad too soon. claude waits for the rule in the file, then shows you what cleared it.
thresholds.md holds the rules you wrote while calm, before an ad starts bleeding late at night:
kill_rules:
- kill any ad past 2x target CPL once it has spent 3x target CPL with no lead
fatigue_flags:
- flag any ad with frequency past 3.5
- flag any ad whose 7-day CTR sits 25 percent under its own 30-day average while frequency has crossed 2.5
budget_rules:
- never raise a winner's budget more than 20 percent in a day
- leave winners alone
voice.md tells claude how the brand talks:
voice:
tone: plain, direct, calm
customer_language: use the exact words buyers use in reviews and comments
headlines: write every headline from those customer words
never_use:
- hype
- vague praise
- claims with no proof
voice.md stops each new batch from sounding like a new writer took over. when the customer words change, you edit this file and the next set of headlines follows it.
copy-rules.md keeps every ad on one thought:
copy:
first_line: speak to the buyer in their words
proof: use a number
focus: one idea per ad
with target CPL at 12, the kill line stops being a feeling because 36 euros with no lead means claude kills the ad, and anything past 24 a lead goes too.
your first thresholds file will be wrong, and mine took three edits before the budget rule matched the account's real CPL range.
write it, watch it for a week, then fix the lines that fire too early or too late.

[ the files are ready, so launch ] ↓↓↓
4. the launch prompt
monday can now start with one message.
copy this:
task:
read campaign-structure.md, thresholds.md, voice.md and copy-rules.md
the ads folder has 12 finished creatives named by angle
write primary text and headlines for each from voice.md and copy-rules.md
then through the autoady MCP build my testing campaign:
one ad set per angle
names and budgets by the rules
every ad PAUSED
give me a table when done:
ad set
ad name
angle
budget
status
do not turn anything on
claude comes back with three ad sets, four ads in each, all copy attached and every ad paused, plus the table you asked for.
read the rows, spot check two or three ads in ads manager, then turn on the ones that deserve to live.
nothing turns itself on. ever.
meta's enhancements stay off too because ads that ship through the API keep auto-crop, added music, and AI headline rewrites off.
my eye has picked the wrong ad more than once.
in the same AC market, one batch had polished product-shot statics that sat around the market rate. a cost-math static used a headline pulled from a one-star review about a cheap unit costing double, and it pulled leads at 6.60.
a rent-reframe angle on another service account did 6.61% CTR and 1.21 a lead across 175 leads. i almost cut it before launch.
my eye picked wrong twice. the batch caught both because it gave the odd ideas a fair test.
volume beats taste during testing. taste comes back when you make the go call, so read the table and leave the rest paused.
[ turn one launch into a weekly job ] ↓↓↓
5. put the whole loop on a schedule
scheduled tasks turn prompts into staff.
each task reads the same files, so the monday launch and the daily kill check do not argue with each other. when you change a rule, the next scheduled run picks it up.
the monday batch runs this:
schedule: monday at 6am
task: |
read my four rule files and last-week.md
pull last week from the testing campaign through the autoady MCP:
spend
leads
CPL
CTR
frequency per ad
save it as last-week.md
mark which angles beat the 30-day average CPL and which died
brief 12 new concepts leaning toward the winners in fresh formats
drop any format-angle pair that died twice
render overnight, gate them, write the copy, and load the survivors PAUSED
leave the final table in monday-report.md
claude starts from what the account learned, keeps the angles that paid, and changes the way those angles show up. it also drops a format-angle pair after the pair dies twice, so the folder does not keep asking for the same failed ad.
next comes the daily watchdog, a shorter one:
schedule: every day at 7am
task: |
read thresholds.md
check every live ad through the autoady MCP
kill each ad that crossed a kill line
flag each ad that crossed a fatigue line
queue replacement renders from the same angle
load every replacement PAUSED
write all actions and flags to daily-watch.md
you wake up after claude has killed the ad that crossed your line and queued its replacements from the same angle, with every replacement paused for your go call.
the friday report closes the loop:
schedule: friday at 5pm
task: |
pull this week's ad results through the autoady MCP
write friday-report.md with:
spend
leads
CPL by angle
what claude killed and why
what i should watch next week
make a clean client version from the same file
the client gets a clean version of the same file, so you can stop writing that report on sunday night.
the daily check earns its slot because of how winners die. they rarely die by CPL first.
the same people see the ad too often. frequency crosses 3.5, CTR sags a week later, then CPL follows a week after that.
the daily check catches frequency moving. the old weekly export catches CPL after the damage, so run the watchdog every morning.

[ now check what the week costs ] ↓↓↓
6. unit economics
the week on that account looks like this:
- test budget: about 80 euros a day
- renders: about 5 euros for the batch
- my time: twenty minutes on monday
- media buyer salary: zero
read line four again.
the account went from eight creative tests a month to over forty on the same budget.
testing stopped being rationed when launching stopped taking half a day, and the budget went into more live ideas instead.
[ build it in this order ] ↓↓↓
7. your first three weeks
week 1 stays in your hands.
connect the account. write campaign-structure.md and thresholds.md. run the launch prompt yourself, read the table, then turn the ads on yourself.
learn the flow before you hand any part of it to a schedule, with ads manager beside the table so you can check that the names, budgets, copy, and paused state match the files.
if something is wrong, fix the file before you run the prompt again because chat corrections fade from view while the markdown rule stays in the folder.
in week 2, add voice.md and copy-rules.md. schedule the monday batch and the daily watchdog, then read every action claude takes.
when a threshold fires wrong, change the file that day. do not teach around a bad rule in chat and hope claude remembers it later.
from week 3 on, schedule the friday report. use the same files and schedules on the second account after you have watched the first one work.
each kill gives you a reason to change a line or leave it alone. put that lesson in the file before the next monday run.
[ zoom out once ] ↓↓↓
the bigger picture
for twenty years, running ads meant paying for attention.
someone watched dashboards every morning.
attention just became files and schedules.
the operators who get this test more, kill faster, and pay nothing for the watching.
one connector, four files, three schedules. that's the whole machine.
autoady has a free plan, one ad account, no card
start free at autoady.io
Related articles

the full AI meta ads creative blueprint (fable 5 + meta API + higgsfield MCP)
this is the internal document we use to run creative production across every client account. i'm publishing the full workflow because the value is in execution, not secrecy. reading this without impl…

how i write KILLER ad copy with sonnet 5 + meta MCP
most people write ad copy by staring at a blank screen and guessing what might work.

how i cook $100M+ meta ads offers with sonnet 5
the number one variable in your meta ads account is not the creative. it's not the targeting. it's not the budget.