Analitik Nisan 2026 · 10 dk okuma

GA4 e-ticaret kurulumu: sıfırdan Looker Studio raporuna

Data layer, enhanced e-commerce eventleri, conversion goals ve canlı dashboard kurulumu. 2026’da Türk e-ticaret markaları için uygulanabilir rehber.

SD
Servet Demirhan Performans Pazarlama ve Büyüme

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.

EventTetiklenme yeriZorunlu parametre
view_item_listKategori / liste sayfası açıldığındaitems[], item_list_id
view_itemÜrün detay sayfasıitems[], value, currency
add_to_cart"Sepete ekle" butonuitems[], value, currency
remove_from_cartSepetten çıkarmaitems[], value, currency
view_cartSepet sayfası açıldığındaitems[], value, currency
begin_checkoutÖdeme adımı başladığındaitems[], value, currency, coupon (varsa)
add_payment_infoKart bilgisi girildikten sonraitems[], value, currency, payment_type
purchaseSipariş 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.

MetrikFormül / KaynakHedef aralık (D2C)
SessionsGA4 sessions metric-
UsersGA4 active users-
Conversion Rate (ECR)purchase / sessions%2-4
Revenuepurchase event value sum-
AOVrevenue / purchase countSektör ortalamasına göre
Items per Orderitems / purchase1.4-2.2
Add-to-Cart Rateadd_to_cart / view_item%8-15
Checkout Completionpurchase / 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.

KonuUniversal AnalyticsGA4
Veri modeliSession + pageviewEvent-based (her şey event)
Bounce rateTek pageview = bounceEngagement rate'in tersi (10sn altı + tek event)
Conversion sayımıSession başına 1 kezHer event sayılır (multi-conversion mümkün)
Atribüsyon modeliLast-click defaultData-driven default (2023+)
Veri saklama26 ay (default)2 ay-14 ay (ücretli sürüm 50 ay)
Kullanıcı kimliğiClient 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

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.