How to diagnose a Meta ROAS drop, step by step
Compare two full weeks in Ads Manager. Split ROAS into four parts: cost per thousand impressions, link click rate, purchase rate and value per purchase. The part that moved most usually names the cause. Check Shopify sales and Events Manager first.
By Joris van Huët, Founder & CEOUpdated 8 min read
Run the numbers for your store: the free break-even ROAS calculator, or the free CPM calculator.
Put two full weeks side by side in Ads Manager. Split ROAS into four parts: cost per thousand impressions, link click rate, purchase rate and value per purchase. The part that moved most usually names the cause. Check Shopify sales and Events Manager first, so you do not fix a counting fault with new ads.
ROAS hides four moving parts behind one ratio. Pull them apart and the meeting about what happened to Meta gets a lot shorter.
Step by step
- Check Shopify before you open Ads Manager. From your Shopify admin, go to Analytics > Reports and open Total sales over time. Click the Compare to indicator, then Comparison to past, pick the same two weeks you will use in Meta and click Apply. Read orders and sales here, not conversion rate, for a reason covered below.
- Rule out a broken purchase feed. In Events Manager, click the Data sources tab, then your data source, then the Diagnostics tab. Review the active issues. In Shopify, open Sales channels > Facebook & Instagram, click Settings, then Data sharing settings, and note the level. Standard means only the pixel reports purchases, so an ad blocker can hide some.
- Compare two full weeks. In Ads Manager, select the date filter dropdown above the table and click the toggle next to Compare. Choose both weeks and click Update. The table then shows each metric for both ranges and the change between them. Leave out the last two days: Meta's Amount spent page says results can take up to 48 hours to process.
- Confirm the attribution setting. Click the Columns dropdown next to View Setup, choose Customize columns, search for Attribution setting and click Apply. Every ad set should show the same setting in both weeks. If one changed, compare like with like before you read anything else.
- Save a four-part column preset. Click Campaigns, open the Columns dropdown and select Customize columns. Tick Amount spent, Impressions, CPM (cost per 1,000 impressions), Link clicks, Purchases, Purchases conversion value and Purchase ROAS. Tick Save as a column preset, give it a name and click Apply.
- Work out four ratios for each week. CPM is amount spent divided by impressions, times a thousand. Link click rate is link clicks divided by impressions, and purchase rate is purchases divided by link clicks. Value per purchase is purchase value divided by purchases. Multiply the last three, divide by CPM, multiply by a thousand, and you are back at ROAS.
- Match the ratio that moved to its usual cause. A higher CPM points at the auction or a narrower audience. A lower link click rate points at the ad, so check the Delivery column for Creative limited or Creative fatigue. A lower purchase rate points at the site, the price or stock, and a lower value per purchase at product mix or discounts. Meta adds that CPM alone is a poor guide when you optimise for conversions. The system may buy dearer impressions to get cheaper purchases.
- Check learning before you blame anything. Look for Learning in the Delivery column, and add the Last significant edit column through Columns. Meta says ad sets in learning are less stable and usually cost more per result. A significant edit in the drop week explains a lot without any detective work.
A worked example
For illustration, take a shop that spent 4,000 in each of two weeks. Every number below is invented and rounded.
| For illustration | Week 1 | Week 2 |
|---|---|---|
| Amount spent | 4,000 | 4,000 |
| Impressions | 500,000 | 400,000 |
| CPM | 8.00 | 10.00 |
| Link clicks | 4,500 | 3,600 |
| Link click rate | 0.9% | 0.9% |
| Purchases | 90 | 72 |
| Purchase rate | 2.0% | 2.0% |
| Purchases conversion value | 10,800 | 8,640 |
| Value per purchase | 120 | 120 |
| Purchase ROAS | 2.7x | 2.16x |
In this worked example, only CPM moved: from 8.00 to 10.00. In the illustrative weeks, a quarter more per thousand impressions bought a fifth fewer impressions, because 1 divided by 1.25 is 0.8. Link click rate, purchase rate and value per purchase held, so the illustrative ROAS fell by that same fifth, from 2.7x to 2.16x.
Is the illustrative 2.16x a problem? Only against a break-even line. On the Break-even sheet of one store's export, a 40% margin gives a break-even ROAS of 2.5x, because 1 divided by 0.40 is 2.5. That is arithmetic for any shop with a 40% margin, not a result from that store. At that margin, the illustrative shop went from above break-even at 2.7x to below it at 2.16x.
So in this worked example the drop is price, not the ad and not the site. Meta's auction page says the winning ad is the one with the highest total value, and each rival's bid is part of its total. When rivals bid harder for the same people, your CPM rises with no change on your side. The fix is not new creative. Test a broader audience or more placements, and check whether a learning reset lines up with the jump. Then rerun the split a week later.
What to check when the report looks wrong
Meta shows fewer purchases than Shopify took. That is normal up to a point. Meta says Ads Manager shows only purchases attributed to people who were shown your ad, while Events Manager shows attributed and unattributed events. Hold Shopify against Events Manager instead. If Events Manager is also far below Shopify, events are going missing on the way.
The last few days always look weak. Ads Reporting can date a conversion by when it happened or by when the ad was shown. Meta's troubleshooting page lists both options. Dated by exposure, a late buyer adds value to an earlier day after you have looked at it. Pick one and use it for both weeks.
Shopify's conversion rate jumped in late September. Shopify changed how it measures sessions in a rollout from 21 to 23 September 2026. Its help page says orders and sales are not affected, but conversion rate is calculated from sessions. Across that date, use Meta's purchase rate rather than Shopify's conversion rate.
What to do this week
- Save the four-part preset today. Build it as in step 5, then load it from Columns under Column presets. Pass: one click shows spend, CPM, link clicks, purchases and value for every campaign. Fail: Purchases or Purchases conversion value shows nothing, so the purchase event is not reaching the account; go back to step 2.
- Split your last two full weeks. Pass: one ratio explains most of the fall, so you know which team to call. Fail: all four slipped a little, so check learning and significant edits before you change anything.
- Draw your break-even line. In Shopify, go to Analytics > Reports, click the Category filter and choose Profit Margin. Find your margin there, then divide 1 by it. Pass: ROAS still sits above the line, so you can wait a week and watch. Fail: it sits below, so trim spend on the ad sets that fell most while you fix the cause.
Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework
Sources, 1 October 2026: Setting and comparing time ranges for your reports (Shopify Help Center); Sales reports (Shopify Help Center); View diagnostics in Meta Events Manager (Meta Business Help Center); Facebook data sharing (Shopify Help Center); View performance results across date ranges (Meta Business Help Center); Amount spent (Meta Business Help Center); About multiple attribution settings (Meta Business Help Center); Customize columns in Meta Ads Manager (Meta Business Help Center); CPM (cost per 1,000 impressions) (Meta Business Help Center); About link clicks and outbound clicks (Meta Business Help Center); Purchases (Meta Business Help Center); Purchase ROAS (return on ad spend) (Meta Business Help Center); About creative fatigue recommendations in Meta Ads Manager (Meta Business Help Center); Understand fluctuations in ad performance (Meta Business Help Center); About the learning phase (Meta Business Help Center); About ad auctions (Meta Business Help Center); Differences between event counts in Meta Ads Manager, Ads Reporting and Events Manager (Meta Business Help Center); Troubleshoot common reporting differences between Meta Ads Reporting and third-party reporting tools (Meta Business Help Center); Changes to sessions and conversion rate in Shopify Analytics (Shopify Help Center); Profit reports (Shopify Help Center); Simplifying Ad Measurement for a Social-First World (Meta).
Related answers
Frequently asked questions
Which Meta columns do I need to split ROAS?
Seven: Amount spent, Impressions, CPM, Link clicks, Purchases, Purchases conversion value and Purchase ROAS. Add them through Columns, then Customize columns, and save them as a column preset. With those you can rebuild ROAS from its four parts for any two date ranges.Can I see Meta purchases on the day they happened?
Yes, in Ads Reporting. Meta's troubleshooting page says you can report conversions by the time of conversion or by the time the ad was shown. Use conversion time when you put Meta's numbers next to Shopify's daily sales, and keep the same choice for both periods.Should I compare this month with the same month last year?
For Shopify sales, yes. For Meta's click columns and Shopify's conversion rate, be careful. Meta narrowed click-through attribution to link clicks from March 2026, and Shopify changed how it counts sessions in September 2026. Compare those only within the same measurement period.
Go deeper: Incrementality testing, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Keep reading
Terms in this article
- Ad SpendAd Spend is the total amount invested in advertising campaigns. It is measured against Return on Ad Spend (ROAS) to evaluate campaign effectiveness.
- AnalyticsAnalytics is the systematic computational analysis of data. It reveals customer behavior and measures campaign performance.
- AttributionAttribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
- CausalityCausality is the relationship where one event directly causes another, essential for identifying specific actions that drive desired outcomes in marketing.
- ConversionConversion is a specific, desired action a user takes in response to a marketing message, such as a purchase or a sign-up.
- Conversion rateConversion Rate is the percentage of website visitors who complete a desired action out of the total number of visitors.
- ImpressionAn Impression counts each time an ad or content displays on a user's screen. It measures exposure, not engagement.
- Profit MarginProfit margin measures profitability, calculated as net income divided by revenue and expressed as a percentage.