E-ticaret İleri (GA4)
1. GA4 E-ticaret Event'leri
GA4'ün e-ticaret takibi, önceden tanımlanmış event'ler ve parametreler ile çalışır. Bu standartlara uymak, monetization raporlarının otomatik doldurulmasını sağlar.
a) Tam E-ticaret Akışı
graph LR
VIL["view_item_list\nKategori sayfası"] --> VI["view_item\nÜrün detay"]
VI --> SI["select_item\nÜrün seçimi"]
VI --> ATC["add_to_cart\nSepete ekle"]
ATC --> VC["view_cart\nSepeti görüntüle"]
VC --> RC["remove_from_cart\nSepetten çıkar"]
VC --> BC["begin_checkout\nÖdeme başlat"]
BC --> ASI["add_shipping_info\nKargo bilgisi"]
ASI --> API["add_payment_info\nÖdeme bilgisi"]
API --> PUR["purchase\nSatın alma ✅"]
PUR --> REF["refund\nİade"]
style PUR fill:#DCFCE7,stroke:#22C55E
style REF fill:#FEE2E2,stroke:#EF4444
b) Zorunlu ve Önerilen Event'ler
| Event | Tetiklenme Anı | Zorunluluk |
|---|---|---|
view_item | Ürün detay sayfası görüntülendiğinde | Kritik |
add_to_cart | Sepete ekle butonuna tıklandığında | Kritik |
begin_checkout | Ödeme sayfasına geçildiğinde | Kritik |
purchase | Sipariş tamamlandığında | Zorunlu |
view_item_list | Kategori/arama sayfasında ürünler listelendiğinde | Önerilen |
add_shipping_info | Kargo bilgisi girildiğinde | Önerilen |
add_payment_info | Ödeme bilgisi girildiğinde | Önerilen |
refund | İade yapıldığında | Önerilen |
2. dataLayer Implementasyonu
Her e-ticaret event'inin belirli parametrelerle dataLayer'a push'lanması gerekir.
a) items Dizisi (Array)
Tüm e-ticaret event'lerinde items dizisi bulunmalıdır. Her item şu parametreleri içerebilir:
| Parametre | Tür | Açıklama |
|---|---|---|
item_id | string | Ürün ID (SKU) |
item_name | string | Ürün adı |
price | number | Birim fiyat |
quantity | integer | Adet |
item_brand | string | Marka |
item_category | string | Ana kategori |
item_category2 | string | Alt kategori (5'e kadar) |
item_variant | string | Varyant (renk, beden) |
discount | number | İndirim tutarı |
coupon | string | Kupon kodu |
b) purchase Event Detaylı Örnek
dataLayer.push({ ecommerce: null });
dataLayer.push({
'event': 'purchase',
'ecommerce': {
'transaction_id': 'T-2025-001234',
'value': 3847.80,
'tax': 692.60,
'shipping': 49.90,
'currency': 'TRY',
'coupon': 'BAHAR25',
'items': [
{
'item_id': 'SKU-A100',
'item_name': 'Klasik Trençkot',
'item_brand': 'MarkaBir',
'item_category': 'Giyim',
'item_category2': 'Dış Giyim',
'item_variant': 'Bej / L',
'price': 1899.00,
'quantity': 1,
'discount': 0,
'coupon': ''
},
{
'item_id': 'SKU-B200',
'item_name': 'Deri Çanta',
'item_brand': 'MarkaIki',
'item_category': 'Aksesuar',
'item_category2': 'Çanta',
'item_variant': 'Siyah',
'price': 1899.90,
'quantity': 1,
'discount': 0,
'coupon': 'BAHAR25'
}
]
}
});
⚠️ Uyarı:
transaction_id her sipariş için benzersiz olmalıdır. Aynı ID ile birden fazla purchase event'i gönderilirse GA4 bunları çift sayabilir. Sipariş onay sayfası yenilendiğinde tekrar push yapmayı engelleyen bir mekanizma kurmalısınız.
3. Monetization Raporları
E-ticaret event'leri doğru implementasyonla GA4'ün yerleşik monetization raporlarını otomatik olarak doldurur.
a) Mevcut Raporlar
- Monetization overview: Genel gelir, satın alma ve kullanıcı sayıları.
- Ecommerce purchases: Ürün bazlı görüntülenme, sepete ekleme, satın alma ve gelir.
- Purchase journey: Otomatik funnel (open funnel) — adım bazlı kayıp oranları.
- Checkout journey: Checkout aşamalarındaki ayrıntılı akış.
graph TD
MONO["📊 Monetization Raporları"] --> OV["Overview\nToplam gelir, kullanıcı"]
MONO --> EP["Ecommerce Purchases\nÜrün bazlı analiz"]
MONO --> PJ["Purchase Journey\nFunnel analizi"]
MONO --> CJ["Checkout Journey\nÖdeme akışı"]
EP --> EP1["item_name\nitem_views\nadd_to_carts\npurchases\nrevenue"]
style MONO fill:#E8F6FC,stroke:#29ABE2
style EP fill:#DCFCE7,stroke:#22C55E
4. Item-Scoped Dimensions
GA4'te bazı boyutlar "item-scoped" olarak çalışır — yani event bazında değil, ürün bazında raporlanır.
a) Item-Scoped vs Event-Scoped
- Event-scoped:
transaction_id,value,currency— siparişe ait. - Item-scoped:
item_name,item_brand,item_category,price— ürüne ait.
💡 İpucu: Özel ürün parametreleri eklemek isterseniz (ör.
item_margin, item_color), GA4 Admin > Custom Definitions > Custom Dimensions'da item-scoped custom dimension oluşturmanız gerekir. Event-scoped olarak kaydettiğinizde bu veri ürün raporlarında görünmez.
🎯 Benzetme: Item-scoped dimensions bir alışveriş sepetindeki etiketler gibidir — her ürünün kendi fiyatı, markası ve kategorisi vardır. Event-scoped ise kasadaki fiş gibidir — tüm siparişin toplamını, kargo ücretini ve sipariş numarasını gösterir.
5. refund Event İmplementasyonu
İade takibi, gelir raporlarının doğruluğu için kritiktir.
a) Tam İade
dataLayer.push({ ecommerce: null });
dataLayer.push({
'event': 'refund',
'ecommerce': {
'transaction_id': 'T-2025-001234',
'value': 3847.80,
'currency': 'TRY'
}
});
b) Kısmi İade
dataLayer.push({ ecommerce: null });
dataLayer.push({
'event': 'refund',
'ecommerce': {
'transaction_id': 'T-2025-001234',
'value': 1899.90,
'currency': 'TRY',
'items': [{
'item_id': 'SKU-B200',
'quantity': 1
}]
}
});
