[{"data":1,"prerenderedAt":283},["ShallowReactive",2],{"blog-/blog/why-did-my-roas-suddenly-drop":3,"i-lucide:arrow-right":272,"i-lucide:menu":277,"i-simple-icons:linkedin":279,"i-lucide:hash":281},{"id":4,"title":5,"author":6,"body":7,"description":249,"extension":250,"hero_image":251,"is_published":254,"meta":255,"navigation":256,"ogImage":258,"path":260,"published_at":261,"robots":262,"schemaOrg":263,"seo":265,"sitemap":267,"stem":270,"tags":262,"__hash__":271},"blog/blog/why-did-my-roas-suddenly-drop.md","Why did my ROAS suddenly drop when nothing changed?","Raphael Gonzalez",{"type":8,"value":9,"toc":239},"minimark",[10,14,17,20,23,53,58,61,127,130,134,137,143,149,155,161,165,168,171,174,194,197,201,204,207,211,214,217,220,223,227,230,233,236],[11,12,13],"p",{},"Anyone who runs paid traffic has lived this Monday. ROAS was 3.1x for months. Now it's 2.2x. You open Ads Manager. Nothing changed. Same campaigns, same creative, same budgets. So you stare at the dashboard, change a bid, and hope.",[11,15,16],{},"Here's the uncomfortable truth behind \"nothing changed\": something always changed. You just can't see it from inside the ads platform, because at least half of the things that move ROAS live outside it.",[11,18,19],{},"One question closes more of these cases than any other: what shipped on the site in the last seven days? It's also the question no ads platform will ever prompt you to ask, because the answer lives outside its walls.",[11,21,22],{},"This post is the order of operations. Four layers, checked in sequence, so you find the real cause in an afternoon instead of burning a week rotating creative that was never the problem.",[24,25,26,32],"blockquote",{},[11,27,28],{},[29,30,31],"strong",{},"Key takeaways",[33,34,35,44,47,50],"ul",{},[36,37,38,39,43],"li",{},"\"Nothing changed\" means nothing changed ",[40,41,42],"em",{},"that you can see",". ROAS has four moving layers: tracking, auction, ads, and site. Only two of them are visible in Ads Manager.",[36,45,46],{},"Check in order of speed, not suspicion: tracking first (an hour), auction second (an hour), creative third, site last but never never.",[36,48,49],{},"The tell that it's the site: clicks and CTR held steady while conversion rate fell. The ad did its job. The page stopped doing its job.",[36,51,52],{},"A drop that coincides with a site deploy, theme update, app install, or promo change is site-side until proven otherwise.",[54,55,57],"h2",{"id":56},"something-always-changed-heres-what-it-usually-was","Something always changed. Here's what it usually was.",[11,59,60],{},"A sudden ROAS drop with untouched campaigns has a short list of usual suspects, and they sort into four layers:",[62,63,64,80],"table",{},[65,66,67],"thead",{},[68,69,70,74,77],"tr",{},[71,72,73],"th",{},"Layer",[71,75,76],{},"What changed without you touching it",[71,78,79],{},"How fast to check",[81,82,83,95,105,116],"tbody",{},[68,84,85,89,92],{},[86,87,88],"td",{},"Tracking",[86,90,91],{},"Pixel or API failure, consent banner update, attribution window change, iOS/browser privacy update",[86,93,94],{},"1 hour",[68,96,97,100,103],{},[86,98,99],{},"Auction",[86,101,102],{},"New competitor spend, seasonal CPM shift, audience saturation, platform algorithm update",[86,104,94],{},[68,106,107,110,113],{},[86,108,109],{},"Ads",[86,111,112],{},"Creative fatigue (frequency creep), audience overlap, delivery rebalancing across ad sets",[86,114,115],{},"Half a day",[68,117,118,121,124],{},[86,119,120],{},"Site",[86,122,123],{},"A deploy, theme or app update, price or shipping change, promo ending, page speed regression, checkout change",[86,125,126],{},"Half a day, and the least checked",[11,128,129],{},"Read the table bottom to top and you have the org chart of the problem: the ads platform shows you layers two and three, your analytics shows you layer four, and layer one is the lens everything else is viewed through. Which is exactly why the diagnostic has to run in a fixed order.",[54,131,133],{"id":132},"what-order-should-i-check-things-in-when-roas-drops","What order should I check things in when ROAS drops?",[11,135,136],{},"Tracking, then auction, then ads, then site. Not because that's the order of likelihood, but because it's the order of speed and dependency: a tracking failure makes every other check meaningless, an auction shift explains a drop with no behaviour change, and only after ruling both out is comparing creative against site worth your time.",[11,138,139,142],{},[29,140,141],{},"Step 1: Rule out measurement (1 hour)."," Before believing the drop is real, confirm the pixel and server-side events are firing, no consent banner update went out, and the attribution window didn't change. A tracking-loss drop looks identical to a real drop in Ads Manager, but revenue in your backend holds steady. If platform-reported revenue fell and actual orders didn't: measurement problem, not a marketing problem. Fix the plumbing, stand down.",[11,144,145,148],{},[29,146,147],{},"Step 2: Check the auction (1 hour)."," CPMs and CPCs up while CTR held? You're paying more for the same attention: a competitor entered, seasonality shifted, or the platform rebalanced. This drop is real but external. The response is efficiency work (bids, audiences, budget timing), not creative panic.",[11,150,151,154],{},[29,152,153],{},"Step 3: Interrogate the ads (half a day)."," Frequency creeping above your norm, CTR sliding week over week, one ad set quietly absorbing budget from the others. This is the layer everyone checks first. It deserves to be third.",[11,156,157,160],{},[29,158,159],{},"Step 4: Audit the site, the layer that's guilty most often and checked least."," If clicks held, CTR held, CPCs held, and conversion rate fell: the ad delivered exactly the visitor it always delivered, and the page stopped converting them.",[54,162,164],{"id":163},"the-site-side-check-nobody-runs","The site-side check nobody runs",[11,166,167],{},"Ask one question: what shipped in the seven days before the drop?",[11,169,170],{},"Not just big releases. A theme update. A new app on the Shopify store. A promo that ended and took its banner with it. A shipping threshold change. A new popup. A tag manager edit. An image swap that added half a second to mobile load. None of these feel like \"changing the campaigns,\" and every one of them changes what happens after the click.",[11,172,173],{},"The mechanics of finding it:",[33,175,176,182,188],{},[36,177,178,181],{},[29,179,180],{},"Pull conversion rate by landing page, split by device, before vs after the drop date."," A site-side cause is almost never uniform. It concentrates: one template, one device class, one step of the funnel.",[36,183,184,187],{},[29,185,186],{},"Overlay the deploy log on the ROAS curve."," If your team ships without a changelog, this incident is the reason to start one. The correlation is usually embarrassing in its obviousness.",[36,189,190,193],{},[29,191,192],{},"Walk the funnel on a real phone,"," not a simulator: the ad, the click, the landing, the add to cart, the checkout. Ten minutes. You are looking for the thing that would make you leave.",[11,195,196],{},"And the pattern, over and over: when the drop is sudden and the campaigns are untouched, the cause is on the site side more often than anywhere else, precisely because site changes ship constantly and nobody connects them to ad performance. The two teams look at two dashboards, and the deploy log belongs to neither.",[54,198,200],{"id":199},"how-do-i-know-if-its-the-ads-or-the-website","How do I know if it's the ads or the website?",[11,202,203],{},"One comparison settles it: the ad's metrics against the page's metrics, same campaign, same window. CTR and CPC steady while on-site conversion fell means the site. CTR falling with conversion steady for those who arrive means the creative. Both falling together means audience or auction. The ad platform can't make this comparison for you, because it can't see past the click.",[11,205,206],{},"It's also the join a tool should be doing for you. This is what commerce intelligence platforms like Flowganise exist to automate: the site-side half, conversion by source and landing page monitored against your own baseline, runs continuously today, and the ad-side half is what we're building next. If you're doing this comparison in a spreadsheet every time ROAS wobbles, that's the manual version of a product.",[54,208,210],{"id":209},"when-it-really-is-just-the-market","When it really is just the market",[11,212,213],{},"Honest section: sometimes nothing broke.",[11,215,216],{},"CPMs rise into Q4 every year and fall in January. A competitor's launch quarter inflates your auction for six weeks and then normalises. A platform update rebalances delivery and your account takes two weeks to resettle. In these cases the drop is real, external, and mostly not actionable beyond patience and efficiency work.",[11,218,219],{},"The tell: everything degrades a little and nothing degrades a lot. No single page, device, source, or step stands out. Costs drifted up; behaviour stayed the same. Compare year over year rather than month over month before declaring an emergency. If last July looked the same, you have a season, not a crisis.",[11,221,222],{},"What you should not do in that situation is start ripping apart creative or redesigning landing pages to fix a market condition. Change during noise just makes the next month unreadable.",[54,224,226],{"id":225},"what-to-do-this-week","What to do this week",[11,228,229],{},"Take your worst-hit campaign and run the four layers in order. One hour on tracking, one on auction, then the harder half-days. Write down the answer to \"what shipped in the seven days before the drop\" before you touch anything else, because that answer closes the case more often than any other single check.",[11,231,232],{},"Then make the fix structural: a shared changelog between whoever ships the site and whoever runs the ads. Most sudden-drop mysteries are two teams with two dashboards and no shared timeline. The changelog costs nothing and ends the genre.",[234,235],"hr",{},[11,237,238],{},"Flowganise is a commerce intelligence platform: it detects friction across your funnel, quantifies the revenue loss in dollars, and prescribes the fix. For this exact problem, the platform automates step 4 today: it monitors every traffic source and landing page against your site's own statistical baseline, so when a deploy or a page change starts killing paid traffic, it surfaces as a detected issue with a weekly dollar figure the morning it happens, not at the quarterly review. The ad-side half of the diagnosis, connecting spend and creative signals to that on-site behaviour, is our campaign intelligence layer, in development with our design partners now. Checklist by hand, or diagnosis by default. That's the choice we're building toward.",{"title":240,"searchDepth":241,"depth":241,"links":242},"",2,[243,244,245,246,247,248],{"id":56,"depth":241,"text":57},{"id":132,"depth":241,"text":133},{"id":163,"depth":241,"text":164},{"id":199,"depth":241,"text":200},{"id":209,"depth":241,"text":210},{"id":225,"depth":241,"text":226},"Your ROAS dropped but you changed nothing. Something changed anyway. Here is the order to check: tracking, auction, ads, site.","md",{"src":252,"alt":253},"https://flowganise-blog-media.t3.tigrisfiles.io/studio/Why-Did-My-ROAS-Suddenly-Drop.jpg","Why Did My ROAS Suddenly Drop?",true,{},{"description":257},"Your ROAS dropped but you changed nothing. Something changed anyway. Here is the order to check: tracking, auction, ads, site. ",{"props":259},{},"/blog/why-did-my-roas-suddenly-drop","2026-07-14",null,{"_resolver":264},"webPage",{"title":266,"description":257},"Why Did My ROAS Suddenly Drop? A Diagnostic Order",{"loc":260,"videos":268,"images":269},[],[],"blog/why-did-my-roas-suddenly-drop","TUILJ5mNhDJNV-7UzcTO9AJl3fRVzjIEo-QLHXFNZno",{"left":273,"top":273,"width":274,"height":274,"rotate":273,"vFlip":275,"hFlip":275,"body":276},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"/>",{"left":273,"top":273,"width":274,"height":274,"rotate":273,"vFlip":275,"hFlip":275,"body":278},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"/>",{"left":273,"top":273,"width":274,"height":274,"rotate":273,"vFlip":275,"hFlip":275,"body":280,"hidden":254},"\u003Cpath fill=\"currentColor\" d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037c-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85c3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.06 2.06 0 0 1-2.063-2.065a2.064 2.064 0 1 1 2.063 2.065m1.782 13.019H3.555V9h3.564zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0z\"/>",{"left":273,"top":273,"width":274,"height":274,"rotate":273,"vFlip":275,"hFlip":275,"body":282},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 9h16M4 15h16M10 3L8 21m8-18l-2 18\"/>",1784259371201]