KPIHelm — Your KPIs. Our insight. Your future.
All articles

Your ROAS dropped on Shopify. Here's how to find what actually broke.

A falling ROAS is not a diagnosis — it's a symptom. ROAS is a ratio between what you spend on ads and what your store earns from them, which means it drops for two very different families of reasons: acquiring a visitor got more expensive, or a visitor became worth less after the click. Fixing the wrong side wastes weeks. This guide walks through the same split-first method KPIHelm uses to find where the money is actually leaking.

Step 1: Split the funnel at the click — and read it as signals, not blame

Everything before the click shows up in the ad platform's numbers: CPM, CTR, CPC. Everything after the click shows up in your store's numbers: conversion rate, average order value, checkout completion. That split is where every diagnosis starts — but be precise about what it tells you. It locates where the symptom appears, not automatically where the cause lives. Low-quality targeting can deliver cheap clicks and a healthy CTR while sending visitors who were never going to buy: the damage shows up in your store's conversion rate, but the root cause sits on the acquisition side.

So use the split as a first cut, then cross-check:

  • Cost per click rose, conversion rate held → start on the ad side (step 2).
  • Cost per click held, conversion rate fell → start in the shop (step 3) — but first compare the conversion rate of paid traffic against organic and returning visitors. If only paid traffic stopped converting while everything else held, your store probably didn't break; the traffic changed. That sends you back to targeting and creative.
  • Both moved → work through both steps, biggest gap first.

Step 2: The ad side — signal, likely cause, verification, then action

Three patterns are a useful place to start. For each: what the signal suggests, how to check it, and only then what to do.

CPM rose while CTR stayed flat. Likely explanation: the auction itself got more expensive — seasonality, more competitors bidding on your audience, or a platform-wide shift. Note what a flat CTR does and doesn't tell you: it doesn't prove your creative is healthy, it only says creative response isn't what's driving the cost increase. Verify by comparing CPM across audiences and placements — a broad rise points at the market, an isolated one points at a specific audience. Action is structural: adjust audiences, test other placements, or accept the new baseline and re-check margins.

CTR fell while frequency rose. Likely explanation: creative fatigue — the same people seeing the same ad too often. It's the strongest hypothesis, not the only one: audience saturation, seasonal interest shifts or a competitor's new creative can produce a similar pattern. Verify before spending: show the same creative to a fresh audience, or refresh the creative in one ad set only. If CTR recovers, fatigue is confirmed — and the fix is new creative, not a bigger budget. Raising spend on a fatigued ad accelerates the problem.

CPC rose while CPM and CTR look normal. Check delivery and bidding settings, recent audience edits, and learning-phase resets caused by too-frequent changes.

Step 3: The shop side — why visitors stopped buying (or started buying less)

The click arrived, the money didn't. Check in this order:

Landing page match. Does the page still deliver what the ad promises — same product, same offer, same price? Promotions that ended on the ad platform but not on the site (or the reverse) are a surprisingly common silent killer.

Conversion rate by device and source. A drop isolated to mobile points at page speed or a broken element; a drop isolated to one platform's traffic points back at that platform's audience quality (see step 1), not at your store.

Checkout funnel. If product views held steady but purchases fell, walk the checkout yourself — shipping costs appearing too late, a payment method failing, a region suddenly excluded.

Conversion rate held steady, but AOV fell. ROAS can drop with nothing visibly broken: a deeper discount than last month, the product mix shifting toward cheaper items, a lost upsell or bundle, or a high-value bestseller quietly going out of stock. Whenever ROAS moves, read average order value next to conversion rate — same spend, same conversions, smaller baskets is a leak of its own.

Availability and price. Out-of-stock products and price changes move ROAS with no warning and no error message.

Step 4: Don't compare platforms with one yardstick

TikTok, Meta and Google Ads don't just perform differently — they measure themselves differently. One platform counts conversions another wouldn't count at all; attribution windows differ in length; reporting arrives on different delays — and each of these rules changes over time. The same store, on the same day, can genuinely show three different "truths" about what an ad was worth. A ROAS that looks alarming on one platform can be ordinary on another — judged by that platform's own history.

Two practical rules follow. Judge each platform against its own baseline, never against its neighbours. And never rebalance budgets off a single day's dashboard — attribution windows mean yesterday's numbers are still being written.

This is also where diagnosis gets genuinely hard. The difficult part isn't reading any single metric — it's connecting the signals across the ad platform and the store, in each platform's own context, without treating either side in isolation. That connection is exactly where most manual troubleshooting stops.

Step 5: Fix one thing, then re-measure — with enough data

Rank what you found by the size of the leak and fix the single biggest one. Then resist the next-morning dashboard check: don't judge the change by time passed, judge it by data accumulated. Wait until enough new traffic and conversions have come through for the comparison to mean something — a high-spend store gets there in days, a small one needs longer. Changing three things at once feels faster and tells you nothing: when the number moves, you won't know why.

Next in this series: when every number in this guide checks out and the month still doesn't leave money, the problem isn't the funnel — it's what each order leaves you. That is the subject of Your ROAS looks healthy. So why is there no money at the end of the month?.


KPIHelm automates the signal analysis behind this process. Connect your TikTok, Meta or Google Ads account to your Shopify store: it brings your ad and store performance data together, reads the signals in each platform's own context, and shows where the strongest problem signals appear — and what to investigate first, before the budget burns. Install it free on the Shopify App Store or see a sample report.