Do Google Ads and Meta double count sales?
Usually, yes. Google Ads and Meta each count a sale their own ads touched, by their own rules, and neither checks the other's claims. One Shopify order can sit in both dashboards, so their total often tops your real sales. Only Shopify's order count counts each sale once.
By Joris van Huët, Founder & CEOUpdated 7 min read
Run the numbers for your store: the free ad platform over-reporting checker.
Usually, yes. Google Ads and Meta each count a sale their own ads touched, by their own rules, and neither checks the other's claims. One Shopify order can appear in both dashboards. Add them up and the total often tops your real sales. Only your store's own order count counts each sale once.
Each platform marks its own homework, in its own room. Google Ads records a purchase that follows a Google ad interaction inside the conversion window, 30 days by default for clicks. If a buyer clicked several Google ads, data-driven attribution, the default for most conversion actions, shares the credit among those Google ads. Meta's ads never enter that sum.
Meta counts a purchase within 1 or 7 days of a link click. It can also count one within 1 day of a view or an engagement, depending on the ad set's setting. It may also credit a sale to an ad the person saw and never clicked. Google's ads never enter Meta's sum either.
So picture one shopper. They scroll past your Instagram ad in the morning, click your Google Shopping ad after lunch and buy. Shopify records one order. Meta can record a view-through purchase, and Google Ads a click conversion, for the same basket.
What one store's data shows
The usual answer stops at "yes, they overlap". One store's export shows what overlap looks like when a single referee counts on clicks, and why the platforms can go further.
One store's anonymised GA4 export, 1 January 2024 to 21 August 2026. It holds shares of revenue only: no ad spend, no order counts.
| What the export shows | Share of revenue | Source cell |
|---|---|---|
| Touched view, every channel a journey touched, added together | 110.4% | Channels sheet, Touched column total |
| Journeys with 1 touch (0.5 days to buy) | 79.5% | Journeys sheet, 1 touch row |
| Journeys with 2 to 3 touches (12.5 days to buy) | 12.2% | Journeys sheet, 2-3 touches row |
| Journeys with 4 to 9 touches (16.9 days to buy) | 5.4% | Journeys sheet, 4-9 touches row |
| Journeys with 10 or more touches (16.0 days to buy) | 3.0% | Journeys sheet, 10+ touches row |
Start with the touched view. On the Channels sheet, the touched column sums to 110.4% by design: a journey that touched two channels counts in both. That is double counting in miniature, done by one referee, using clicks alone.
Now see where it can happen. On the Journeys sheet, 1-touch journeys hold 79.5% of revenue and take 0.5 days to buy. In GA4's eyes those sales had one channel and nothing to share.
Journeys of 2 or more touches hold the rest on the Journeys sheet: 12.2% + 5.4% + 3.0%, or 20.6% of revenue. That fifth is where two ad platforms could both claim one sale on clicks.
The platforms reach further than the export. Meta can credit a sale to an ad someone only saw, and GA4 does not see a Meta ad that was only viewed. So a journey GA4 files as one touch can still sit in Meta's report through a view and in Google Ads' report through a click.
What the export cannot show: what Meta or Google Ads claimed for this store, or how many sales both claimed. It is one store, not a benchmark.
Why can't I just add the two together?
Because each total answers a different question. Google Ads asks which Google ads came before a purchase. Meta asks which Meta ads did. Neither asks about the other, so the answers overlap and their sum overstates the whole.
The clocks differ too. Google Ads' main conversion columns date a conversion to the ad click, not to the purchase. A late-September click that buys in October sits in September in Google Ads and in October in Shopify.
GA4 referees differently. In its attribution reports, the credit for one key event is shared across the touchpoints and sums to 1.0. That stops double counting inside GA4. But GA4 can only share credit among the touches it sees.
Which double counting can you fix?
The kind inside one platform. Google Ads can count one order twice when two primary actions both record purchases, such as the Google Ads tag and an imported GA4 purchase. Google sets conversions created from GA4 key events to secondary to prevent counting the same event twice for bidding. Check that nobody switched one back to primary.
A reloaded thank-you page can fire the tag again. With a unique transaction ID, Google Ads knows the second conversion is a duplicate and leaves it out.
Meta has the same trap when the pixel and the Conversions API both send a purchase. Meta removes the copy when the event ID and event name match within 48 hours, per its developer guide. Without matching IDs, one order can arrive twice.
The overlap between the platforms is the kind you cannot switch off. You can only measure it against Shopify, and test what each platform adds with a holdout.
What to do this week
- Run the sum test on last month. Add Meta's website purchases and Google Ads' purchase conversions (by conversion time), then compare the total with Shopify's orders for that month. Shopify's Total sales over time report gives the orders. Pass: the sum sits at or below your orders. Fail: it sits above, so at least the excess was claimed twice or matches no order.
- Count your primary purchase actions. In Google Ads, open Goals, then Conversions, then Summary. Pass: one primary action records purchases. Fail: two do, so open Edit goal and set one to Secondary (observe only).
- Find the journeys both platforms touched. In GA4, click Advertising, then Key event attribution paths under the Key events dropdown, and filter Path length to greater than 1. Pass: few purchase paths hold both Paid Social and a Google paid channel. Fail: many do, so expect the two claims to overlap on those sales.
Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework
Sources, 1 October 2026: About conversion windows (Google Ads Help); About attribution models (Google Ads Help); About attribution models and attribution settings (Meta Business Help Center); About conversion count differences between Meta Ads Reporting and third-party reporting tools (Meta Business Help Center); Understand your conversion tracking data (Google Ads Help); Key events attribution paths report (Google Analytics Help); Create Google Ads conversions based on Google Analytics key events (Google Ads Help); Use a transaction ID to minimize duplicate conversions (Google Ads Help); Handling Duplicate Pixel and Conversions API Events (Meta for Developers); About primary and secondary conversion actions (Google Ads Help); Sales reports (Shopify Help Center).
Related answers
Frequently asked questions
Does GA4 double count sales between channels?
Not in its attribution reports. GA4 shares the credit for each key event across the touchpoints it saw, and the shares add up to one sale. A touched view, which gives every channel the whole sale, does double count by design. GA4 also cannot see Meta ads that people only viewed.Should I add Meta and Google Ads results to report total ad sales?
No. Each figure is that platform's claim under its own rules, and the claims overlap. Report Shopify's sales as the total and show each platform's figure as its claim. If the claims add up to more than your sales, the excess is overlap or error.Can I stop Google Ads and Meta from claiming the same sale?
Not inside their dashboards. Each platform only knows its own ads, so neither can drop a sale the other already claimed. You can remove duplicates within one platform with transaction IDs and matching event IDs. For the overlap between them, measure against Shopify and test each channel with a holdout.
Go deeper: Incrementality testing, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Keep reading
Terms in this article
- AttributionAttribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
- Attribution DiscrepancyAttribution Discrepancy is the variance in conversion data reported between different marketing analytics platforms. It arises because platforms use different models to assign credit.
- Attribution ModelAn Attribution Model defines how credit for conversions is assigned to marketing touchpoints. It dictates how marketing channels receive credit for sales.
- Attribution ReportAttribution Report shows which touchpoints or channels receive credit for a conversion. It identifies which campaigns drive desired actions.
- Causal AttributionCausal Attribution uses causal inference to determine which marketing touchpoints genuinely cause conversions, not just correlate with them.
- ConversionConversion is a specific, desired action a user takes in response to a marketing message, such as a purchase or a sign-up.
- Google AnalyticsGoogle Analytics is a web analytics service that tracks and reports website traffic.
- Google ShoppingGoogle Shopping is a Google service allowing users to search for products and compare prices from online retailers.