The monthly ad account review: eight checks and the order to run them

7 min readMeta Ads, Ad account audit, Monthly review

A monthly ad account review runs in a fixed order: spend against plan, cost per result against last month, frequency and fatigue, the share of ad sets still learning, audience overlap, rejected ads, the path from lead form to first call, and whether your conversions still reach Meta. Run it as a read rather than an edit session, and compare equal day counts, because two calendar months are rarely the same measuring stick.

Most of what goes wrong in an ad account goes wrong slowly. A creative loses its response a fraction at a time. One campaign takes a larger share of the budget than it had in June, and nobody decided that. An ad set drops back into learning on a Tuesday, and the only announcement is a label in a column. None of it is visible on a single day, and by the end of a quarter it is history rather than something to act on.

Two calendar months are not the same measuring stick

A week is too noisy for a small account and a quarter is too late to act on, so the month wins mostly by elimination, and it is already the unit your budget uses. The catch is that months are not equal. February has 28 days and March has 31: at a steady $60 a day that is $1,680 against $1,860, a 10.7% rise with nobody deciding anything. That is arithmetic, not performance. Compare equal day counts, or compare daily averages.

The second distortion is attribution. A conversion is credited to the day of the click rather than the day of the sale, and the default setting counts clicks for seven days, so the end of the month keeps filling in for days after you read it. Check what your account is actually set to, then either end the range a few days short of today or expect your first read to be revised.

Fix the shape of the report once and reuse it: same day count, same attribution setting, same breakdown by campaign and by day. A review that redefines itself every month cannot detect anything, because every number moved.

The order: billed numbers first, judgment last

The order is not only about doing the fast checks first. Spend is the base of every ratio underneath it, so if the money did not land where you planned it, cost per result describes a different account than the one you meant to run. Read it first and you form an opinion about the wrong thing.

  1. 1.Spend against plan. A billed number rather than an inferred one, and the base of every ratio below.
  2. 2.Cost per result against last month, per campaign rather than for the account as a whole.
  3. 3.Frequency, and whether fatigue explains what cost per result did.
  4. 4.The share of ad sets still learning, or reading learning limited.
  5. 5.Overlap between your own audiences, starting with anything added since the last review.
  6. 6.Rejected ads, and anything else sitting in Account Quality.
  7. 7.The path from lead form to first call: how many rows, how fast, how many reached.
  8. 8.Whether the conversions you care about still reach Meta at all.

The first four live in the campaign table and the last four do not, which is most of the reason the second half gets skipped. The tool you open decides what you look at, and Ads Manager opens on numbers, not on plumbing.

The eight checks, and what a bad answer means

What you checkWhere it livesWhat a bad answer means
Spend against planAmount spent, by campaignUnder plan is throttled delivery, not money saved; over plan is an edit nobody wrote down
Cost per result vs last monthCost per result, by campaign, equal day countsA worse account average with every campaign improved means the mix moved, not performance
Frequency and fatigueFrequency beside link CTR and CPMAll three moving together points at the ad; CPM alone points at the auction
Share of ad sets learningDelivery column, ad set levelLearning limited means the volume was never there, so more waiting changes nothing
Audience overlapAudience Overlap, inside AudiencesTwo active ad sets and one barely spending is you outbidding yourself
Rejected adsAccount Quality, plus each ad's statusA count that climbs against previous months is an account signal, not a copy problem
Form to first callYour CRM, against the account's lead countA gap that opened this month is delivery; a gap that was always there is intake
Conversion completenessEvents Manager: event names, volume, match qualityAn event that stopped arriving is a broken send, not a slow month

Four checks inside the campaign table

Spend against plan

Start with the number Meta bills you, because it is measured rather than modeled. Under plan means the account could not place the money: a narrow audience, a cap below the market, a spending limit, a schedule that ended. Over plan is almost always a person. Do it per campaign, since an account that landed exactly on plan can be one campaign at half and another at double.

Cost per result against last month

Read it per campaign against that same campaign's last month, and expect the account average to disagree with the campaigns underneath it. The account number is weighted by spend: if a campaign with a high cost per result took a larger share of the budget, the average worsens while every single campaign improved. That is a mix shift, not a decline, and treating it as a decline sends you optimizing something that already works. It is also the finding a monthly cadence produces and a daily glance does not, because the mix moves too slowly to see in a day.

Frequency, and whether fatigue explains it

Frequency only means something against a fixed date range, so hold the range steady before comparing anything: 3.0 across 31 days and 3.0 across 28 days are not the same exposure. Then read the neighbors rather than the number. Frequency up with link CTR down and CPM up is the ad wearing out. CPM up alone with CTR steady is a more expensive auction, and there is nothing in the creative to fix.

How much of the month sat in learning

Count ad sets, not campaigns, in three buckets: learning, learning limited, neither. A month where most of the budget sat in learning is exploration priced as performance, and the cause is usually nameable: too many edits, too many ad sets splitting one budget, or an optimization event too rare to reach Meta's benchmark of roughly fifty a week. Treat that number as guidance rather than a law. It is Meta's own, and how the phase is defined and reported has been revised before.

Four the campaign table cannot answer

Overlap between your own audiences

Two of your own ad sets that can reach the same person land in the same auction, and Meta keeps one of them while both keep reading Active. What makes this a monthly job rather than a launch-day job is that overlap arrives by accumulation: a lookalike added in week two, a retargeting window nested inside another, an exclusion that never went back. Check what you created since the last review, and use the Audience Overlap tool instead of reasoning about who sits inside which audience.

Rejections and account standing

One rejection is a copy edit. What the monthly view adds is the count and its direction: three this month against none in the two before it is a different conversation from one a month all year. Read Account Quality as a whole rather than ad by ad, because restrictions on the page or the pixel land there and never appear in the campaign table.

The path from form to first call

Three counts, read by day even though the review is monthly: leads the ad account reported, rows that reached your CRM, and how many of those someone actually reached. What the monthly pass adds is not the discovery of a gap but its direction. A gap that opened this month points at delivery, something between Meta and your CRM that stopped working. A gap that has been there every month points at intake, and no change inside the ad account will close it.

Whether your conversions still reach Meta

Nobody schedules this one, because nothing about it looks broken: the reports keep rendering either way. In Events Manager, check the events you optimize for, their volume against last month, and the match quality Meta reports for each. An event that fell to zero on a date is a broken send. An event whose volume halved while spend held is the browser side losing ground. And some of your conversions never had a browser event to lose at all, the sale closed on a call, the lead your team qualified on Tuesday: those arrive only if your server sends them.

What to change once the pass is done

The review is a read. That matters more than it sounds, because the natural end of two hours inside the numbers is a burst of edits, and a significant change to bid, targeting, creative or the optimization event restarts an ad set's learning count. Five changes made separately restart it five times, and next month you cannot tell which one did anything.

  • Write the findings down before touching anything. The pass produces a list, and the list is the deliverable.
  • Pick the smallest set of changes that addresses the largest finding, and batch them into one edit per ad set.
  • Change one thing per ad set, and write down the date. Next month needs to know what to credit.
  • Decide now when you are allowed to look again. Reading a reset ad set on day two produces exploration prices and an argument for another edit.

The first monthly review is the least useful one you will run: it produces a column of numbers with nothing to compare them against, and some of its findings turn out to be normal for your account. The value is cumulative. By the third month you have the account's own ranges, and the question stops being whether a number is good and becomes whether it moved. That half of the work is mechanical enough to hand off, and Aevin's agent runs it every morning across the connected ad accounts, comparing the last seven complete days of spend, leads, cost per lead and frequency against the account's own history and keeping the numbers each finding was built on. What no schedule decides for you is what a customer is worth to your business, which is why the list stays yours.

How often should I audit my Facebook ad account?

Monthly for the full pass: a month is long enough for creative fatigue, mix shifts and seasonality to be readable, and it matches your budget cycle. Keep a few lookups on a shorter loop, whether anything reads Not delivering or Rejected, whether any ad set says Learning limited, and whether leads are still landing in your CRM. Those cost seconds, and a month is too slow a loop for them.

What should be on a Facebook ads audit checklist?

Eight items in this order: spend against plan, cost per result against last month, frequency and fatigue, the share of ad sets still learning, audience overlap, rejected ads, the path from lead form to first call, and whether your conversion events still reach Meta. The first four live in Ads Manager. The last four live in Audiences, Account Quality, your CRM and Events Manager, which is most of the reason they get skipped.

Why did my cost per result get worse when every campaign improved?

Because the account average is weighted by spend. If a campaign with a higher cost per result took a bigger share of the budget, the blended number worsens while each campaign underneath it improved. Compare each campaign against its own last month, and read the account total only as a question about where the money went.

Should I make changes during the monthly review?

Write the findings first, then make one batched edit per ad set. Changes to bid, targeting, creative or the optimization event count as significant edits and restart learning, and large budget swings do too, so five separate edits pay for exploration five times.