Magento merchants live inside two dashboards that rarely agree.
Meta and Google show ROAS — revenue attributed to ads divided by spend. Magento shows orders and revenue. Neither shows what you actually kept after product cost, carrier cost, payment fees and refunds.
That gap is where “winning” campaigns quietly burn cash.
What ROAS actually measures
ROAS answers one narrow question: *for the revenue we attributed to this campaign, how many euros of order value came back per euro of media?*
It does not answer:
- Did those orders leave enough gross margin after COGS?
- Did free shipping wipe the margin?
- Did payment fees and returns erase the rest?
- Was the attributed revenue even the right order set?
A campaign can report 4.0 ROAS and still be net-negative for the business.
A simple Magento example
Imagine a day:
- Ad spend: €1,000
- Attributed revenue: €4,000 (ROAS 4.0×)
- COGS: €2,100
- Shipping you pay: €480
- Payment fees: €120
- Refunds / clawbacks: €350
Gross after COGS: €4,000 − €2,100 = €1,900 After shipping + fees: €1,900 − €480 − €120 = €1,300 After refunds: €1,300 − €350 = €950 Net after ads: €950 − €1,000 = −€50
ROAS still says “4× winner.” Cash says you lost money.
Why Magento stores get hurt harder
Magento catalogs often include:
- Bundle and configurable parents with cost = 0 on the parent line
- Promotional free shipping that Magento records as €0 charged while you still pay the carrier
- Payment methods with different fee rates
- Refunds that land on a different calendar day than the order
Ad platforms do not see any of that. They optimize toward the signal you give them — usually revenue or purchase count.
What to look at instead
For Magento paid acquisition, the useful hierarchy is:
- Net profit in store timezone (cash or cohort)
- Gross profit after COGS (before ads)
- POAS / profit ROAS (gross profit ÷ ad spend) if you must compress it into one ratio
- Platform ROAS as a debugging metric, not a scaling rule
If you only scale on platform ROAS, you scale the campaigns that are best at *looking* profitable.
How Verid approaches this
Verid syncs Magento orders, refunds and product costs, then subtracts ad spend, shipping cost rules and payment fees into one daily net profit number.
Optional Meta/Google OAuth pulls spend onto the same store dates. Optional conversion uploads can send profit-based values back to Google Ads — so bidding stops chasing empty ROAS.
Practical checklist this week
- Pick one “hero” campaign with ROAS ≥ 3× and recompute net after COGS + shipping + fees
- Flag SKUs with revenue and €0 COGS
- If you offer free shipping, stop treating charged shipping as your cost
- Compare cash-day refunds vs order-day (cohort) refunds for the same week
If those four checks change your mind about a campaign, your dashboard was lying politely — not helping you scale.