How to Run Your Meta Ads Structure With Claude (Prompts Included)

Most "AI for Meta ads" content stops at the connection — here is how to give Claude access to your ad account, the end. That is the easy part, and it is covered separately in connecting Claude to the Meta Ads CLI.
The hard part is knowing what to ask it. An account manager's job is not producing reports; it is making a small number of repeated decisions correctly and unemotionally. That is an unusually good fit for a model, because the failure mode of a human running this is emotion — the ad you like, the test you want to work, the underperformer you give one more day.
These are the four prompts we run. They map exactly onto the three-stage structure, and they only work if that structure exists first.
Table of Contents
- Before any of this works
- Prompt 1 — classify the account by stage
- Prompt 2 — the ±10% budget pass
- Prompt 3 — the promotion decision
- Prompt 4 — diagnose delivery before blaming creative
- The guardrails that matter
- What we still do by hand
Key Takeaways
| Prompt | Frequency | What it replaces |
|---|---|---|
| Stage classification | Weekly, or after any restructure | Guessing which ad sets are testing vs scaling |
| ±10% budget pass | Daily or every other day | The morning negotiation with yourself |
| Promotion decision | Weekly | Promoting on a good day |
| Delivery diagnosis | When something underperforms | Blaming creative by default |
Before any of this works
Two prerequisites, and skipping either makes the whole thing theatre.
The structure has to exist. If testing and scaling share a campaign with no spend limits, the numbers Claude reads are noise and its recommendations will be confident nonsense. Build the structure that fits your spend first.
Target CPA has to be a real number. Not a hope. Every prompt below is anchored to it. If you cannot state it from your margin, stop here and work it out — you have a bigger problem than campaign management.
Prompt 1 — classify the account by stage
Run this first, and after any restructure. It gives every later prompt a shared vocabulary.
You are auditing a Meta ads account that is supposed to run a three-stage
structure: TESTING, VALIDATION, SCALING.
Definitions:
- TESTING: ABO, small daily budget per ad set, 2-4 creatives per ad set,
unproven creative. Judged on whether it can hit target CPA at all.
- VALIDATION: CBO or ASC at roughly 20% of scaling budget, running at
scaling-level competition. Contains creative that beat target CPA in
testing and is now being checked against real competition.
- SCALING: simple CBO holding most of the budget. Contains only creative
that has already held performance in validation.
Here is the account export: [PASTE campaign / ad set / ad rows with
budget, spend, CPA, and campaign+ad set names]
Target CPA: [NUMBER]
For every ad set, output a table: ad set name | stage you infer | the
evidence you inferred it from | confidence (high/medium/low).
Then list separately:
1. Ad sets you could not confidently classify, and what you would need
to classify them.
2. Any ad set that appears to mix stages — unproven creative sitting in
a scaling campaign, or proven winners still sitting in testing.
3. Any scaling campaign with no spend limits protecting test ad sets
inside it.
Do not recommend changes yet. Classify only.
The third list is the one that earns its keep. Mixed-stage campaigns are the most common structural fault we find, and they are almost invisible when you are looking at the account every day.
Prompt 2 — the ±10% budget pass
The mechanical one. This is the rule from the testing rules post, applied without argument.
Apply our testing budget rule to the TESTING ad sets below.
The rule:
- Ad set beat target CPA over the window -> increase daily budget by 10%
- Ad set missed target CPA over the window -> decrease daily budget by 10%
- No other changes. Do not pause anything. Do not switch off individual
ads. Do not edit creative.
Target CPA: [NUMBER]
Window: [e.g. last 7 days]
Data: [PASTE ad set name, daily budget, spend, conversions, CPA]
Output a table: ad set | current daily budget | CPA in window | beat or
missed | new daily budget | exact % change applied.
Flag separately, without acting on them:
- Any ad set with too few conversions in the window for CPA to be
meaningful. Say how many it has and recommend no change.
- Any ad set whose budget has moved in the same direction for more than
5 consecutive passes, since that is a promotion or removal decision
rather than a budget nudge.
- Any ad set where a 10% change would cross a min or max spend limit.
That second flag is the one people miss when they automate this. An ad set that has taken +10% eleven days running is not a testing ad set any more — it has outgrown the stage, and it needs a promotion decision, not another nudge.
Prompt 3 — the promotion decision
Weekly. This is the judgement call, so the prompt is written to make the model argue against promotion rather than for it.
Decide what moves between stages this week.
Our promotion rules:
- TESTING -> VALIDATION: creative beat target CPA in testing. Duplicate
the ad across, rename it. One strong day does not qualify.
- VALIDATION -> SCALING: creative HELD performance against scaling-level
competition. Duplicate the ad into scaling, not the post ID.
- Nothing enters SCALING that has not already held in VALIDATION.
Data: [PASTE testing and validation ad sets: name, spend, conversions,
CPA, days running, daily CPA series if available]
Target CPA: [NUMBER]
For each candidate, give: recommendation (promote / hold / no action),
and the single strongest argument AGAINST your recommendation.
Reject any promotion that rests on fewer than [N] conversions or on a
single strong day. Say so explicitly when you reject on those grounds.
Do not recommend demotions or pauses in this pass.
Forcing the counter-argument is the part that changes the output. Without it you get a confident promotion list. With it you get "promote, but note this rests on three conversions across two days" — which is the sentence that stops you moving a fluke into your scaling campaign.
Prompt 4 — diagnose delivery before blaming creative
Run this when something underperforms, before commissioning new creative.
An ad set is underperforming. Work through non-creative causes first.
Meta's Estimated Action Rate has three inputs: bid, creative, and URL
destination. Most teams jump to creative. Check the other two first.
Ad set: [NAME]. Data: [PASTE spend, CPM, CTR, CPC, landing page views,
add to carts, conversions, CPA - current window vs prior window]
Landing page URL: [URL]
Target CPA: [NUMBER]
Work through in order and state a verdict on each:
1. DELIVERY - did CPM or impressions move? Is this an auction problem
rather than a creative problem?
2. CLICK - did CTR move? That is a creative or targeting signal.
3. DESTINATION - compare landing page views to clicks. A gap means
people are bouncing before the page renders, which points at page
speed or a broken page rather than creative.
4. ON-PAGE - compare add to carts (or leads) to landing page views. A
gap here means the page is not delivering what the ad promised.
5. STRUCTURE - is this ad set competing against proven creative in the
same campaign with no spend limits? If so, its CPA is not readable.
Only after all five: assess whether creative is the likely cause.
State what additional data you would need to raise confidence, and do
not speculate beyond what the numbers support.
Step 3 exists because we learned it expensively. We ran $400 of our own Meta traffic into landing pages where the booking widget silently never mounted inside the Facebook in-app browser. In Ads Manager that looked exactly like weak creative. It was not. The full teardown is here — it is the clearest example we have of the URL-destination input to EAR being invisible in the ad platform.
The guardrails that matter
Give it read access before write access, and keep it that way longer than feels necessary. Every prompt above outputs a decision for a human to apply. That is deliberate. Reviewing a table of proposed budget changes takes two minutes and catches the case where the model has misread the export.
Always paste target CPA. Without it the model will infer one from the data, which means it will grade the account against its own average and tell you things are fine.
Make it flag thin data instead of ruling on it. Left alone, a model will happily compute CPA from two conversions and present it with the same confidence as CPA from two hundred. Every prompt above has an explicit instruction to flag rather than rule.
Do not let it pause things. Meta's own allocation is better at that than either of you, which is the whole basis of never switching ads off.
Re-run classification after any restructure. Prompt 1 is cheap and everything downstream depends on it being current.
What we still do by hand
Creative direction. Angle selection. Deciding what the offer is. Judging whether a page delivers on the promise a human made in the ad.
Claude is good at the repeated, rule-bound decisions that humans get emotional about — which is most of daily account management, and almost none of the work that actually determines whether the account succeeds. The point of automating the first is having time for the second.
This is one part of how we run paid acquisition — the tracking layer underneath it is in connecting Meta ads to Shopify with Claude. Book a strategy call and we'll go through your account structure on the call.