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.
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;
- Global Site Etiketi (gtag.js) Nedir?
- Global Site Tag (gtag.js) Etkinlik İşlemleri
- Global Site Tag (gtag.js) Etkinlikleri
- Google Ads – GTM ve GTAG Event ve Dönüşüm İşlemleri
- Google Tag Manager / Google Analytics Video Etkinlikleri
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.