TL;DR
Ads Manager ROAS lies to lead-gen businesses. Here's what ROAS actually means and how to measure the number that pays your bills.
→ See how this applies to your business (free 30-min call)Here is the uncomfortable truth about the ROAS number sitting in your Meta Ads Manager right now: if you run a local service business, it is almost certainly wrong. Not slightly off. Wrong in a way that can push you to kill winning campaigns and pour money into losing ones. A plumber, a med spa, a roofer, a law firm, a dentist. Ads Manager shows them a ROAS figure, they treat it as gospel, and they optimize their entire ad account around a number that has never once seen a dollar of their actual revenue. This guide fixes that.
What ROAS actually is
ROAS stands for return on ad spend. The math is brutally simple: revenue generated divided by ad spend. Spend 1,000 dollars, generate 4,000 dollars in revenue, and your ROAS is 4x. That is it. Four dollars back for every dollar in.
People confuse it with ROI, so let me draw the line. ROI accounts for all your costs and profit margin, and it is usually expressed as a percentage. ROAS is a top-line ratio that only looks at revenue against ad spend. ROAS is the gross gauge. ROI is the net truth. You need both, but ROAS is the number you will live inside day to day because it is fast, it is directional, and Meta reports it in near real time.
For an e-commerce store, ROAS is clean. Someone clicks an ad, buys a 60-dollar candle, and the pixel fires a purchase event worth exactly 60 dollars. Meta sees the revenue because the transaction happens on the website, right where the pixel lives. The number in Ads Manager is real.
Local service businesses do not work that way. And that gap is the entire problem.
Why the ROAS in Ads Manager lies for lead-gen
When you sell a service, nobody checks out on your website. They fill out a form. They call. They book a consultation. The money changes hands days or weeks later, often over the phone or at a kitchen table, in a place the Meta pixel will never see.
So what does Meta measure? It measures the last thing it can see, which is the conversion event you told it to optimize for. A lead. A form fill. A click-to-call. And here is where it gets dangerous: Meta will happily assign a dollar value to that lead if you set one, or it will just count leads and report cost per lead. Either way, the ROAS or the cost-per-result you see reflects pixel conversions, not booked revenue.
Think about what that hides:
So the campaign Meta crowns as your best performer, the one with the lowest cost per lead, is frequently the one attracting the cheapest, least serious prospects. Cheap leads are cheap for a reason. Meanwhile the campaign it flags as expensive might be bringing in the buyers who actually sign. Optimize toward the Ads Manager ROAS and you can systematically defund your most profitable audience.
Most local businesses are not bad at Meta Ads. They are just excellent at optimizing the wrong number.
What a "good" ROAS actually looks like
Everyone wants the benchmark, so here is an honest one, with the caveat that context eats benchmarks for breakfast.
On the platform-reported number, a lead-gen campaign that is genuinely working usually shows a cost per lead that pencils out against your deal economics, not a headline ROAS. But when you measure true ROAS to closed revenue, here is the range I see for healthy local service accounts:
That peak number does not come from a clever bidding trick. It comes from measuring closed revenue and then feeding that signal back into the machine. Which brings us to the levers.
The real levers that move ROAS
You cannot bid your way to a good ROAS. The account settings matter far less than operators think. Here is what actually moves the number, roughly in order of impact.
1. The offer
The single biggest lever, and the one everyone ignores in favor of tweaking audiences. "Free estimate" is not an offer. Every competitor in your market says the exact same thing. A real offer removes risk and creates urgency: "Free drain inspection plus a 200-dollar credit toward any repair booked this week." Same service, radically different response rate. When your offer is sharp, your cost per lead drops and your close rate climbs at the same time, which compounds directly into ROAS.
2. Creative volume
Meta's algorithm is a creative-testing engine. It is not starved for audiences, it is starved for winning ads. The accounts that win produce volume: multiple angles, hooks, formats, and a steady drip of new creative every week. One "great" video is a bet. Fifteen tests are a strategy. Most local businesses run three ads for six months and wonder why performance decays. It decays because the audience saw those three ads forty times. Creative fatigue is real and it silently taxes your ROAS.
3. The landing page
You can win the auction and still lose the money on the page. A landing page that loads in four seconds, buries the offer, and asks for eleven form fields will torch a good campaign. The fixes are unglamorous and reliable: one clear headline that matches the ad, the offer above the fold, social proof, a page that loads in under two seconds, and a form that asks for the minimum. Every unnecessary form field costs you conversions. Match the message on the ad to the message on the page or you leak the traffic you paid for.
4. Speed-to-lead
This is the lever that quietly determines whether your leads become revenue, and it happens after the click, which is why the ad-obsessed miss it entirely. The data here is not subtle. Contact a lead within the first five minutes and you are vastly more likely to reach and qualify them than if you wait even thirty minutes. Wait an hour and the lead has often filled out three competitor forms and booked with whoever called first.
Most local businesses respond to Meta leads in hours, sometimes the next day. That delay does not show up in Ads Manager, but it shreds your true ROAS because the leads you paid for go cold before anyone dials. This is exactly why Thinxster deploys AI callers that respond to inbound leads within 90 seconds, day or night. The math is simple: the same ad spend produces more conversations, more conversations produce more booked jobs, and more booked jobs lift the only ROAS that matters. Across those accounts, that fast, consistent follow-up drives a 62 percent qualification rate, meaning most leads that come in actually turn into real, sales-ready conversations rather than dead ends.
5. Attribution
You cannot improve what you cannot see. If Meta only knows about form fills, it optimizes for form fills. The unlock is closing the loop: sending closed-revenue data back so the algorithm learns which leads become customers. That is the difference between telling Meta "find me more people who fill out forms" and "find me more people who sign 8,000-dollar contracts." Same ad account, completely different outcome.
How to measure true ROAS to closed revenue
Here is the practical build. It is not complicated, but almost nobody does it.
Track every lead from ad to source. Tag inbound leads with the campaign, ad set, and ad that produced them. UTM parameters and hidden form fields do this. Without the source, none of the rest works.
Pipe leads into a CRM that tracks stages. You need a pipeline that follows each lead from new, to contacted, to booked, to closed, with the deal value attached. This is where the invisible becomes visible.
Attach real dollars to closed deals. When a lead becomes a customer, record the actual revenue. Now you can divide closed revenue by the spend for that specific campaign and get true ROAS.
Feed conversions back to Meta. Use the Conversions API to send high-value events, like "qualified lead" or "closed deal," back to Meta. Now the algorithm optimizes toward the people who actually pay you, not the people who merely fill out forms.
Judge campaigns on the closed number, not the platform number. Once a month, rank your campaigns by true ROAS. You will almost always find that the ranking is different from what Ads Manager told you, and that difference is where your growth is hiding.
This is the architecture Thinxster runs on every account: GoHighLevel pipelines that tie ad spend directly to booked revenue, so we are never guessing which campaigns actually make money. When you can see spend on one side and closed contracts on the other, the whole game changes. You stop optimizing for cheap leads and start optimizing for cash. That discipline is a big part of how these accounts have generated over 102 million dollars in tracked revenue.
The bottom line
The ROAS in your Ads Manager is a proxy. It is directionally useful for spotting broken creative and dead campaigns, but it was never designed to tell a service business whether its ad spend is making money. That answer lives in your CRM, in your pipeline, in the closed deals.
Fix the offer. Ship creative every week. Tighten the landing page. Call leads in seconds, not hours. Close the attribution loop. Then measure the only ROAS that pays your bills: revenue that actually landed in the bank, divided by what you spent to get it. Do that, and the number you chase finally becomes the number that matters.
[Book a free strategy call](/book)
Free Weekly Briefing
One AI Marketing Tactic.
Every Tuesday. Free.
What's actually working across our client accounts right now — ROAS moves, follow-up sequences, creative angles. The stuff that isn't in any blog post yet.
No spam. Unsubscribe anytime. 1,200+ business owners already in.