
GA4 Conversion Tracking for E-commerce: The Complete 2025 Setup Guide
GA4 replaced Universal Analytics on July 1, 2023. Two years later, the majority of e-commerce businesses continue making critical configuration errors: poorly named events, missing parameters, broken conversion imports. This guide covers the complete setup, from the purchase event to Google Ads linkage.
The Most Common GA4 Configuration Mistakes
Before building, diagnose what you have. The 5 mistakes I see most often:
**1. Purchase event without e-commerce parameters** The "purchase" event exists, but without `transaction_id`, `value`, `currency`, `items` parameters. GA4 records a conversion without value: impossible to calculate ROAS.
**2. Double-counting purchases** GTM and native Shopify/WooCommerce code both send the purchase event. Result: every purchase is counted twice.
**3. Missing or inconsistent currency** No `currency` parameter, or different currency across pages. GA4 silently rejects transactions without correct currency.
**4. Wrong import in Google Ads** The GA4 event imported in Google Ads uses the wrong attribution model (last click instead of data-driven).
**5. No deduplication via transaction_id** Without a unique `transaction_id` per purchase, page refreshes on the confirmation page create false duplicates.
The Required E-commerce Events in GA4
GA4 recommends a set of standardized e-commerce events. Here are the 8 essential events with their required parameters:
**1. view_item_list** - Triggered on list/category pages **2. view_item** - Triggered on the product page **3. add_to_cart** - Triggered on "Add to Cart" click **4. begin_checkout** - Triggered at checkout entry **5. add_payment_info** - Triggered at payment method validation **6. add_shipping_info** - Triggered at shipping method selection
**7. purchase (critical event)** ```javascript gtag('event', 'purchase', { transaction_id: "T_12345", // REQUIRED and UNIQUE value: 59.99, // Net value (excluding taxes if possible) tax: 10.00, shipping: 5.99, currency: "USD", coupon: "CODE10", items: [{ item_id: "SKU_12345", item_name: "Product Name", item_category: "Category", price: 29.99, quantity: 2 }] }); ```
**8. refund** - Parameters: transaction_id (required), refunded value, refunded items
GTM Configuration: The Process
**Step 1: Create the GA4 Event "purchase" tag**
In GTM: 1. New tag > Google Analytics: GA4 event 2. Select your GA4 configuration tag 3. Event name: `purchase` 4. Add event parameters from the data layer
**Step 2: Configure the data layer (dataLayer)**
On your order confirmation page, push: ```javascript window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event': 'purchase', 'ecommerce': { 'transaction_id': '{{ORDER_ID}}', 'value': {{ORDER_VALUE}}, 'currency': 'USD', 'items': [ // array of purchased products ] } }); ```
**Step 3: Create GTM variables**
Data layer variables to create: - `ecommerce.transaction_id` - `ecommerce.value` - `ecommerce.currency` - `ecommerce.items`
**Step 4: Configure the trigger**
Trigger: Custom Event > Event name: `purchase`
**Step 5: Verify with GA4 DebugView**
1. Activate GTM preview mode 2. Place a test order 3. In GA4 > Configure > DebugView, verify the "purchase" event appears with all parameters
Importing GA4 Conversions into Google Ads
Importing GA4 conversions to Google Ads is the most critical configuration for bid optimization.
**Import process:**
1. In Google Ads: Tools > Measurement > Conversions > Import 2. Select: Google Analytics 4 properties 3. Choose your GA4 property 4. Import the "purchase" event
**Critical settings during import:**
- **Category**: Purchase - **Value**: Use transaction values (not a fixed value) - **Count**: One (avoids double counting) - **Attribution window**: 30-day clicks / 1-day views (adjust based on your sales cycle) - **Attribution model**: Data-Driven (if sufficient volume, otherwise available data-based)
**Watch for double counting:** If you already have a direct Google Ads conversion tag on your site, deactivate it after enabling the GA4 import. Never leave both active simultaneously.
Verification and Maintenance of Your Setup
**Monthly verification checklist:**
1. GA4 Realtime: compare GA4 purchase count with your back-office (acceptable tolerance: -5 to -10%) 2. Google Ads Conversion Reports: verify imported conversions match 3. GA4 > Reports > Monetization: verify tracked revenue is consistent 4. DebugView: place a test order if you have doubts
**Warning signs to monitor:** - Sudden drop in conversions without traffic decline = tracking issue - Sudden increase = possible double counting - Zero-value transactions = missing currency or value not transmitted - Improving ROAS without explanation = cost under-counting or conversion over-counting
**Diagnostic tools:** Google Tag Assistant (Chrome extension) and GA4 DebugView remain the most reliable tools for diagnosing tracking issues.
Key Takeaways
- The 5 most common mistakes: purchase without parameters, double counting, missing currency, wrong Google Ads import, no transaction_id.
- 8 GA4 e-commerce events are essential, including purchase with a unique required transaction_id.
- Configure via GTM with a structured data layer rather than hard-coding on pages.
- The GA4 import to Google Ads must use the Data-Driven model and real transaction values.
- Verify monthly by comparing GA4 with your back-office: acceptable tolerance is -5 to -10%.
This article is based on episode 0 of the podcast
Listen to the full version with Alexia and Maxence to dive even deeper.