The Local Meta Ads Handbook
How I run Facebook and Instagram ads for home service businesses. It's video first, every time: 18 to 30 seconds of satisfying footage, a banner with the city and the offer, and a voiceover that hits the pain, the fix and the deal.
Cleaning, lawn care, landscaping, carpet cleaning · Updated October 2026
Deep carpet cleaning in Phoenix. Book this week and save 20%.
Get quoteInside
Ten steps from phone footage to booked jobs
We don't run static ads
Static image ads don't perform for us. Video does, by a lot. People stop scrolling for motion, and a home service is something you can show happening.
Our video ads land around $3 to $5 a lead for lower-ticket services like cleaning, carpet and pressure washing. For higher-ticket work like painting, plumbing and HVAC we see $15 to $30 a lead. For context, LocaliQ's 2025 benchmark for Home & Home Improvement lead campaigns on Facebook is about $41 a lead.
Why video wins locally
- It stops the scrollA dirty driveway turning clean in one pass is hard to swipe past. A photo of a van isn't.
- It proves you do the workReal footage of your crew on a real job builds trust before they ever call.
- It fits where people areReels and Stories are vertical video. A static image looks like an ad there. A good video looks like content.
- It gives Meta more to work withWatch time, replays and taps tell the algorithm who to show your ad to next.
Is your service satisfying to watch?
Some trades are made for video. Pressure washing, carpet cleaning, window cleaning, lawn stripes, fresh paint. The transformation is the ad.
Other trades are less visual. You can't film a furnace being satisfying. Those still get video ads, just filmed a different way.
Very visual
Let the work be the hookPressure washing, soft washing, carpet and upholstery, windows, gutters, lawn mowing and stripes, landscaping, painting, junk removal, auto detailing.
Film the transformation in close-up. Real sound. Slow, satisfying passes.
Less visual
Show the problem and the personPlumbing, HVAC, electrical, appliance repair, pest control.
Open on the problem (the leak, the frozen house, the old panel), then your tech on camera explaining the fix. Real faces build trust for higher-ticket work.
18 to 30 seconds, second by second
Every ad we run has the same skeleton: a banner that never leaves the screen, satisfying footage underneath, and a voiceover that walks through the pain, the solution and the offer.
Long enough to tell the whole story, short enough that people watch to the end. Over 30 seconds and you start losing people before the offer.
The most satisfying shot you have, while the voice names the problem they're living with. "Pet stains that just won't come out?"
The transformation. Close-ups, before into after, real sound. The voice explains what you do and why it works.
The finished result and the deal, spelled out. Who it's for, where, what they get, and what to tap.
The three layers
- Banner, always on topCity and offer, on screen from the first frame to the last. Anyone who watches even one second knows who it's for.
- ASMR footage underneathSatisfying, close-up, real-sound footage. This is what makes people keep watching.
- Voiceover on top of it allPain, solution, offer. Captions burned in so it works with sound on or off.
City and offer, where the app won't cover it
The banner does two jobs at once. The city tells locals "this is for you" and filters out everyone else. The offer gives them a reason to tap today.
Placement matters. In Reels, Instagram and Facebook put the account name, buttons and caption over the edges of your video. Meta's own Reels spec says to keep the top 14%, the bottom 35% and 6% on each side clear of text. So the banner goes near the top, just below that top strip.
Banner specs
- Two lines maxLine 1: the city, big. Line 2: the offer. "PHOENIX" / "20% off carpet cleaning this month".
- Start about 270px down on a 1080×1920 videoThat clears the top 14% of the frame. Keep it inside the side margins (about 65px each side).
- High contrastSolid background block, bold text. It has to read on a small phone over moving footage.
- Same banner the whole videoDon't animate it away. Someone who joins at second 12 still needs to see the city and the deal.
- Match it to the targetingIf the ad runs in Tampa, the banner says Tampa. One city per version when you can.
Film it like ASMR
The footage should feel good to watch even with no words at all. Close-ups, slow passes, crisp real sound. The kind of clip people watch twice.
How to shoot it
- Vertical, alwaysShoot 9:16 on your phone. 4K or 1080p at 30fps or 60fps.
- Get closeMacro-close on the surface being cleaned, the brush, the water hitting the concrete. Close-ups are what make it satisfying.
- Move slowlySlow pushes in, slow follows along the stroke. Brace the phone or use a cheap gimbal. Shaky footage kills the feel.
- Record the real soundThe hiss of the wand, the vacuum pulling dirty water, the mower. Keep it in the edit under the voiceover.
- Shoot more than you needA 30-second ad needs 3 to 4 minutes of raw clips. Grab before, during and after from the same angle.
- Good lightDaylight, sun behind you. For interiors, open the blinds and turn every light on.
Pain, solution, offer
The voiceover is short and plain. Speak like you're talking to a neighbour, not reading an ad. Around 2.5 words a second, so a 30-second ad is roughly 70 words.
The formula
- Pain (one sentence)Name the problem they already have. Ask it as a question. "Driveway looking green and slippery?"
- Solution (two or three sentences)What you do, how, and why it lasts. Mention one trust point: insured, local, family-safe products, a guarantee.
- Offer (one or two sentences)The deal, the city, and the exact button to tap. "Tap Get Quote and save 20% this month."
Record it on your phone in a closet or car (soft surfaces kill echo), or use a clean AI voice if you hate your own. Then burn the words in as captions.
Putting it together in CapCut
You don't need an editor. A phone and CapCut get you there in under an hour once you've done it twice.
The edit, in order
- Lay down the voiceover firstThen cut the footage to it. The voice sets the pace.
- Open on your best clipThe most satisfying 2 to 3 seconds go first, under the pain line.
- Cut on every lineNew clip every 1.5 to 3 seconds. Keep the transformation shots a little longer.
- Add the bannerA text block across the top, below the top 14%, for the whole video.
- Burn in captionsAuto-captions, then fix the words. Keep them in the safe area above the bottom 35%.
- Mix the soundVoice on top, real job sound underneath, music very low or none. The ASMR sound is part of the ad.
- End on the offerLast 3 seconds: finished result, offer on screen, "Tap Get Quote".
- Export two versions1080×1920 (9:16) for Reels and Stories, and a 1080×1350 (4:5) crop for Feed.
Give them a reason to tap today
A good video gets watched. A good offer gets the tap. Put the offer in the banner, say it in the voiceover, and repeat it in the ad's headline.
What makes an offer work
- Specific"$50 off your first wash" beats "great prices". "20% off this month" beats "special offer".
- LocalName the city in it. "Phoenix homeowners" feels like it was made for them.
- Time-boxed, honestly"This month" or "before the 31st", and mean it. Swap the offer when the date passes.
- Easy to say yes toFree quote, first room discount, bundle deal, free add-on. Low risk for them to raise a hand.
- SeasonalSpring cleanups, gutter season, pre-holiday carpets, summer exteriors. Ride what people already need.
Broad people, a hard wall around the map
The setup is simple on purpose. Give Meta total freedom on who sees the ad, and zero freedom on where they live.
The structure
- One Leads campaign, campaign budget onObjective: Leads. Budget at the campaign level, highest volume, no cost cap. Start small, around $5 to $20 a day per city, and let it run.
- Two ad sets inside: Manual vs Advantage+Same video, same copy, same form. One uses Advantage+ audience (completely broad), the other adds a little detailed targeting. The campaign budget flows to whichever wins.
- Fence the mapInclude only the cities you actually drive to. Exclude the cities next to them you don't serve, then the rest of the state or province, then other countries. Meta won't deliver outside these location controls, even with Advantage+ on.
- In a big metro, aim for roughly 1 to 2 million in estimated audienceMuch smaller burns out fast; much bigger usually means the fence has gaps. In a smaller market, take what the fence gives you and swap creatives more often.
- Turn off location expansionUncheck "reach more people likely to respond" if it shows up, and keep city radiuses tight.
- Then leave it aloneMeta's learning phase needs about 50 results per ad set in a week. Every big edit restarts it. Change creatives on a schedule, not every day.
One question, then call fast
We send people to an Instant Form, not a website. It opens inside Facebook or Instagram with their name, email and phone already filled in. Less friction, more leads.
The form
- Form type: More volumeThe default. Higher intent adds a review step that cuts volume. We'd rather get the lead and qualify it on the phone.
- Exactly one qualifying questionA multiple-choice question that sizes the job, with 4 options and an open last one. "How many rooms need cleaning? 1 / 2 / 3 / 4+".
- Prefilled contact infoName, email, phone. Meta fills them in.
- A thank-you screen with a call button"Thanks, you're all set. You'll hear from us in minutes." Plus a Call now button for the ones ready to talk.
The follow-up decides everything
A cheap lead is worthless if nobody calls it. Harvard Business Review found firms that reached a lead within an hour were nearly 7 times as likely to qualify it as firms that waited longer. We aim for minutes, not hours: an instant text the second the form lands, then a call.
- Get leads off Meta instantlyConnect the form to your CRM, a Google Sheet or email so nobody has to log in to check.
- Text first, then callAn automatic text the moment they submit, then a real call within minutes.
- Track booked jobs, not just leadsCost per lead is the start. Cost per booked job is what matters.
More notes
Things I'd tell you over coffee
When frequency climbs and cost per lead creeps up, the creative is tired. Meta may flag it as "creative fatigue". Have the next 3 videos ready before you need them.
A single 20-minute job shoot can give you five different ads. Different hook shot, different pain line, different offer. That's the variety Meta's algorithm wants now.
Ads that feel like a Reel beat ads that feel like a commercial. Real footage, real voice, no stock music swells, no flashy logo intro.
Primary text: who you are, what you do, the cities, the offer, and "Tap Get Quote". Headline: the benefit in five words. The video does the heavy lifting.
Some weeks the cheapest leads close worst. Look at leads, calls connected, quotes and jobs booked side by side before you kill or scale an ad.
When an ad set is working, raise the budget in steps of 20 to 30% every few days instead of doubling it overnight, so you don't knock it back into learning.
Pre-launch checklist
Before you hit publish
Your checks save in this browser, so you can come back and finish later.
Follow for more.
I share what's actually working in my own home service businesses: the ads, the follow-up, and the local SEO underneath it all. No fluff, no pitch.
Sources and further reading
- Meta, Instagram Reels ad specs and safe zones
- Meta, Facebook Feed video ad specs
- Meta, About the learning phase
- Meta Engineering, Meta Andromeda
- Meta for Developers, Special ad categories
- Meta for Developers, Conversion leads integration (sending booked-job data back, best at 200+ leads a month)
- Meta Newsroom, Generative AI transparency in ads
- LocaliQ, Facebook advertising benchmarks 2025
- Harvard Business Review, "The Short Life of Online Sales Leads" (2011)
- Campaign, Delivering impact with the rise of Reels (sound-on viewing)
General education from someone running local service businesses, current as of October 2026. Meta changes its tools and policies often, so check Ads Manager and Meta's help center before you launch. Cost-per-lead figures are our own typical ranges, not a guarantee. Not affiliated with Meta. Business names, numbers and offers in the example screens are made up.