Skip to main content
Checklist

GA4 Checklist: 12 Items Every Ecommerce Store Should Audit

By ยท Updated ยท 7 min read

Why Audit GA4 Before Trusting Any Ecommerce Data

GA4's event-based model gives ecommerce stores more flexibility than Universal Analytics, but that flexibility means misconfiguration is common and silent. A broken purchase event doesn't throw an error โ€” it just stops recording revenue. An audit surfaces those gaps before they corrupt a month of reporting or a major merchandising decision.

Run this checklist on a new store before launch, on an inherited property within the first week, and on any live store at least once per quarter. Each item below has a binary pass/fail criterion so there is no ambiguity about whether a check is complete.

The 12-Item GA4 Ecommerce Audit Checklist

1. Google tag fires on every page. PASS: DebugView shows a page_view event on every template type (homepage, PDP, PLP, cart, checkout, confirmation). FAIL: Any template type is missing page_view events in DebugView.

2. Data stream is linked to the correct domain. PASS: The data stream URL in GA4 Admin matches the live store domain exactly, including subdomain (e.g., www vs. no-www). FAIL: The stream URL differs from the actual domain or points to a staging URL.

3. Enhanced measurement is configured intentionally. PASS: Each toggle under Enhanced Measurement (scrolls, outbound clicks, site search, video, file downloads) is either enabled with a confirmed use case or deliberately disabled. FAIL: All toggles are on by default without review โ€” site search tracking the wrong query parameter is a common result.

4. purchase event fires with a transaction_id. PASS: Every confirmed order in your order management system has a corresponding purchase event in GA4 with a unique, non-null transaction_id. FAIL: transaction_id is absent, null, or duplicated across orders.

5. purchase event revenue matches actual order value. PASS: The value parameter in the purchase event equals the order total (post-discount, pre- or post-tax consistently per your policy) within a 1% tolerance compared to your OMS over a 7-day sample. FAIL: Revenue in GA4 differs from OMS revenue by more than 1% over the same period.

6. All required ecommerce parameters are present. PASS: purchase events include currency, value, items array with item_id, item_name, price, and quantity for every line item. FAIL: Any required parameter is missing or the items array is empty.

7. add_to_cart and begin_checkout events fire correctly. PASS: DebugView confirms add_to_cart fires on cart addition (not page load) and begin_checkout fires at checkout step one. FAIL: Either event fires on page load, fires multiple times per action, or does not fire at all.

8. Internal traffic is filtered. PASS: An internal traffic rule exists in GA4 Admin > Data Filters with your office and dev IP ranges defined, and the filter is in Active (not Testing) state. FAIL: No internal traffic filter exists, or the filter is still in Testing state in production.

9. Cross-domain tracking is configured if needed. PASS: If checkout runs on a separate subdomain or third-party domain (e.g., a payment processor), that domain is listed under Configure Your Domains in GA4 Admin, and session continuity is confirmed in DebugView. FAIL: Checkout domain is absent from the list and DebugView shows a new session starting at the payment step.

10. Conversions are marked correctly. PASS: purchase is marked as a conversion. No duplicate conversion events (e.g., both purchase and order_complete tracking the same action) exist. FAIL: purchase is not marked as a conversion, or two events fire for the same transaction.

11. Google Ads link is active and auto-tagging is on. PASS: The Google Ads account is linked in GA4 Admin > Product Links, the link status shows Active, and auto-tagging is confirmed enabled in Google Ads. FAIL: No Ads link exists, the link is broken, or auto-tagging is disabled (causing (not set) campaign data).

12. Audiences for remarketing are published to Google Ads. PASS: At least one purchaser audience and one cart-abandoner audience are created in GA4, set to publish to the linked Google Ads account, and show a user count above Google's minimum threshold. FAIL: No audiences are published, or audiences show zero users due to a misconfigured trigger condition.

How to Run Each Check Without a Developer

GA4 DebugView (Admin > DebugView) is the primary tool for checks 1, 3, 6, 7, and 9. Open the store in a browser with the GA4 DebugView Chrome Extension installed, walk through the purchase funnel manually, and confirm each event appears with the correct parameters in real time. No code access required.

For revenue reconciliation (check 5), export GA4's purchase revenue from the Monetization > Ecommerce Purchases report for a fixed 7-day window and compare it against your OMS export for the same window. Sort by transaction_id to find specific mismatches rather than just total-level discrepancies. This makes root-cause analysis faster.

Checks 8, 9, 10, and 11 live entirely inside GA4 Admin and Google Ads settings โ€” no storefront interaction needed. These are the fastest checks to complete and the ones most frequently skipped during initial setup.

Common Failure Patterns by Platform

On Shopify, the most frequent failures are checks 5 and 9. Shopify Payments redirects through a subdomain during checkout, breaking session continuity unless cross-domain tracking is configured. Revenue discrepancies occur when discount codes reduce the order total but the GA4 tag fires before the discount is applied server-side.

On WooCommerce, check 4 (duplicate transaction_id) is a recurring failure. Page caching plugins can serve a cached order confirmation page to a second visitor, firing a duplicate purchase event with the original transaction_id. The fix is excluding the order confirmation URL from caching at the server level.

On Magento and custom-built storefronts, check 6 (missing items array parameters) is the most common issue. Developers sometimes push a simplified purchase event to GA4 without item-level data, which means product performance reports are entirely empty even though revenue totals look correct.

Prioritizing Fixes After the Audit

Fix checks 4 and 5 first. Accurate transaction and revenue data is the foundation every other report depends on. A broken purchase event or inflated revenue number corrupts ROAS calculations, LTV models, and any Google Ads smart bidding strategy using GA4 conversions.

Fix checks 8 and 11 second. Internal traffic inflation skews conversion rates and audience sizes. A broken Google Ads link means paid campaigns are flying blind on attribution. Both are configuration changes that take under 10 minutes and have immediate downstream impact on ad spend efficiency.

Checks 3, 7, and 12 improve reporting depth and remarketing performance but do not corrupt core revenue data. Address them after the critical fixes are confirmed. Re-run the full checklist 48 hours after any fix to confirm the change resolved the failure without introducing a new issue.

Frequently asked questions

How often should an ecommerce store run a GA4 audit?

Run a full 12-item audit at initial setup, after any significant platform migration or checkout change, and quarterly on live stores. Theme updates, app installs, and payment processor changes frequently break GA4 tags silently. A quarterly schedule catches regressions before they skew a full quarter of revenue reporting.

What is the most important item on a GA4 ecommerce checklist?

Accurate purchase event data โ€” specifically that transaction_id is unique and that the revenue value matches your order management system. Every downstream metric (ROAS, LTV, conversion rate) is calculated from purchase events. A misconfigured purchase event makes all other GA4 data unreliable for decision-making.

Does GA4 show duplicate transactions and how do you detect them?

GA4 does not deduplicate purchase events by transaction_id automatically. Duplicates appear as inflated revenue in the Ecommerce Purchases report. Detect them by exporting transaction-level data and running a COUNT on transaction_id โ€” any ID appearing more than once is a duplicate. Caching on order confirmation pages is the most common cause.

What is the difference between Enhanced Measurement and a custom purchase event in GA4?

Enhanced Measurement handles passive interactions โ€” scroll depth, outbound clicks, file downloads โ€” without code changes. Purchase events require explicit implementation via the data layer or gtag because they carry dynamic parameters like revenue, transaction_id, and item arrays. Enhanced Measurement cannot capture transaction data; it is not a substitute for a properly implemented purchase event.

Will GA4 still work if cross-domain tracking is not configured for a third-party checkout?

GA4 records events on both domains, but each domain starts a new session. The purchase event on the checkout domain is attributed to Direct instead of the original traffic source. This breaks channel-level ROAS reporting. Configuring the checkout domain under Configure Your Domains in GA4 Admin preserves the original session and correct attribution.

MG
Written by

Matt is the founder of RunOctopus. He built All Angles Creatures from zero to page-1 rankings in reptile feeder insects in under 60 days using exactly this method โ€” turning a hard, entrenched niche into RunOctopus's proof store for programmatic SEO and AI search citation.

Connect on LinkedIn →

See what Otto would build for your store

Free architecture preview. No card required. Five minutes.

Generate Preview →