Bu not, GA4 e-ticaret kurulumunu adım adım anlatan uygulama rehberidir; danışmanlık hizmeti, ölçümleme pillar sayfası veya checklist aracı değildir. GA4 2020’de duyuruldu, 2023’te Universal Analytics resmi olarak kapandı; 2026’da hâlâ “GA4 kurduk” ile “enhanced e-commerce, conversion goals ve Looker dashboard’u çalışıyor” arasında büyük fark var. Bu rehber sıfırdan dashboard’a kadar 5 adımı net anlatıyor.
GA4 hesabı ve property nasıl kurulur?
Google Analytics 4’te doğru yapı: Account > Property > Data Stream. Çoğu marka burada hata yapar. Tek bir property’ye hem staging hem prod data stream’i bağlar. Doğrusu: ayrı property (staging için test property, prod için ana property). Data Stream’leri hem web hem iOS/Android app için kur. Sınırlar: her property maksimum 50 custom dimensions + 50 metrics. Başlangıçta boş bırakma, kurulumda 10-15 dimension lazım olur. Enhanced measurement ayarını aç. Page_view, scroll, click, file_download, video_engagement otomatik gelir ama yeterli değil.
GA4 e-ticaret için hangi event’ler gerekli?
GA4’te e-commerce için 8 kritik event var: view_item_list, view_item, add_to_cart, remove_from_cart, view_cart, begin_checkout, add_payment_info, purchase. Çoğu marka sadece purchase’ı gönderir; funnel analizi o zaman mümkün değil. Her event için items array’i zorunlu: item_id, item_name, item_category (1-5), price, currency (TRY), quantity. value parametresi event-level toplam. Refund event’i de var ama GA4 refund’u doğru işlemiyor; parallel BigQuery view oluştur.
Aşağıdaki tablo 8 event'in tetiklenme noktasını ve zorunlu parametrelerini özetliyor. Her event'i bu sıraya göre kurmazsan funnel raporları yarım çıkar.
| Event | Tetiklenme yeri | Zorunlu parametre |
|---|---|---|
view_item_list | Kategori / liste sayfası açıldığında | items[], item_list_id |
view_item | Ürün detay sayfası | items[], value, currency |
add_to_cart | "Sepete ekle" butonu | items[], value, currency |
remove_from_cart | Sepetten çıkarma | items[], value, currency |
view_cart | Sepet sayfası açıldığında | items[], value, currency |
begin_checkout | Ödeme adımı başladığında | items[], value, currency, coupon (varsa) |
add_payment_info | Kart bilgisi girildikten sonra | items[], value, currency, payment_type |
purchase | Sipariş tamamlandı (thank-you sayfası) | transaction_id, items[], value, tax, shipping |
Data layer: GTM’de nasıl kurulur
Google Tag Manager’da e-commerce event’leri dataLayer üzerinden tetiklenir. Shopify’de otomatik dataLayer yok. Elle push’lamak gerek (ya da Shopify GTM Suite gibi bir app). Ticimax’ta data layer modülü var ama default dataset eksik. Örnek: add_to_cart için dataLayer.push({event:"add_to_cart",ecommerce:{currency:"TRY",value:299,items:[{item_id,item_name,...}]}}). GTM trigger’ı bu event’i yakalar ve GA4 event tag’ine geçirir. CAPI (server-side GA4) ekleme 2026 best practice; Measurement Protocol üzerinden server-side event yönlendirmesi.
Doğru dataLayer push örneği. Shopify ve Ticimax'ta script tag'i tema dosyasına eklenir; thank-you ve product sayfalarında tetiklenir.
Shopify · purchase event (order status sayfası)window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'purchase',
ecommerce: {
transaction_id: '{{ order.order_number }}',
value: {{ order.total_price | money_without_currency }},
tax: {{ order.tax_price | money_without_currency }},
shipping: {{ order.shipping_price | money_without_currency }},
currency: 'TRY',
items: [
{% for line_item in order.line_items %}
{
item_id: '{{ line_item.product_id }}',
item_name: '{{ line_item.product.title }}',
item_category: '{{ line_item.product.type }}',
price: {{ line_item.final_price | money_without_currency }},
quantity: {{ line_item.quantity }}
}{% unless forloop.last %},{% endunless %}
{% endfor %}
]
}
});
Ticimax · view_item event (ürün detay sayfası)window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'view_item',
ecommerce: {
value: PRODUCT_PRICE,
currency: 'TRY',
items: [{
item_id: PRODUCT_ID,
item_name: PRODUCT_NAME,
item_category: PRODUCT_CATEGORY,
price: PRODUCT_PRICE,
quantity: 1
}]
}
});
GTM tarafında bu event'leri yakalamak için Custom Event trigger ("event name equals purchase") + GA4 Event tag (Event Name: purchase, Event Parameters: ecommerce dataLayer variable). Bu setup'ı her event için tekrar et veya Enhanced Ecommerce Tag Template'i (community-built) kullan.
Conversion goals ve custom dimensions
GA4’te Key Events (eski adıyla conversions) atamak şart. Purchase her zaman key event olmalı. İkinci key event: add_to_cart veya begin_checkout (funnel başlangıcı). Custom dimension örnekleri: user_type (new/returning), product_category, discount_code, signup_method, device_tier. Dimension’ları scope olarak event-level ve user-level olarak ayır. Custom metric örneği: net_revenue (purchase value minus tax). Bunu event parameter olarak gönder, GA4 reports’ta toplayabilesin.
Looker Studio dashboard: 8 metriğin canlı gösterimi
Looker Studio'da canlı dashboard 8 ana metrik etrafında kurulur. Aşağıdaki tablo metrikleri, formülleri ve sektör hedef aralıklarını gösteriyor.
| Metrik | Formül / Kaynak | Hedef aralık (D2C) |
|---|---|---|
| Sessions | GA4 sessions metric | - |
| Users | GA4 active users | - |
| Conversion Rate (ECR) | purchase / sessions | %2-4 |
| Revenue | purchase event value sum | - |
| AOV | revenue / purchase count | Sektör ortalamasına göre |
| Items per Order | items / purchase | 1.4-2.2 |
| Add-to-Cart Rate | add_to_cart / view_item | %8-15 |
| Checkout Completion | purchase / begin_checkout | %55-75 |
Veri kaynağı: GA4 connector (direkt). Rolling 30-day ve year-over-year comparison ekle. Date picker'ı Istanbul timezone'una çevir; GA4 default UTC kullanır, raporları 3 saat geriye kayık okursun. Dashboard canlıysa ve haftada bir bakılıyorsa başarılı; tozlanıyorsa kurulum yarım demek.
GA4 ile Universal Analytics arasındaki temel farklar nedir?
UA 2023'te emekli edildi ama hâlâ "neden GA4'te rakamlar farklı" sorusu yaygın. Aşağıdaki tablo en sık karışıklık yaratan 6 yapısal farkı özetliyor.
| Konu | Universal Analytics | GA4 |
|---|---|---|
| Veri modeli | Session + pageview | Event-based (her şey event) |
| Bounce rate | Tek pageview = bounce | Engagement rate'in tersi (10sn altı + tek event) |
| Conversion sayımı | Session başına 1 kez | Her event sayılır (multi-conversion mümkün) |
| Atribüsyon modeli | Last-click default | Data-driven default (2023+) |
| Veri saklama | 26 ay (default) | 2 ay-14 ay (ücretli sürüm 50 ay) |
| Kullanıcı kimliği | Client ID (cookie) | Client ID + User ID + Google Signals |
Pratik anlamı: UA'dan migrate olan markalar ilk 3 ay tüm rakamları %15-30 farklı görür. Bu fark hata değil; iki sistem farklı şey ölçüyor. UA verisini referans olarak alma, GA4 baseline'ını yeniden kur.
Kaynaklar / Sources
- Google Analytics: Measure ecommerce
- Google Analytics: Measurement Protocol for GA4
- Google Analytics: attribution settings
- Looker Studio: data source basics
GA4 e-ticaret hakkında sıkça sorulanlar
Shopify'da GA4 nasıl entegre edilir?
Üç yol var. (1) Shopify yerleşik Google & YouTube app: temel pageview ve purchase tracking, ama dataLayer detayı sınırlı. (2) GTM tema entegrasyonu: theme.liquid'e GTM container script'i ekle, sonra her event için custom dataLayer push (yukarıdaki örnekteki gibi). En esnek yol. (3) "Shopify GTM Suite" gibi 3rd-party app: kurulum hızlı ama ay sonu lisans ücreti var. D2C için GTM yolunu tavsiye ederim, en kontrollü.
GA4'te purchase event neden duplicate görünür?
Üç ana sebep: (1) Thank-you sayfası kullanıcı F5 yaptığında dataLayer tekrar push ediyor. Çözüm: transaction_id sessionStorage'a yaz, ikinci push'ta atla. (2) GA4 tag hem Web Stream'de hem app stream'de tetikleniyor (multi-platform marka için). Çözüm: ayrı stream'ler için ayrı parametre. (3) GTM'de tag iki trigger'a bağlı (Custom Event + History Change). Çözüm: tek trigger kullan. Duplicate purchase, GA4 atribüsyon raporlarını ciddi bozar; haftada bir transaction_id distinct count kontrolü yap.