Skip to content
Call now · 770-758-1608BlogBook a call
Blog
THRIVR.

Thrivr Productions · Atlanta, Georgia

Blog · Case Study

They ran the ads themselves for months. Zero jobs.

By Nikolaj KlochOctober 14, 20264 min read

Lullwater Pools Case Study

Lullwater Pools owner speaking to camera beside a finished custom pool in a Meta ad filmed by Thrivr Productions
Lullwater Pools · filmed on a finished job in North Atlanta

You’ve been here.

You boosted a few posts. You let Facebook pick the audience. A few leads trickled in, and every one was a tire kicker. Wrong budget, wouldn’t answer the phone, never going to buy.

So you spent the money, chased junk, and closed nothing. And you walked away sure that ads just don’t work for your trade.

I hear some version of this on almost every call I take with a Georgia contractor. Roofers, remodelers, window guys, pool builders. The trade changes but the story doesn’t. And it’s almost never the trade’s fault.

Lullwater Pools had the same story. Here’s what happened.

Who Lullwater is

Lullwater Pools builds custom concrete in-ground pools across Metro Atlanta and North Georgia. These aren’t cheap jobs. Their average pool runs around $125,000. That makes them exactly the kind of business that should do well with Facebook ads, and exactly the kind that gets burned when the ads are built wrong.

When a single sale is worth six figures, you don’t need a flood of leads. You need a handful of the right ones every month. Most owners never set their ads up to find them.

What their own account showed

Before Thrivr, Lullwater ran their own Facebook campaigns for months. They did what most owners do. They posted generic, AI-made content, let Facebook’s automated targeting (Advantage+) decide who saw it, and hoped the right homeowners would show up.

Straight from their ad account:

  • Pool Construction Sales v1: 25 leads at $20.13 each
  • Pool Sales Round 2: 3 leads at $40.96 each
  • Pool Sales Round 3: 7 leads at $101.88 each
Lullwater Pools Ads Manager: three DIY campaigns at $20 to $102 per lead vs Thrivr's campaign at $8.61 per lead
Straight from Lullwater’s ad account.

Add it up and they spent about $1,339 for 35 leads. That’s roughly $38 a lead, and it got worse with every round. By round three they were paying over a hundred bucks a lead.

Pools sold from those campaigns: zero.

That’s the part that hurts. It’s not just the $1,339. Every round taught them that ads are a money pit and the leads are garbage. Plenty of owners stop right there and never run another ad.

They weren’t a money pit. They were just being run wrong.

Why it didn’t work

Nothing went wrong that was specific to pools. It’s the same three mistakes I see in almost every DIY account.

They let Facebook pick the audience. Automated targeting is built to find people who click, not people who can write a $125,000 check. For a local, high-ticket business, you have to tell the system who you want, or it spends your budget on whoever is cheapest to reach.

The creative didn’t look like a real business. Generic posts blend into the feed. A homeowner about to spend six figures wants to see a real company and real work before they raise their hand.

Nothing filtered the leads. Anybody could fill out the form. So the people who did were mostly curious scrollers, folks who wanted a pool for the price of a used car, and people outside the service area. Every one of those leads costs money, and every one costs the owner time on the phone.

What changed

We threw out the whole approach and rebuilt it around one question: who can actually buy a Lullwater pool?

Video creative built for the right homeowner. No generic posts. Ads made to speak to North Atlanta homeowners who are serious about a custom pool.

Targeting we control. We stopped letting the algorithm guess.

A filter in front of the phone. Anyone budgeting $80,000 or less never makes it through the form. An address check runs quietly in the background, so out-of-area leads don’t land on their desk either.

Every lead goes straight into their CRM. The business number runs through their system, so a new lead gets handled while it’s still hot.

One of the Lullwater ads behind the $357,000.

The results

One campaign. 408 leads at $8.61 each on $3,511.95 in ad spend.

Read that again next to their numbers. Their leads cost $20 to $102, and the price climbed every round. Ours came in at $8.61, and that’s after filtering out everyone under $80,000. Adding a filter usually makes leads more expensive. Here it made them cheaper, because the ads finally reached the right people.

That campaign closed $357,000 in pools. Eight more designs are still live in the pipeline, and Lullwater is booked out for weeks.

The math

$3,511.95 in. $357,000 out.

That’s a 101x return on ad spend, and the pipeline isn’t empty yet. Their very first pool from the campaign paid for the ads 34 times over by itself.

Compare that with their own campaigns: $1,339 in, $0 out.

It was the same business, the same owner and the same product, and both runs used Facebook. The only thing that changed was how the ads were built.

What this means for your business

You don’t build pools? Doesn’t matter. Look at your own account and ask yourself four questions:

  1. Who picks your audience, you or Facebook? If it’s Advantage+ on autopilot, you’re paying to reach people who click, not people who buy.
  2. Does your ad look like a real company? Stock photos and generic posts get scrolled past. Your work, your crew and your trucks are what earn trust.
  3. Does anything filter your leads? If anybody can fill out your form, you’re paying for tire kickers and spending your evenings calling them back.
  4. Do you know your cost per sold job? Cost per lead looks nice on a report. What pays the bills is what each closed job cost you in ads.

If you answered “Facebook,” “no,” “no” and “no,” your ads aren’t broken. They were just never built to work.

Receipts, not reach.

Thrivr runs Meta ads for home service businesses in Georgia. If you want to know what your account would look like rebuilt, book a 20 minute call.

Book a call
Call nowBook a call