An online store's ROAS most often falls for one of five reasons: changed or broken tracking, more expensive ad impressions, tired creative, a saturated audience, or weaker conversion on the page and at checkout. You find the cause faster if you break ROAS down into its parts and check them in order, instead of changing campaigns straight away.
What ROAS measures is explained in the glossary entry What is ROAS?. Whether a lower ROAS is a problem at all depends on your margin: break-even ROAS tells you the line below which ads lose money.
What is ROAS made of?
ROAS is revenue from ads divided by ad spend. You can write the same number using metrics you see in the ad account and in the store:
ROAS = (CTR × conversion rate × average order value × 1,000) ÷ CPM
- CPM is the cost of a thousand impressions. When it rises, ROAS falls.
- CTR is the share of impressions that end in a click.
- Conversion rate is the share of visits from ads that end in a purchase.
- Average order value (AOV) is the average amount of one order.
This example is made up. A store has a ROAS of 4. CPM rises by 20%, the conversion rate falls by 10%, CTR and AOV stay the same. The new ROAS is 4 × 0.9 ÷ 1.2 = 3. Two moderate changes together take away a quarter of the ROAS, and each has a different cause.
In what order should you look for the cause?
- Is the drop real? Compare revenue in the ad platform with revenue in the store for the same period. Also work out the overall ratio: all store revenue divided by all ad spend. If the store is selling the same and the ad platform shows less, the problem is in tracking.
- Which part of the formula has moved? Put CPM, CTR, conversion rate and AOV for the last two weeks next to the same period before. A shift in one metric narrows the search to one area.
- Is it costs or revenue? Rising CPM is usually the market, the season or a narrower audience. A falling conversion rate is usually the store, the offer or the quality of the traffic.
- Only then the campaigns. A new campaign structure won't fix broken tracking or a slow checkout.
Checklist of causes
| Symptom | Where to look | Likely cause |
|---|---|---|
| The store sells the same, the ad platform shows less | Events Manager, attribution settings | Broken Pixel or Conversions API, duplicate or missing events, a changed attribution window |
| CPM rises across all campaigns | Comparison with the same period last year | Season and competition for impressions, for example before the holidays |
| CTR falls, frequency rises | Report by ad | Tired creative: the same people see the same ad |
| CPM rises, reach stagnates | Audience size, share of new customers | Saturated audience |
| CTR holds, conversion falls | Store analytics step by step | Landing page, speed, checkout, delivery, stock |
| Conversion falls after a price change | Price list, competitors' offers | The offer is no longer convincing |
| AOV falls | Orders by product | More discounts, cheaper products in the ads |
| Ads show products that aren't available | Product catalogue and feed | Wrong prices or stock, or disapproved products |
| ROAS holds, profit falls | Returns and complaints | The ad platform counts sales that are later returned |
Tracking: Pixel, Conversions API and attribution
Meta recommends running the Conversions API alongside the Meta Pixel. The same purchase then arrives by two routes, so both events must have the same name and the same event ID, otherwise Meta does not recognise them as duplicates. Duplicate purchases inflate ROAS; missing ones lower it. Both often happen after a change of theme, plugin or payment system.
When the attribution window or the default attribution setting changes, the ROAS you see changes too, even if sales stay the same. Before comparing two periods, check that they were measured the same way.
Creative, frequency and audience
The same ad loses its effect over time because the target group has already seen it. The signs are a falling CTR, rising frequency and a rising cost per purchase at a similar CPM. The fix is new concepts with a different hook, not a new colour for the same ad. How we test creative is described in the article Why Meta campaigns don't deliver results.
Audience saturation is similar but broader. The campaign has reached most of the people who would buy, so each further buyer costs more. Broader targeting, new markets or a new product in the spotlight help.
The store: page, checkout, offer and catalogue
When people click just as much but buy less, the problem is after the click. Check page speed on mobile, delivery costs that only appear at checkout, payment options, stock of the advertised products and whether the price is still competitive.
For catalogue campaigns, also check the product feed. Google requires for Merchant Center that the price and availability in the data match the landing page and checkout. Products with errors either aren't shown or lead to a page that doesn't keep the ad's promise.
Who can help and make the fixes?
The diagnosis is done by a team that sees the ad account, the tracking and the store data at the same time. Anyone who sees only one part fixes a symptom.
For online stores, PIKA. Digital first makes a diagnosis: where ROAS is falling and why, with real numbers. Then we fix the Pixel and Conversions API, produce and test new creative and run campaigns by ROAS and CAC. The process is described on the performance marketing for online stores page, and how we run Meta campaigns on the Meta ads page.
Before you decide, work out your break-even ROAS in the ROAS calculator. If you want a quick review of your Meta ads, use the free Meta Ads Audit tool.
Sources
- Meta for Developers, Handling Duplicate Pixel and Conversions API Events: https://developers.facebook.com/docs/marketing-api/conversions-api/deduplicate-pixel-and-server-events (accessed October 2026)
- Meta for Developers, Conversions API: https://developers.facebook.com/docs/marketing-api/conversions-api (accessed October 2026)
- Google Merchant Center Help, Product data specification: https://support.google.com/merchants/answer/7052112 (accessed October 2026)