Home / Case studies / Chicago North Shore cleaning leads
Cleaning leads at $23.90, in some of the priciest zip codes in Illinois
This client resells leads to cleaning companies, which means the cost per lead is not a metric for him. It is his margin. Built from scratch across four North Shore suburbs.
Why this account had no margin for error
Most cleaning businesses treat cost per lead as one number among several. If it drifts up, the job value absorbs it.
This client does not have that cushion. He is a contractor who generates cleaning leads and resells them to cleaning companies, so the gap between what a lead costs him and what a cleaner will pay for it is the business. A ten dollar swing in cost per lead is not a reporting inconvenience. It is the difference between a working operation and a hobby.
Then there is the geography. Wilmette, Kenilworth, Winnetka and Glencoe are North Shore suburbs, among the most expensive residential areas in Illinois. Affluent audiences are contested audiences. Everyone with a budget is bidding for the same attention.
What I did differently
I took the account over from scratch, so there was no existing structure to protect and no historical data to inherit.
The decision that mattered was not about targeting. It was about what the ads showed.
Most cleaning ads look the same. A logo, a stock photo of somebody in gloves, a discount, and the words professional cleaning services. That is a description of a category, not a reason to act.
So the strategy went creative heavy. The ads showed the work itself: a building being cleaned, an apartment going from lived in to spotless, a communal area actually getting done. Real spaces of the kind people in those suburbs recognise, mid transformation rather than staged after the fact.
Meta already knows who lives in Wilmette. What it cannot do is make them care. That part is still the creative's job.
What it came out at
| Suburb | Leads | Cost per lead | Daily budget |
|---|---|---|---|
| Wilmette | 33 | $23.90 | $50 |
| Kenilworth | 22 | $29.61 | $25 |
| Winnetka | 8 | $35.27 | $25 |
| Glencoe | 4 | $50.58 | $10 |
For a reference point, LocaliQ's 2025 benchmark across 3,211 US campaigns puts residential cleaning near $47 per lead on Google Search, and a metro as competitive as Chicago runs higher than the national figure. Wilmette came in at roughly half of that, in a suburb where the median home price is well above the metro average.
I am including Glencoe deliberately. At $50.58 across four leads it is the weakest line in the account, and leaving it out would make the story tidier and less true. Small suburbs with small budgets produce small, expensive samples. That is the honest read, and it is exactly why the budget sat where it did.
The part that transfers
Two things carried this account, and neither was a targeting setting.
The first is that showing the outcome beats describing the service. People do not buy cleaning. They buy the moment the place is clean, and an ad that shows that moment does more work than any interest stack.
The second is splitting by suburb instead of running one broad campaign across the North Shore. An average across those four zips would have read somewhere near $32 and hidden the fact that Wilmette was carrying it. Splitting them made the difference visible, and made it obvious where the next dollar should go.
Want the same read on your account
A free twenty minute call, screen shared. I go through your Facebook and Instagram ads with you and tell you what I would fix. You keep the list whether you hire me or not.