Field guide
Why your Shopify ads aren't profitable — and the math that fixes it
Spending on Meta or TikTok and watching money disappear? It's almost always one of four things — and none of them is "the algorithm hates you."
Unprofitable ads feel like a creative problem, so people burn weeks testing new videos. Usually it's a math problem — the numbers never allowed profit in the first place. Here's how to check, in order.
Reason 1: You don't know your break-even CPA
The number that decides whether an ad makes money is your break-even cost per acquisition — and it's just your gross margin per order, in dollars:
break-even CPA = gross margin per order
profit per sale = break-even CPA − your actual CPA
Sell at $40, COGS $12, fees $2 → $26 margin. If Meta acquires a customer for $18, you make $8. For $30, you lose $4 — every sale. Until you know this one number, you can't tell a good campaign from a bad one, and neither can the ad platform.
Reason 2: Your store doesn't convert (the leaky bucket)
Ads multiply whatever your store already does. If your page converts cold traffic at near-zero, ads just spend money faster. Clicks but no sales is the tell: the ad did its job, the store didn't. Fix conversion first — offer clarity, trust signals, checkout friction — on cheap or existing traffic, then scale. Pouring budget into a store that doesn't sell is the most expensive mistake in e-commerce.
Reason 3: The budget is too small to learn
Ad platforms need data to optimise — roughly ~50 conversion events per ad set per week to exit the "learning phase," where results are noisy and usually poor. At $5/day you may never get there, so you judge a campaign that never actually finished learning. Either fund enough volume to learn, or optimise for an earlier, cheaper event (like add-to-cart or lead) while you build up.
Reason 4: You're changing the wrong thing
When ads underperform, people swap creative first. But diagnose the funnel:
- Low click-through → it's the creative or the hook. Test new angles.
- Clicks, low add-to-cart → it's the product page or offer.
- Add-to-cart, no purchase → it's checkout or trust.
- Good sales, still unprofitable → it's the price/margin, not the ad.
Change the thing the data points at, not the thing that's easiest to change.
The honest bit about "just make better creative"
Great creative genuinely matters in 2026 — short, hook in the first 3 seconds, readable without sound, lo-fi over polished. But creative can only win a fight the math allows. If your break-even CPA is $12 and your product needs a $25 CPA to sell, no video saves it. Get the math right, then let creative compete.
Want your numbers read against your real margins?
Savva reads ad screenshots and your store's own economics — so instead of "average CTR is X," you get "at your margin, this ad set's CPA is 2× over break-even." The audit is free: no access, no card, ~60 seconds. Ad monitoring is rolling out for hired stores.
Run a free auditCommon questions
Why am I getting clicks but no sales from my ads?
The ad works and the store doesn't. Traffic arrives, then leaves on the product page or at checkout — usually offer clarity, trust or checkout friction. Fix conversion before spending more; the ad found buyers your store couldn't close.
What's a good CPA or ROAS for a Shopify store?
No universal number — your margins set it. Break-even CPA equals your gross margin per order in dollars; break-even ROAS is price divided by that margin. A 2.0 ROAS is great for one store and a loss for another. Know your own break-even first.
How much should I spend on ads to start?
Enough for the platform to learn — roughly 50 optimisation events per ad set per week, often more than $5–10/day. Too small a budget keeps the campaign stuck in the learning phase, where results are noisy and poor.
Why are my Facebook ads not converting?
Usually one of three: the store doesn't convert the traffic (fix first), the budget's too small to exit learning, or the price leaves no room for acquisition cost. Diagnose which before changing creative — most "bad ads" are a pricing or conversion problem.