Skip to content
← Back to Blog

Your Numbers Don't Match Across Platforms

GA4 says 200 conversions. Google Ads says 340. Facebook says 180. The numbers will never match perfectly, but some discrepancies point to real problems in your GTM container.

GA4 says you had 200 purchase conversions last month. Google Ads says 340. Facebook reports 180. Your ecommerce platform shows 215 actual orders. Somebody is wrong, or maybe everybody is wrong, or maybe the question itself is wrong. Platform discrepancy is one of the most common reasons people start auditing their GTM container, and it's also one of the most misunderstood — some discrepancy is structural and expected, some of it points to real configuration problems that are inflating or suppressing your numbers, and the difference between the two determines whether you need to adjust your expectations or fix your tracking.

Why platform numbers never match

Every analytics and advertising platform counts conversions differently — not slightly differently, but fundamentally differently. The divergence starts with what they're measuring and compounds through how they attribute, deduplicate, and model the data.

Attribution windows. GA4 uses a data-driven attribution model by default, distributing credit across touchpoints in the conversion path. Google Ads uses last-click attribution for search campaigns and data-driven for other campaign types, with a default 30-day click-through window and a 1-day view-through window, while Facebook uses a 7-day click, 1-day view window by default. Each platform attributes the same conversion to different campaigns, different channels, and sometimes different dates depending on when the attributed touchpoint occurred versus when the conversion happened.

Counting methods. Google Ads counts conversions, not unique users — if one person clicks an ad, leaves, comes back organically, and purchases twice, Google Ads may count two conversions (one per transaction within the attribution window) while GA4 shows one user who converted twice. Facebook counts conversions per ad interaction, which means a user who clicked two different ads before purchasing generates two conversion events in Facebook's reporting.

Consent and data availability. GA4 in advanced consent mode uses conversion modeling to estimate conversions from non-consenting visitors, and Google Ads has its own modeling approach for consent-affected data, but Facebook has no visibility into what happens after a non-consenting visitor leaves the Facebook ecosystem. The same 100 actual purchases might appear as 95 in GA4 (modeled), 110 in Google Ads (modeled with a different methodology), and 60 in Facebook (no modeling, consent losses fully absorbed).

The result: every platform tells a version of the truth, filtered through its own attribution model, counting method, and data availability. A 10-15% discrepancy between GA4 and Google Ads is normal, and a 30-50% discrepancy between GA4 and Facebook is also normal, especially for sites with significant European traffic where consent reduces Facebook's visibility more than GA4's.

The same conversion firing twice

Before accepting discrepancy as normal, check whether your GTM container is sending duplicate conversion events — this is the configuration problem that inflates numbers beyond what attribution differences explain.

Duplicate GA4 event tags. Two GA4 event tags sending the same event name means GA4 records two events for every one interaction. If both tags fire a purchase event, your transaction count and revenue double, and this happens when a new tag gets created without removing or deactivating the old one, or when a tag gets copied for modification and both the original and copy remain active.

Duplicate ad conversion tags. The same pattern affects advertising platforms — two Google Ads conversion tags with the same conversion action ID means every conversion counts twice in your Google Ads reporting. Smart Bidding then optimizes toward an inflated conversion volume, spending more budget than the actual conversion rate justifies, and the impact compounds: inflated conversions lead to inflated ROAS reporting, which leads to increased budgets allocated against phantom performance.

Cross-platform duplication from tag proliferation. Some containers have a Google Ads conversion tag, a Google Ads remarketing tag, and a Google Tag (gtag) configuration tag all firing on the same conversion event, and depending on how each tag is configured, the same conversion can register once, twice, or three times across different surfaces in Google Ads. The fix requires understanding which tags serve which purpose and ensuring each conversion action is tracked by exactly one tag.

The diagnostic: compare your GA4 conversion count against your ecommerce platform's transaction count for the same period. If GA4 shows significantly more events than actual transactions, duplicate firing is likely — use GTM's Preview mode to walk through a conversion and count how many times each event fires, because any event that fires more than once per actual interaction needs investigation.

GA4 vs Google Ads conversion counting

Even without duplication, GA4 and Google Ads will show different numbers because they're designed to answer different questions.

GA4 counts what happened on your site. It records events as they occur, attributes them using its own model, and deduplicates by transaction_id for purchase events — if the same transaction ID fires twice (page refresh, duplicate tag, etc.), GA4's deduplication typically catches it.

Google Ads counts what its ads influenced. It attributes conversions back to ad clicks and impressions within its attribution window and counts every conversion action separately, which means a single user who clicked an ad and made three purchases within the attribution window generates three conversions in Google Ads, even though GA4 records them as three events from one user.

DimensionGA4Google Ads
Attribution modelData-driven (cross-channel)Data-driven or last-click (ad interactions only)
Attribution windowVaries by event (default 30 days for acquisition)30-day click, 1-day view (configurable)
What's attributedAll touchpoints in the pathOnly Google Ads interactions
DeduplicationBy transaction_idBy conversion action + time window
Consent modelingAdvanced mode models ~65-80% of lost conversionsSeparate modeling methodology
Conversion countPer event occurrencePer conversion action per ad interaction

The practical implication: Google Ads will almost always show more conversions than GA4 for Google Ads traffic specifically, because Ads counts from its own perspective (what my ads contributed to) while GA4 counts from a site-wide perspective (what happened, attributed across all channels). This isn't a bug — it's two systems optimized for different audiences: GA4 for analysts who need cross-channel truth, Google Ads for campaign managers who need to understand ad performance.

How consent mode creates number gaps

Consent mode is one of the largest drivers of platform discrepancy for sites with European traffic, and the mechanism differs by platform.

GA4 in advanced consent mode fires cookieless pings when a visitor denies consent. These pings don't contain user identifiers or set cookies, but they do send conversion signals to Google, which then uses conversion modeling to estimate what the full conversion data would look like if all visitors had consented. The reported number is a blend of observed conversions (from consenting visitors) and modeled conversions (estimated from non-consenting visitor signals).

GA4 in basic consent mode doesn't fire at all when consent is denied — conversions from non-consenting visitors are simply lost, with no pings, no modeling, and no estimation. The reported number is a pure count of consenting-visitor conversions, which can be 20-40% lower than the actual total depending on your consent rate.

Google Ads has its own modeling for consent-affected conversions, separate from GA4's modeling, and the two models can produce different estimates from the same underlying data, adding another source of discrepancy between the platforms.

Facebook, LinkedIn, TikTok have no visibility into what happens after a non-consenting visitor leaves their ecosystem. When a user clicks a Facebook ad, denies consent on your site, and purchases, Facebook never learns about the conversion — there's no signal to model from, which is why Facebook's reported conversions can be significantly lower than GA4's for the same campaign traffic, especially for sites with high denial rates.

The consent impact on numbers isn't a problem to fix; it's a structural reality to understand. The important thing is knowing which mode your site uses (your consent dashboard shows this) and factoring that into how you compare numbers across platforms.

Choosing your source of truth

None of them are right in an absolute sense — each platform measures from its own perspective, with its own attribution model, its own counting rules, and its own consent handling. The question isn't which number is correct; it's which number is useful for which decision.

For total conversion volume: Use your ecommerce platform or payment processor. This is the source of truth for "how many transactions actually happened" — it has no attribution model, no consent modeling, and no counting ambiguity. If Stripe says 215 transactions, that's how many transactions occurred.

For channel performance: Use GA4. Its cross-channel attribution model distributes credit across touchpoints, giving you the most balanced view of which channels contribute to conversions. It's not perfect, but it's the only platform that sees the full journey rather than optimizing for its own ads.

For ad platform optimization: Use each platform's own reporting for optimizing campaigns within that platform. Google Ads' conversion count is what Smart Bidding uses to optimize, and Facebook's conversion count is what its delivery algorithm uses — importing a different number into these systems undermines their optimization algorithms.

For board reporting: Pick one source and be consistent. The absolute number matters less than the trend — if GA4 consistently shows 15% fewer conversions than Google Ads, that ratio is stable and the trend lines move together. Switching between sources month to month creates artificial volatility that obscures real performance changes.

What a GTM audit reveals about platform discrepancies

Some discrepancy is structural, but when the gap between platforms is larger than expected, the GTM container often holds the explanation.

Duplicate event tags are the most direct cause of inflated numbers — two tags firing the same GA4 event or the same Google Ads conversion action literally doubles the reported count. This is a container configuration problem, not a platform attribution difference, and it's fully fixable.

Ad tag proliferation creates subtler inflation. When Google Ads has 26 tags across multiple conversion actions, some of those actions may overlap — a "purchase" conversion action and a "checkout complete" conversion action triggered by the same event mean one transaction generates two conversion records. The fix is mapping each conversion action to its intended trigger and ensuring no overlaps.

Consent mismatches between platforms create asymmetric data loss. If Google Ads tags are properly gated behind ad_storage consent but Facebook tags are deployed via Custom HTML without consent controls, Facebook receives conversion data from all visitors while Google Ads only receives data from consenting visitors, and the resulting discrepancy isn't about attribution models — it's about one platform getting more data than the other due to inconsistent consent implementation.

TagManifest checks for duplicate event names across GA4 tags, identifies ad tag proliferation patterns, and surfaces consent mismatches between platforms. These are the container-level causes of discrepancy that are within your control to fix, as opposed to the attribution and counting differences that are structural to each platform. If your numbers are off by more than you'd expect, scan your container and check whether the gap narrows once the fixable causes are addressed — often, the GA4 data quality and consent configuration findings explain the majority of the excess discrepancy, and the fixes bring the platforms close enough that the remaining difference is the expected, structural kind.

Audit your GTM container

TagManifest gives you an instant health score and prioritized fixes.

Scan Your Container