Facebook Ads Audit: The 12 Checks I Run First
The order matters more than the list. Nine times out of ten the problem is not the audience or the creative, it is that the account is optimising against a number that is not true. Here is the sequence I work through on every new account, and what a failing result looks like.
Where this comes from
This is the working sequence I use on client accounts, refined across 40+ accounts since 2020 and more than $250,000 of managed spend. The worked example running through it is a US hair and scalp clinic whose cost per lead went from $86 to $3.91 across 35 campaigns; the reporting screenshots are in the case study and the narrative version is here. Cost per lead figures from five accounts are collected on the benchmark page.
Most published Facebook Ads audit checklists are ordered by where things sit in the interface: campaign, then ad set, then ad. That is a convenient order for writing and a bad order for diagnosing, because it puts the audience and the creative before the data those decisions depend on.
Optimising creative against a broken conversion event is not slow progress. It is worse than doing nothing, because you will confidently switch off the ads that were working. So the sequence below starts with signal, moves to delivery, and only then looks at the ads themselves.
Before check one: the number you need in hand
Do not open Ads Manager yet. Work out what a lead is allowed to cost you, from your own margins: average order value or customer value, your close rate from a lead, and the margin you need to keep. A clinic closing one in five consultations at a few hundred dollars can afford a very different lead price from a roofer closing one in ten at several thousand.
Without that number, "is $18 a lead good?" has no answer, and the whole audit becomes an aesthetic exercise. Cost per lead in accounts I have run has ranged from $3.91 to $66.60, and both were good results in their own category. The number that matters is yours.
Signal: checks 1 to 5
1. Is the conversion event firing, exactly once?
Trigger the conversion yourself, on a phone, and watch it arrive in Events Manager. Then keep watching. The two failures are equally common: nothing arrives, or the same conversion arrives twice because the event is fired both by the pixel in the browser and by a server-side integration without a shared deduplication key.
Failing looks like: a conversion count in Ads Manager that is a clean multiple of reality, or a Purchase event that fires on page load rather than on completion. Double counting halves your apparent cost per acquisition, which is why nobody investigates it.
2. Are server-side events being sent, with customer information attached?
Browser-only tracking loses events to ad blockers, tracking prevention and consent choices. The Conversions API sends events from your server instead, and it accepts customer information parameters so Meta can match an event to a person [1]. Events Manager shows an event match quality score per event, and it is the fastest read on whether your signal is any good.
Failing looks like: no server events at all, or server events sent bare, with no hashed email or phone. A low match quality score on your primary conversion means Meta cannot reliably tie results back to people, and optimisation degrades accordingly.
3. Is the optimisation event the one that actually makes money?
This is the single most common structural error I find. The ad set is optimising for a cheap event, so Meta dutifully delivers cheap events: landing page views, Add to Cart, form opens, link clicks. The reported cost per result looks excellent and the business gets nothing.
Failing looks like: an ad set optimising for Add to Cart while the business needs purchases, or for a lead form open rather than a completed submission. Meta will optimise for exactly what you asked for, which is the problem.
4. Which attribution setting produced the number you are reading?
The same campaign shows different results under different attribution windows. A conversion counted from a view rather than a click is a much weaker claim, and comparing a report on one setting to a report on another is a comparison of nothing.
Failing looks like: monthly reports where the window has quietly changed, or a view-through window doing most of the work in a campaign being described as direct response.
5. Does Ads Manager reconcile with your own records?
Export the leads or orders Meta claims for a fixed period and count the same period in your CRM, inbox or back office. You are looking for a ratio, not a match: platform reporting and your records will never agree exactly, but you need to know whether the gap is 10% or 60%.
Failing looks like: Ads Manager reporting 40 leads and the client finding 12 in their inbox. Until that gap is explained, no other number in the account can be trusted. In the clinic account this reconciliation was the step that changed everything: once the tracking told the truth, the optimisation had something real to pull against.
Delivery and structure: checks 6 to 9
6. How many ad sets are stuck in the learning phase?
New and significantly edited ad sets enter a learning phase while delivery stabilises, and Meta's documented guidance is that roughly 50 optimisation events inside a seven day window are needed to leave it [2]. Below that, performance swings are noise and you should not be drawing conclusions from them.
Do the arithmetic in the other direction, because it is unforgiving. At a $20 cost per lead, 50 events a week is $1,000 a week for one ad set to stabilise. Divide your monthly budget by your target cost per lead, divide by four, and you have the number of ad sets your account can actually support. It is usually one or two, and most accounts I audit are running six.
Failing looks like: most ad sets showing Learning or Learning Limited, and an edit history full of small budget and audience changes, each one restarting the clock.
7. Is the budget split too many ways?
Follow the maths from check six. Every additional ad set divides the conversion volume that the delivery system needs to work with, and three underfunded ad sets consistently lose to one funded one.
Failing looks like: eight ad sets on a small daily budget, several spending almost nothing, several duplicating each other's audience.
8. Are the audiences overlapping, or too narrow?
Check whether several ad sets are competing for the same people, which raises your own costs, and check whether any audience is too small to sustain delivery. Then check the assumption underneath the targeting, which is often the real problem: in the clinic account the broad audience assumption was wrong, and narrowing to the people with the specific problem was one of the changes that moved the number.
Failing looks like: multiple ad sets on near-identical interest stacks, or a saved audience nobody has revisited in a year.
9. What is frequency doing, and how old is the winning ad?
Rising frequency with a falling click-through rate is creative fatigue, and it shows up as a slowly rising cost per lead that gets blamed on the algorithm. Look at how long the current best performer has been the best performer.
Failing looks like: the same three ads running for four months, frequency climbing, cost per result drifting up week over week.
Creative and destination: checks 10 to 12
10. How many distinct angles are you testing, not how many variants?
Twelve ads that are one idea in twelve colourways is one test. Three ads attacking three different objections is three tests. On Meta the creative carries the targeting, so the angle is the variable that matters.
The framing that has worked best for me is to write against the objection rather than the product. In the clinic account the shift was from describing the treatment to addressing the specific hesitation a person had before booking. That, plus honest tracking, is most of the story behind the 95% reduction.
Failing looks like: an ad account full of variants and no hypotheses, or a single hero video with nothing to compare it against.
11. Where do people fall out after the click?
Open the landing page on a phone, on mobile data, and try to convert. Time it. Count the fields in the form. Check that the page answers the promise the ad made, in the first screen, in the same words. A large share of accounts described as having an ads problem have a destination problem.
If you are using instant forms instead, compare completion rates against your landing page rather than assuming: instant forms usually produce cheaper leads and often weaker ones, which leads directly to the last check.
Failing looks like: a slow page, a form asking for nine fields, or an ad promising one thing and a page describing another.
12. Are the leads any good?
Lead count is not the deliverable. Ask the person who actually calls them: what proportion answer, what proportion are qualified, what proportion buy. A campaign producing cheap unqualified leads is worse than a campaign producing fewer expensive ones, and the account will look better on paper while the business gets worse.
Where quality is the problem, the fix is usually upstream of the ad: add friction deliberately, qualify inside the form, state the price range in the creative, or optimise for a deeper event. In the B2B account the useful figure was 64 website leads at $5.08 and the fact that they were the right kind of lead; in the merchandise account, three of 64 leads went into active sales conversations within the first week, which is the number that mattered to the client.
Failing looks like: nobody has asked. If sales and ads are not comparing notes monthly, assume quality is unknown rather than fine.
The whole sequence on one page
| # | Check | Failing looks like |
|---|---|---|
| 1 | Conversion event fires, exactly once | Nothing arrives, or every conversion double counted |
| 2 | Server-side events with customer information | Browser-only tracking, low event match quality |
| 3 | Optimisation event tied to revenue | Optimising for Add to Cart or form opens |
| 4 | Attribution setting behind the report | Window changed silently, or view-through carrying the result |
| 5 | Ads Manager reconciles with your records | 40 leads reported, 12 in the inbox |
| 6 | Ad sets out of the learning phase | Most ad sets in Learning or Learning Limited |
| 7 | Budget concentrated enough to work | Eight ad sets, none reaching 50 events a week |
| 8 | Audience overlap and size | Ad sets bidding against each other on the same people |
| 9 | Frequency and creative age | Frequency climbing, click-through rate falling |
| 10 | Distinct angles, not variants | One idea in twelve colourways |
| 11 | The destination after the click | Slow page, nine form fields, mismatched promise |
| 12 | Lead quality, verified with sales | Nobody has asked |
What I do not change in the first week
An audit is diagnosis, and the temptation is to fix everything at once. Two reasons not to.
First, every significant edit restarts the learning phase, so a sweep of changes across every ad set buys you two weeks of unstable delivery and no way to tell which change did what. Fix the signal problems immediately, because those are corrections rather than experiments, then change one structural thing at a time.
Second, some of what looks broken is load bearing. I have switched off an underperforming ad set and watched the account get worse, because it was doing prospecting work that the better-looking retargeting ad set depended on. In the clinic account two rounds of changes actively made performance worse before the trend turned, and I wrote those two rounds up in the longer account of it rather than presenting a straight line.
What this audit will not tell you
- Whether the offer is any good. No account structure survives a product people do not want at the price you are asking. Ads make an offer visible; they do not make it attractive.
- Whether Meta is the right channel at all. If demand for your category already exists as search volume, some of this budget probably belongs on search. That trade is the subject of a separate post.
- What your competitors are paying. Published benchmarks are useful context and nothing more. Your close rate and margins decide what a lead is worth to you.
- Anything, if you run it once. Checks 1, 5, 6 and 12 are worth repeating monthly. Tracking breaks silently during site changes, and the first symptom is usually a cost per lead that looks unaccountably good.
If you only have an hour, do checks 1, 3 and 5. Firing correctly, optimising for the right event, and agreeing with your own records covers most of what is actually wrong in most accounts I open.
Common questions
How do I audit my own Facebook Ads account?
Work in this order: verify the conversion event fires exactly once, confirm server-side events are being sent with customer information attached, check that the optimisation event is the one tied to revenue, identify which attribution setting produced the numbers you are reading, and reconcile Ads Manager against your own CRM or inbox. Only then look at ad set structure, audiences, creative and the landing page. Auditing creative before signal means you will switch off ads that were working.
What is the most common problem in a Facebook Ads account?
Optimising for the wrong event. The ad set is set to a cheap event such as Add to Cart, landing page views or lead form opens, so Meta delivers exactly that, the reported cost per result looks excellent, and the business sees no revenue. The second most common is budget split across too many ad sets, so no single one reaches the conversion volume needed to deliver stably.
Why are my Facebook ads not converting?
In the accounts I open, the order of likelihood is: the conversion event is not tracked correctly, so optimisation is working from bad data; the ad set is optimising for an event that is not the sale; the budget is spread so thin that no ad set leaves the learning phase; the creative is one idea in many variants rather than several distinct angles; or the landing page does not deliver what the ad promised. Audience targeting is usually blamed first and is rarely the main cause.
How much conversion volume does a Facebook ad set need?
Meta's documented guidance is roughly 50 optimisation events within a seven day window for an ad set to leave the learning phase and deliver stably. Turn that into money before planning: at a $20 cost per lead, one ad set needs about $1,000 a week to get there. Divide your monthly budget by your target cost per lead and then by four, and you have the number of ad sets your account can genuinely support, which is usually one or two.
How often should a Facebook Ads account be audited?
Full audit when you take over an account, when performance changes without an obvious cause, and roughly twice a year otherwise. Four checks are worth repeating every month: that the conversion event still fires once, that Ads Manager still reconciles with your records, that ad sets are out of the learning phase, and that sales still consider the leads qualified. Tracking most often breaks during website changes, and the first symptom is a cost per lead that suddenly looks too good.
Is a free Facebook Ads audit worth taking?
It depends on what comes back. A useful one names specific findings in your account: which event is misconfigured, which ad sets never left the learning phase, where reported conversions diverge from your records. A generic one is a sales document with your logo on it. Ask what the reviewer would fix first and why, and whether they will say plainly that the account is fine, because an audit that always finds a crisis is not an audit.
Related reading
- How I cut a cost per lead from $86 to $3.91
- Facebook Ads vs Google Ads: which one do you need?
- Facebook Ads cost per lead across five real accounts
- Freelancer, agency or in-house: how to choose
Want me to run these 12 checks on your account?
Give me access as a partner and I will work through the list and send back what is costing you money, in order, with what I would change first. No cost, and I will tell you if the account is already fine.
Get a free auditSources & further reading
- Meta for Developers, Conversions API: server-side events, customer information parameters and deduplication.
- Meta Business Help Centre, About the learning phase: optimisation event volume and delivery stability.
- Primary data: Meta Ads Manager reporting, client accounts, 2023 to 2026. Figures collected on the cost per lead benchmark page, screenshots in the case studies.