To protect GA4 data quality, compare GA4 purchases and revenue with your order system for the same dates. Then check events in DebugView and Google Tag Manager (GTM) Preview, scan your traffic sources for payment-gateway referrals, compare key events with Google Ads and test your consent states. Investigate any gap you can’t explain first.
Most teams discover bad analytics at an awkward moment: a campaign report that doesn’t match finance, or numbers that jump after a site release. This guide gives you a practical order of checks, plus what happens to tracking when you migrate platforms. For a deeper walkthrough, read our guide on how to identify GA4 data quality issues.
What Good GA4 Data Looks Like
Good data in Google Analytics 4 (GA4) won’t match your backend exactly, because consent settings, browser privacy tools and ad blockers create gaps. Aim for a gap that stays small, stable and explainable. A sudden change in that gap usually signals a break. Judge your data on four points:
- Completeness: Key events fire every time they should.
- Accuracy: Revenue, currency and item IDs match reality.
- Consistency: The same action creates the same event everywhere.
- Attribution sanity: Credit goes to the channels that earned it.
Step 1: Set a Baseline Against Your Source of Truth
Start with a system GA4 can’t influence, such as your order management platform. Follow these steps:
- Pick a clean window of seven to fourteen days with no sale, outage or release.
- Export orders, revenue and refunds, using the same revenue definition you send to GA4.
- Pull GA4 purchases and purchase revenue for the same dates, time zone and currency.
- Remove test, cancelled, phone and marketplace orders.
- Record the ratio and track it over time.
For example, if your store records 1,000 orders and GA4 shows 1,180 purchases, suspect duplicate events. If GA4 shows 760, suspect missing events, blocked tags or consent loss. These numbers are illustrative. The direction and the weekly change matter most.
Step 2: Know Your Debugging Tools
Each tool answers one question and misses another. Use at least two together.
- DebugView shows events from a test device in near real time, but not what real users see.
- GTM Preview and Tag Assistant show which tags fired and why, but miss hard-coded tags.
- Browser DevTools count the requests that leave the browser.
- Realtime and standard reports confirm data arrives, though with delays and little detail.
- BigQuery export lets you inspect raw events, but needs setup and SQL.
- Your order system serves as the truth, though it can’t explain GA4 differences.
Some platforms run tags in a sandbox. Shopify custom pixels, for instance, may not appear in GTM Preview, so lean on DebugView and the browser console there.
Common GA4 Tracking Issues and How to Spot Them
Missing Events
Events vanish for ordinary reasons. A changed CSS selector breaks a trigger, a tag fires before the data layer loads, a staging measurement ID reaches production, or checkout runs on another domain.
Compare event counts down the funnel: view_item, add_to_cart, begin_checkout, purchase. No step should exceed the one before it. If purchase outnumbers begin_checkout, an upstream event is missing or purchases are duplicating. Match any sudden drop against your release dates.
Duplicate Events
Duplicates inflate sessions, engagement and revenue. Watch for these causes:
- Enhanced measurement plus a custom tag tracking the same action
- A hard-coded gtag snippet plus a GTM tag, or two containers
- A plugin and a developer sending the same event
- A server-side hit plus the browser event for one purchase
- A confirmation page that refires purchase on reload
- On Shopify, the Google & YouTube channel running beside GTM
In DebugView, a duplicate appears as the same event twice within moments. In the Network tab, filter on collect and count requests. Send a unique transaction_id with every purchase. Google’s documentation says GA4 deduplicates purchases that share an ID from the same user, but only on web streams. Never send an empty ID or reuse one, because that undercounts key events.
Incorrect Event Parameters
Sometimes the event fires but the details are wrong. Check for case mismatches, since parameter names are case-sensitive. Look for numbers sent as text, such as “1,299.00”, which can break revenue totals, and for missing or wrong currency codes. Make sure emails and names never leak into parameters or URLs.
Also confirm that you registered each parameter as a custom dimension. GA4 fills custom definitions only from the day you create them, so unregistered parameters show (not set). Our explainer on custom dimensions vs event parameters in GA4 covers naming and scoping.
Key Event (Conversion) Tracking Problems
GA4 now calls conversions “key events,” which confuses older documentation. Common problems include:
- Marking a button click instead of a successful submission
- Relying on a thank-you page URL that changed
- Using a counting method that doesn’t match your business definition
- Importing key events into Google Ads, where counts differ
Trigger the action yourself in DebugView and check the event, its parameters and its key-event status. Then place a real test order or submit a test lead and confirm it reaches your reports.
Referral Exclusions and Cross-Domain Problems
When customers leave to pay and return, the payment provider can steal the credit. Google explains that third-party payment processors can change the source under last-non-direct-click attribution. A gateway domain with a high conversion rate near the top of your sources signals this problem.
Add those domains to the data stream’s List unwanted referrals setting. If you own several domains, such as a separate checkout, set up cross-domain measurement instead. Changes apply to new data only, so annotate the date and retest your full checkout.
Attribution Discrepancies
Two reports that disagree don’t always mean a bug. Google Ads usually credits the click date, while GA4 reports the event date. Ads credits only what it ties to an ad interaction, while GA4 sees every channel. GA4 also now offers only cross-channel data-driven, cross-channel last click and Ads-preferred last click attribution.
To compare fairly, filter GA4 to Google / CPC and use identical date ranges. Accept a steady gap, and investigate sudden shifts. Our post on GA4 vs Google Ads and CRM data mismatches goes deeper. Inconsistent UTM tags also push traffic into Direct or Unassigned.
Google Tag Manager Configuration Errors
Many “GA4 problems” start in GTM. Check for these:
- Workspace changes that you never published
- Brittle triggers, such as a regex that no longer matches the URL
- Tags that fire before the data layer fills, returning undefined
- Duplicate or leftover tags from old setups
- Consent settings that block a tag unexpectedly
In Preview, open each event, review the tag status and trigger conditions, then check the Variables tab for the exact values. When a tag doesn’t fire, Preview names the failed condition.
Consent-Related Measurement Gaps
Where consent is required, some missing data is normal. Your goal is a correct setup and a predictable gap. Google’s consent mode documentation explains that when analytics_storage is denied, GA4 receives cookieless pings that feed behavioral modeling. If you block Google tags entirely until visitors agree, you lose that modeled data.
Don’t assume modeling is active either, because Google applies eligibility criteria and data thresholds. Test four states in a clean browser: default, accepted, rejected and partial. Confirm that the default consent state loads before the Google tag.
Ecommerce Tracking Issues
Ecommerce data fails in predictable places:
- purchase events missing transaction_id, value, currency or items
- A value that ignores your finance team’s tax and shipping rules
- Item IDs that differ between GA4, your feed and your catalog
- Refunds that never send, so revenue only grows
- Wrong currency codes on multi-currency stores
- Missing funnel events such as add_to_cart
Google’s developer documentation lists the required fields for every ecommerce event. Pair it with the funnel-count check above.
A Step-by-Step Troubleshooting Routine
Work through problems in the same order every time:
- Write the symptom in one sentence, such as “GA4 shows 18% more purchases since the March release.”
- Check the basics: property, data stream, measurement ID, filters and internal traffic.
- Reproduce the problem with DebugView and GTM Preview open.
- Count the requests and read the parameters in the Network tab.
- Compare the results with your orders or backend logs.
- Fix one thing, publish a named GTM version and note the date.
- Validate days later by repeating the reconciliation, then annotate the change in GA4.
Our GA4 audit guide and checklist walks through configuration in more detail.
How a Replatforming or Ecommerce Migration Affects GA4 Data
A platform change can damage tracking without anyone noticing. Orders flow and the store looks fine, but GA4 quietly changes shape. A Magento to Shopify migration shows why, so plan analytics inside any Magento to Shopify Plus migration, alongside data, SEO and integrations.
Expect these changes:
- Data layer: Event names, parameters and item IDs may differ from the old setup.
- Checkout flow: The purchase tag may stop or fire twice, so test with real orders.
- Tag delivery: Shopify retired checkout.liquid and additional scripts for Thank you and Order status pages on August 28, 2025, so purchase pixels placed there stopped. Shopify now points to customer events and pixels, and its GTM tutorial maps checkout_completed to purchase.
- URLs and domains: Path-based key events break, and payment domains can overwrite attribution.
- Consent and product IDs: Banner signals change, and product reports lose continuity unless you map old IDs to new ones.
Follow these practices:
- Inventory every tag, pixel, event and key event before you migrate.
- Define names, parameters and item ID formats in an event tracking strategy, then build them on the new platform.
- Test on staging, reconcile daily for two weeks after launch and mark the cutover date in GA4.
Our Magento to Shopify Plus migration checklist shows where measurement fits in the full project.
GA4 Data Quality Audit Checklist
Use this list to review your setup:
- Setup: Confirm the property, stream and measurement ID. Exclude internal traffic. Review enhanced measurement. Match key events to business definitions. Register custom dimensions. Check data retention and Google Ads and BigQuery links.
- Events: Document your naming convention. Test for duplicates, validate parameter types and keep personal data out.
- Ecommerce: Check transaction_id, value, currency and items. Match revenue to finance. Align item IDs across systems. Track refunds and reconcile recent orders.
- Sources: Add payment gateways to unwanted referrals. Test cross-domain. Standardize UTMs. Compare GA4 with Google Ads using like-for-like filters.
- GTM and consent: Publish the container, remove old tags, test every key flow and verify all four consent states.
- Governance: Log changes, include tracking in release tests and name an owner.
Download our GA4 audit checklist to work through it offline.
Conclusion: Make Data Quality Checks a Habit
Reliable GA4 data comes from regular checks, not a one-time cleanup. Compare GA4 with your source of truth, keep your event rules in writing and test every release. When the data shifts unexpectedly, find the cause instead of explaining the numbers away.
If you want an expert review, request one through our GA4 audit services. Planning a platform change? Build analytics into your migration plan from day one.
Sign in to leave a comment.