Your Google Ads dashboard, your GA4 property, and your CRM will never show the same number for the same campaign, and no amount of tag work will make them. They count different events, over different time windows, with different rules about who gets credit, and none of them can see the revenue that closes in your CRM sixty days later.
That is not a tracking bug. It is the predictable output of running four systems that were never designed to agree, and then asking them a question only one of them can answer: what did marketing actually produce.
The four reasons the numbers diverge
Before you decide which dashboard to trust, understand why they differ. Every cause below is structural, not fixable with a pixel.
1. They stamp the conversion on different days. Google Ads records a conversion against the date of the click by default, and can also be reported by conversion time. GA4 records it against the date the conversion happened. Someone clicks your ad on September 20 and buys on October 5, and the same sale lands in September in one tool and October in the other. Compare a calendar month across both and you are comparing two different sets of events.
2. They use different attribution models. Since September 2023, data driven attribution is the default in Google Ads, with last click still selectable. Google removed first click, linear, time decay and position based from Ads reporting at the same time. Data driven spreads credit across clicks inside Google's own ecosystem. GA4 tries to spread credit across all channels, including the ones Google cannot see. Meta goes further and credits its ad for having been present in the journey, clicked, engaged with, or viewed inside the window, rather than for being the last touch.
3. The windows are not the same length. Google Ads runs a default 30 day click window, configurable. Meta's default is 7 day click through, 1 day engage through, and 1 day view through, and Meta's incremental attribution option, rolled out in 2025, removes your ability to edit the attribution setting when you select it. Each platform is counting a different span of time around the same purchase. Run one campaign on each and a single sale can appear in three dashboards, with every dashboard following its own rules correctly.
4. Nobody shares an identity. An ad click is a browser. A closed deal is a company, a contract, and an invoice. There is no native key linking the two. GA4 depends on the browser cooperating, which is why the "Unassigned" bucket rises as consent limits bite and identity is lost. Your CRM and order data has no attribution model and no browser dependency at all. It counts what happened.
There are smaller traps stacked on top. GA4 renamed the Conversions metric to key events in March 2024, explicitly to separate Analytics conversions from Google Ads conversions, and a key event counts across every source, not just paid, so a large share of the mismatches people report are a scoping error rather than a data error. Currency and time zone settings break revenue and return on ad spend comparisons even when conversion counts line up, because each tool can apply its own exchange rate. And if you run a native Google Ads conversion tag while also importing a GA4 conversion for the same action, and both are set as primary conversion goals, you are double counting by configuration.
How big a gap is actually normal
Practitioner rules of thumb put the gap between Google Ads conversions and GA4 key events at roughly 10 to 30 percent for a correctly scoped comparison. Those are working heuristics from people who do this daily, not measured benchmarks, and Google publishes no official tolerance figure.
So the number to chase is not zero. What deserves an investigation is a gap far outside that band, a gap that flips direction, or a gap that appeared right after you changed something. Everything inside the band is the systems working as designed.
You will also find vendor blogs quoting precise over-reporting percentages for Meta and Google. Treat those as vendor estimates, not facts, and treat the 10 to 30 percent band the same way: a planning heuristic you sanity check against your own history, not a law.
Platform ROAS is a diagnostic, not proof
Here is the position that matters more than any reconciliation tactic. Platform-reported return on ad spend and last click reports are instruments for steering the platform, not evidence of what your marketing produced.
Google's number exists to help Google's algorithm bid. Meta's number exists to help Meta's algorithm find more of the same people. Both are useful for exactly that job and unfit for the job of allocating your total budget, because both are structurally incentivised to claim credit and neither can see the outcome you actually care about. Attribution is not causation. A platform telling you it influenced a purchase is a claim about correlation inside its own walled garden.
Give each system one job and stop asking it to do the others.
- Ad platforms: in-platform optimisation. Bids, creative tests, audience signals. Judge them on relative movement, not absolute truth.
- GA4: cross-channel behaviour and on-site friction. Where traffic comes from, what it does, where it drops.
- CRM and revenue: the scoreboard. Pipeline created, deals won, revenue collected. This is the number you report and the number you allocate against.
Why this is worse in B2B, and why another analytics tool will not fix it
If you sell deals rather than carts, everything above compounds. Your conversion event is a form fill or a demo booking. Your revenue event is a signed contract in a different system, weeks or months later, often with a value nobody typed into a browser. Most published guidance on attribution mismatches assumes the conversion is a purchase completed in one session, which is why the standard advice never resolves your problem.
The standard advice is real advice as far as it goes. Align time zones, standardise your currency, clean up UTMs, deduplicate your conversion tags, move to server-side tracking. Do all of it. Then notice that you still cannot answer the question you started with, because reconciliation hygiene makes two disagreeing systems disagree slightly less. It does not create the join between an ad click and a closed deal.
That join is not an analytics problem. It is a data architecture problem. The click, the form submission, the contact, the company, the deal, the stage history, and the collected revenue all have to sit in the same system, sharing one record of the customer, or somebody is exporting CSVs on the last Friday of every month for the rest of their career.
The audit to run before you trust any dashboard
Do this once, properly, then stop reconciling and start deciding.
- Scope the comparison correctly. Same date range, same time zone, same currency, one campaign, and in GA4 filter to the specific key event that matches the Ads conversion action. Most reported "discrepancies" die here.
- Pick your date basis and write it down. Click date or conversion date. Every recurring report uses the same one, forever.
- Check for double counting. If a native Google Ads conversion tag and an imported GA4 conversion for the same action are both set as primary conversion goals, you are counting twice.
- Measure your Unassigned share in GA4. That percentage is the ceiling on how much of your journey the browser can still see for you.
- Trace one real closed deal end to end. Pick a won deal. Can you walk backwards to the campaign, the click, and the form? If not, you have found the actual break, and it is not in GA4.
- Count how many form fills never became CRM records. The gap between submissions and contacts is silent lost pipeline, and it is more valuable to fix than any percentage variance.
- Compare source counts and know your own shape. In ecommerce, order data typically shows the most conversions, platforms sit in the middle, and GA4 shows the fewest because of consent and identity loss. In B2B it often inverts: if submissions leak before they become records, as step 6 checks, the CRM can show the fewest. Establish your normal shape, then investigate when it changes.
- Set your tolerance band. Inside your established range, note it and move on. Outside it, investigate.
The durable fix is one system, not one spreadsheet
Reconciliation is a task that returns every month. Fusion is a decision you make once.
In Payani, GA4 data, campaign performance, website visitor and company activity, form submissions, contacts, companies, deals, and Stripe revenue live on one brain, so reporting reads from a single record of the customer instead of stitching four exports together. Google Ads management carries revenue attribution against the deals it produced, not against in-platform conversions. Ask Payani sits on top of that and answers the question in plain language, because the intelligence is reasoning over the same data the report is built from.
That is the difference between knowing your dashboards disagree and knowing what your marketing is worth. Keep the platform numbers for steering the platforms. Report the revenue. Decide from that.
Sources
- Google Ads Help: attribution model changes, September 2023, and conversion window settings.
- Google Analytics: rename of the Conversions metric to key events, March 2024.
- Meta Business Help Centre: attribution settings, including the 7 day click through, 1 day engage through and 1 day view through default, and incremental attribution.
- The 10 to 30 percent variance band is a practitioner heuristic, not a published benchmark. Google publishes no official tolerance figure.
Frequently asked questions
Which number should I report to my board, Google Ads, GA4, or my CRM?
Your CRM and revenue data. It has no attribution model and no browser dependency, so it counts what actually happened rather than what a platform claims credit for. Use GA4 for channel and on-site behaviour and use the ad platforms for in-platform optimisation, but the number that goes in the board deck should be pipeline created and revenue closed.
How much of a gap between Google Ads and GA4 is normal?
Practitioners generally see roughly 10 to 30 percent for a correctly scoped comparison, and a second independent estimate puts the normal range at 20 to 30 percent. Google does not publish an official tolerance figure. Investigate when the gap sits far outside that band, flips direction, or appears right after you changed something.
Will server-side tracking or a new analytics tool fix the mismatch?
It will narrow it, not close it. Server-side tracking and clean UTMs reduce data loss, but the platforms still use different attribution models, different windows, and different date stamps, so they will keep disagreeing by design. The part that actually blocks you, linking an ad click to a closed deal, is a data architecture problem rather than an analytics one.
Why does the same sale appear in three different dashboards?
Because each platform credits itself under its own rules. Google Ads spreads credit across clicks and impressions in its own ecosystem, Meta credits an ad for having been clicked or even viewed inside its window, and each uses a different window length. One purchase preceded by a Meta ad and a Google ad can be claimed three times, with every dashboard technically correct.
We have long sales cycles. Does any of this work for B2B?
Only if your revenue data is joined to your campaign data. Published attribution guidance assumes the conversion is a purchase in a single browser session, which does not describe a deal that closes months later at a value nobody typed into a form. You need the click, the form submission, the contact, the deal, and the collected revenue on one record, which is exactly what unified reporting across GA4, CRM, and Stripe is for.
Newsletter
Get growth intelligence in your inbox.
Sharp notes on AI-native marketing and what actually moves revenue. No fluff, unsubscribe anytime.



