Kazım Gökay Çiftci ·

GA4'te E-ticaret Olayları Nasıl Kurulur? Sepete Ekle ve Satın Alma Ölçümü

GA4'te E-ticaret Olayları Nasıl Kurulur? Sepete Ekle ve Satın Alma Ölçümü

Bir e-ticaret sitesinde GA4'ü kurduğunuzda sayfa görüntüleme ve oturum verisi kendiliğinden gelir; ama kaç kişinin sepete ürün attığını, ödemeye geçtiğini ve satın aldığını gösteren rakamlar kendiliğinden gelmez. Kısa tez şu: e-ticaret ölçümü, Google'ın tanımladığı olay adlarını ve parametre yapısını birebir kullanmakla çalışır; adı ya da yapısı farklı olan bir olay raporlarda yer almaz ya da eksik görünür. Bu yazıda sepete ekleme ve satın alma ölçümünü, Google'ın geliştirici dokümanına dayanarak adım adım kuruyoruz.

Kurulumun bu yazıda anlatılan kısmı site tarafında bir veri katmanı (dataLayer) ya da doğrudan gtag.js ile olay göndermeyi, Google Etiket Yöneticisi (GTM) ile bu olayları GA4'e iletmeyi ve sonuçları doğrulamayı kapsıyor. Reklam platformlarına dönüşüm aktarımı, çerez onayı ve sunucu taraflı ölçüm ayrı konular; onlara değinmekle yetineceğiz.

Önce olay haritası: hangi olaylar gönderilecek?

Google, e-ticaret için önerilen olayları gruplar hâlinde tanımlıyor. Bir mağazada alışveriş yolculuğunun adımlarıyla birebir örtüşüyorlar:

  • Göz atma: view_item_list (ürün listesi görüntülendi), select_item (listeden ürün seçildi), view_item (ürün sayfası görüntülendi)
  • Sepet ve istek listesi: add_to_cart, add_to_wishlist, view_cart, remove_from_cart
  • Ödeme: begin_checkout, add_shipping_info, add_payment_info
  • Tamamlanma: purchase, refund
  • Promosyon: view_promotion, select_promotion

Hepsini aynı gün kurmak zorunda değilsiniz. Sepete ekleme ve satın alma ölçümü için asgari seti şöyle düşünün: view_item, add_to_cart, begin_checkout ve purchase. Bu dört olay, ürün sayfasından satın almaya uzanan bir huni çizmenize yeter. add_shipping_info ve add_payment_info ödeme adımını daha ince izlemek için sonradan eklenir, view_item_list ve select_item ise liste başarısını ölçmek istediğinizde.

Olay adını doğru yazmak şart: addToCart, sepete_ekle ya da add-to-cart GA4 için özel olaydır; e-ticaret raporlarına add_to_cart olarak girmez. Türkçe isim vermek çekici gelebilir, ama raporlar İngilizce adı bekliyor.

Olayın içeriği: parametreler ve ürün dizisi

Her olay, Google'ın tanımladığı parametreleri taşır. Geliştirici başvuru sayfasındaki tabloya göre:

  • add_to_cart: currency, value, items
  • begin_checkout: currency, value, coupon, items
  • purchase: currency, value, transaction_id, coupon, shipping, tax, customer_type, items

items her olayda zorunlu. transaction_id satın alma ve iade için zorunlu. currency ve value tabloda yıldızla işaretli: value gönderiyorsanız currency de göndermeniz gerekiyor, ve value anlamlı gelir raporlaması için genelde şart. Para birimini ISO kodlarıyla (Türk lirası için TRY) yazın. Para birimi eksik ya da yanlışsa gelir değeri raporlarda sıfır ya da hatalı görünebilir.

Ürün dizisindeki her öğe için Google'ın kuralı sade: item_id ya da item_name'den biri yeterli, ikisini birden vermek önerilir. quantity belirtilmezse 1 sayılır. Bir olayda en fazla 200 ürün gönderebilir ve ürün başına 27 özel parametre ekleyebilirsiniz. Pratik olarak item_id için kataloğunuzdaki stok kodunu (SKU) kullanın; ürün adı değişse de kimlik değişmez. item_category, item_brand, item_variant, price ve quantity alanlarını da doldurursanız raporda ürün, marka ve kategori kırılımı alabilirsiniz.

value için dokümanın örnek yorumu açık: bu, tüm ürünler için fiyat çarpı adet toplamıdır. Yani add_to_cart'ta eklenen satırın değeri, purchase'da ise sepetin toplam ürün değeri. Kargo ve vergi için ayrı parametreler (shipping, tax) var; onları value içine katıp çift saymayın. Kuponlu satışlarda value'nun indirimden önce mi sonra mı yazıldığına ekip olarak karar verin ve hep aynı şekilde gönderin, yoksa raporda gelir ve sipariş sistemi birbirini tutmaz.

Veri katmanı ile gönderim

En yaygın yöntem, site kodunun olay anında bir veri katmanı nesnesi basması ve GTM'in bunu GA4 olayı olarak iletmesi. Sepete ekle düğmesine basıldığında şuna benzer bir yapı gönderilir:

dataLayer.push({ ecommerce: null });
dataLayer.push({
  event: "add_to_cart",
  ecommerce: {
    currency: "TRY",
    value: 1299.90,
    items: [{
      item_id: "SKU-1042",
      item_name: "Örnek Ürün",
      item_category: "Ayakkabı",
      price: 1299.90,
      quantity: 1
    }]
  }
});

İlk satırdaki ecommerce: null, bir önceki olaydan kalan ürün verisinin yeni olaya bulaşmasını önlemek için konan yaygın bir uygulama. Her e-ticaret olayından önce veri katmanının bu alanını temizleyin.

GTM tarafında üç parça gerekiyor: olay adı add_to_cart olan bir özel olay tetikleyicisi, "E-ticaret verisi" seçeneği veri katmanından okuyacak şekilde açılmış bir GA4 olay etiketi ve etiket üzerinde olay adı olarak aynı add_to_cart. Her olay için ayrı etiket kurmak yerine, tek bir etikette olay adını değişkenle alan bir yapı da kurabilirsiniz; ama debug sırasında tek tek etiketler okunaklı kalır.

gtag.js ile doğrudan gönderim yapıyorsanız aynı yapı gtag("event", "add_to_cart", {...}) şeklinde yazılır. Parametre adları ve ürün dizisi aynı kalır. Hangi yolu seçerseniz seçin, olayı kullanıcı eylemiyle aynı anda gönderin. Sayfa yüklenince tetiklenen bir add_to_cart olayı, eylemi değil sayfayı ölçer.

Satın alma olayı: bir kez, doğru anda

Gelirin ölçüldüğü olay purchase olduğu için en çok hata burada oluşur. Bu olay için temel kurallar:

  • Ödeme gerçekten onaylandıktan sonra gönderin. "Ödeme sayfasına tıklandı" ile "ödeme alındı" aynı şey değil. Sipariş onay sayfası, ödeme sağlayıcıdan başarılı yanıt geldikten sonra açılıyorsa olayı orada tetikleyin.
  • Her siparişte benzersiz bir transaction_id gönderin. Doküman bu alanı satın alma ve iade için zorunlu olarak işaretliyor. Aynı kimlikle gelen ikinci olayın tekrar sayılmaması için kimliğin sipariş numarasından türemesi gerekir.
  • Sayfa yenilemesine karşı koruma koyun. Müşteri onay sayfasını yenilediğinde ya da e-postadaki bağlantıdan geri döndüğünde olay yeniden çalışırsa aynı sipariş iki kez sayılır. Yöntem basit: sipariş numarasını tarayıcı depolamasında saklayın ve aynı numara için olayı bir daha göndermeyin.
  • Ödeme sağlayıcıdan dönüşte oturum kaybına dikkat edin. 3D doğrulama sayfasından geri dönen müşteri, sitenize farklı bir kaynak olarak girmiş gibi görünüp satışı "direkt" ya da ödeme sağlayıcınıza yazdırabilir. Bu, kaynak dağılımını bozar. Ödeme sağlayıcının alan adını GA4'te yönlendirme hariç tutma listesine ekleyin.
  • İadeleri refund ile bildirin. Aynı transaction_id ile gönderilen iade, geliri gerçeğe yaklaştırır.

Sayıların tutup tutmadığını görmek için bir hafta boyunca GA4'teki satın alma sayısını ve gelirini kendi sipariş sisteminizle günlük karşılaştırın. İki rakamın birebir aynı çıkmasını beklemeyin: çerez onayını reddeden ziyaretçiler, reklam engelleyiciler ve iptal edilen siparişler fark yaratır. Önemli olan farkın sabit bir bantta kalması; birden sıçrıyorsa bir kurulum bozulmuş demektir.

Satın almayı anahtar olay yapmak

GA4, önemli iş eylemlerini "anahtar olay" olarak işaretlemenize izin veriyor. Yardım sayfasının tanımına göre anahtar olay, işinizin başarısı için özellikle önemli bir eylemi ölçen olaydır; ölçmek için olayı bulup anahtar olay olarak işaretlersiniz ve toplanan her olay bu şekilde işaretlenebilir. Bir e-ticaret mağazasında purchase mutlaka işaretlenmeli. İsterseniz begin_checkout ya da add_to_cart'ı da işaretleyebilirsiniz, ancak bunları kısa vadeli sinyal olarak izleyin; kampanya optimizasyonuna beslenecek ana hedef satın alma olmalı. Çok sayıda olayı anahtar yapmak raporları anlamsızlaştırır.

Kurulumu doğrulamak: DebugView ve gerçek sipariş

Olayları kurduktan sonra "gelir mi" diye beklemek yerine canlı doğrulama yapın. GA4'ün DebugView ekranı, bir kullanıcıdan toplanan olayları ve kullanıcı özelliklerini gerçek zamanlı gösteriyor. Yardım sayfası, DebugView'u kullanmak için önce hata ayıklama modunu etkinleştirmeniz gerektiğini belirtiyor; gtag.js'de bunu yapılandırma komutuna ya da tek bir olaya bir hata ayıklama bayrağı ekleyerek yaparsınız. Dikkat: bu parametreyi false yapmak modu kapatmaz, kapatmak için parametreyi hiç göndermemelisiniz. GTM kullanıyorsanız etiket yöneticisinin önizleme modu hata ayıklama bayrağını sizin yerinize ekler.

Ayrıca yardım sayfası, istemci tarafında gizlilik denetimleri uygulanmışsa olayların hata ayıklama modunda görünmeyebileceğini belirtiyor. Çerez onayı aracınız GA4 çağrılarını engelliyorsa, test için onay verdiğinizden emin olun.

DebugView'da her olay için şunlara bakın:

  • Olay adı tam olarak add_to_cart, begin_checkout, purchase mı?
  • Parametre listesinde currency, value, items var mı; purchase'da transaction_id dolu mu?
  • items içinde item_id veya item_name var mı, price ve quantity doğru mu?
  • Aynı eylemde olay bir kez mi tetiklendi, iki kez mi?

Son olarak gerçek bir testi tamamlayın: düşük tutarlı bir ürünü gerçekten satın alın, sipariş numarasını not edin ve olayın transaction_id ile aynı numaraya sahip olduğunu görün. Ardından ertesi gün GA4 raporlarında bu satışın göründüğünü doğrulayın; standart raporlar DebugView gibi anlık değil, gecikmeli dolabilir.

Kurulum sonrası: huniyi okumak

Olaylar akmaya başladığında e-ticaret raporlarında ürün görüntüleme, sepete ekleme, ödemeye başlama ve satın alma sayılarını yan yana görebilirsiniz. Okurken iki kural işinizi görür. Birincisi, her adımdan sonrakine geçiş oranına bakın; en büyük düşüş hangi adımdaysa çalışma orası. Ürün sayfasından sepete geçişte düşüş varsa ürün sayfası ve fiyat, sepetten ödemeye geçişte düşüş varsa kargo ve toplam maliyet, ödemeden satın almaya geçişte düşüş varsa ödeme formu ve ödeme yöntemleri sorgulanır. İkincisi, mobil ile masaüstünü ayırın; ortalama değer ikisini de gizler.

Ürün bazında da sepete ekleme ile satın alma arasındaki farka bakın: çok sepete eklenen ama az satın alınan ürünler, çoğu zaman fiyat ya da stok sorunu taşır. Bu tür içgörüler, olayların doğru ve eksiksiz kurulduğu varsayımına dayanır; bu yüzden kurulumun ilk haftası doğrulamaya ayrılmalı. Ölçüm altyapınızı kurarken ya da denetlerken yardım için martech ve analitik danışmanlığı hizmetimize başvurabilirsiniz.

Sık yapılan hatalar

  • Olay adını kendi diline çevirmek. sepete_ekle özel olay olur, e-ticaret raporuna girmez.
  • currency göndermemek. value gönderilen her olayda para birimi de olmalı.
  • purchase'ı onay sayfası her açıldığında tetiklemek. Yenileme ve e-posta bağlantısı siparişi çoğaltır.
  • transaction_id'yi boş bırakmak ya da rastgele üretmek. Kimlik sipariş numarasıyla eşleşmeli.
  • Kargo ve vergiyi value içine katmak. Bunlar için ayrı parametreler var.
  • Önceki olayın ürün verisini temizlememek. Yeni olaya eski ürünler bulaşır.
  • Yalnızca DebugView'a güvenip gerçek sipariş denemesi yapmamak. Üretimde farklı çalışan ödeme sağlayıcı dönüşü ancak gerçek siparişte ortaya çıkar.

Sıkça Sorulan Sorular

Hangi olaylarla başlamalıyım?

view_item, add_to_cart, begin_checkout ve purchase. Bu dört olay temel bir huni oluşturur. Sonradan add_shipping_info, add_payment_info ve liste olaylarını eklersiniz.

value ve currency zorunlu mu?

Google'ın başvuru tablosunda ikisi de koşullu zorunlu olarak işaretli: value gönderiyorsanız currency de gönderilmeli, ve value anlamlı raporlama için genelde gerekli. Pratikte her e-ticaret olayında ikisini de gönderin.

Aynı satış iki kez sayılırsa ne yapmalıyım?

Sipariş numarasını transaction_id olarak gönderin ve onay sayfasının yenilenmesine karşı sipariş numarasını tarayıcıda saklayarak olayın yeniden tetiklenmesini engelleyin.

GA4'teki gelir neden sipariş sistemimle tutmuyor?

Çerez onayını reddeden ziyaretçiler, reklam engelleyiciler, iptal ve iade edilen siparişler ve onay sayfasına hiç dönmeyen ödemeler fark yaratır. Fark günlük olarak sabit bir bantta kalıyorsa normal; ani sıçrıyorsa kurulum bozulmuştur.

Kurulumun doğru çalıştığını nasıl anlarım?

DebugView'da olay adlarını ve parametrelerini kontrol edin, sonra düşük tutarlı gerçek bir sipariş verin ve transaction_id'nin sipariş numaranızla aynı olduğunu doğrulayın.

Sonuç

E-ticaret ölçümü üç şeye dayanıyor: Google'ın olay adlarını birebir kullanmak, parametre ve ürün dizisini eksiksiz göndermek, ve satın almayı yalnızca bir kez, onaylanmış ödemeden sonra tetiklemek. Bu üçü doğruysa GA4 huni raporu, reklam ve site kararlarınız için güvenilir bir zemin olur. Bugün yapabileceğiniz en faydalı iş, sitenizde bir ürünü sepete ekleyip DebugView'da add_to_cart olayının parametrelerini incelemek.

Kurulumun denetlenmesini ya da sıfırdan yapılmasını isterseniz martech ve analitik danışmanlığı sayfamızdan bize ulaşabilirsiniz. Diğer yazılar için blog sayfamıza da bakın.

Kaynaklar

WhatsApp