Skip to main content

Case Study · Luxury sellers, Space Coast Florida

Luxury real estate ad campaign, start to finish

A listing agent on the Florida coast had been running ads since March 2026 and had not booked a single appointment through the funnel. This is what I found when I pulled the account apart, what I changed, and the part of it I still got wrong.

$2,405.91Total ad spend, account lifetime
$530,000Home sale closed from this campaign
$15,900Commission to the client at 3%
6.6xReturn on total ad spend
The situation

Three months and zero appointments

The client sells homes on the barrier islands south of Melbourne, Florida. Melbourne Beach has a median listing price around $1.1 million, Satellite Beach runs in the $600,000s, and the mainland twenty minutes west trades in the low $300,000s. Same county, completely different business.

Her ads had been live since March. By the time I took the account apart in June she had spent $1,578 and collected 32 leads, and not one of them had booked a call through the funnel. Not a low booking rate. Zero.

Worse than the zero was the direction. Cost per lead had gone up, down, and then up harder, which is the shape of an account nobody is steering.

March cost per lead
$58
April cost per lead
$35
May cost per lead
$69
The diagnosis

Three things were wrong, and only one of them was the ads

The creative was static

Image ads were putting 2 to 3% of clickers onto the landing page. Video had run for exactly one day in April and moved that to 33%. The single highest-leverage number in the whole account had been sitting in the reporting for two months with nobody looking at it.

The geography was too wide

The targeting covered the Space Coast broadly, which meant the algorithm was spending her money finding homeowners in markets where a house sells for a third of what hers do. You cannot write your way out of an audience that is mostly the wrong people.

Nothing was catching the lead

Leads submitted the form and then landed on a page that said thank you and nothing else. Every one of those 32 people had raised a hand and then been handed silence. That is where the zero came from.

A dead account usually is not one broken thing. It is three small ones that each look survivable on their own.

The constraint

You are not allowed to target the neighborhood

Housing ads on Meta run inside a Special Ad Category, which exists because targeting housing by neighborhood is how redlining worked. ZIP code targeting is off the table. Age and gender restrictions are limited. Most of the levers a marketer would normally reach for are gone on purpose, and they are gone for a good reason.

What you get instead is a radius. So the whole geographic strategy collapses into one decision: where you drop the pin. I put it on the Indialantic and Melbourne Beach line with a fifteen mile radius, which covers the beach towns and the good half of the mainland and stops before the markets that would have dragged the audience down.

That sounds small. It is most of the campaign. A radius pinned twenty minutes west would have quietly spent her budget on the wrong homeowners and still produced leads, which is the most expensive kind of failure because it looks like it is working.

The approach

What the playbook says versus what I did

The standard move

  • Target the whole region so the audience is large enough to optimize against.
  • Start a new pixel with the new campaign so the data is clean.
  • Run image ads, because they are fast and cheap to produce.
  • Offer an instant online home value, the same thing every competitor offers.
  • Judge an ad set after a day and turn off whatever looks slow.
  • Drive cost per lead as low as it will go.

What I did instead

  • Pinned a fifteen mile radius on the barrier island and deliberately cut the cheaper mainland out.
  • Kept the existing pixel and its three months of conversion history, and reset the creative instead.
  • Video only against cold traffic, with static held back for retargeting people who had already watched.
  • Sold against the instant estimate and used its inaccuracy as the reason to want a real one.
  • Wrote a rule before launch that no ad set gets touched until it has spent twice the target cost per lead.
  • Accepted a higher cost per lead in exchange for leads that could actually transact.
The rebuild

Five changes, in the order I made them

Fix the map before touching the copy

The pin moved to the Indialantic and Melbourne Beach border at a fifteen mile radius, with a broad Advantage+ audience and no interest stacking on top of it. In a Special Ad Category the algorithm needs room to find the seller. Layering interests on top of a restricted category mostly just makes the audience small and expensive.

Keep the pixel, reset the creative

The instinct when an account is failing is to burn it down and start clean. That instinct is wrong here. The pixel had three months and 32 conversions of learning in it, and throwing that away means paying to relearn what the account already knew. The creative was the thing that was broken, so the creative is what got replaced.

Rewrite the offer as an argument

Every home evaluation ad in this industry promises an instant online estimate, which is a worse version of something a homeowner can already get free in ten seconds. I wrote the opposite. The ad names a price floor in the first line, then makes the case that on a coastal property with no real comparables an automated estimate can miss by close to 20%, and that the gap is the reason to want a human number.

Put something on the other side of the form

A short video from the agent now sits on the page a lead lands on after submitting: who she is, what happens next, and how many evaluation slots are open. It costs nothing to produce and it is the single change that addressed the zero, because the leads were never the problem. What happened in the ninety seconds after the form was.

Write the spending rule before launch, not during

Two ad sets at $10 a day, and neither gets a decision until it has spent forty. Deciding that in advance is the entire discipline. In the middle of a launch, with a client watching, every instinct says kill the slow one on day one, and acting on that instinct is how the first three months of this account went.

The result

One seller was worth all of it

A homeowner who came through this campaign listed with her and the sale closed at $530,000. At a 3% listing commission that is roughly $15,900 to the client, against $2,405.91 of advertising spent on her account since the very first campaign in March.

Seven campaigns, most of them tests, several of them failures, one closing.

Total spent on the account, all seven campaigns$2,405.91
Sale price of the home that closed$530,000
Commission to the client at 3%$15,900
Return on every dollar ever spent here6.6x
The argument

Why the expensive leads were the right ones

Leads on this account ran between $28 and $146. On another account I manage, in a new construction market, I get them for $8.29. If cost per lead were the scoreboard, this campaign is an embarrassment and the cheap one is the win.

It is not the scoreboard. Luxury targeting filters hard, and filtering is the product. You are paying to have fewer people raise their hand, because the ones who do own something worth a commission that pays for the entire year of advertising. A hundred dollar lead that lists a $530,000 home returned more than every eight dollar lead on my other accounts put together.

The number that actually decides an account is cost per booked appointment, and behind that, what a booked appointment is worth once it closes. Cost per lead is the first number a client asks about and close to the last one I look at.

Cheap leads are easy. Cheap leads who can transact are the job.

See the ad and the numbers behind it →
Honestly

What I would do differently

The video test that changed everything ran for one day in April and then sat there. The number was in the reporting the whole time and it took until June for anyone to act on it, and I am the person who eventually acted on it. Two months is a long time to own an account and not read it properly.

The page behind the form should have existed before the first ad ever went live. Building the front of a funnel and leaving the back of it empty is a mistake I will not make twice, and it cost this client 32 leads to teach me.

And the honest limit of this case study is the sample. One closing is one closing. It proves the approach can work in this market. It does not prove it repeats, and I would not stand in front of a room and claim it does until I have run it two or three more times and watched what happens.

Questions about any of this?

Happy to walk through the targeting, the creative testing or the numbers with anyone who wants the detail.