What Makes A Good Facebook Ad: What I Check Before Anything Ships
One person, one awareness stage, one desire, one belief she already holds, one thing being tested. The five questions every ad in my clinic accounts answers before it is rendered, and the prompt that makes your agent ask them.
Every clinic owner I meet has the same ad in the account. A nice photo, the clinic name, the word radiant somewhere, a phone number. It ran for three weeks and produced a handful of leads nobody could reach. The ad was not ugly. It was aimed at nobody.
AI made this worse before it made it better. You can now render fifty ads in an afternoon, so people do, and the account fills with fifty versions of the same aimed-at-nobody ad. Speed without a reason is just more noise, faster. That idea comes from a video ads course I took, and it is the truest thing in it.
So this is the part I do before any ad exists. Not the rendering, not the copy. The thinking. Who is this one person, what does she already know, what does she actually want, what does she already believe, and what am I testing. Five questions. If an ad cannot answer them it does not get made, and if it did get made it does not get launched.
None of this is my invention. The five stages are Eugene Schwartz, the way I use them for stalled accounts is from Alex Hormozi, the hook rules are the ones my short-form system runs, and the compliance lines are what a medical practice has to obey. My version is the order, the gates, and the fact that the patient is the hero of every ad. The doctor is a hand, a handpiece, or a name line.
The three levels
You open Ads Manager, pick a nice photo, write what the clinic does, boost it, and judge it by whether you like it.
Every ad has a written brief: one person, her awareness stage, the dominant desire, the belief it opens on, the framework, the hook, and the one variable the test isolates. The brief passes a gate before the ad is rendered.
Your agent writes the brief from your research folder, grades the hooks, diagnoses which awareness stage the account is missing when results plateau, and queues the next test every week. You approve the slate, you never brainstorm at 9pm.
The mental model
Make it look good, describe the clinic, boost it, and hope the right people see it.
Pick one person. Place her on an awareness stage. Find the one desire and the one belief she already holds. Write the hook for her. Make it look like content, not an ad. Test one variable with the kill line already written.
| Role | Talks to you | Job |
|---|---|---|
| The person | First | One patient, one moment, one sentence she would say out loud |
| The stage | Second | Unaware, problem aware, solution aware, product aware, most aware |
| The desire and the belief | Third | What she wants underneath the procedure, and what she already thinks is true |
| The hook and the format | Fourth | First three seconds or first 125 characters, native to the placement |
| The test | Last | One variable, a kill line, a date to look |
The five questions, in order
1. Who is this one person
Not women 35 to 55 in Houston. One woman. She lost the weight and the skin stayed. She has looked at three clinic pages this month and closed all of them. Write her in a sentence she would actually say. If you cannot, open your inbox, your reviews, or your intake forms and copy ten sentences patients wrote in their own words. The ad borrows those words verbatim. Paraphrase is where brochure voice comes from.
2. What does she already know
Schwartz's five stages. Unaware: she does not think she has a problem, so the ad needs a pattern interrupt or a curiosity hook. Problem aware: she knows the skin bothers her and thinks nothing works, so name the pain plainly. Solution aware: she knows treatments exist but not yours, so show the mechanism, the new way. Product aware: she has seen you and is not convinced, so proof and honesty. Most aware: she is ready and needs the offer, the deposit, the date. One ad serves one stage. An ad that tries to serve all five serves none, and this is where most clinic accounts live: every ad written for the most aware, which is the smallest group.
3. What does she want, and what does she already believe
The procedure is never the desire. Under it is confidence, relief, control, being looked at the way she used to be, not being the mum who gave up. Pick one. Then find the belief she already holds and open on it. Creams did nothing. Lasers burn. Non-invasive is a Groupon. Surgery is too much. You cannot open with a claim she does not believe and expect her to keep watching. Start where she is and move her one step. In a crowded market, and every aesthetics market is crowded, the thing that moves her is a specific mechanism or an honest admission, not a bigger promise.
4. Which framework, which hook, which format
Pick the structure that fits the strongest proof you actually have. Mechanism when the how is the story. Honesty or the physician when trust is the gap. Comparison when she is weighing options. Named area when she has one spot she hates. Never a testimonial you do not have. Then the hook: six words or fewer, specific, direct, and it must fail the anybody's-ad test, meaning it could not run for any business in any city. Then the format: the ad has to look like the thing she scrolls past willingly. A reel that feels like a reel. A static that does not look like a Canva template. Real staff over models. Meta's automatic enhancements switched off, because they make everything look like an ad.
5. What am I testing
The question is never is this ad good. The question is what are we testing, what number proves it, and what do we change next. Three genuinely different concepts first, then three variations of the one that wins. One variable per test. The kill line and the target written before launch, judged on the conversion in your CRM, not on the platform's count. Give the first 72 hours to the learning phase and do not touch it.
6. The two gates
Anti-slop: no phrase over five words borrowed from anyone, no brochure voice, no banned words, zero em dashes, no claim without a number, a mechanism, or an honest scope, and the anybody's-ad test. Two failures is a rewrite. Compliance: nothing on the ad that is not on your page or in a verified source, no cure or guarantee language, no drug brand names on screen, before and afters only if consented and unretouched, financing figures with the example, term, and APR. Every line, every time.
Starter prompts
Paste these as written. They are short on purpose, because the long ones drift.
You are briefing one ad for my clinic before anything gets written. Do not write copy until the brief exists. My offer: [procedure, price shape, city, the page it sends to]. Here are [N] sentences my patients wrote in their own words: [paste]. Ask me, one at a time: who is the one person this ad is for (make me answer in a sentence she would say out loud); which of the five awareness stages she is on, unaware, problem aware, solution aware, product aware, most aware, and what that stage needs; the one desire under the procedure and the one belief she already holds that the ad opens on; which framework fits the strongest proof I actually have (mechanism, honesty or physician, comparison, named area) and why; the placement and why the ad must look native there. Then write six hooks of six words or fewer, each specific, direct, and one that could not run for any other business in any city. Reject any hook that fails that test. Finally state the one variable this ad tests, the number that proves it, judged on my CRM lead count not the platform's, and the kill line. Return a one page brief. Rules: no phrase over five words borrowed from any source, no brochure voice, zero em dashes, no claim without a number, a mechanism, or an honest scope, nothing that is not on my page, no cure or guarantee language, no drug brand names. If I have not given you a fact, leave a bracket, never invent one.
Here are [N] hooks for my [procedure] ad: [paste]. For each one: is it six words or fewer, does it name the person, the moment, or the mechanism, does it speak to you directly, does it challenge something she believes, and could it run for any business in any city. Score it, name what is missing, and rewrite it once. Keep her words if I gave you patient sentences. Zero em dashes.
Here are my live ads for the last 30 days with their primary text and results: [paste or connected account]. For each ad, name the awareness stage it serves and why. Tell me which stages have no ad. Tell me which ads are fatigued (frequency over 2.5 with a falling click rate) versus aimed at the wrong stage. Recommend the one ad to write next, its stage, the belief it opens on, and three hooks for it.
From a chat window to the account
The brief is thinking, so it works in any chat. The two places the real tools matter are the research that feeds it and the test structure in Ads Manager. These are the settings that change.
Research from what already runs
Before the brief, search the Meta Ad Library for your procedure plus your metro, then three national chains in your category. Sort by how long each ad has been running. Longevity is the winner signal. Note the hook, the stage it serves, the offer shape, the destination. Borrow architecture, never wording.
Ads Manager test settings
One campaign per test, one variable isolated at ad level. Advantage+ creative enhancements off. Optimisation on your real conversion event, not the browser pixel. One primary text and one headline per ad, never multi-text, so you know which words won. Naming: id, format, hook, person, offer, date, and utm_content set to the ad name so your CRM reports by creative.
The plateau check
When cost per lead climbs, list every live ad with the stage it serves. If they are all product aware and most aware, the fix is a problem aware or solution aware ad, not more budget. If frequency is over 2.5 and click rate is falling, that is fatigue, and the fix is a new hook on the same concept.
Give it to your agent, three ways
Same skill, three worlds. Pick the one you actually use. The skill file at the bottom of this page is the instructions in every case.
An agent with connectors (Claude Desktop, Claude Code, Grok Bot)
The brief needs no connector. Give the agent the skill and your ten patient sentences. For the plateau diagnosis, connect the ad account read only through Meta's ads MCP, the same door the audit guide uses.
- Claude Desktop or claude.ai: create a Project, paste the brief skill from the bottom of this page as the project instructions, and upload your patient sentences and your offer page text.
- Say "brief my ad" and answer the five questions when it asks. It will not write copy until the brief exists.
- Optional: add Meta's ads MCP as a connector (Settings, Connectors, Add custom connector, the URL below) with read access, so "which stage is my account missing" runs against live ads instead of your memory.
- Grok Bot or any chief of staff: same skill file in its instructions, same trigger.
# read only Meta connector, same as the audit guide claude mcp add --transport http meta-ads https://mcp.facebook.com/ads
ChatGPT (a project or a custom GPT)
ChatGPT does this well as a Project. There is no first party Meta connector, so the account check runs on an export.
- Create a Project. Paste the brief skill as the instructions. Upload a text file of your ten patient sentences and your offer page.
- Say "brief my ad for [procedure]". Answer the five questions. Ask for three concepts at three different awareness stages, each with its hook through the gate.
- For the plateau check: in Ads Manager export the last 30 days at ad level with spend, frequency, CTR, results, cost per result, and the primary text column. Upload the CSV and ask which awareness stage each ad serves and which stage is missing.
Anything with an API (a token and a curl call)
There is no API for thinking. The only call worth making is the ad level pull for the plateau check, which is the same insights call from the audit guide with the creative body added so the agent can read the hooks.
- Use a system user token with ads_read only, stored in an environment variable, never in a prompt.
- Pull the last 30 days at ad level with the creative fields so each row carries its primary text and headline.
- Feed the JSON to the agent with the skill and ask for the stage each ad serves.
export META_ACCESS_TOKEN=... # ads_read only
export META_AD_ACCOUNT_ID=1234567890
curl -s "https://graph.facebook.com/v23.0/act_$META_AD_ACCOUNT_ID/ads?fields=name,creative{body,title},insights.date_preset(last_30d){spend,frequency,ctr,actions,cost_per_action_type}&access_token=$META_ACCESS_TOKEN" > ads_with_copy.jsonFailure modes
Every one of these has happened to me or to someone I set this up for.
| Failure | Fix |
|---|---|
| The ad describes the clinic | Rewrite it as the patient's sentence; the doctor becomes a hand or a name line |
| Every ad in the account is for the most aware | Write one problem aware and one solution aware ad before adding budget |
| Opens with a claim she does not believe | Open on the belief she already holds and move her one step |
| Hook works for any business in any city | Name the person, the moment, or the mechanism, or cut it |
| Copy sounds like a brochure | Paste ten patient sentences and borrow them verbatim |
| Ad looks like an ad, enhancements on | Native format, real staff, enhancements off |
| Judged the test by feel on day two | Kill line written before launch, hands off 72 hours, judge on CRM count |
| Rising cost per lead read as saturation | List the stage each ad serves; fill the missing one |
| Monthly payment on the ad with no terms | Example, term, APR, subject to eligibility, or remove the figure |
The tools I use for this
| Tool | What it is for here | |
|---|---|---|
| Claude | Where the brief gets written and the hooks get graded. | Open |
| Meta Ad Library | Free. Where I read what already runs in the category before writing anything. | no link, just use it |
| Meta Ads Manager | Where the test is structured, one variable at a time, enhancements off. | no link, just use it |
| GoHighLevel | The inbox the patient sentences come from, and the lead count the test is judged on. | Get it |
| NotebookLM | Where I keep the research on clinic ads and ask it questions instead of rereading. | Open |
The free skill
It makes the agent refuse to write an ad until the brief exists. It asks the five questions in order, places the person on one of the five awareness stages, names the dominant desire and the belief the ad opens on, picks a framework that fits the strongest proof you actually have, runs every hook through the gate, applies the native test and the compliance lines, and returns a one page brief with the single variable being tested and the kill line written before launch.
---
name: what-makes-an-ad-good
description: Refuses to write a clinic ad until a one page brief exists. Asks five questions in order (the one person, her awareness stage, the desire and the belief the ad opens on, the framework and native format, the single variable being tested), grades every hook through a gate, applies the anti-slop and compliance lines, and writes the kill line before launch. Also diagnoses a plateaued account by the awareness stage each live ad serves. Trigger on "brief my ad", "why is this ad not working", "which stage is my account missing", "grade these hooks".
---
# The Ad Brief
You are briefing one ad for a clinic, med spa, IV bar, or aesthetics practice. You do not
write copy, render an image, or suggest a budget until the brief below exists. If the
human asks for an ad first, say the brief comes first and start question one.
Never invent a fact, a price, a review, a statistic, or a patient story. If a fact is
missing, leave a bracket like [price] and say what is missing.
## The five questions, in order, one at a time
### 1. Who is this one person
Not a demographic. One patient in one moment. Make the human answer in a sentence she
would say out loud ("I lost the weight and the skin stayed"). If they have patient
sentences from the inbox, reviews, or intake forms, read them first and pick the person
from those. Her words are borrowed verbatim later. Paraphrase is where brochure voice
comes from.
### 2. Which awareness stage is she on
Eugene Schwartz's five stages. State the stage and what that stage needs:
- Unaware: does not think she has a problem. Needs a pattern interrupt or curiosity.
- Problem aware: knows the skin, the fat, the lines bother her; thinks nothing works.
Needs the pain named plainly.
- Solution aware: knows treatments exist, not yours. Needs the mechanism, the new way.
- Product aware: has seen the clinic, not convinced. Needs proof and honesty.
- Most aware: ready. Needs the offer, the deposit, the date.
One ad serves one stage. Most clinic accounts have only most aware ads. Say so if you
see it.
### 3. The desire and the belief
The procedure is never the desire. Name the one desire under it (confidence, relief,
control, being looked at the way she used to be). Then name the belief she already holds
that the ad opens on ("creams did nothing", "lasers burn", "surgery is too much"). The
ad starts where she is and moves her one step. Never open with a claim she does not
believe.
### 4. Framework, hook, format
Framework by the strongest proof the clinic actually has:
- Mechanism: the how is the story.
- Honesty or physician: trust is the gap. Publish the downtime, say results vary.
- Comparison: she is weighing options.
- Named area: she has one spot she hates.
- Never a testimonial or before and after the clinic does not have, consented and
unretouched.
Write six hooks, six words or fewer. Each must be specific, speak to "you", and fail
the anybody's-ad test: if it could run for any business in any city, reject it and say
why. Prefer her sentence over yours.
Format: name the placement and what native looks like there. Real staff over models.
Meta automatic enhancements off. A static must not look like a template. A reel must
feel like a reel.
### 5. What is being tested
The question is never "is this ad good". State the one variable this ad isolates, the
number that proves it (judged on the CRM lead count, never the platform's), the target
cost per lead if the human gives one, and the kill line. Three different concepts first,
then three variations of the winner. Hands off for the first 72 hours.
## The two gates (run on every line before returning)
Anti-slop, two failures is a rewrite:
- No phrase over five words borrowed from any source.
- No brochure voice ("we offer", "state of the art", "conveniently located").
- No banned words: game-changer, unlock, elevate, seamless, holistic, journey, empower,
transformative, cutting-edge, revolutionary.
- Zero em dashes anywhere.
- No claim without a number, a mechanism, or an honest scope.
- Anybody's-ad test.
Compliance, every line:
- Nothing on the ad that is not on the clinic's page or in a verified source.
- No cure, treat, guarantee, or prevent-illness language. No drug brand names on screen.
- No FDA wording beyond the exact clearance the clinic can show.
- Before and after only if consented, unretouched, same lighting, with "individual
results vary". Never generated.
- Any monthly payment carries an example, the term, the APR, and "subject to
eligibility".
## Output: the one page brief
```
PERSON: her sentence
STAGE: one of five, and what it needs
DESIRE: one
OPENS ON: the belief she already holds
FRAMEWORK: which, and the proof it rests on
HOOKS: six, each with pass or fail and why
FORMAT: placement, native notes, enhancements off
TEST: the variable, the proving number, the kill line, the hands-off window
MISSING FACTS: brackets the human must fill
```
## Plateau mode
If the human gives you live ads (connected read only, an export, or pasted primary
text and results): for each ad name the awareness stage it serves and why. List the
stages with no ad. Separate fatigue (frequency over 2.5 with a falling click rate,
fix is a new hook on the same concept) from wrong stage (fix is a new ad at the missing
stage). Recommend the one ad to write next, its stage, its opening belief, and three
hooks. Never grade an ad you cannot see the copy of; say so instead.
What done looks like at thirty days
- Every live ad has a written brief filed next to it
- You can name the one person and the stage for each ad without opening it
- Ten verbatim patient sentences live in a file your agent reads
- At least three awareness stages have a live ad
- Every test has one variable and a kill line written before launch
- You have not said the market is saturated once
Want the brief written against your offer, with the ads rendered from it?
Inside the AI CEO Lab the Demand Engine module walks this brief on your own offer, then hands it to the ad brain that renders the slate and grades it before anything launches.