
London, UK · Serving UK/EU · GBP pricing
GA4 for E-commerce: Fix revenue tracking. Stop wasting ad spend. Actually trust your data.
The problem every e-commerce business faces (and most don't realise)
Your Shopify dashboard says you made £47,892 last month. GA4 says £32,104. Google Ads is claiming credit for conversions that never happened. Facebook swears blind it delivered a 4.2x ROAS. Your payment processor has its own version of events.
Nobody agrees. Nothing reconciles. And somewhere in that mess, you're making decisions about which campaigns to scale, which products to push, and where to spend next month's budget.
This isn't "close enough for analytics". It's decision-making Russian roulette with live ad budgets.
The issue isn't that GA4 is inherently broken—it's that e-commerce tracking is deceptively difficult to implement correctly, and most setups have at least three things seriously wrong that nobody's noticed yet.
Why GA4 e-commerce tracking goes wrong (the actual reasons)
1. The event structure is strict, and most setups ignore half of it
GA4 e-commerce events require specific parameters in a specific structure. Google only accepts data in the exact structure it expects—if you break the format or rename fields, it won't work.
Common mistakes:
-
Event is called order_complete instead of purchase (GA4 ignores it entirely)
-
Missing required parameters: transaction_id, value, currency, items
-
Currency sent as "£29.99" or "GBP29.99" instead of the number 29.99 with currency as "GBP"
-
Currency signs included (like $) when GA4 expects currency codes like EUR, USD, GBP
-
Items array missing critical fields like item_id, item_name, price, quantity
-
Product-level data showing as "(not set)" because parameters weren't included
If any single parameter is wrong or missing, purchase data will not be displayed in the reports. Not incomplete—absent.
2. Revenue discrepancies between GA4 and your payment processor
This is the big one. On average, GA4 captures only 67% of the total revenue recorded by Shopify, and about 20% of transactions and revenue are not tracked and reported by Google Analytics when using native integrations.
Why this happens:
-
Customers close the browser before the thank-you page fully loads, so the purchase event never fires
-
JavaScript errors on checkout or confirmation pages prevent the tracking code executing
-
Ad blockers and privacy tools block client-side GA4 scripts
-
Shopify's checkout moves server-side, preventing browser scripts from sending data to GA4
-
Payment gateways (Stripe, PayPal) redirect users away from your domain, breaking session continuity
-
Using both Shopify's native GA4 integration and GTM simultaneously, causing duplicate or missing data
Shopify often shows higher revenue because it includes taxes and shipping by default, while GA4 tracks only what you've configured it to send. If your GA4 tags aren't capturing tax and shipping, your revenue will always be understated.
3. Duplicate transactions inflating your numbers
The opposite problem: GA4 showing more revenue than actually happened.
Common causes:
-
Same e-commerce event fired multiple times by different tracking methods (gtag.js, GTM, measurement protocol, third-party plugin)
-
Having both hardcoded GA4 and GTM tags active, causing double-tracking
-
Transaction tag fires every time the confirmation page is refreshed
-
Users clicking "purchase" multiple times due to slow connections
-
Not clearing e-commerce data in the data layer between events, causing previous items to appear in new transactions
-
Server-side tagging misconfigured to send duplicate purchase events
4. Cross-domain tracking breaks at checkout
Many e-commerce sites use external payment gateways (Stripe Checkout, PayPal) or run checkout on a subdomain. When users leave your main domain to complete payment, GA4 often:
-
Loses the session entirely
-
Attributes the purchase to "Direct" because it can't see the original referrer
-
Creates a new session, breaking funnel analysis
-
Loses UTM parameters, making attribution useless
Without proper cross-domain configuration and referral exclusions, your attribution is fiction.
5. Consent management accidentally blocks purchase tracking
Cookie banners might block the GA4 event until the user consents, but if consent happens after checkout, the purchase never gets tracked.
This is especially problematic for UK/EU stores where:
-
Intelligent Tracking Prevention (ITP) since iOS 14.5 requires user permission to track data
-
GDPR-compliant consent management blocks tracking scripts by default
-
Third-party consent platforms without proper GA4 integration prevent events from firing
You can't optimise campaigns if 30-40% of conversions are invisible because users didn't click "Accept Cookies" before purchasing.
6. Data layer timing issues
E-commerce data appears in the data layer after you send the data to GA4. For example, if your GA4 purchase tag fires on DOM Ready but the transaction data is pushed to the data layer slightly later, you're sending empty purchase events.
Your GTM preview mode shows everything working. Real users experience a race condition where half the purchases never get tracked.
7. Product-level data is a mess
Even when purchases track correctly, the product data is often unusable:
-
Item names showing as "(not set)"
-
Product IDs inconsistent or missing
-
Categories not captured
-
Variant data (size, colour) not included
-
No way to analyse performance by product, category, or collection
You know revenue happened. You have no idea which products drove it.
What proper GA4 e-commerce tracking looks like
Core implementation requirements
Purchase event structure:
window.dataLayer.push({
event: 'purchase',
ecommerce: {
transaction_id: 'T_12345', // Unique order ID
value: 127.50, // Total order value (number, not string)
currency: 'GBP', // ISO 4217 currency code
tax: 12.75, // Tax amount
shipping: 5.00, // Shipping cost
items: [{
item_id: 'SKU_001',
item_name: 'Blue Canvas Trainer',
item_brand: 'YourBrand',
item_category: 'Footwear',
item_variant: 'Blue / UK 9',
price: 109.75,
quantity: 1
}]
}
});
Every parameter matters. Every field has to be correct. There's no "good enough".
Full funnel tracking:
-
view_item - Product page views
-
add_to_cart - Add to cart events
-
begin_checkout - Checkout initiated
-
add_payment_info - Payment details entered
-
purchase - Transaction completed
Each event with the correct parameters, fired at the right time, without duplicates.
Revenue reconciliation: GA4 revenue should match your payment processor within 2-3%, accounting for:
-
Refunds (tracked separately with the refund event)
-
Failed payments (not tracked as purchases)
-
Test transactions (excluded via filters or tagged appropriately)
-
Currency conversion timing differences
If the gap is larger than 3%, something's fundamentally broken.
Marc's GA4 E-commerce Services
E-commerce Tracking Audit — £400–£800
What you get:
-
Full audit of existing GA4 e-commerce implementation
-
Revenue reconciliation: compare GA4 against Shopify/WooCommerce/payment processor
-
Identify missing, duplicate, or incorrectly structured events
-
Data layer inspection and validation
-
Cross-domain and checkout flow analysis
-
Product-level data quality assessment
-
GTM container review (tags, triggers, variables)
-
Consent mode compliance check
-
Prioritised fix list with business impact ratings
-
Written report with before/after comparison framework
Typical turnaround: 5–7 working days
Best for: E-commerce businesses that know their GA4 data doesn't match reality but aren't sure what's broken or where to start.
Pricing:
-
£400–£500: Single-currency, straightforward checkout (e.g., UK-only Shopify with standard checkout)
-
£600–£800: Multi-currency, complex checkout, or custom-built platforms
E-commerce GA4 Setup — £1,200–£2,800
What you get:
-
Complete GA4 e-commerce tracking implementation from scratch
-
Data layer architecture and implementation (or validation if already exists)
-
All standard e-commerce events configured: view_item, add_to_cart, begin_checkout, add_payment_info, purchase, refund
-
Product-level tracking with full item parameters (IDs, names, categories, variants, prices)
-
Revenue, tax, and shipping tracking configured correctly
-
Cross-domain tracking for external payment gateways (Stripe, PayPal, etc.)
-
GTM container setup with organised folder structure and naming conventions
-
Consent Mode v2 integration (compliant with UK GDPR/DPA 2018)
-
Google Ads and Search Console linking
-
Revenue reconciliation validation (GA4 vs payment processor)
-
Testing and QA across desktop, mobile, and multiple browsers
-
Documentation: what fires where, why, and how to verify it
-
Handover session with your team
Typical timeline: 2–4 weeks depending on platform complexity
Best for: E-commerce businesses launching GA4 properly, migrating from Universal Analytics, or rebuilding broken implementations.
Pricing:
-
£1,200–£1,600: Standard Shopify or WooCommerce with straightforward requirements
-
£1,800–£2,200: Custom platforms, multi-currency, subscription products, or complex checkout flows
-
£2,400–£2,800: Enterprise implementations with multiple domains, marketplaces, or offline conversion integration
Platform-Specific Implementation: Shopify — £1,400–£2,400
What you get (everything in E-commerce GA4 Setup, plus):
-
Shopify-specific data layer implementation using theme customisation or app
-
Checkout extensibility configuration for Plus stores
-
Handling Shopify's server-side checkout behaviour
-
Product variant tracking (size, colour, etc.)
-
Collection and product type tracking
-
Discount code and coupon tracking
-
Subscription product tracking (if using ReCharge, Seal, etc.)
-
Multi-currency handling with proper currency parameter configuration
-
Integration with Shopify's Customer Privacy API
-
Server-side tracking option for better data capture and iOS 14+ resilience
Why Shopify-specific? Shopify's checkout moves server-side, creating a huge data gap where browser scripts can't send information to GA4.
Standard GA4 implementations miss 20-30% of purchases. Shopify-specific implementations fix this.
Platform-Specific Implementation: WooCommerce — £1,200–£2,200
What you get (everything in E-commerce GA4 Setup, plus):
-
WooCommerce-specific hooks and actions for reliable event firing
-
Integration with WooCommerce order system
-
Product variation tracking (attributes, options)
-
Handling of multiple payment gateways within WooCommerce
-
Subscription tracking (if using WooCommerce Subscriptions)
-
Member pricing and role-based discount tracking
-
Integration with popular WooCommerce extensions (bookings, memberships, etc.)
-
PHP-based server-side event validation to catch JavaScript failures
Why WooCommerce-specific? WooCommerce runs on WordPress, which means endless plugin combinations, theme conflicts, and JavaScript errors.
Generic GA4 implementations break constantly. WooCommerce-specific implementations are resilient to plugin updates and theme changes.
E-commerce GA4 + Server-Side GTM — £3,800–£6,500
Everything in E-commerce GA4 Setup, plus:
-
Server-side GTM container setup (GCP or Stape)
-
Custom subdomain configuration for first-party data collection
-
All e-commerce events migrated server-side
-
Facebook Conversions API (CAPI) with product-level data
-
Google Ads Enhanced Conversions for e-commerce
-
TikTok Events API (if running TikTok ads)
-
Server-side purchase validation (catches failed client-side events)
-
Improved attribution for iOS 14+ traffic
-
Better data quality and match rates for ad platforms
-
Reduced page weight and faster checkout performance
Typical timeline: 4–6 weeks
Best for: E-commerce businesses spending £5k+/month on paid ads where attribution accuracy directly impacts profitability, or those losing significant revenue data to ad blockers and privacy features.
Ongoing GA4 E-commerce Monitoring — £400–£800/month
What you get:
-
Monthly revenue reconciliation reports (GA4 vs actual sales)
-
Automated alerting for tracking failures (events stop firing, revenue drops unexpectedly, etc.)
-
Event quality monitoring (duplicate transactions, missing parameters, data layer errors)
-
Monthly data quality dashboard showing:
-
Purchase tracking coverage (% of orders captured)
-
Event parameter completeness
-
Product-level data quality
-
Cross-domain and checkout funnel health
-
-
Tag and trigger maintenance as your site changes
-
Platform update management (Shopify/WooCommerce updates that break tracking)
-
Quarterly review and optimisation recommendations
Best for: E-commerce businesses that want tracking to stay working as products launch, checkout flows change, and platforms update.
Common GA4 e-commerce problems Marc fixes
"GA4 revenue is 30% lower than Shopify/WooCommerce"
Usually a combination of: purchase events not firing consistently (JavaScript errors, timing issues), cross-domain breaks at checkout, or consent blocking purchase tracking. Fixed with proper data layer implementation, server-side tracking where needed, and consent-aware event configuration.
"We're seeing duplicate transactions—revenue is inflated"
Often caused by double-tagging: the same event fired by multiple methods (GTM, hardcoded tags, third-party plugins). Fixed by consolidating all tracking through a single method (usually GTM), implementing state tracking to prevent duplicate fires, and clearing the data layer correctly between events.
"Product data shows as '(not set)' everywhere"
This happens when required event parameters are missing or incorrectly configured. Fixed by implementing complete item parameters (item_id, item_name, item_category, item_brand, etc.) in every e-commerce event.
"Revenue tracks but we can't tell which products sold"
Your purchase event has value but the items array is empty or incomplete. Fixed by implementing proper product-level tracking with full item details in every transaction.
"Checkout happens on a different domain and we lose all attribution"
Cross-domain tracking isn't configured, or referral exclusions are missing. Fixed with proper linker parameter configuration, referral exclusion lists, and testing across the full payment flow.
"Conversions show as 'Direct' even though they came from paid ads"
UTM parameters are getting lost (usually at checkout), or cross-domain tracking is breaking sessions. Fixed with proper session continuity, UTM parameter preservation, and sometimes server-side tracking to maintain attribution through external payment flows.
"GA4 says we sold 200 units. Shopify says 348."
This level of discrepancy (only 57% tracked) usually indicates fundamental implementation failures: events not firing, wrong event names, missing required parameters, or severe JavaScript errors on checkout pages. Fixed with complete rebuild following GA4 e-commerce event specifications.
"We're GDPR-compliant but losing 40% of purchase data"
Consent management is too aggressive or configured incorrectly. Fixed with proper Consent Mode v2 implementation that respects user choices while still capturing consented data, and potentially server-side tracking for better coverage within legal boundaries.
Why e-commerce tracking is worth getting right
Better ad spend decisions:
When you know which campaigns actually drive revenue (not just clicks or "conversions"), you stop wasting money on traffic that looks good in the dashboard but never buys anything.
Accurate ROAS:
Facebook claiming 4x ROAS when it's actually 1.8x? Google Ads taking credit for sales that came from email? Proper attribution fixes this.
Product-level insights:
Which products drive the most revenue? Which have the highest cart abandonment? Which categories perform best in paid vs organic? You can't answer these questions with broken tracking.
Funnel optimisation:
Where do people drop off? Is it product page → cart, cart → checkout, or checkout → purchase? Without accurate event tracking, you're guessing.
Platform migration confidence:
Moving from Shopify to WooCommerce? Launching a new checkout flow? You need to know if revenue tracking survives the change. Most businesses only discover it broke three months later when they're comparing year-over-year and the numbers are nonsense.
How Marc approaches e-commerce tracking projects
1. Revenue reconciliation first
Before fixing anything, establish the current state: how much is GA4 missing? Which events work and which don't? What's the actual gap between GA4 and reality?
2. Fix the critical path
Purchase tracking comes first. Everything else is secondary. If purchases aren't tracking correctly, nothing else matters.
3. Build resilient implementations
E-commerce sites change constantly: new products, checkout updates, platform upgrades, theme changes. Implementations need to survive these changes without breaking. That means proper data layer architecture, organised GTM containers, and documentation your team can actually use.
4. Test obsessively
Desktop and mobile. Chrome, Safari, Firefox. With and without ad blockers. Through the full checkout flow including payment gateway redirects. Real test transactions validated against GA4 DebugView and actual backend order records.
5. Provide proof
Revenue reconciliation reports showing before/after. Screenshots of DebugView with events firing correctly. Validation that product-level data is complete. Documentation of what was broken and how it was fixed.
Frequently asked questions
How long does it take to fix broken e-commerce tracking?
Depends on how broken it is. Simple fixes (wrong event name, missing parameter) can be resolved in a day. Complete rebuilds take 2-4 weeks. The audit tells you which situation you're in.
Will this work with [insert checkout app/payment gateway]?
Probably, but it needs testing. Most modern checkout solutions support proper tracking if configured correctly. Some older or heavily customised setups require workarounds. That's identified during the audit.
Do I need server-side GTM for e-commerce tracking?
Not always. If your revenue reconciliation shows GA4 capturing 85%+ of transactions, client-side tracking is fine. If you're missing 20-30%+ due to ad blockers, iOS privacy features, or checkout flow issues, server-side becomes necessary.
Can you guarantee GA4 will match Shopify/WooCommerce exactly?
Within 2-3%, yes. Perfect 100% matching is impossible because:
-
GA4 processes data with 24-48 hour latency
-
Timezone differences between platforms
-
Refunds and cancellations may appear at different times
-
Currency conversion timing
-
Test transactions handled differently
But systematic 20-30% gaps? Those get fixed.
What if our checkout flow is custom-built?
Custom checkouts are often easier to track correctly than platform defaults, because you control everything. The audit covers custom implementations.
We use Shopify Plus / WooCommerce Subscriptions / [specific setup]. Does this still apply?
Yes. The principles are the same, but subscription products, member pricing, and complex checkout flows require additional configuration. That's covered in platform-specific implementations.
Our developers already tried to fix this. Why would you succeed?
Most developers aren't GA4 specialists—they're brilliant at building sites but e-commerce tracking is a specific niche with specific requirements that aren't obvious from Google's documentation.
It's the difference between knowing JavaScript and knowing exactly how GA4's e-commerce schema works, how data layers should be structured, and which implementation patterns reliably survive Shopify updates.
Get your e-commerce tracking fixed
Not sure where your tracking stands? Start with the E-commerce Tracking Audit (£400-£800). You'll get a clear breakdown of what's broken, what's working, and exactly what needs fixing with cost estimates for each fix.
No sales pressure. No "imagine your ROAS if we increased attribution by 0.3%". Just an honest technical assessment of your current implementation and a roadmap to fix it properly.
Book Your Free 30-Minute Consultation
Alternatively, if you're confident your tracking is fundamentally broken and needs rebuilding (revenue gaps over 20%, duplicate transactions, cross-domain attribution disasters), go straight to the E-commerce GA4 Setup service.
Platform-Specific Resources
Shopify merchants:
The most common issue is Shopify's server-side checkout preventing browser scripts from tracking purchases. Standard fixes include using Shopify's Customer Events, implementing server-side tracking, or using specialist Shopify GA4 apps. The Platform-Specific Shopify service handles this properly.
WooCommerce merchants:
WooCommerce's biggest tracking challenge is plugin conflicts and JavaScript errors during checkout. The Platform-Specific WooCommerce service includes PHP-based server-side validation to catch purchases even when JavaScript fails, plus compatibility testing with your specific plugin stack.
Custom platforms:
Custom-built e-commerce sites usually have the cleanest tracking potential—you control everything. The challenge is ensuring developers implement the data layer correctly from the start. The E-commerce GA4 Setup service includes complete technical specification and validation.
Why this matters more in 2026
Privacy regulations are tighter. iOS tracking is harder. Third-party cookies are dying (slowly, but inevitably). Ad platforms demand better data quality for their algorithms to work properly.
Meanwhile, competition for paid traffic has never been fiercer, and attribution has never been more important.
If your GA4 e-commerce tracking is broken—and statistically, there's a decent chance it is—you're flying blind. Every campaign decision is based on incomplete or incorrect data.
Fix the tracking. Trust the data. Make better decisions.