Open Meta Ads Manager and it hands you a wall of numbers before you've asked for any of them: Reach, Frequency, Impressions, CPM, Results, Cost Per Result, and a dozen columns you can add that nobody told you how to read. Google Ads at least keeps its report in one language. Meta's "Results" column means something different depending on which objective you picked when the campaign was built, which means the same word can represent a real lead or a meaningless click. Here is how to actually read it, in the order that matters.

- 01What "Results" actually means
- 02The numbers Meta shows first that don't decide anything
- 03Cost per result isn't the finish line
- 04Reading the report line by line
- 05Three metrics worth a second look
- 06What a declining report actually looks like
- 07The five-minute check worth doing every Monday
- 08Frequently asked questions
What "Results" actually means.
Before you trust a single number in a Meta Ads report, find the campaign objective. It sits above every ad set, and it quietly decides what "Results" is even counting. A Leads objective counts a completed form. A Messages objective counts a Messenger or WhatsApp conversation that started, whether or not that conversation ever became a real inquiry. A Traffic or Engagement objective counts a link click or a comment, neither of which has anything to do with a customer. All three show up in the same column, labeled the same word, and they are not remotely the same thing.
We see this trip up business owners constantly. An ad rep hands over a report showing "47 results at $6 each" and the owner assumes that means 47 people who wanted to book a job for six dollars apiece. If the campaign objective was Messages, those 47 results might be 47 people who typed "hi" into a chat and never replied again. The number is not wrong. It is just answering a different question than the one you're asking.
The fix takes thirty seconds: click into the campaign, confirm the objective, and ask what a "result" means for that specific objective before you react to the cost. A local service business almost always wants Leads or Calls as the objective, since those are the only two that tie directly to someone trying to reach you about a job. If your account is running Traffic or Engagement objectives and calling the output "results," that is the first thing to fix, not the budget.
The numbers Meta shows first that don't decide anything.
Meta's default report layout leads with Reach, Frequency, Impressions, and CPM, in that order, before it ever shows you a result or a cost. That ordering is not an accident. Those four numbers describe how many people saw your ad and how expensive it was to reach them, and none of them say whether a single one of those people called your shop or booked an appointment. They are inputs, not outcomes.
Reach tells you how many unique people saw the ad. Impressions tells you how many times it was shown, including repeats to the same person. CPM tells you what it cost to show the ad 1,000 times. All three can look fantastic, a low CPM, a wide reach, climbing impressions, while the campaign produces zero bookings, because none of them measure whether anyone acted on what they saw. A campaign with a $4 CPM reaching 40,000 people and generating one phone call is not a win because the CPM looked cheap.
Reach, Impressions, and CPM describe the size of the audience you bought. They say nothing about whether that audience did anything. Treat them as context, never as a verdict on the campaign.
That doesn't make them useless. A CPM that has quietly doubled over a month, even while results hold steady, is worth noticing, since it usually means the auction got more competitive or your audience is shrinking from overexposure. Think of these four numbers as the weather report: useful background for understanding why something is happening, but not the number you make a keep-or-cut decision on by itself.
Cost per result isn't the finish line.
Cost Per Result is the first number in a Meta report that starts to matter, because it ties spend to an actual action someone took. But it is still one step removed from the number that should drive your decisions: cost per booked job. A lead and a booked job are not the same event, and the gap between them is where a lot of "good looking" campaigns quietly fall apart.
Say a campaign shows a $22 cost per result on a Leads objective. That looks cheap next to a competitor's $60 cost per result. But if your $22 leads close into paying jobs at a 15 percent rate and the $60 leads close at 45 percent, the math flips completely: the $22 lead costs you about $147 per booked job, and the $60 lead costs about $133 per booked job. The more expensive lead was the better buy. You would never know that from the Cost Per Result column alone, which is exactly why it cannot be the only number you check.
Getting from cost per result to cost per booked job requires tagging which leads actually turned into paying work, back in whatever CRM or booking system you use, and matching that against ad spend by campaign. It takes a little setup, usually a lead source field and some discipline tracking it weekly, and it is the single highest-leverage habit a local business can build around its ad reports. We cover the exact setup in our guide to tracking real marketing ROI for a local business, and the companion piece on reading a Google Ads report if you're running both platforms, since the same cost-per-booked-job principle applies to either one.
Free Meta Ads Report Review
Not sure what your numbers actually mean?
Send us your real Meta Ads report. We'll walk through it line by line, tell you honestly what's working, and hand you a straight answer either way.
Get My Free Report Review →Reading the report line by line.
Once you know what to trust and what to treat as context, the report stops being a wall of numbers and turns into a short checklist. Here is how to weigh each line Meta hands you by default, and what, if anything, to do about it.
| Metric | What It Actually Tells You | What To Do About It |
|---|---|---|
| Reach / Impressions | Audience size and exposure, nothing about action taken | Note as context only, never a decision point |
| CPM | Cost of the auction right now; rises with competition or fatigue | Watch the trend over weeks, not a single day |
| Frequency | How many times the same person has seen the ad | Flag it once it clears 3 to 4 in a short window |
| Results / Cost Per Result | Depends entirely on the campaign objective selected | Confirm the objective before trusting the number |
| Cost Per Booked Job | The only number that reflects real revenue | This is the one you keep or cut a campaign on |
Put those five rows against a real week of numbers and the read gets fast. Say a campaign shows Reach of 18,400, a $6.10 CPM, a frequency of 2.3, and 31 results at $14 each on a Leads objective. The first four numbers tell you the audience is reasonably fresh and the auction is cheap. The fifth tells you 31 people filled out a form. None of that confirms the campaign is working. Pull those 31 leads against your booking system and find out 9 of them turned into paying jobs. That's a real cost per booked job of about $48, the number that actually belongs in the keep-or-cut decision, not the $14 sitting in the report by default.
Three metrics worth a second look.
Past cost per booked job, three more columns earn a glance once a week, not because they drive the keep-or-cut call on their own, but because each one tends to explain a problem before cost per result fully shows it.
Link Click-Through Rate
CTR on the link tells you whether the ad itself, the image, the headline, the hook, is landing with the audience you're paying to reach. For a local service business, a link CTR under roughly 0.9 percent usually points to creative that isn't stopping the scroll, regardless of how good the targeting is underneath it. Above about 1.5 to 2 percent, the creative is doing its job and any remaining problem lives downstream, on the landing page or in the offer.
Frequency, Watched Over Time
A single frequency reading means little. The trend matters. Frequency climbing past 3 to 4 within a week or two, paired with a rising cost per result on the same audience, is the clearest fatigue signal Meta gives you. The fix is new creative or a wider audience, not more budget thrown at an ad the audience has already tuned out.
CPM, As An Early Warning
A CPM that doubles over a month while results hold flat is usually the first sign that either the auction got more competitive in your area or your own audience has shrunk from overexposure. Catching it here, before cost per result visibly worsens, buys you time to refresh creative or adjust targeting before the campaign's numbers actually tank.
These three rarely move in isolation, and the order they shift in tells you what's actually happening. CTR sliding first, with frequency and CPM still flat, usually means the creative got stale before the audience ran out. Frequency climbing first, with CTR still holding, usually means the audience is too narrow for the budget behind it and needs to widen. Catching which one moved first saves you from fixing the wrong half of the campaign.
What a declining report actually looks like.
Most Meta Ads campaigns don't fail all at once. They drift, one or two metrics moving the wrong direction for a few weeks before the owner notices the phone has gotten quieter. Knowing the pattern ahead of time is what lets you catch it in week two instead of week eight.
Frequency climbing past 4, CTR sliding under 0.9 percent, and cost per result rising, all in the same two to three week window, almost always means the same creative has been shown to the same audience too many times. New creative, not new budget, is the fix.
A different pattern points somewhere else entirely. If CTR stays strong, frequency stays reasonable, and cost per result stays flat, but cost per booked job is climbing, the problem isn't the ad or the audience. It's what happens after the click: a slow landing page, a form that's too long, or a lead that isn't getting a callback fast enough. We walk through the full diagnostic for that scenario in our piece on leads coming in but not converting into booked appointments, since the fix lives on your side of the funnel, not inside Ads Manager.
A third pattern, flat Reach, flat Impressions, but a sudden cost per result spike with everything else unchanged, usually points to an external shift: a seasonal dip in demand for your service, a local competitor entering the auction, or a platform-wide cost increase that's hitting every advertiser in your area at once. That one isn't a sign your campaign broke. It's a sign the market moved, and the response is patience and a trend check over the following two weeks, not a panic pause.
The Honest Read
We'll tell you if it's actually working.
No sales pitch dressed up as a report review. Send us your numbers and we'll give you the real read: what's working, what's drifting, and what we'd change first.
Get My Free Report Review →The five-minute check worth doing every Monday.
You don't need to live inside Ads Manager to stay on top of a Meta campaign. You need five minutes, once a week, looking at the right four numbers in the right order. Here's the whole routine:
- Confirm the objective first. A ten-second check that tells you what "Results" even means this week.
- Check cost per booked job, not cost per result. This is the only number that reflects whether the campaign made or lost you money.
- Glance at frequency and CTR together. Rising frequency with falling CTR is the fatigue combination worth acting on before cost per result confirms it.
- Note the CPM trend, don't react to a single day. A week-over-week climb matters. A one-day blip almost never does.
Run this on a stable, proven campaign and you'll catch a real problem within a week or two of it starting, long before it shows up as an empty week on the schedule. Run it daily instead and you'll mostly end up reacting to normal day-to-day noise that would have corrected itself by Friday. Five minutes, once a week, on the right four numbers, beats an hour of staring at a dashboard that leads with the wrong ones.
Free Meta Ads Report Review
Know exactly what your report means.
Send us your actual Meta Ads report and we'll tell you honestly what's working, in writing, no commitment.
Received
Thanks. Talk soon.
We'll reach out within 24 hours with your custom 90-day roadmap.
Frequently asked questions.
What does "Results" actually mean in a Meta Ads report?
It depends entirely on the campaign objective you picked when you built it. A leads campaign counts form submissions as a result. A messages campaign counts a Messenger or WhatsApp conversation started, whether or not it ever turns into a lead. A traffic or engagement campaign counts link clicks or interactions, neither of which has anything to do with a sale. Always check the objective before you trust the Results number, because the same word can mean a real lead or a meaningless click depending on how the campaign was set up.
What is a good cost per result for a local service business?
There is no single good number, because it depends on what you're willing to pay for a booked job and how many of your leads actually convert into paying work. A $25 cost per lead that converts to a booking 10 percent of the time costs you $250 per customer. A $45 cost per lead that converts 40 percent of the time costs you about $113 per customer. The cheaper lead is the worse deal. Work backward from your real close rate and average ticket, not from whatever number looks small on its own.
Should I worry if my frequency is going up?
Rising frequency by itself is not a problem, it just means the same people are seeing your ad more than once. It becomes a problem when it climbs past roughly 3 to 4 within a week or two and your cost per result climbs alongside it. That combination usually means ad fatigue: the audience has seen the creative enough times that it stops working, and the fix is new creative or a broader audience, not a bigger budget on the same ad.
How often should I actually check my Meta Ads report?
Once a week is enough for a steady, proven campaign, and it should take about five minutes if you know which numbers to look at. Check daily only in the first week or two after launching a new campaign or a major change, since that is the window where a bad setup burns the most money before anyone notices. Checking more often than that on a stable campaign mostly just invites you to overreact to normal day-to-day noise.
