Bloga dön

Blog

Shopify veya WooCommerce mağazasında sunucu tarafı etiketleme: ne tetiklenir, ne tetiklenmez ve neyi kurmanız gerekir

Yayınlandı · Güncellendi · 4 dk okuma

Bir sunucu konteyneri, mağazanın satın almaları raporlamasını tek başına sağlamaz. Tarayıcının gönderdiğini, Google'ın ana makine adı yerine sizin kendi ana makine adınızdan iletir. Bu yapmaya değer bir şeydir: reklam engelleyiciler ve Safari birlikte bir mağazanın dönüşümlerinin hatırı sayılır bir kısmını kaybettirir. Ama önce satın almanın gönderilmesi gerekir ve mağazaların çoğunun kullandığı iki platformda varsayılan kurulumda bunu hiçbir şey göndermez. Bu, her müşterimizin eline ilk gün tutuşturabilmeyi dilediğimiz yazı.

Dokuz etkinlik ve hepsinin ortak noktası

GA4, bir satın alma hunisi için dokuz etkinlik tanımlar: view_item_list, view_item, add_to_cart, remove_from_cart, view_cart, begin_checkout, add_shipping_info, add_payment_info ve purchase. Bu adlar herhangi bir platformun değil, GA4'ün adlarıdır; aynı dokuz etkinlik Shopify'da, WooCommerce'te ve kendi yazdığınız bir mağazada da çalışır.

Ortak oldukları şey bir mekanizmadır. Her biri, sayfanın dataLayer'ına tam olarak bu adla yapılan ve GA4 biçiminde bir ecommerce nesnesi taşıyan bir push'tur. Bir Tag Manager tetikleyicisi bu adı dinler; bir GA4 etkinlik etiketi ecommerce nesnesini okur ve gönderir. Adı yanlış yazın, nesneyi bir düzey fazla iç içe koyun ya da yanlış sayfada gönderin: etiket tek bir hata vermeden sonsuza kadar öylece bekler. Bir satın alma push'u şöyle görünür:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
  event: 'purchase',
  ecommerce: {
    transaction_id: 'ORD-10442',
    value: 89.90,
    currency: 'EUR',
    items: [
      { item_id: 'SKU-118', item_name: 'Trail jacket', price: 89.90, quantity: 1 }
    ]
  }
});

Önce ecommerce: null gönderilmesi süs olsun diye değildir. Bu olmadan önceki etkinliğin ürünleri bir sonrakine sızabilir ve üç sayfa önceki bir view_item, bir purchase'ın içinde karşınıza çıkar.

Shopify: tema ödeme sayfasını göremez

Bir Shopify temasına kurulan konteyner mağaza vitrininde yüklenir: ürün sayfaları, koleksiyonlar, sepet. Shopify'ın kendi alan adından ve kendi şablonlarıyla sunduğu ödeme sayfasında ve teşekkür sayfasında ise yüklenmez. Dolayısıyla temaya kurulmuş bir konteyner view_item ve add_to_cart gönderebilir, ama hangi yapılandırmayla olursa olsun begin_checkout, add_shipping_info, add_payment_info veya purchase asla göndermez.

Bu dördü bir Custom Pixel'den gelir. Shopify'ın piksel sanal alanı (sandbox) ödeme etkinliklerini sunar (checkout_started, checkout_shipping_info_submitted, payment_info_submitted, checkout_completed) ve pikselin kendine ait bir dataLayer'a push yapmasına izin verir; küçük bir betik her birini yukarıdaki GA4 etkinlik adına ve biçimine eşler. Vitrin etkinlikleri yine temadan gelir. Bu yüzden eksiksiz bir kurulumda ikisi birden vardır: gezinme yarısı için bir dataLayer uygulaması ya da tema kod parçacığı, ödeme yarısı için bir Custom Pixel.

Karar vermeniz gereken bir şey daha var. Shopify'ın Google & YouTube kanalı, GA4 etkinliklerini herhangi bir konteynerin dışında doğrudan gönderebilir. Orada bir GA4 mülkü bağlar VE aynı mülkü konteyneriniz üzerinden de yönlendirirseniz her satın alma iki kez sayılır. Tek bir yol seçin. Amaç birinci taraf veri toplamaksa yol konteynerdir ve kanalın Analytics bağlantısı kapalı kalır.

WooCommerce: çekirdek hiçbir şey göndermez

WooCommerce'in kendisi hiçbir dataLayer yazmaz. Bunu bir eklenti yapar (çoğu kişinin ilk başvurduğu GTM4WP'dir) ve eklentinin GA4 e-ticaret seçeneği bu etkinlikleri doğru biçimde ve doğru sayfalarda üretir: ürün sayfasında view_item, butonda add_to_cart, ödeme sayfasında begin_checkout, sipariş alındı sayfasında purchase.

WooCommerce'teki klasik hata iki kez sayılan satın almadır ve bunun belirli bir nedeni vardır: sipariş alındı sayfası yeniden yüklenir. Ziyaretçi sayfayı yeniler, bir ödeme sağlayıcısından ona geri döner ya da tema iki kez bu sayfa üzerinden yönlendirir; satın alma aynı transaction_id ile yeniden gönderilir. GA4, satın almaları bir oturum içinde transaction_id'ye göre tekilleştirir. Bu, çoğunu yakalar ama ertesi gün yapılan bir yeniden yüklemeyi yakalamaz. Eklentinin "only fire once per order" (sipariş başına yalnızca bir kez tetikle) ayarını açmaya değer: işareti sunucu tarafında tutar, orada bir yeniden yükleme onu sıfırlayamaz.

SignalHost'un sizin için kurdukları

Her SignalHost konteynerinin web konteynerinde, dokuz etkinliğin her biri için bir Özel Etkinlik tetikleyicisi ve bir GA4 etkinlik etiketi bulunur. Aynısı, mağazası olmayan bir sitenin ihtiyaç duyduğu yedi etkinlik için de geçerlidir: kayıtlar, deneme sürümleri ve potansiyel müşteriler. Hepsinin adı SH önekiyle başlar, böylece sizde zaten bulunan hiçbir şeyle çakışmazlar. Her etiket ecommerce nesnesini doğrudan dataLayer'dan gönderir; böylece items, value, currency ve transaction_id, alan başına bir değişken gerekmeden aktarılır. Her etiket ayrıca ölçüm kimliğinizi devralmak yerine açıkça belirtir.

Mağazanıza hiçbir şey kurulmaz. Tetikleyiciler dinler; push'lar eklentiden ya da pikselden gelir. Konteyneriniz bu etkinliklerden birini zaten kendi etiketinizle GA4'e gönderiyorsa (örneğin kendi purchase etiketini beraberinde getiren bir eklenti), SignalHost o etkinliği ona bırakır ve ikinci bir etiket kurmaz; böylece hiçbir sipariş iki kez sayılmaz. Her etiket, etkinlikle birlikte gönderdiğiniz event_id'yi de iletir. Böylece aynı etkinliği kendi pikselinden de duyan bir reklam platformu onu yalnızca bir kez sayar.

Sunucu tarafında etkinlik başına hiçbir ayar yoktur. Sunucu konteynerinin GA4 etiketi, adı ne olursa olsun aldığı her etkinliği iletir; bu yüzden sitenizdeki yeni bir etkinlik bizim tarafımızda hiçbir değişiklik gerektirmez. Bağladığınız reklam platformları (Google Ads, Meta, TikTok, Reddit, Pinterest, Snapchat, LinkedIn) aynı etkinlikleri duyar: bir purchase, Meta ve TikTok için ürünleri ve değeriyle birlikte bir Purchase olur ve her platform, aynı push'tan işine yarayan etkinlikleri alır.

Tek bir test siparişiyle kontrol

Test modunda gerçek bir sipariş ya da sonradan iade edeceğiniz ucuz bir sipariş verin ve konteyner sayfasındaki etkinlik listesini izleyin. Sırasıyla view_item, add_to_cart, begin_checkout, add_payment_info ve purchase görmeniz gerekir; her biri bir kez. Kurulumunuz bunları da gönderiyorsa aralarında view_cart ve add_shipping_info da yer alır. Shopify'da purchase eksikse Custom Pixel kurulu değildir ya da push yapmıyordur; WooCommerce'te begin_checkout eksikse bu genellikle eklentinin ödeme etkinliğinin devre dışı olduğu anlamına gelir.

Google Ads dönüşümlerini konteyner üzerinden yürütüyorsanız, başka bir etkinlik seçmediğiniz sürece dönüşüm etkinliği olarak purchase kullanılır; değeri, para birimi ve işlem kimliği de aynı ecommerce nesnesinden okunur. Değer içermeyen bir purchase push'u, hiçbir değeri olmayan bir dönüşüm kaydeder. Bu, raporda gerçek bir sayıdır ve yanlış olanıdır.

Bundan sonra GA4 hâlâ mağazanızdan daha az sipariş sayıyorsa: GA4'ün neden eksik saydığı ve nelerin geri kazanılabileceği.

Reklam engelleyicilere veri kaybetmeyi bırakın

Ücretsiz başlayın. İlk konteynerinizi dakikalar içinde çalıştırın.