Ever wonder which of your products actually pull their weight? You might be spending heavily on ads, but without knowing which SKUs drive sales (and which just sit in carts), you’re making blind bets.
Google Analytics 4 (GA4) can answer that but only if you set it up right. With product-level tracking, GA4 lets you follow each item’s journey: who viewed it, who added it to cart, who bought it, and who abandoned it.
Done right, product-level tracking helps you answer questions like:
- Which products have high add-to-cart rates but low purchases?
- What SKUs actually bring in the most revenue?
- Which ad campaigns drive sales for specific products?
In this guide, we’ll cut through the clutter and show you exactly what eCommerce stores must set up in GA4 to get real product insights without drowning in technical jargon.
Why Product-Level Tracking in GA4 Matters for eCommerce Stores
Think of it this way: looking only at total revenue is like peering through frosted glass, you see the outline, but not the details. Product-level tracking wipes that glass clean.
With it, you can:
- Spot products that get tons of clicks but rarely convert.
- Double down on SKUs that consistently generate revenue.
- See what products shoppers buy together (great for bundles).
- Connect ad spend to actual product sales instead of vague totals.
Without this level of detail, you’re left optimizing campaigns on gut feel, not proof and that’s exactly why understanding GA4 for eCommerce is so important for data-driven decisions.
Essential GA4 Ecommerce Events for Product Performance Tracking
GA4 doesn’t automatically “see” what’s happening in your store. You have to feed it signals, called events, that tell it what shoppers are doing, which makes setting up your GA4 event tracking correctly absolutely crucial.Think of them as play-by-play updates of your customer journey.
Here are the ones every eCommerce store needs:
- Product discovery events
- view_item_list → shopper scrolls through a category or search page.
- select_item → they click into a product.
- view_item → they land on the product detail page.
- Cart and checkout events
- add_to_cart → item is added to the cart.
- remove_from_cart → item is removed.
- begin_checkout → checkout process starts.
- add_shipping_info / add_payment_info → details get filled in.
- Conversion events
- purchase → sale completed.
- refund → sale reversed.
💡 Pro tip: All these events must carry product details inside the items array. Think of it as GA4’s receipt. Without it, GA4 just knows “something sold” but can’t tell which product.
How to Set Up GA4 Ecommerce Tracking (GTM vs gtag.js)
You have two main ways to implement GA4 ecommerce tracking: through Google Tag Manager (GTM) or directly with gtag.js. Here’s how each works.”
Implementing GA4 Ecommerce Events with Google Tag Manager
GTM is the go-to for most merchants because it’s flexible and easy to test, but if you’re new to it, learning the Google Tag Manager basics first will help you map GA4 events confidently. Here’s a sample add_to_cart push:
dataLayer.push({ event: "add_to_cart", ecommerce: { items: [{ item_id: "SKU123", item_name: "Running Shoes", item_category: "Footwear", price: 79.99, quantity: 1 }] } });
Once you push this data to the dataLayer, you map the fields into a GA4 Event Tag in GTM and confirm everything in DebugView before going live.
Implementing GA4 Ecommerce Events with gtag.js
If you’re not using GTM, you can send events directly with gtag.js. Example for a purchase:
gtag("event", "purchase", { transaction_id: "T12345", value: 159.98, currency: "USD", items: [{ item_id: "SKU123", item_name: "Running Shoes", price: 79.99, quantity: 2 }] });
👉 On Shopify or WooCommerce? Plugins like Conversios do this heavy lifting for you — no code required.
Key Product Parameters for Accurate GA4 Reports
For GA4 to break down performance by product, every event’s items array needs to include:
- item_id → SKU or product code (don’t skip this).
- item_name → Product title.
- item_category → Category path (e.g., Shoes > Running > Men’s).
- price → Item price.
- quantity → Units involved.
Optional but valuable:
- item_variant → e.g., size or color.
- item_brand → Brand name.
- coupon → Discount applied.
⚠️ Important Technical Limits:
- The items array can include up to 200 elements per event
- Each event can have a maximum of 25 parameters
- You can include up to 27 custom item-level parameters in addition to the prescribed ecommerce parameters
If you leave out item_id, your GA4 reports will lump products together. That’s the fastest way to ruin product-level insights.
GA4 Product-Level Reports: Where to Find the Data
Once tracking is in place, head to:
Reports → Monetization → Ecommerce purchases
Here’s what you’ll find:
- Product views vs. purchases.
- Revenue and units sold per SKU.
- Average revenue per item.
But here’s the catch: GA4’s built-in reports are limited. Want to know your add-to-cart rate? Or checkout completion per product? You’ll need to build a custom Exploration. For example:
- Add-to-cart rate = add_to_cart ÷ view_item
- Purchase rate = purchase ÷ begin_checkout
That’s where the real insights come alive and if those insights don’t match your actual sales, this quick missing revenue fix can help align GA4 data with your store performance.
Advanced GA4 Insights: Campaign ROI, Profitability, and Cross-Sells
Once you’ve nailed the basics, GA4 can open up even deeper insights:
- Campaign ROI by product → Link GA4 with Google Ads to see which campaigns sell which SKUs.
- Profitability tracking → Import cost/margin data to measure profit, not just revenue.
- Cross-sell analysis → Spot product combinations that frequently sell together and bundle them.
- Server-side tracking → Guard against missing product data caused by ad blockers or iOS updates.
For Advanced Analysis:
When GA4’s built-in reports aren’t enough (which happens often with complex ecommerce needs), consider BigQuery export.
Standard GA4 properties can export up to 1 million events per day to BigQuery for free, which is why connecting GA4 + BigQuery is a must for stores analyzing high-volume product data.
This removes GA4’s sampling limitations and gives you unlimited access to raw data for custom product performance analysis.
Common Mistakes in GA4 Product Tracking (and How to Avoid Them)
Here’s where stores often slip up:
- Only firing the purchase event → gives no funnel visibility.
- Forgetting currency when sending value → breaks revenue reporting across markets.
- Skipping item_id → makes SKU-level reporting impossible.
- Never testing in DebugView → sending events blindly without validation.
- Ignoring refunds → inflates sales numbers and skews performance metrics.
- Exceeding the 200-item limit → GA4 will truncate your items array, losing product data.
- Hitting the 25-parameter limit → Additional parameters won’t be processed.
- Not planning for high-volume stores can cause sampling and data truncation issues, so regular server-side validation helps ensure your tracking stays clean even as your catalog grows.
Avoid these, and your product-level reporting will stay clean and comprehensive.
Final Thoughts
Product-level tracking in GA4 is no longer “nice to have” it’s the difference between guessing and knowing. Once events and parameters are set up properly, you’ll know:
- Which products deserve more ad spend.
- Which ones drain the budget.
- Where customers drop off in the funnel.
And if you’re running Shopify or WooCommerce, don’t worry you don’t have to code this all by hand. Tools like Conversios automate GA4 ecommerce tracking so you can focus on insights instead of implementation.
Frequently Asked Questions
Q: Do I need GTM to set up GA4 ecommerce tracking?
Not strictly. You can use gtag.js, but GTM makes testing and scaling much easier. If you’re on Shopify or WooCommerce, plugins like Conversios can handle this automatically.
Q: Can GA4 track product variants like size or color?
Yes. Just include them in the item_variant field when sending product data.
Q: How do I check if product events are firing correctly?
Use GA4’s DebugView or Tag Assistant to see events in real time. Make sure each event passes product ID, name, and price.
Q: How should I handle multiple currencies?
Always send the currency field along with value. That way, your revenue numbers stay accurate across different markets.
Q: Where can I see product-level performance in GA4?
Head to Reports → Monetization → Ecommerce purchases. For deeper insights (like add-to-cart rate), build a custom Exploration in GA4.
Q: What happens if my store has more than 200 products in a single transaction?
GA4’s items array is limited to 200 elements per event. If you have larger transactions, the array will be truncated. For stores with high-volume orders, consider implementing BigQuery export to capture complete transaction data without limits.