The ROAS in the ad account fell this month and the sales team says nothing changed. Both can be true at once: the platform's number and the CRM's number are produced in different places, and most of the time it is the platform's number that moved. Here are the six causes in the order they usually turn out to be the answer, each with one place to look and one thing to do.

1. The platform's conversion value changed, not your revenue

What happened. ROAS in Google Ads or Meta is conversion value divided by cost, and the value is whatever the conversion settings say: a fixed amount per lead, a value passed by the pixel, or a modelled figure. Someone edited a conversion action, a value rule expired, a second conversion stopped counting, enhanced conversions were switched on or off. The revenue in your bank did not move; the number the platform multiplies by did.

How to check. Open the conversion actions and their change history for the period of the drop. In Google Ads: Goals → Conversions → Summary, then the change history filtered to conversions. In Meta: Events Manager, the event's settings and the "last received" date. Then count won deals in the CRM for the same weeks.

Fix. Restore the conversion setting if the change was a mistake; otherwise accept that the platform ROAS has a new baseline and stop comparing it with last quarter. Judge the quarter on CRM revenue, where nothing was edited.

2. The attribution window or model moved

What happened. A switch from last-click to data-driven attribution, a shorter click-through window, a consent banner that now blocks the pixel for a share of visitors, or an iOS update that hides more conversions. The campaign brings the same people; the platform sees fewer of them.

How to check. Attribution settings and their change date; the share of "modelled" or "estimated" conversions in the platform's reports; the consent rate in your consent tool compared with the month before.

Fix. Nothing on the campaign side. Note the date of the change, and from that date compare periods only against each other. The CRM does not have this problem: a won deal is a won deal regardless of the pixel.

3. You are reading by click date, and the deals have not closed yet

What happened. For a business with a sales cycle of weeks, the ROAS of the last 30 days by click date is always low: the clicks are in, the deals are not. The "drop" is the same shape every month and disappears four to eight weeks later.

How to check. Look at the same campaign's ROAS for the previous month now, and compare it with what you saw at the end of that month. If it grew by itself, the cycle is the cause. Deal velocity in the CRM (days from new to won) tells you how long to wait.

Fix. Evaluate campaigns by the period in which their deals close, not the period in which the ads ran, and give a new campaign at least one full cycle before judging it. Adepth counts won deals, revenue and ROAS by close date for exactly this reason.

4. The tags broke, and the deals went unlinked

What happened. A landing page was rebuilt without the UTM parameters, a new form does not pass them, a campaign got its own final URL suffix that overrides the account's tracking template, or a redirect strips the query string. The deals keep coming in, but they arrive without a campaign ID and cannot be credited to the campaign. The campaign's ROAS falls; the company's revenue does not.

How to check. Open recent leads from that campaign in the CRM and look at their UTM fields. In Adepth the footnote under the campaign table says it directly: "N won deals by CRM source, M linked to campaigns, K without an ad ID in the tags", and the "Other" bar in Spend vs Revenue grows when the links break.

Fix. Put the platform's own IDs back into the tags: {campaignid} in Google's tracking template, {{campaign.id}} in Meta's URL parameters, and check that the form passes them into the CRM. Past deals cannot be re-linked; the campaign's number is only honest from the fix onwards.

5. The mix shifted toward cheaper, worse leads

What happened. The budget moved, by hand or by an automated rule, to the ad set that brings the cheapest leads: broad targeting, a lead form with pre-filled fields, a new placement. Cost per lead went down, so the platform is pleased; qualified requests and closed deals went down more, so ROAS did too.

How to check. Per campaign and ad set, put four numbers in a row: leads counted by the platform, requests that actually reached the CRM, qualified requests, won deals. The cause is the row where the first number grew and the last one shrank. Cost per qualified request, not cost per lead, is the figure to watch.

Fix. Move the budget back toward the ad sets whose leads close, and set the campaign's optimisation goal to a deeper event than "lead" if the platform allows it. If your tool shows the request-to-deal rate per campaign, the ad set that needs cutting is usually the one with the highest lead count and the lowest rate.

6. The sales side slowed down

What happened. The campaign delivered the same requests; fewer of them turned into deals because the first response took two days instead of twenty minutes, one rep was on holiday and their leads sat untouched, or deals were parked in a stage nobody reviews. The ad platform cannot see any of it, so the drop lands on the campaign.

How to check. Response time per rep and per week, and the conversion from request to qualified per rep, for the weeks of the drop. If one rep's numbers moved and the campaign's lead quality did not, the campaign is innocent.

Fix. Fix the handling before touching the budget: a routing rule, a cover for holidays, a review of parked deals. Then re-read the campaign over the next cycle.

Which one is it

  • The drop is in the platform's ROAS, and won deals in the CRM for the same weeks did not fall → cause 1, 2 or 4. Check the conversion change history first, then the tags.
  • Won deals did fall, but the previous month's number has since recovered on its own → cause 3.
  • Won deals fell and lead counts rose → cause 5.
  • Won deals fell, lead counts and quality held, response time rose → cause 6.

The one check to run today

Put closed-won revenue from the CRM for the last 28 days, by close date, next to ad spend for the same 28 days, per campaign. If that pair moved, the drop is real and causes 3, 5 and 6 are where to look. If it did not, the platform's number moved on its own, and the campaign deserves a reprieve.