Google Tag Manager Enhanced Ecommerce Etkinlikleri

Data Layer (dataLayer) yazısının devamı olarak, bu yazıda data layer bilgilerini kullanacağımzı enhanced ecommerce (geliştirilmiş e-ticaret) olaylarına / etkinliklerine (events) değineceğim. Benzer bir içeriği aynı zamanda daha önce Facebook Olaylar için de oluşturmuştum. E-ticaret sitelerinde de bu anlamda hem Facebook hem de Google tarafında data layer ile verilerin işlenmesi yönünde olacak.

dataLayer

Aşağıda Google Analytics temelinde kullanacağımız e-ticaret etkinliklerini detaylarıyla görebilirsiniz. Ancak öncesinde belirtmek istediğim bir konu var, data layer işlemlerinin GTM snippet öncesinde tanımlanması gerekmekte ki GTM içerisinde yer alan ilişkilendirmelerin ihtiyaç duydukları bilgiler hazır olsun. Aksi durumda etkinlikler planladığımız şekilde verileri iletmeyeceklerdir.

Destek

Google Tag Manager ile ilgili desteğe mi ihtiyacın var? Danışmanlık için destek talebinde bulunabilirsin.

Diğer yandan, gtm standart etkinlikleri (gmt.load, gtm.js ve gtm.dom) ile ilgili de temel bir bilginiz olmasında fayda var. Bu bahsi geçen 2 konuyla ilgili olarak Data Layer (dataLayer) yazıma göz atabilirsiniz. Bir diğer husus ise, eğer window.dataLayer.push kodumuz GTM snippet öncesinde geliyor ise window.dataLayer = window.dataLayer || [] ile window ilişkisi oluşturmamız gerekir. Aksi durumda, dataLayer nesnesi tanımlı olmadığı için JavaScript hatası oluşacaktır.

window.dataLayer = window.dataLayer || [];

Toparlamak gerekirse;

  • Sayfa şablonunda çalışırken, daima dataLayer’ın daha öncesinde tanımlanıp tanımlanmadığını kontrol etmeli ve eğer gerekli ise yeni bir Array olarak ilklendirmeliyiz.
  • dataLayer işlemlerinde eğer snippet sonrasında işlemler gerçekleşiriyorsak push() metodunu kullanmalıyız.
  • Eğer dataLayer oluşturulmuş ancak Array olarak ilklendirilmemişse window.dataLayer = window.dataLayer || []; işlemeyecektir. Bu oldukça sık karşılaşılan hatalı bir durumdur.
  • Yukarıdaki durumlara dair tetikleme (trigger) işlemlerinin (özellikle GTM içerisinde) yükleme sıralamasının GTM snippet öncesinde işlediğinden emin olmalıyız.
Google Analytics Enhanced e-Commerce

Geliştirilmiş E-Ticaret Etkinlikleri

Google geliştirilmiş e-ticaret etkinlikleri1 için Google Tag Manager geliştirici dökümanları altında bulunan Enhanced Ecommerce yazısının ileride söz konusu olabilecek değişiklikler ve geliştirmeler için elinizin altında olmasında fayda var2. İlgili kodlar çerçevesinde ilgili verileri Google Analytics hesabımız üzerinden nasıl görüntüleyebileceğimize de etkinlik altında değineceğim. Acnak, genel hatları ile bu raporları incelemek isterseniz Enhanced Ecommerce reports sayfasını inceleyebilirsiniz3. İlgili etkinliklere geçmeden önce son olarak ürün ve satın alma işlemlerinde kullanacağımız Ürün Kategorisi (category) için Google tarafından belirtilen sınıflandırmalara google_product_category: Definition sayfası üzerinden ulaşabileceğinizi de ekleyeyim4.

dataLayer Debug

Tüm bu süreçlerinizde Google Tag Assistant eklentisi ile işlemleri takip edebilir ve olası hataları fark edebilirsiniz. Yine işinize yarayacağını düşündüğüm bir diğer eklenti ise dataslayer ve bu eklenti ile de data layer işlemlerinizi Console üzerinden takip edebilir ve bilgi olayları değerlendirebilirsiniz7. Örnek bir impression etkinliği (birden fazla impressionFieldObjects eklenebilir, impressions bağlantısı üzerinden çoklu ürün iletimine dair bilgi edinebilirsiniz) şu şekilde bilgi iletebilir:

// UA
window.dataLayer = window.dataLayer || [];
dataLayer.push({
  'ecommerce': {
    'currencyCode': '[para-birimi]', // Para Birimi (TRY, USD, EUR ve benzeri) / Tip: string (opsiyonel)
    'impressions': [{
      'id': '[benzersiz-urun-id]', // Benzersiz Ürün ID'si / Tip: string (gerekli)
      'name': '[urun-adi]', // Ürün Adı / Tip: string (gerekli)
      'price': '[urun-fiyati]', // Ürün Fiyatı / Tip: numeric (gerekli)
      'brand': '[urun-markasi]', // Ürün Markası / Tip: string (opsiyonel)
      'category': '[urun-kategorisi]', // Ürün Kategorisi / Tip: string (opsiyonel)
      'position': '[urun-listeleme-sirasi]', // Ürün Listeleme Sırası / Tip: numeric (opsiyonel)
      'list': '[urun-listesi]' // Ürünün Yer Aldığı Liste / Tip: string (opsiyonel)
    }]
  }
});

// GA4
dataLayer.push({
  'event': 'view_item_list',
  'ecommerce': {
    'items': [{
       'item_name': '[urun-adi]', // Ürün Adı / Tip: string (gerekli)
       'item_id': '[benzersiz-urun-id]', // Benzersiz Ürün ID'si / Tip: string (gerekli)
       'price': '[urun-fiyati]', // Ürün Fiyatı / Tip: numeric (gerekli)
       'item_brand': '[urun-markasi]', // Ürün Markası / Tip: string (opsiyonel)
       'item_category': '[urun-kategorisi]', // Ürün Kategorisi / Tip: string (opsiyonel)
       'item_category_2': '[urun-alt-kategorisi-1]', // Ürün Alt Kategorisi / Tip: string (opsiyonel)
       'item_category_3': '[urun-alt-kategorisi-2]', // Ürün Alt Kategorisi / Tip: string (opsiyonel)
       'item_category_4': '[urun-alt-kategorisi-3]', // Ürün Alt Kategorisi / Tip: string (opsiyonel)
       'item_variant': '[urun-varyantı]', // Ürün Vartantı / Tip: string (opsiyonel)
       'item_list_name': '[urun-listesi-name]' // Ürünün Yer Aldığı Liste Adı / Tip: string (opsiyonel)
       'item_list_id': '[urun-listesi-id]' // Ürünün Yer Aldığı Liste ID'si / Tip: numeric (opsiyonel)
       'index': '[urun-listeleme-sirasi]', // Ürün Listeleme Sırası / Tip: numeric (opsiyonel)
       'quantity': '[urun-adedi]', // Ürün Adedi / Tip: numeric (gerekli)
     }]
  }
});

UA için id veya name, GA4 için item_id veya item_name gerekli ifadesini ekledim; ürün kimliği veya adından birinin girilmesi yeterli olacaktır. Önerim mümkünse her ikisi alanın da kullanılması. Ürün adı tanımlı olmayan durumda raporlarda ürün adı sütununda ilgili hücrede (not set) ifadesi yer alır. category ise Google tarafından oluşturulan kategori tanımlamalarını barındırır. UA için örnek bir kategori tanımı şu şekildedir; Erkek/Gömlekler/Spor. Kategori tanımında 1-5 arasında hiyerarşi oluşturulabilir. Bu örnekte Product Category Level 1: Erkek, Product Category Level 2: Gömlekler, Product Category Level 3: Spor tanımlamasına sahiptir. GA4 kategori bilgisini ayrıca alır. Dolayısıyla, kategori seviyelerini ayrıca belirtmek gerekir. Google Analytics standart E-Ticaret raporlarında E-ticaret > İkinci Boyut altından ürün kategorisi düzeylerini belirleyebilir ve raporlarınıza dahil edebilirsiniz.

Google Analytics Ürün Kategorisi

Bu örneği uygulamanızın ardından elde ettiğiniz Impression bilgilerini (Ürün Listesi Görüntülemeleri, Ürün Listesi Tıklamaları, Ürün Liste Adı, Ürün Listesi Konumu, Ürün, Üsün SKU’su…) Google Analytics > Hesap > Mülk > Görünüm > Dönüşümler > E-Ticaret > Ürün Listesi Performansı yolu üzerinden görüntüleyebilirsiniz.

Google Analytics Impression

Aşağıda ilgili olayların / etkinliklerin listesini iletiyorum. Her olay kendi içerisinde raporlama bölümü ve ilgili diğer ipuçlarını barındırmakta. İlgili işlemlerde data layer kullanımı ele alındığı için gtag ecommerce etkinliklerini ayrı bir yazı altında ele alacağım.