Your ROAS Didn't Drop Because Ads Got Expensive - You Ran Out of Cheap Customers

A homewares brand we looked at recently was convinced Meta had broken. Their ROAS had slid from about 2.4 to 1.5 over eight months, and the obvious villain was the auction. Ads cost more now, everyone says so, end of story.

So we pulled their CPM trend. It was flat. Slightly down, actually, on the year. The price of reaching a person hadn't moved. Their cost to turn that person into a buyer had nearly doubled.

That gap is the whole game, and almost nobody talks about it honestly.

Here's the thing. When CPMs hold steady but CAC climbs, the problem isn't the price of the ad. It's that you've already shown your ads to everyone cheap to convince, and now you're paying full freight to win over the people who were never going to be easy.

You didn't run out of budget. You ran out of cheap customers.

The number everyone watches is the wrong one

CPM feels like the honest signal because it's the one Meta hands you on a plate. It's right there. It went up, so ads got dear, so ROAS fell. Clean story.

But CPM is the cost of an impression, not the cost of a customer. And the two come apart the moment you've been spending on the same audience for a while.

I'll put this in perspective. Imagine a brand with roughly 15 million reachable people in its core market on Meta. Sounds enormous. Now imagine it's been running for a few years and, on average, has put its ads in front of each of those people something like 14 times. That audience isn't a fresh pond anymore. It's a lake you've already fished, hard, over and over.

The people who were going to buy on impression three mostly already bought. What's left is the harder, more sceptical, less interested slice. They still cost the same to reach. They cost far more to convince.

That's not a pricing problem. That's a saturation problem wearing a pricing costume.

The law of diminishing customers

There's an old growth idea I keep coming back to, sometimes called the law of bad cohorts. The gist: both your cost to acquire and the value of who you acquire degrade as you reach further out from your easiest buyers.

Picture the standard customer curve from any marketing class. The keenest buyers sit on one end, cheap and ready. As you spend more, you move along the curve into colder, slower-to-convince territory. Your CAC rises as a function of reach, not as a function of the auction.

So a brand that started acquiring at the easy end three years ago is now, by simple maths, buying from a worse part of the curve. Same product. Same creative, often. Worse economics. And the founder reads that worse number, panics, and pulls back spend.

That's the bit that turns a slow problem into a fast one. You cut spend, demand softens everywhere, the signal gets thinner, performance looks worse still, and you cut again. It becomes a quiet spiral, and the whole time the founder is blaming a CPM that never actually moved.

Blaming the auction lets you off the hook

I want to be fair to the other view. CPMs do rise over a long enough window, costs are genuinely up across the board, tariffs and freight and the rest are real. None of that is invented.

But blaming the auction is comfortable precisely because there's nothing you can do about it. If Meta got expensive, well, that's Meta's fault, and you get to keep running the same five ads to the same tired audience and feel hard done by.

In reality, the lever is sitting right in front of you, and it's not a bid setting.

If saturation is the disease, then more of the same creative pointed at the same people is just spending faster into the wall. The fix is to go and find demand you haven't already exhausted. There are two honest ways to do that, and most brands ignore both.

Fix one: new angles open up a new audience

When people hear "we need fresh creative", they usually make more of what's already working. A new edit of the winning ad. Same hook, new footage. That barely helps, because the limit was never the visual. It was the reason to buy.

A single angle only reaches the people who care about that one reason. Sell a mattress on "back pain relief" and you tap out everyone who buys for back pain. The people buying for sleep quality, for the partner who tosses and turns, for the five-year warranty, for the look of it in the room, they never saw an ad that spoke to them. To you it's the same product. To the auction it's a different audience entirely, because a different message reaches a different person.

This is why I treat angles as the real unit of scale, not creatives. Each genuinely new angle, a different persona, a different problem, a different moment of use, opens up a pocket of the market your old ads couldn't touch. That's how you get cheap conversions back without waiting on the auction to do you a favour.

So the work isn't "make more ads". It's "make ads for people you haven't spoken to yet".

Fix two: stop excluding the customers most likely to buy

Here's the one that genuinely surprises founders.

Say a brand has built up 200,000 past customers over five years. The instinct, drummed in by years of new-customer obsession, is to exclude every one of them from prospecting. They've already bought. Send them an email. Keep the ad money for strangers.

But look at who those 200,000 actually are now. The large majority, maybe 180,000 of them, are lapsed. They haven't bought in six months to a year. They've stopped opening your emails. In any real sense they don't belong to you anymore, no matter what your customer count says.

Excluding them is one of the most expensive habits I see at scale. A person who has bought from you before, used the product, and liked it is a warmer prospect than any cold stranger. They cost less to convince. They're more likely to come back. And you've walled them off from your best ads because a count in a dashboard says "existing".

The whole "must reach net-new customers only" idea is, I'd argue, actively toxic for an established brand. Some of the cheapest incremental revenue left to you is winning back the buyers you've wrongly excluded, not chasing ever-colder strangers at the far end of the curve.

So before you blame the auction, ask a blunter question. How much of my audience is people I already sold to once and then hid from? For a lot of brands past the early days, that's a bigger pool than the cold market they're fighting over.

What I'd actually go and check

If your ROAS is sliding and your gut says "ads got expensive", do three things before you touch a single bid.

  • Pull your CPM trend over twelve months and put it next to your CAC trend. If CPM is flat or down while CAC climbs, the auction is innocent. This is saturation, and the rest of the list is your fix.
  • Count your live angles, not your live ads. If five "different" ads are really one reason to buy in five outfits, you've been reaching one slice of the market and ignoring the rest. New angles, not new edits.
  • Check who you're excluding. If you're hard-excluding all past buyers from prospecting, you're locking out your warmest, cheapest audience. Most of them are lapsed and winnable.

The honest version of the story is less flattering than "Meta got greedy", but it's far more useful. The auction didn't take your cheap customers. You used them up, then stopped going to look for new ones.

If your numbers fit this pattern and you'd value a hand pulling the CPM-versus-CAC picture apart and pointing to where the unspent demand actually sits, a Signal/Noise Audit is built to do exactly that. No pitch in it, just the map.

Ethan To
CEO @ Pigeon Digital