Helpful information ...
GA4 E-commerce Setup: A Step-by-Step Guide to Reliable Data
GA4 Ecommerce Setup: A Step-by-Step Guide to Reliable Data
For reliable ecommerce measurement in GA4, first create a GA4 property and add the Google tag or its configuration in Google Tag Manager. Then make sure your online store sends at least the purchase event with the items, transaction_id, and currency fields. Check that data is coming through in DebugView before relying on any reports. Without this basic set, GA4 won't show you accurate revenue, no matter how nicely built your store is.
In short:
- To correctly track revenue in GA4, you need to send at minimum the purchase event with items, transaction_id, and currency, then verify the data in DebugView.
- The foundation is creating a GA4 property, choosing an implementation path, and prioritizing events like purchase, begin_checkout, and add_to_cart, then testing the entire purchase flow.
- Implementation must include the items product table with the item_id, item_name, price, quantity, and item_category parameters, and it must ensure transaction_id and currency are set at purchase.
- Verifying that data is being sent correctly means monitoring DebugView and checking that all important parameters are present, with a missing transaction_id being the most common mistake.
- For KPI-based decisions, use the Monetization and Explorations reports, regularly tracking revenue, average order value, conversion rate, and cart abandonment, which supports better optimization of the purchase journey.
Table of Contents
- Quick checklist for setting up GA4 ecommerce
- Which events and parameters are required for meaningful data
- How to implement it: gtag.js, GTM, or server-side tracking
- How to verify GA4 is correctly receiving purchase data
- Which reports and KPIs to actually track in GA4
- A practical agency perspective: the most common mistakes and how to avoid them
- Order your GA4 ecommerce setup from Moxy-web
- Sources
- Frequently asked questions
Quick checklist for setting up GA4 ecommerce
Before diving into individual events, get the foundation right. The order of the steps below isn't arbitrary — each one depends on the one before it to work correctly.
- Create a GA4 property and data stream. In GA4 admin, add a web data stream for your store and find the Measurement ID (in the format G-XXXXXXX) in the stream settings.
- Choose your implementation path. Decide between gtag.js, Google Tag Manager, or a platform's built-in features, such as Shopify or WooCommerce. Note who will carry out the implementation, since a developer, an agency, or a built-in module each call for a different approach.
- Prioritize your events. Get
purchase,begin_checkout, andadd_to_cartsending first, since these three carry the most business value. - Set currency at the event level. The
currencyparameter must be present on every event with a value, otherwise GA4 won't display amounts correctly. - Run a test order. Trigger the entire purchase flow in a test environment and check that the data shows up in real time.
Pro tip: Don't try to implement all sixteen recommended events on day one. Get purchase and add_to_cart working, verify them in practice, and only then add view_item, view_cart, and the rest of the purchase journey.
Which events and parameters are required for meaningful data
Google defines a set of recommended events for ecommerce, including view_item, add_to_cart, begin_checkout, purchase, and refund. Each one corresponds to exactly one step of the purchase journey, so they shouldn't be skipped or merged together.
view_item fires when a product page is viewed, add_to_cart when an item is added to the cart, begin_checkout when checkout starts, and purchase when an order is completed. Use the refund event whenever a customer returns a product or cancels a purchase, since without it your revenue reports will stay inflated.
At the core of all these events is the items structure, the product table you send within every event:
item_id– a unique product code matching your database or catalog.item_name– the product name as seen by the customer.price– the price of a single unit in the selected currency.quantity– the quantity of that item in the cart or order.item_category– the product category, for segmenting reports.
Implementing ecommerce events per Google's guidance also requires transaction_id on the purchase event, since without it GA4 can't distinguish one order from another and may duplicate the data. The currency parameter at the event level is equally essential, since without it GA4 either displays values incorrectly or leaves them out of the Monetization reports entirely.
For businesses that need further segmentation, GA4 allows a limited number of custom dimensions and metrics at the property level. This limit means you should reserve them for genuinely important data — a loyalty program, say — not for every minor variable that comes to mind.
How to implement it: gtag.js, GTM, or server-side tracking
Choosing an implementation path depends on how much control you have over the store's code and how many changes you expect down the line.
Gtag.js is the fastest route for smaller stores with a simple codebase. Add the Measurement ID to the <head> of every page, then add gtag('event', ...) calls with the right parameters into the code of individual pages (product, cart, thank-you).
Google Tag Manager is a more maintainable solution for growing stores. Setting up events in GTM involves a GA4 configuration tag, followed by separate GA4 Event Tags for each event, triggered via triggers tied to variables in the data layer (dataLayer). This approach means the marketing team can add or change events without touching the site's source code.
Server-side tracking is the next step for stores losing data to ad blockers and browser scripts. Server-side tracking increases the reliability of transaction data collection, since data is sent directly from the server, bypassing the user's browser. It requires setting up a server-side GTM container, which only makes sense once your basic browser-side implementation is already running reliably.
- Shopify and WooCommerce offer built-in modules for basic events like
purchaseandview_item. - Advanced parameters, such as multi-level
item_categorydata, often still need to be added manually even on these platforms.
Pro tip: If you're using Shopify or WooCommerce, check the built-in GA4 module first before writing custom code.
How to verify GA4 is correctly receiving purchase data
Verification isn't a one-time task — it's something you repeat with every code change.
- Open DebugView in GA4 and enable debug mode in your browser or through the Google Tag Assistant extension.
- Trigger a test order in a staging environment and check that the events appear in the correct order.
- Check the
items,transaction_id, andcurrencyvalues within each event. A missingtransaction_idis the most common mistake, causing duplicated or missing revenue. - Wait 24 to 48 hours for the data to fully populate in the Monetization reports, since DebugView only shows an immediate, real-time view.
- For higher order volumes, add server-side verification as well, to confirm that every transaction actually made it into GA4.
Which reports and KPIs to actually track in GA4
The Monetization reports are the first thing to check once your events are set up, since they show revenue, transaction count, and average order value straight from the data you're sending via purchase.
For a deeper look at customer behavior, use Explorations. Funnel analysis in Explorations lets you build a custom path from viewing a product to completing a purchase, and see exactly at which step users drop off.
Key metrics worth tracking regularly:
- Revenue from the
purchaseevent. - Average order value (AOV), calculated from revenue and transaction count.
- Conversion rate, the share of sessions that end in a purchase.
- Cart abandonment, the ratio between
add_to_cartandpurchase. - Refund rate, the share of
refundevents relative to total purchases.
Segments, or audiences, in GA4 let you flag users who abandoned their cart for remarketing in Google Ads. A more detailed look at choosing these metrics can be found in the guide to website KPIs, which also covers tools outside GA4.
A practical agency perspective: the most common mistakes and how to avoid them

In the implementations we see, most mistakes come down to a missing transaction_id, which duplicates revenue, and an incorrect currency format, which distorts reports completely. We recommend server-side tracking only once your basic browser-side events have been running reliably for at least a month, since building on an unstable foundation just compounds every mistake that follows.
GA4 shouldn't be treated as Universal Analytics with a new coat of paint. GA4's event-based model calls for a different way of thinking, since features that used to be a separate "enhanced ecommerce" add-on are now a default part of every event. Anyone who designs the user journey around old patterns loses the flexibility Explorations actually offers. For technical help fixing these mistakes, you can seek out professional support.
— Ziga
Order your GA4 ecommerce setup from Moxy-web
Instead of spending weeks testing GTM triggers and fixing missing parameters, leave the setup to a team that builds events, data layers, and server-side tracking every day. They offer individually tailored solutions for stores, with no pre-made templates, allowing the GA4 implementation to be matched to your actual codebase.
The service should include setting up the GA4 property, configuring Google Tag Manager, implementing store events with the correct parameters, the option of server-side tracking, and testing in DebugView before the solution is signed off. You can also get a review of your current setup through an external assessment to identify what's missing. Visit Moxy-web and tell them where your GA4 data is letting you down.
Sources
For further reading, we recommend Google's documentation on measuring ecommerce and its overview of recommended events.
- Measure ecommerce | Google Analytics | Google for Developers
- GA4 Recommended events - Analytics Help
- What is server-side tracking? — Matomo blog
Frequently asked questions
What's the minimum set of events for GA4 ecommerce?
The minimum is three events: add_to_cart, begin_checkout, and purchase, each with the items table, and transaction_id and currency at purchase. Without these three, GA4 can't display revenue or conversion rate.
How do I check that GA4 ecommerce tracking is working correctly?
Open DebugView in GA4, enable debug mode, and run a test order in a staging environment. Google recommends this approach as the standard step before pushing tracking live to production.
What is server-side tracking, and do I need it?
Server-side tracking sends data from your server directly to GA4, bypassing the browser, which reduces data loss from ad blockers. It increases the reliability of transaction data, but only makes sense once your basic implementation is already running reliably.
Do Shopify and WooCommerce already send GA4 events out of the box?
Both platforms offer built-in modules for basic events, such as purchase and view_item, without writing any code. Advanced parameters, such as detailed product categories, often still need to be added manually on both.
How much does a GA4 ecommerce setup cost at Moxy-web?
The price depends on the scope of the implementation and the complexity of the store, so current pricing isn't published publicly. The fastest way to get an exact quote is to submit an inquiry on the Moxy-web website.
Recommended