You launch a campaign, purchases start coming in, CPA looks acceptable — and yet your store isn’t making money.
This shows up in a lot of ecommerce accounts. The platform reports stable performance, but when you look at the actual numbers, something doesn’t add up.
The reason is usually simple: Meta is optimizing correctly — just not for what your business actually needs.
CPA Looks Fine — But Margin Is Already Broken
There’s a point where CPA stabilizes, but profitability quietly disappears. Most teams miss it because they’re still anchored to AOV.
What actually changes is the margin behind each order.
Discounts increase conversion rate but reduce profit. Shipping costs creep up. Lower-margin products start dominating purchases. None of this is visible to the algorithm — it just sees “more purchases at a stable cost.”

A quick way to verify this is to step outside Ads Manager entirely.
Pull a recent batch of orders from your store and calculate real contribution margin:
-
product cost
-
shipping and logistics
-
payment processing
-
applied discounts
Then compare that number to CPA.
If CPA is higher than what’s left, the campaign is structurally unprofitable — even if everything inside Ads Manager looks healthy.
If you want a deeper breakdown of misleading performance signals, read Ad Metrics That Lie: When Good Numbers Hide Bad Performance.
The System Is Finding Buyers — Just Not the Right Ones
Performance doesn’t always drop when things go wrong. Sometimes it stays stable while quality declines.
You might notice that revenue plateaus even though conversions continue. Or that repeat purchases start falling off.
This happens because Meta expands based on behavior similarity, not customer value.
If your early conversions come from price-sensitive users, the system builds around that signal. It doesn’t “correct” toward higher-value customers unless you give it a reason to.
Over time, this creates a subtle shift:
-
average order value declines
-
more customers buy once and never return
-
refund or return rates increase
You can usually confirm this by comparing cohorts — especially during scaling phases. This ties directly into Audience Quality vs Quantity: What Drives Better Long-Term Results?
Fast Conversions Are Often a Warning Sign
High conversion rates are not always a good sign in ecommerce. If users click and convert almost immediately, they’re not evaluating — they’re reacting to the ad.
You’ll often see very short sessions, minimal product exploration, and weak post-purchase behavior. The decision process is compressed. The ad does all the persuasion, and the site doesn’t filter intent.
Once Meta detects this pattern, it starts prioritizing speed. That’s where instability begins.
One Campaign Structure Is Hiding the Real Problem
A single broad campaign can look efficient on the surface. It simplifies management and often stabilizes delivery.
But internally, it hides what’s actually happening.
Meta reallocates budget toward what converts easiest — usually lower-priced or heavily discounted products. Higher-margin items get less delivery because they require more consideration.
From the outside, performance looks stable. Inside the campaign, it’s skewed.
To uncover this, break down spend vs. revenue by product or category. In many cases, your most profitable products are not receiving proportional spend.
For a deeper structural approach, see Meta Campaigns Explained: How to Structure High-Performance Campaigns.
Attribution Is Inflating Confidence
At some point, Ads Manager and your backend stop telling the same story.
You’ll see stable ROAS in Meta, while actual profitability declines.
Meta’s attribution model includes returning users and cross-device assumptions. As spend increases, this effect becomes stronger.
A simple check:
-
Compare Meta-reported revenue vs. backend data
-
Separate new vs. returning customers
-
Look at conversion timing patterns
If Meta looks stable while real performance drops, attribution is masking the issue.
This is explained in more detail in Why Facebook Ads Data Alone Can’t Explain True ROI.
Scaling Too Early Breaks Stability
There’s a specific moment where campaigns start to break — usually right after a budget increase.
You increase spend, and within a short window:
-
CPM rises
-
conversion rate drops
-
CPA increases
This happens when the system expands faster than its data can support. Meta relies on stable conversion patterns. Without them, it enters less efficient auctions and performance declines.
You’ll often see early warning signs like uneven spend distribution or repeated learning resets. Scaling works best when performance is already consistent — not when it’s still fluctuating.
Your Creative Is Setting the Wrong Filter
Creative determines who clicks — and that shapes everything downstream.
If your ads focus heavily on discounts or urgency, you attract users who respond to those signals. That usually means lower intent and lower long-term value.
On the other hand, value-driven messaging filters users before they click. Fewer people enter the funnel, but those who do are more aligned with the product.
Instead of judging creative purely by CTR or CPA, compare:
-
average order value
-
repeat purchase behavior
-
refund rates
Some creatives generate volume. Others generate profitable customers.
Final Takeaway
If your ecommerce campaigns aren’t profitable, the issue is rarely a single setting. It’s a structural misalignment.
Meta optimizes for conversion probability. Your business depends on margin, customer quality, and repeat value.
If those aren’t reflected in your setup, performance will always look better in Ads Manager than it does in reality.
Once you correct that alignment, results become more stable — and much easier to scale.