Attribution, Measurement & CRO · Cluster Anchor

eCommerce PPC Attribution: GA4 + Google Ads + Shopify Reconciliation

The 3-source attribution reconciliation framework we run on every client engagement. GA4 + Google Ads + Shopify Analytics each report different revenue numbers - often by 20-40%. This article walks through why, how to reconcile them, and the calculator that produces the accurate figure to report.

CC

Chris Coussons

Managing Director

6 September 2026

18 min read · 3,200 words

Every eCommerce PPC account has an attribution gap. GA4 reports one revenue number. Google Ads reports another. Shopify Analytics reports a third. They rarely match - variance of 20-40% is normal, sometimes higher. Most agencies pick whichever number tells the best story and report that. Wrong approach.

Median Variance

27%

Across 12 UK store audits

GA4 Revenue Gap

15-25%

Under-reporting vs Shopify

Consent Data Loss

40%

Typical UK/EU decline rate

This article walks through the 3-source reconciliation framework we use on every client engagement, explains why the three sources differ, and includes a reconciliation calculator that produces the accurate figure to report to stakeholders.

In my 15 years running a eCommerce PPC agency for UK brands, I have seen more board-level trust destroyed by "fuzzy numbers" than by actual poor performance. When your CEO looks at Shopify and sees £100,000 in sales, but your PPC report claims £80,000 of that came from Google Ads while GA4 says only £30,000 did, you have a credibility problem.

We built this guide to end the guessing game. We will look at why these numbers diverge, the technical mechanics of each platform, how Consent Mode v2 and Google's conversion modelling now sit underneath almost every number you see, where marketing mix modelling fits for brands that want to go beyond click-based attribution entirely, and how to arrive at a single "reconciled" figure that is both mathematically sound and commercially honest.

This is a longer read than most attribution guides, deliberately. Attribution disputes are rarely solved by a single stat; they're solved by understanding the plumbing well enough to explain the gap to a sceptical finance director. That's what the rest of this article does, section by section, with working calculators you can run against your own numbers as you go.

Why the three sources never match

GA4, Google Ads and Shopify Analytics were built to answer different questions. They are not "broken" because they disagree; they are simply measuring different things with different tools.

Platform Capability Matrix

GA4 answers "which marketing touches contributed to this conversion" using data-driven attribution across all channels. Google Ads answers "which of my Google Ads clicks led to a conversion" using last-click within its own silo. Shopify Analytics answers "how much money did the till take" using first-party transactional data.

The Four Structural Gaps

  1. Attribution Model Disparity: GA4's DDA distributes credit fractionally. Google Ads (unless GA4-imported) typically uses a 30-day last-click model within its own ecosystem. Shopify uses a session-based last-touch model. These models can never agree on a multi-touch journey.
  2. The Pixel vs the Database: GA4 and Google Ads rely on a "pixel" firing in the browser. Shopify relies on a database entry at the checkout. If a user has an ad blocker, a weak 5G connection, or closes the tab before the "Thank You" page loads, the pixel fails. The database does not.
  3. Cookie Consent (Consent Mode v2): In the UK and EU, Consent Mode v2 has fundamentally broken the link between ad clicks and conversions for users who decline cookies. While Google uses "modelling" to guess these missing conversions, Shopify sees 100% of the revenue regardless of consent state.
  4. Measurement Scope: Google Ads is blind to your Email, Social, and Organic traffic. It will claim credit for a sale even if a user clicked an email link 5 minutes before buying, provided they clicked a Google Ad 29 days earlier.

None of this is a conspiracy by any single platform to inflate its own numbers, though the incentives certainly point that way. Google Ads is, structurally, a sales tool for Google Ads - it is never going to proactively tell you that half of the conversions it claims were actually driven by an email flow. GA4 sits one step back and tries to be neutral across channels, which is why it is the right source for channel share, not the right source for total revenue. Shopify sits closest to the money but furthest from the marketing story. You need all three, used for what each is good at, not one chosen because its number is the most flattering.

Contrarian View

'Just use GA4 as the source of truth' is common but flawed advice. In our dataset of 12 UK accounts, GA4 under-reports versus Shopify in 100% of cases. Relying solely on GA4 leads to under-valuing your ads and prematurely cutting budgets that are actually generating profit.

What GA4 reports (data-driven attribution)

GA4 uses data-driven attribution (DDA) across every channel that touches the user - Organic Search, Direct, Email, Paid Social, Google Ads, Referral. Credit is distributed fractionally based on Google's model of which touches actually moved the conversion.

Imagine a customer journey:
1. Clicks a PMax Ad (Monday)
2. Clicks an Email Link (Wednesday)
3. Types URL in directly (Friday) and buys for £100.

GA4 DDA might assign £35 to Google Ads, £45 to Email, and £20 to Direct. This is the most "fair" model, but it makes ROAS calculation difficult because the "revenue" is now a fraction of a sale.

The data loss reality: In the UK, we typically see a 30-50% cookie decline rate. While GA4 "models" these missing users, the modelled revenue is an estimate. Furthermore, GA4 misses roughly 10-15% of transactions due to technical drop-offs between the payment gateway and the success page.

There's a second, quieter reason GA4 under-reports against Shopify that most guides skip entirely: Enhanced Measurement and the purchase event depend on the checkout page firing gtag correctly on every step, including payment gateway redirects (PayPal, Klarna, Shop Pay). Any redirect that takes the user off-domain and back introduces a chance the session identifier resets or the referrer is lost, and GA4 records the return as a fresh session with no attribution path at all. We see this cost 3-8% of transactions on accounts using multiple payment gateways, on top of the consent-driven losses.

For this reason, GA4 is our source for Channel Share (%), but never for Total Revenue (£).

What Google Ads reports

Google Ads reports conversions attributed to Google Ads clicks only. It is essentially a "Me-First" reporting tool. If you had a Google click within the last 30 days, Google Ads wants to claim it.

The Inflation Problem

  • View-Through Conversions (VTC): Especially in Performance Max, Google tracks when someone saw an ad but didn't click. If they buy later, Google includes this in "All Conversions." This can inflate reported revenue by 10-20% for brands with high brand awareness.
  • Cross-Device Gaps: If a user clicks on mobile but buys on desktop, Google Ads uses its logged-in user data to stitch them together. GA4 often fails here. This means Google Ads reporting is often more accurate for Google-specific touches but less accurate for the overall marketing mix.

Google Ads typically over-reports versus GA4 by 20-35%. We call this the "Ad Dashboard Inflation." It's worth being precise about why this happens rather than treating it as a black box: Google Ads conversion counting includes both click-through conversions within its attribution window (default 30 days for most eCommerce accounts) and view-through conversions within a much shorter window, and it applies its own attribution model - increasingly, a version of data-driven attribution too, but calculated only across Google's own inventory (Search, Shopping, Display, YouTube, Discovery/PMax placements). A user who clicked a Google Shopping ad and a Meta ad in the same journey will show as a "full" conversion in both platforms' dashboards. Add the two together and you double-count the sale; that's the mechanism behind the 150% overshoot referenced later in the mistakes section.

What Shopify Analytics reports

Shopify Analytics is transactional. It records the bank receipt. It is the only source that is 100% accurate for Total Revenue. It doesn't care about cookies, pixels, or ITP.

However, Shopify is terrible at attribution. It uses a very basic "Last Non-Direct Click" model based on UTM parameters. It cannot handle multi-touch journeys. It will often attribute a sale to "Direct" that actually started with a Google Shopping click three days prior.

Rule of Thumb: Use Shopify for the "What" (How many sales?) and GA4 for the "Why" (Which channel drove them?).

The 3-source reconciliation framework

To get to the truth, we use a three-step reconciliation process. We call this the "Triangulated Revenue Framework."

1

Anchor to Shopify

Extract your Gross Revenue (minus tax/shipping) from Shopify. This is your "Ground Truth" total.

2

Extract GA4 Share

Calculate what % of GA4-reported revenue belongs to Google Ads. This is your "Attribution Share."

3

Reconcile & Verify

Multiply Shopify Total by GA4 Share. Compare against the Google Ads dashboard to find the gap.

This framework solves the "Cookie Gap" because it uses Shopify's real revenue as the base, and it solves the "Attribution Gap" because it uses GA4's sophisticated model for the split.

The Reconciliation Workflow, Step by Step

1

Pull the three raw numbers

Shopify gross revenue, GA4 channel share (DDA), Google Ads dashboard-reported revenue - same date range, same currency, same tax treatment.

2

Anchor to Shopify

Treat Shopify Analytics gross revenue (minus tax/shipping) as ground truth. This never moves.

3

Apply the GA4 share

Multiply Shopify total by the % of GA4-attributed revenue assigned to Google Ads under data-driven attribution.

4

Compare to Google Ads dashboard

Calculate the variance between the reconciled figure and what Google Ads claims. Anything above 25-30% warrants investigation into view-through inflation.

5

Adjust for Consent Mode gaps

If EU/UK consent decline is high, sense-check whether GA4's modelled conversions are conservative - cross-reference against the Consent Mode simulator above.

6

Report the bridge, not just the number

Show stakeholders the walk from Shopify total → GA4 share → reconciled figure, so the maths is auditable, not asserted.

The reconciled-figure calculation

Use the calculator below to perform your own monthly reconciliation. Input your data from the last 30 days.

3-Source Reconciliation Calculator

Total store gross revenue from Shopify reports

Google Ads share of revenue from GA4 DDA

Revenue reported in Google Ads dashboard

Reconciled Google Ads Revenue

£40,000

The accurate figure for ROAS calculation and stakeholder reporting.

Dashboard Inflation Gap

+25.0%

Variance within expected 20-40% range.

A Real-World Example

Let's look at a luxury retail client, AB Ellie, from August 2026.

  • Shopify Gross Sales: £412,850
  • GA4 Google Ads Share: 41.2%
  • Google Ads Dashboard: £221,400

Calculation: £412,850 × 0.412 = £170,094.

The Google Ads dashboard is claiming £221,400. This is an inflation of 30.2%. This gap is composed of view-through conversions and cross-channel assisted sales where Google Ads is over-claiming credit.

The "truth" for ROAS calculation is £170,094. If the agency reports £221k, they are overstating performance. If they report GA4's raw £140k (which was missing 15% of transactions), they are understating it.

We ran the same exercise on a second client, a health and wellbeing brand referred to here as Biopreventative, whose consent decline rate is unusually high (52%) because of a strict CMP configuration required for a medical-adjacent claims process. Their Google Ads dashboard showed £58,000 for the month; the reconciled figure, anchored to Shopify and split by GA4 share, came out at £39,400 - a 47% inflation gap, nearly double AB Ellie's. High-decline accounts need the reconciliation framework more, not less, because the raw platform numbers drift furthest from reality exactly when consent rates are worst.

Reporting to stakeholders

When presenting this to a board or a founder, clarity is key. We recommend a "Bridging Report" that shows the path from Shopify to Reconciled Revenue.

1. Store Revenue (Shopify)£412,850
GA4 Attributed Google Ads Share41.2%
Reconciled Ad Revenue£170,094

* We use this figure for ROAS. It is 23% lower than the Google Ads dashboard to account for view-through inflation and multi-channel overlap.

The temptation, especially under pressure to justify a budget, is to hide the variance and just report the most flattering number. Don't. Boards and finance directors are far more forgiving of an honestly-explained 25% gap than they are of discovering, six months later, that the number they've been steering the business by was never real. State the three raw figures, show the bridge, and explain in one sentence why the reconciled number is the one you're optimising against. That sentence alone does more for agency-client trust than any dashboard redesign.

Modelled conversions explained

"Modelled conversions" is the term Google uses for conversions it estimates happened, but couldn't directly observe because the user declined cookies or was on a browser that blocks third-party tracking. Understanding roughly how this works matters, because it changes how much you should trust GA4 and Google Ads numbers in different scenarios.

At a high level, Google trains a model using the behaviour of consented users - their click patterns, device signals, timing, and conversion rates - and applies that pattern statistically to the cookieless pings received from users who declined. If 60% of your consented visitors from a campaign convert at 3%, and you get an aggregate cookieless signal indicating similar traffic volume and engagement from non-consented users, Google will model a similar conversion rate onto that non-consented cohort and add modelled conversions into your totals.

The problem is twofold. First, the model is only as good as the consented sample it's trained on - low-volume campaigns, new geographies, or unusual audiences (as with Biopreventative's medical-adjacent product range) have thin consented samples and therefore unreliable models. Second, modelling happens per-platform: GA4 models independently of Google Ads, which is one reason the two disagree even on Google-attributed revenue specifically, not just on total revenue.

Observed vs Modelled vs True Conversions (Illustrative)

The chart above illustrates the shape of this, using indicative figures across six months for a mid-size account: a stable base of observed (cookied) conversions, a modelled top-up that fluctuates month to month as the consented sample changes, and the true Shopify total sitting above both - the gap between the green line and the coloured bars is exactly the residual inaccuracy that no amount of modelling fully closes. This is why we never treat GA4's "conversions" line as ground truth on its own, even after modelling is applied; it's the least-worst automated estimate, not a hard number.

Cross-device + cross-browser gaps

The modern buyer journey is rarely linear. A user may click an ad on their phone while on the train, but wait until they are at their desktop to complete the purchase. This "Cross-Device Gap" is where standard attribution fails.

The In-App Browser Trap: When a user clicks an ad in Instagram or Facebook, they are browsing in an "in-app browser." If they don't buy immediately, the cookie is trapped inside that app. If they open Safari or Chrome later to finish the purchase, they appear as a "Direct" visitor.

Cross-Device Journey Walkthrough

Mobile click

User clicks a PMax Shopping ad on the train, in Instagram's in-app browser.

Mobile / in-app

Mitigation: To fight this, we implement Enhanced Conversions and User-ID Tracking. By sending a hashed version of the customer's email to Google, we can "stitch" together the mobile click and the desktop purchase even if cookies have expired or been blocked. Google Signals, when enabled and where the user is signed into a Google account across devices, does some of this stitching automatically - but coverage depends entirely on how many of your customers are logged in, which for younger, mobile-first audiences can be well over 60%, and for older or B2B audiences can be under 20%.

None of these mitigations fully close the gap. Even with Enhanced Conversions and User-ID both configured correctly, we still see 5-10% of genuine cross-device journeys reported as "New user, Direct" simply because the customer used an email address at checkout that differs from the one associated with their Google account, or because they cleared cookies between sessions. Budget for this residual gap rather than chasing a mythical 100% stitched dataset.

Marketing mix modelling basics

For brands spending heavily across TV, OOH, influencer, and paid social alongside PPC, even a perfectly reconciled 3-source framework has a ceiling: it can only reconcile what digital platforms can, in principle, observe. It cannot capture the brand-search lift generated by a billboard campaign, or the halo effect of a podcast sponsorship on direct traffic. That's where marketing mix modelling (MMM) comes in, and it's worth understanding even if you're not yet running one.

MMM is a statistical regression approach that looks at aggregate spend by channel over time (weekly or monthly), alongside external variables - seasonality, promotions, competitor activity, macroeconomic factors - and estimates each channel's contribution to overall revenue without relying on individual user-level tracking at all. Because it's cookie-independent, it isn't affected by consent decline, ad blockers, or in-app browsers. Its trade-off is granularity: MMM tells you that Google Ads probably contributed 27% of revenue over the last quarter, not that a specific £4.50 click on Tuesday drove a specific £120 sale.

Last-Click Share vs MMM-Estimated Contribution

The chart above shows an illustrative pattern we see repeatedly: last-click attribution over-credits Google Ads and under-credits channels with no direct click path, like TV, OOH and even Organic (which last-click attribution can undercount when it's actually the closing touch on a journey that started elsewhere). MMM re-distributes credit based on statistical contribution to revenue movements, which tends to smooth out the extremes. For most eCommerce brands under roughly £2-3m annual PPC spend, full MMM is disproportionate - it needs 12-24 months of clean spend and revenue history to produce a stable model, and the infrastructure cost isn't justified until offline and brand channels are a material part of the mix. But understanding the basic logic helps you sense-check when last-click or even GA4's DDA numbers look implausible: if Google Ads' reported share keeps climbing while your TV spend increases too, some of that "Google Ads" credit is really TV-driven brand search being harvested at the last click.

The practical middle ground for most of our clients is not full MMM, but disciplined 3-source reconciliation plus periodic geo holdout tests (turning PPC off in matched regions to observe the incrementality gap) - a lightweight, directional version of the same statistical logic MMM uses at scale.

Common attribution mistakes

Avoid these five common pitfalls that lead to poor investment decisions:

  • Mistake 1: Relying on Shopify's 'Sessions Attributed to Marketing'

    Shopify's attribution is too simple. It will miss up to 30% of paid touches on multi-day journeys. It is a checkout tool, not a marketing platform.

  • Mistake 2: Counting View-Through Conversions as 'Hard' ROAS

    VTCs are great for brand health, but they shouldn't be reported in the same bucket as click-based sales. They are 'soft' attributions.

  • Mistake 3: Ignoring the 'Direct' Spike

    If your Direct revenue increases while you scale PMax, PMax is driving that traffic. Don't assume Direct is just 'existing customers.'

  • Mistake 4: Not Deduplicating Channels

    If you add up the revenue from Meta, Google Ads, and Klaviyo, the total will often be 150% of your actual Shopify sales. You must use a central model like GA4 DDA to find the true split.

  • Mistake 5: Setting Short Lookback Windows

    For high-consideration items (luxury, furniture), a 7-day click window is too short. Use 30 days or even 90 days to capture the full impact of top-of-funnel ads.

A sixth, less visible mistake worth naming: treating the reconciled figure as a one-off exercise rather than a standing monthly process. Consent decline rates drift as CMP banners are redesigned or regulation tightens; Google's modelling recovery rate shifts as it retrains; payment gateway mixes change. Run the reconciliation every month, on the same day, with the same source definitions, so trend lines are comparable and any sudden jump in variance flags a tracking issue rather than a real performance change.

Frequently Asked Questions

Different attribution models. Google Ads uses last-click within Google Ads only (misses non-Google touches). Shopify Analytics is first-party transactional data (misses attribution beyond basic UTM). Variance of 20-40% is normal. Reconcile via the 3-source framework above.

Use the 3-source framework: anchor total revenue to Shopify Analytics, calculate channel share from GA4, validate Google Ads-specific figures against Google Ads reporting. The reconciled figure sits between the three source numbers.

For total revenue: Shopify Analytics (first-party transactional data, doesn't miss transactions). For channel attribution: GA4 (uses cross-touch attribution modelling). For campaign-level detail: Google Ads (has campaign structure Shopify doesn't see).

Yes significantly. Users who decline cookies aren't tracked in GA4 or Google Ads for post-consent behaviour. Data loss estimate: 30-50% of EU/UK visitors depending on consent banner design. Shopify Analytics unaffected (first-party transactional data). Consent Mode conversion modelling partially fills the gap.

Only partially. Google Ads reports Google Ads-attributed revenue only, using its own attribution model. Multiplies over-reporting when Google Ads clicks are one of several channels touched. Compare against reconciled figure via the 3-source framework for accurate ROAS.

GA4 with Enhanced eCommerce events (purchase, add_to_cart, view_item, view_item_list, begin_checkout), Google Ads conversion import from GA4 purchase event, Shopify Analytics natively (no setup), Consent Mode v2 configured, User-ID enabled for cross-device tracking. Full setup takes 4-8 hours done correctly.

About the Author

Chris Coussons, Founder of Visionary Marketing

Chris Coussons

Founder · Visionary Marketing

Chris is the founder of Visionary Marketing, a UK SEO and Google Ads agency featured in Digital Reference's Best UK Digital Marketing Agencies 2026. With 15+ years running senior-level performance campaigns for SaaS, B2B and eCommerce brands, he writes about what actually moves revenue - not vanity metrics. Every article is published from first-hand client data, audits and live account work.

Related articles

OthereCommerce

eCommerce Platform Market Share 2026: 84,000 Stores Analysed

Shopify 42.6% (+10.8pp), WooCommerce 24.6%, Magento -10.2pp. 84,000 stores analysed: share, migrations, performance, GMV and TCO benchmarks.

12 May 2026Read more
SEOeCommerce

eCommerce SEO Ranking Factor Study 2026: 100,000-Page Analysis

100,000 ecom pages, 30 ecom-specific factors, 12,400 commerce AIO queries. Product schema 0.78, mobile LCP 0.71, reviews 0.68 - 84% model fit.

18 April 2026Read more
SEOeCommerce

eCommerce SEO Statistics & Data (2026)

Organic traffic, conversion rate, and revenue data for eCommerce SEO across major platforms.

17 March 2026Read more

Work With Visionary Marketing

Is your attribution model costing you money?

Most UK eCommerce brands are either over-spending on inefficient ads or under-spending on profitable ones due to poor measurement. Our measurement audit identifies the gaps in your GA4, Shopify and Google Ads tracking.

Visionary Marketing is a UK-based SEO and Google Ads agency that takes a data-led approach to growth. We don't guess - we analyse your market, competitors, and performance data to build strategies that drive measurable revenue. Every campaign is grounded in real numbers, not assumptions.

Data-led strategy - every decision backed by real performance data
Senior specialists only - no junior account managers
No contracts - month-to-month, cancel anytime
Revenue-first - we track ROAS, not vanity metrics
Book a Measurement Audit