"Meta says 140 purchases, Google says 90, GA4 says 160, Shopify says 210. Which one is right?" The store is right about how many orders there were. Each platform is right about what it measured under its rules. This guide lists the actual causes of the differences so you can tell normal from broken, and gives a reconciliation routine that makes the numbers useful together.
The Causes, Grouped
Attribution rules
- Windows. Google Ads defaults to 30 days click. Meta uses 7 days click and 1 day view, having retired the longer windows in January 2026. GA4's default lookback is 30 days for acquisition and up to 90 for other events.
- View-through. Meta credits conversions after an ad view without a click; Google Ads and GA4 do not for search.
- Models. Data-driven in Google Ads and GA4 distribute credit differently from Meta's last-touch within window.
- Cross-platform overlap. A customer who clicked a Meta ad and then a Google ad is claimed by both.
Counting and timing
- Conversion time versus click time. Google Ads reports conversions by the date of the click by default; GA4 and Meta by the date of the conversion. A 10 day gap between click and purchase lands on different days in different reports.
- Count settings. One versus Every per click. Deduplication by transaction ID in Google Ads and GA4; by event ID in Meta.
- Modelled conversions. Google Ads and GA4 add modelled conversions under Consent Mode; Meta models under its own rules; the store has none.
- Refunds and cancellations. The store nets them; the platforms do not unless you upload adjustments.
Coverage
- Ad blockers and privacy browsers remove a share of GA4 and pixel events; server-side closes part of the gap.
- Consent declines remove events for those visitors; modelling partially compensates for Google.
- Closed tabs and slow pages lose browser-fired purchases.
- Bot filtering differs: GA4 filters known bots, Meta filters differently, the store counts real orders only.
Definitions
- What counts as a purchase. The store counts paid orders. GA4 counts purchase events, which may include orders later cancelled or test orders. Meta may count a Purchase fired on an order confirmation page that was refreshed.
- Revenue basis. With tax and shipping, or without; before or after discounts; currency conversion.
Tracking faults
- Duplicate tags doubling one platform.
- Purchase firing on checkout start.
- Missing transaction IDs.
- Native tags and GA4 imports both active in Google Ads.
- Meta pixel plus Conversions API without event IDs.
Normal Versus Broken
| Comparison | Normal | Investigate |
|---|---|---|
| GA4 purchases vs store orders | 85 to 95 percent of store | Below 80 percent or above 100 percent |
| GA4 revenue vs store revenue | Same ratio as orders, after basis alignment | Ratio differs from order ratio |
| Google Ads conversions vs GA4 purchases from Google paid | Within 20 percent, Ads often slightly higher due to modelling | Google Ads double GA4, or near zero |
| Meta purchases vs store orders from Meta per UTM | Meta higher, sometimes much higher, due to view-through | Meta more than double, suspect duplicates |
| Google Ads plus Meta vs store | Sum exceeds store by overlap | Sum exceeds store by more than 50 percent with low overlap plausibility |
The Monthly Reconciliation
- Pick the month. Use conversion date in every platform; switch Google Ads to report by conversion time.
- Align the revenue basis: decide on order total excluding tax and shipping, and apply it everywhere.
- Collect: store paid orders and revenue; GA4 purchases and revenue, total and by session default channel; Google Ads conversions and value for the purchase action; Meta purchases and value for the Purchase event, 7 day click only and with view.
- Build the table with gap percentages against the store.
- Compare each gap to last month. A stable gap is normal. A jump is a tracking change or a fault.
- Investigate jumps with the Debugging guide on this site: duplicates first, then missing fires, then definitions.
- Note known causes in the table so the next person does not re-investigate.
Explaining It to Stakeholders
- The store is the truth for how much was sold.
- GA4 is the truth for where visitors came from, within its coverage.
- Google Ads and Meta each report what they influenced under their rules, and both can be right at once.
- Platform numbers are for optimising within that platform; the store and GA4 are for allocating budget between platforms.
- Incrementality tests, geo holdouts or paused campaigns, are the only way to know what a platform truly added.
Outcome
A monthly table that shows the gaps and whether they moved, a shared understanding that platform numbers answer different questions, and faster detection of real faults because you know what normal looks like.
