Setting Up E-commerce (Enhanced Ecommerce) in Google Analytics
Enhanced Ecommerce in GA4 is a set of standard events for tracking the entire purchase funnel: from catalog view to transaction completion. Data is used to analyze conversion at each step, product popularity, and promo effectiveness.
E-commerce Event Funnel
view_item_list → view_item → add_to_cart → begin_checkout → purchase
(catalog) (product) (cart) (checkout) (order)
Implementing All Funnel Steps
// 1. Product list view (catalog, recommendations)
gtag('event', 'view_item_list', {
item_list_id: 'category_shoes',
item_list_name: 'Shoes',
items: products.map((p, i) => ({
item_id: p.id,
item_name: p.name,
item_brand: p.brand,
item_category: p.category,
item_list_name:'Shoes',
index: i, // position in list
price: p.price,
quantity: 1
}))
});
// 2. Product click in list
gtag('event', 'select_item', {
item_list_name: 'Shoes',
items: [{ item_id: product.id, item_name: product.name, index: 3 }]
});
// 3. Product card view
gtag('event', 'view_item', {
currency: 'RUB',
value: product.price,
items: [{
item_id: product.id,
item_name: product.name,
item_brand: product.brand,
item_category: product.category,
item_variant: selectedVariant,
price: product.price
}]
});
// 4. Add to cart
gtag('event', 'add_to_cart', {
currency: 'RUB',
value: product.price * quantity,
items: [{ ...productData, quantity }]
});
// 5. Begin checkout
gtag('event', 'begin_checkout', {
currency: 'RUB',
value: cart.total,
coupon: appliedCoupon,
items: cart.items
});
// 6. Add shipping
gtag('event', 'add_shipping_info', {
currency: 'RUB',
value: cart.total,
shipping_tier: 'CDEK Express',
items: cart.items
});
// 7. Add payment
gtag('event', 'add_payment_info', {
currency: 'RUB',
value: cart.total,
payment_type: 'Visa',
items: cart.items
});
// 8. Purchase
gtag('event', 'purchase', {
transaction_id: order.id,
value: order.total,
tax: order.tax,
shipping: order.shippingCost,
currency: 'RUB',
coupon: order.coupon,
items: order.items
});
Promotions and Banners
// Show promotion (banner, slider)
gtag('event', 'view_promotion', {
promotions: [{
promotion_id: 'summer_sale_2024',
promotion_name: 'Summer Sale',
creative_name: 'banner_home',
creative_slot: 'hero_slot'
}]
});
// Promotion click
gtag('event', 'select_promotion', { promotions: [...] });
Refunds
gtag('event', 'refund', {
transaction_id: orderId,
value: refundAmount,
currency: 'RUB',
items: [{ item_id: productId, quantity: 1 }] // only refunded items
});
Reconciling GA4 Data with Actual Sales
GA4 data typically differs from actual DB data by 5–15% due to blockers and session loss. For important decisions — compare GA4 with DB data or Conversions API.
Setup time: 2–3 business days for complete funnel with promos and GA4 reporting.







