Why your numbers never quite match what actually happened

Two separate mechanisms make ad reporting drift from reality: platforms quietly redefine how they count conversions, and platform numbers were never meant to equal your actual customer count.

By Melvin Salas, Director & Co-founder, Riibon · Last verified: 2026-07-24

Two different problems that both look like "the numbers are wrong"

If you've run ads for more than a few months, you've probably hit one of two moments. First: your ROAS (return on ad spend, meaning revenue divided by what you spent) jumps or drops overnight, with no launch, no budget change, nothing you did differently, and you're left wondering what actually happened. Second: the "conversions" number on your ads dashboard and the number of actual bookings, orders, or leads in your own system never quite line up, no matter how long you stare at them side by side.

These feel like the same complaint ("the numbers are wrong") but they come from two unrelated mechanisms. One is about a measurement rule changing under your feet mid-campaign. The other is about two systems measuring genuinely different things and never being designed to agree in the first place. Knowing which one you're looking at changes what you should actually do about it.

The ruler changed, not the campaign

Every ad platform decides, by policy, what counts as a "conversion" and how far back in time it's willing to credit one to an ad. This is the attribution window: if someone clicks your ad on Monday and buys on the following Sunday, does that count? What if they merely saw the ad (a "view") without clicking, and bought two days later? The platform has to draw a line somewhere, and that line is a setting, not a law of physics.

Periodically, platforms move that line. Meta and Google have both changed default attribution windows and conversion-counting definitions over the years (shortening a click window, changing what qualifies as a click, adjusting how view-through credit gets counted) usually with a release note buried in a help center, not an email to every advertiser. When that change lands in the middle of your reporting period, every conversion counted after the change is being measured by a different ruler than every conversion counted before it.

Why this produces a swing that looks completely real

Here's the part that trips people up: the swing shows up as a normal-looking trend line. Nothing about the chart says "regime change happened here." ROAS goes from 2.1 to 3.4 and it looks exactly like the kind of jump you'd get from a genuinely better-performing campaign, a new ad creative catching on, or a seasonal lift. Nothing visually distinguishes "we got better at running ads" from "the platform started counting more things as conversions."

Imagine, hypothetically, a campaign running steady at a 2x ROAS for two months. If the platform then shortens its click-through attribution window from 7 days to 1 day, some purchases that used to get credited to an ad click will stop being credited at all, because the platform no longer looks back far enough to find the click. Depending on the business's typical time-to-purchase, that alone could move ROAS in either direction, with the actual rate at which ads are turning into sales never having moved. Anyone comparing last month to this month without knowing the window changed would draw a real, specific, wrong conclusion about what worked.

The fix: pin your window and treat the change date as a wall

Two habits close most of this gap. First, set an explicit, fixed attribution window in your reporting (both Meta and Google let you choose one, like 7-day click / 1-day view, rather than accepting whatever the platform's current default is) and keep it fixed across every comparison you make. A fixed window doesn't stop the platform from changing its own default, but it does mean your own reports stop moving just because the default moved.

Second, when you find out a platform changed its attribution rules or conversion definitions on a given date, treat that date as a hard boundary, the same way you'd treat a company relaunching under a new pricing model. Don't average across it, don't plot a single unbroken trend line through it, and don't hand a "performance improved 40%" conclusion to anyone without checking whether a regime change sits inside that window. If you must compare before and after, compare like-for-like periods entirely on one side of the boundary, or explicitly flag that the comparison spans a change and can't be trusted at face value.

Your ads dashboard and your booking calendar were never going to agree

The second mismatch is more fundamental, and no amount of window-pinning fixes it, because it isn't caused by a setting changing. It's caused by the platform's "conversions" number and your CRM's, booking system's, or order system's count being structurally different measurements, not two views of the same underlying fact.

A few concrete reasons they diverge. Counting windows differ: the platform might credit a conversion to the day someone clicked the ad, while your CRM logs it the day the booking or sale actually closed, which for a longer sales cycle could be weeks apart. Definitions differ: a platform's "conversion" might be firing on a lead form submission, a landing page view, or an add-to-cart, none of which is the same event as "a paying customer," and different platforms define their default conversion event differently from each other. Privacy-blocked traffic gets estimated, not counted: when a browser or device blocks tracking (as iOS's App Tracking Transparency and most modern browsers now routinely do), the platform doesn't just report a lower number, it statistically models the conversions it couldn't directly observe and adds an estimate back in, and that estimate is derived from the platform's own model, not your books. And double-counting is common when two tracking mechanisms overlap: if both a browser pixel and a server-side conversions API are firing for the same purchase without being properly deduplicated, that one sale can get counted as two.

The fix: reconcile against ground truth, don't treat conversions as customers

The platform's conversions count is a useful operational signal for optimizing campaigns in near-real-time, but it was never designed to be your source of truth for how many customers you actually got. Your booking calendar, CRM, or order system is the source of truth, because it's tied to something that actually happened (a real booking, a real payment) rather than a tracked event that's supposed to correlate with one.

The practical habit is a periodic reconciliation: pick a cadence (monthly is reasonable for most founder-led businesses) and compare platform-reported conversions against actual closed business for the same period, ideally broken down by channel or campaign if your CRM captures source. You're not looking for the two numbers to match exactly, they structurally won't, you're looking for the ratio between them to stay roughly consistent over time. If platform conversions were historically running at roughly 1.3x actual customers and that ratio suddenly jumps to 2x, that's a signal worth investigating (a tracking issue, a new source of double-counting, a shift in what's converting) even though the platform's raw number alone would never have told you anything was wrong.

← All articles