What Does an Ad Agency Actually Cost in 2026?
September 14, 2026

Facebook ads work for carpet cleaning businesses in 2026 when you judge them by cost per booked job instead of cost per lead, run real before and after shots from your own jobs and only target homes inside your drive-time radius. Zerorez cut its lead cost 85% on Meta with a creative testing system.
Zerorez went from $85 a lead to $12.96 a lead on Meta. That's the number home service owners ask me about first and it's the right place to start because of what came with it.
The Zerorez Home Services Lead-Cost Benchmark is the full version: Zerorez cut lead cost 85% while booked monthly appointments climbed 355% and profitable ad spend grew 400% under their Unicorn Marketer. The way they got there was a Meta ad creative testing system, not a secret audience or a hack. A testing system just means new ads keep going in and the losers keep coming out.
The part I want you to notice is the middle number. Cheaper leads are nice. More booked appointments is what pays for the vans.
If you're a carpet cleaner who's been boosting posts yourself, or paying someone who sends you a lead count every month and not much else, this guide is for you. I'll cover what works on Facebook and Instagram right now, what to measure, what the ads should show and when Facebook is the wrong call.
Three things work and they work together. You show proof of the result, you make booking easy and you only pay to reach people you can actually drive to.
Carpet cleaning has an advantage most industries would kill for. The result is visible in one picture. A plumber can't show you a fixed pipe behind a wall, but you can show a red wine stain that's there in one photo and gone in the next. That's why the ad accounts that win in this category lean so hard on real job photos and short phone videos from the techs.
Booking is the second piece. Most carpet cleaners run one of two setups on Meta. Either an instant form inside Facebook, which gets cheap leads that you then have to call, or an ad that sends people to an online booking page, which gets fewer leads that are usually further along. Neither one is always right. It depends on how fast your office answers the phone.
If someone in your office calls every form lead within minutes, the instant form can work great. If leads sit until tomorrow afternoon, you're paying for people who've already booked your competitor.
Targeting is the third piece and I'll get to it in the section on what breaks.
Because a lead does not pay you. A cleaned carpet does.
The number to run your account on is cost per booked job. Here's the math you can do on your own numbers this week. Take what you spent on Meta last month and divide it by the jobs you actually booked from those ads. Not form fills. Booked jobs on the schedule.
Here's an example with made-up numbers just to show the math. If a lead costs $30 and you book one out of every three, your cost per booked job is $90. If a "cheaper" campaign gets you $20 leads but you only book one in six, you're paying $120 per job. The campaign that looked worse in Ads Manager is the one making you money.
This is exactly where a lot of carpet cleaners get burned. Someone optimizes the account for cheap form fills, the monthly report looks amazing and the schedule doesn't change. Price shoppers and people who typed a fake number are the cheapest leads Meta can find you.
Meta has a tool built for this problem. Its Conversion Leads integration lets you "send down-funnel event data from your CRM back to Meta" so the algorithm learns which leads turn into real customers. Meta says it "may yield higher quality leads that are more likely to convert."
The catch for a lot of carpet cleaners is Meta's own fit criteria. It only works with instant form lead ads and Meta lists about 200 leads a month as the bar, with the lead stage you're optimizing for happening within 28 days. A two-van operator in one town usually isn't there yet. That is fine. Until you are, track booked jobs by hand in whatever scheduling software you use and judge every campaign on that column.
They should show the stain shot. A close photo of a real stain on a real customer's carpet, then the same spot after your tech is done. Shot on a phone, in the customer's actual living room, with the actual lighting.
That one frame does more selling than any headline you'll write. Polished stock photos of a smiling family on a white carpet don't stop anyone, because every cleaner in town can run the same picture.
A few others that tend to earn their spot:
One rule here is not optional. Every review and before and after you use has to be real and from your own work. The FTC's final rule banning fake reviews and testimonials bars fake reviews, including AI-generated ones and bars paying for reviews that say something positive. If you offer customers a discount for leaving a review, it can't depend on the review being good.
If you want to see what other cleaners in your market are running before you build your own, the Meta Ad Library shows every active ad any page is running. Search a few competitors and look at how long their ads have been live. An ad that's been running for months is usually one that's working.
There are two costs: the ad spend and whoever runs it. I am not going to make up a typical budget, because it depends completely on your market, your average ticket and how many jobs your crews can take.
What I can give you is how to set the spend. Start from your own numbers. Figure out the most you can pay for a booked job and still make money on it after labor, chemicals and the van. That's your ceiling. Then set a daily budget that gets you enough booked jobs each week to tell whether a new ad is better or worse than the last one. If the budget only produces a couple of jobs a week, you will not know what's working for months.
For the person running it, the common setups in 2026 are a monthly retainer, a percentage of ad spend or a mix. A traditional agency can absolutely run a home services account well. The problem is usually attention, because the person in your account is often splitting their week across a lot of other clients.
Ask how many accounts they're managing and who makes the new creative each month. I wrote more about how to hire a Meta ads expert if you're weighing that decision now.
The same handful of things, in pretty much every account I've looked at in this industry.
You'll see lead costs within the first week or two. You'll know whether the ads are working once enough of those leads have been booked and cleaned, which is usually a few weeks in.
Carpet cleaning is fast compared to most lead gen. Someone fills out a form, you call them, they book for later this week. So you don't have to wait months for an answer the way a solar company or a roofer does. That is a real advantage. Use it by reviewing booked jobs every week, not lead counts.
The person running your ads should be able to show you three things at that point: what you spent, how many jobs were booked from it and which ads booked them. If they can only show you leads and clicks, they are reporting on the part that's easy to measure, not the part that pays you.
Facebook is the wrong first channel when someone needs a carpet cleaned today. A flooded basement or a big spill sends people to Google and they hire whoever answers first. Meta is better at reaching homeowners before they're searching, which is why the stain shot works so well there.
It is also the wrong channel if you can't handle more work. If your crews are already booked out three weeks, more leads just means more people waiting and some of them will leave reviews about it. Fix the capacity first.
And if nobody can call leads back the same day, Facebook will keep handing you people you never talk to. Sort out who answers the phone before you spend another dollar.
The lesson: in 2026 the cleaners who win on Facebook are not the ones with the cheapest leads. They are the ones who know their cost per booked job and keep putting new proof in front of the right homes.
The Unicorn Assessment reviews your ad account, your creative and how leads turn into booked jobs, then shows you what a top 1% ads expert would fix first. If it's a fit, you meet the specific Unicorn Marketer and approve them yourself before any work starts.
Yes, when they're built around booked jobs instead of cheap leads. Carpet cleaning is one of the few categories where the result shows up in a single before and after photo, which is exactly what stops people scrolling. Zerorez cut its cost per lead from $85 to $12.96 on Meta while monthly appointments went up 355%.
Start from the most you can pay for a booked job and still profit after labor and supplies. Then set a daily budget that gets you enough booked jobs each week to compare ads against each other. There isn't an honest one-size number, because your market, your average ticket and how many jobs your crews can take all change it.
It depends on how fast your office calls leads back. Instant forms inside Facebook usually get cheaper leads, but many of them need a call to book. A booking page gets fewer leads who are further along. If your team calls form leads within minutes, forms can work very well. If leads wait until tomorrow, send people to a booking page.
Show real before and after photos from your own jobs, shot on a phone in the customer's home. A close stain shot followed by the same spot cleaned does more than any headline. Short videos of your techs and the dirty extraction water work too. Every review and photo must be real, since the FTC bans fake and AI-generated reviews.
There's no honest universal number and cost per lead is the wrong thing to chase anyway. Track cost per booked job instead: total ad spend divided by jobs actually booked from those ads. A campaign with more expensive leads that book at a higher rate often makes you more money than one with cheap leads that never answer.
If you're spending little and have time to test new ads every week, running it yourself is fine. Once the budget matters, hire someone who has run home services accounts, reports on booked jobs rather than leads and isn't spread across dozens of other clients. Whoever it is, keep the ad account in your own name.