Google Analytics Ecommerce Etkinlikleri

Universal Analytics E-Ticaret İşlemleri

Kısa bir hatırlatma yapmak gerekirse, etkinliklerle bir web sayfası veya ekran yüklemesinden bağımsız olarak izlenebilen içerikle olan kullanıcı etkileşimlerini Google Analytics üzerinden takip edebilmekteyiz.

AA

Bu etkinlikler link tıklamaları, form göndermeleri, dosya indirmeleri, mobil reklam tıklamaları, yerleştirilmiş AJAX öğeleri ve video oynatımları gibi pek çok eylemi barındırabilirler.

Google Analytics 4 (GA4) ile ilgili e-ticaret işlemleri için Google Analytics E-Ticaret Etkinlikleri ve Raporları başlıklı yazıyı görüntüleyebilirsiniz.

Şimdiye kadar Google Analytics ve Google Ads ID’lerini web sayfalarımızla ilişkilendirmemize ve elde ettiğimiz verileri çeşitli amaçlarla kullanmamızı sağlayan Global Site Etiketi (Global Site Tag / GTAG) ile ilgili pek çok yazı yayınlayarak karşılaşılabilecek durumlar ve sorunlara dair notlar aktarmaya çalıştım. Bu yazıları şu şekilde bir liste haline getirebiliriz;

Yukarıdaki yazılarda genel olarak etkinliklerin kullanımına dair örnekler ve ek notlar yer almakta1. Bu yazıda ise örnekleri biraz daha genişletmek ve karşılaşılabilecek durumlara dair ek açıklamalar paylaşmak istiyorum. Öncelikle event kullanımını bir örnek üzerinden tekrarlayalım;

function onclickCallback(e) {
  var e = window.e || e;
  if ( (e.target.tagName !== 'A') || (e.target.host == window.location.host) ) return;
  outboundLinkClick(e.target); // GA event tracker
}
if (document.addEventListener) { document.addEventListener('click', onclickCallback, false); }
else { document.attachEvent('onclick', onclickCallback); }

jQuery(document).ready(function($) {
  $('a[href^="http"]:not([href*="//' + location.host + '"])').on('click', function(e) {
    outboundLinkClick($(this).attr("href")); return true;
  });
});

document.addEventListener('load', function(){
  Array.from(document.querySelectorAll('a[href^="http"]:not([href*="//' + location.host + '"])')).forEach(function(e) {
    outboundLinkClick(this.attr("href")); return true;
  });
});

var outboundLinkClick = function(url) {
  // UA
  gtag('event', 'click', {
    'event_category': 'outbound',
    'event_label': url,
    'transport_type': 'beacon',
    'event_callback': function(){
      document.location = url;
    }
  });
}

Etkinlik anatomisini hatırlayacak olursak; bir etkinlikte yukarıdaki örneklerde de açık bir şekilde görüldüğü üzere kategori, işlem, etiket ve değer bileşenleri bulunur ve bir etkinlik isabeti her bileşene ait bir değer içerir. Etiket ve Değer bileşenleri isteğe bağlı alanladır.

Temmuz 2023 itibariyle Universal Analytics (UA) yerini Google Analytics 4 (GA4) mülk biçimine bırakıyor. Bu tarihten sonra UA mülkleri yeni verileri işleyemeyecekler. Tahminen yıl sonu gibi de artık erişilmez hale gelecekler. Mülk biçimleri arasındaki farklılıklar ve diğer işlemler için Universal Analytics (UA) Yerine Google Analytics 4 (GA4) başlıklı yazımı okuyabilir ve teknik destek talebinde bulunabilirsiniz.

Google Analytics ise bu değerleri raporlara yansıtır. Yukarıdaki link tıklama eylemini ileten etkinlikte kategori: outbound, işlem: click, etiket: url olarak belirtilmiştir. Tanımlanan outboundLinkClick fonksiyonu link içeriklerini (Örneğin, <a href=”http://www.ornekwebsitesi.com”>ornekwebsitesi.com</a>) event olarak iletecek2 ve ardından sayfanın yönlendirilmesini sağlayacaktır3. Benzer işlemleri sepete ürün ekleme gibi etkinlikler için de (bkz. Google Tag Manager Enhanced Ecommerce Olayları) kullanmak mümkün.

Google Tag Manager / Google Analytics Video Etkinlikleri yazısında yer alan video etkinlikleri de şu şekilde güncelleyebiliriz;

gtag('event', 'video_auto_play_start', {
  'event_category': 'video_auto_play',
  'event_label': 'My promotional video',
  'value': '22439234',
  'non_interaction': true
});

Google Tag Manager geliştirilmiş ve standart e-ticaret olayları ve dönüşüm işlemleri yazılarına istinaden gtag fonksiyonu içeriğinde standart olarak tanımlanmış etkinlikleri görüntüleyebilirsiniz.

GTAG – Geliştirilmiş E-Ticaret (Enhanced Ecommerce) Etkinlikleri

Google Tag Manager geliştirilmiş e-ticaret yazısındaki olaylar ve parametrelerle karşılaştırıldığında GTAG etkinliklerinde bazı farklılıklar söz konusu olabilmektedir. Aşağıda tablolar halinde GTAG için geçerli olan ilgili parametreleri görebilirsiniz4 5 6 7.

Ürün ve Promosyon Etkinlikleri

Ürün ve promosyon detaylarını iletmek için kullanılabilecek etkinlikler:

Etkinlik Açıklama
select_content Bir veya daha fazla ürün için ürün veya ürün bağlantısının tıklanması / seçilmesi durumlarını iletir.
view_item, view_item_list Ürün detaylarının iletilmesini sağlar.
add_to_cart Bir veya daha fazla ürünün sepete eklenmesini iletir.
remove_from_cart Bir veya daha fazla ürünün sepetten kaldırılmasına dair bilgileri iletir.
begin_checkout Sepette yer alan ürünlerin ödeme işlemlerinin başlatıldığı bilgisini iletir.
set_checkout_option Belirli bir ödeme adımı için seçenek değerini gönderir.
purchase Ürünlerin ödemesinin yapılması / ödeme işleminin tamamlanması bilgilerini iletir.
refund İlgili işlemin veya işlem içerisindeki bir veya daha fazla ürünün iadesi bilgilerini iletir.
view_promotion Tıklanan kampanya / promosyon bilgilerini iletir.

Örnek birkaç etkinliğe bakalım. İlk örnekte listelenen ürün bilgilerini iletelim.

// UA
gtag('event', 'view_item_list', {
  'items': [{
    'id': "P12345",
    'name': "Android Warhol T-Shirt",
    'list_name': "Search Results",
    'brand': "Google",
    'category': "Apparel/T-Shirts",
    'variant': "Black",
    'list_position': 1,
    'quantity': 1,
    'price': '15.25',
  }, {
    'id': "P67890",
    'name': "Flame challenge TShirt",
    'list_name': "Search Results",
    'brand': "MyBrand",
    'category': "Apparel/T-Shirts",
    'variant': "Red",
    'list_position': 2,
    'quantity': 1,
    'price': '33.75'
  }]
});

// GA4
dataLayer.push({
  'event': 'view_item_list',
  'ecommerce': {
    'items': [{
       'item_name': 'Android Warhol T-Shirt',
       'item_id': 'P12345',
       'price': '15.25',
       'item_brand': 'Google',
       'item_category': 'Apparel',
       'item_category_2': 'Mens',
       'item_category_3': 'Shirts',
       'item_category_4': 'Tshirts',
       'item_variant': 'Black',
       'item_list_name': 'Search Results',
       'item_list_id': 'SR123',
       'index': 2,
       'quantity': 1
     }, {
       'item_name': 'Flame challenge TShirt',
       'item_id': 'P67890',
       'price': '33.75',
       'item_brand': 'MyBrand',
       'item_category': 'Apparel',
       'item_category_2': 'Mens',
       'item_category_3': 'Shirts',
       'item_category_4': 'Tshirts',
       'item_variant': 'Red',
       'item_list_name': 'Search Results',
       'item_list_id': 'SR123',
       'index': 2,
       'quantity': 1
     }]
  }
});

Bir diğer örnekte ise bir ürün detaylarını iletelim.

// UA
gtag('event', 'view_item', {
  'items': [{
    'id': 'P12345',
    'name': 'Android Warhol T-Shirt',
    'list_name': 'Search Results',
    'brand': 'Google',
    'category': 'Apparel/T-Shirts',
    'variant': 'Black',
    'list_position': 1,
    'quantity': 2,
    'price': '33.75'
  }]
});

// GA4
dataLayer.push({
  'event': 'view_item',
  'ecommerce': {
    'items': [{
      'item_name': 'Android Warhol T-Shirt',
      'item_id': 'P12345',
      'price': '33.75',
      'item_brand': 'Google',
      'item_category': 'Apparel',
      'item_category_2': 'Mens',
      'item_category_3': 'Shirts',
      'item_category_4': 'Tshirts',
      'item_variant': 'Black',
      'item_list_name': 'Search Results',
      'item_list_id': 'SR123',
      'index': 1,
      'quantity': 2
    }]
  }
});

Ürün Listeleme Parametreleri

Anasayfa, kategori, arama, filtreleme ve/veya kampanya sayfalarında ürünlerin listelenmesiyle ilgili kullanılabilecek parametreler:

Parametre Veri Tipi Açıklama
id string Gerekli. Ürüne ait benzersiz ID veya stok kodunu içerir.
name string Gerekli. Ürün adını içerir. ID tanımlı değilse name’in tanımlı olması zorunlu olur.
brand string Ürün markasıdır.
category string Ürünü tanımlayan kategoridir.
variant string Ürünün farklı özelliklerini (renk, desen vb.) barındırır.
price currency Ürün fiyatını içerir.
list_name string Ürünün yer aldığı liste adını içerir.
list_position integer Ürünün ilgili listede list_name kaçıncı sırada olduğu bilgisini içerir.

Ürün Parametreleri

Ürün detaylarının görüntülenmesi, ürünün sepete eklenmesi süreçlerinde kullanılabilecek parametreler:

Parametre Veri Tipi Açıklama
id string Gerekli. Ürüne ait benzersiz ID veya stok kodunu içerir.
name string Gerekli. Ürün adını içerir. ID tanımlı değilse name’in tanımlı olması zorunlu olur.
brand string Ürün markasıdır.
category string Ürünü tanımlayan kategoridir.
variant string Ürünün farklı özelliklerini (renk, desen vb.) barındırır.
price currency Ürün fiyatını içerir.
quantity integer Ürün adedi.
coupon string Kampanya içeriği (veya indirim) söz konusu ise ilgili kupon kodu.
list_position integer Ürünün ilgili listede list_name kaçıncı sırada olduğu bilgisini içerir.

Promosyon Parametreleri

Metin ve imaj olarak tanımlı promosyon içeriklerinde kullanılabilecek parametreler:

Parametre Veri Tipi Açıklama
id string Gerekli. Promosyon ID değerini içerir.
name string Gerekli. Promosyon adını içerir. ID tanımlı değilse name’in tanımlı olması zorunlu olur.
creative_name string Reklam adını içerir.
creative_slot string Reklam alanını içerir.

Funnel ve Ödeme Parametreleri

Ürün sipariş işlemleri, adres ve kargo tanımlamaları gibi aşamalarda kullanılabilecek parametreler:

Parametre Veri Tipi Açıklama
transaction_id string Gerekli. Benzersiz işlem ID değerini içerir.
affiliation string İşlemin gerçekleştiği mağaza veya bağlantı değerini içerir.
value number İşlemle ilişkili değer alır (Örneğin, gelir)
tax currency Vergi tutarını içerir.
shipping currency Kargo tutarını içerir.
items array Ürünle ilgili detayları (ürün adı, ID’si, kategorisi vb.) içerir.
checkout_step number Ödeme işlemlerindeki görüntülenen adımı (step) içerir (Örneğin 2. adım)
checkout_option string Ödeme yöntemi, kargo şirketi ve benzeri detayları içerir.

Google Tag Manager ve dataLayer elbette benim tavsiyem olacaktır. Bu sayede tanımlanan alanları pek çok farklı snippet içerisinden (GTM Container içeriğinde yer alan) de çağırma imkanımız olacaktır. Ancak, kimi sınırlandırmalar nedeniyle işlemleri GTAG üzerinden yürütmek gerekebilir. Umarım bu tür durumlarda kullanmak üzere yukarıdaki yönergeler yardımcı olacaktır. Eksik olan bir konu ya da karşılaştığınız farklı hatalar söz konusu olur ise yorum olarak paylaşmanız yeterli olacaktır.