An online store owner noticed revenue dropped 15% in November, right before Black Friday. Traffic was actually up. The problem? Their checkout page had a JavaScript error on Safari that prevented the “Place Order” button from working. They only discovered this three weeks later because they had no ecommerce funnel tracking. Hundreds of customers hit the broken button, gave up, and left.
With proper ecommerce tracking, they would have seen the checkout completion rate crash on day one.
Why This Matters
Every step in the funnel leaks money. On average, 70% of online shopping carts are abandoned. But where exactly do people leave? Is it the product page? The cart? The shipping cost reveal? Ecommerce tracking breaks the journey into measurable steps so you can find and fix the leaks.
Product-level data changes everything. Instead of knowing “we sold $50K this month,” you know which products sell, which get viewed but not purchased, which get added to cart but abandoned, and which combinations people buy together.
Marketing attribution becomes real. When you connect ecommerce events to traffic sources, you can say “Google Ads drove $12K in revenue at a 4x ROAS” instead of “Google Ads sent us some clicks.” That is the difference between guessing and optimizing.
Seasonality and trends emerge. With months of ecommerce data, you spot patterns. Maybe Sundays have the highest average order value. Maybe email campaigns convert 3x better than social. These insights compound into real competitive advantages.
How to Do It
Step 1: Understand the GA4 ecommerce events.
GA4 uses a standard set of ecommerce events. Implement them in order of priority:
| Event | When to fire | Priority |
|---|---|---|
view_item | Product page viewed | High |
add_to_cart | Item added to cart | High |
remove_from_cart | Item removed from cart | Medium |
begin_checkout | Checkout started | High |
add_shipping_info | Shipping details entered | Medium |
add_payment_info | Payment method entered | Medium |
purchase | Order completed | Critical |
Step 2: Push data to the data layer.
Each event needs product details pushed to the dataLayer before the tag fires. Here is an example for add_to_cart:
dataLayer.push({
event: "add_to_cart",
ecommerce: {
currency: "USD",
value: 29.99,
items: [{
item_id: "SKU-123",
item_name: "Classic T-Shirt",
item_category: "Apparel",
price: 29.99,
quantity: 1
}]
}
});
Step 3: Configure Google Tag Manager.
Create a GA4 Event tag for each ecommerce event. Use the built-in ecommerce data layer variables, which GTM recognizes automatically. Set the trigger to fire on the custom event name (like add_to_cart).
For the purchase event, make sure you include transaction_id, value, currency, and the items array. Missing any of these means GA4 will not properly attribute revenue.
Step 4: Use a platform plugin if available.
If you run Shopify, WooCommerce, Magento, or BigCommerce, do not build this from scratch. Use a plugin:
- Shopify: Native GA4 integration in Online Store preferences
- WooCommerce: GTM4WP plugin or MonsterInsights
- Magento: Mageplaza or Amasty GA4 extensions
These handle the data layer pushes for all standard ecommerce events.
Step 5: Test everything in DebugView.
Enable GA4 DebugView and walk through a complete purchase on your site. Verify each event fires at the right moment with the correct product data. Check that the purchase event has the right revenue value. Testing one full transaction end to end catches 90% of implementation errors.
The Easier Way
Raw GA4 ecommerce reports require navigating monetization reports, applying segments, and comparing date ranges manually. With ClawAnalytics, the same data is available through questions:
- “What is our cart-to-purchase conversion rate this month?”
- “Which product categories have the highest average order value?”
- “How does our checkout abandonment rate compare to last quarter?”
When your CEO asks “How is the store doing?” you can get the answer in 10 seconds instead of 10 minutes of clicking.
Quick Wins
- Implement
purchasefirst. If you only track one event, make it the purchase. Revenue data alone is transformative. Add the funnel events after. - Include
transaction_idon every purchase. This prevents duplicate counting if a user refreshes the confirmation page or returns to it later. - Clear the data layer between events. Push
{ ecommerce: null }before each new ecommerce event to prevent stale data from leaking into subsequent events. - Set up a revenue alert. Configure a custom alert that notifies you if daily revenue drops below a threshold. This catches checkout bugs within hours instead of weeks.
- Check mobile separately. Mobile conversion rates are typically 50% lower than desktop. If the gap is larger, investigate mobile UX issues in your checkout flow.