Ana sayfa / Rehberler

dataLayer’ı boş görünen mağaza

Çalışan bir mağazada denetçiyi açıyorsunuz ve hiçbir şey gelmiyor. Event’ler gerçek, çalıştılar ve window.dataLayer içinde değiller. Dört platform onları hiçbir eklentinin okuyamayacağı bir yere taşıyor; her birinin okunacağı yer ayrı.

Belirti kafa karıştırıcıdır, çünkü geri kalan her şey düzgün görünür. Mağaza sipariş alıyor, raporlar doluyor, GA4 satın almaları gösteriyor. Aynı sayfada bir dataLayer denetçisi açıp ödeme adımının ne push’ladığına bakıyorsunuz ve liste boş. Yanlış değil — boş.

Bu soruya verilen hemen her cevap bir hata varsayar: container eksiktir, snippet push’un üstündedir, katmanın adı başkadır. Bazen bunlardan biridir. Yaygın kullanılan dört platformda ise hiçbiri değildir ve window.dataLayer’a ne kadar bakarsanız bakın değişmez, çünkü event’ler orada değil.

dataLayer tek veri katmanı değil

dataLayer’ı okuyan bir eklenti, üst pencerede tek bir diziyi okuyor demektir. Bu gelenek GTM’e ait. Diğer yığınlar onu hiç benimsemedi:

Hiç dataLayer event'i olmayan events paneli; üstünde sitenin Shopify Web Pixels çalıştırdığını, event'lerinin sayfa dataLayer'ı yerine yalıtılmış bir pixel çerçevesinden geçtiğini ve hit'lerin Network'te yine okunabildiğini söyleyen bir not.
Neden boş olduğunu söyleyen boş bir liste. "Hiçbir şey olmadı" ile "izleyemediğiniz bir yerde oldu" arasındaki fark bu rehberin tamamı; panelin buna dört satır ayırması da bu yüzden.

Tealium’lu bir sitede boş liste gösteren panel doğruyu raporlamıyordur. Doğru şu: event’ler var ve başka bir yoldan gidiyor. Tag Master bulduğu yabancı katmanı adıyla söylüyor ve ne gönderdiğini yazıyor — Tealium, utag.view() ve utag.link() üzerinden — sizi yorumlanacak boş bir listeyle bırakmak yerine. Adobe Launch’ta bir adım daha ileri gidip, Adobe’nin tam da bunun için yayınladığı monitor kancasıyla çalışan kuralları okuyor.

En zoru Shopify, en yaygını da o

Shopify takibi Web Pixels’e taşıdı: kendi olay yolu ve kendi dataLayer’ı olan yalıtılmış bir çerçevede çalışan küçük betikler. product_added_to_cart, checkout_started ve checkout_completed orada dağıtılır. Üst pencereye ulaşmazlar ve sayfada çalışan hiçbir şey onlara abone olamaz — ne bu eklenti, ne başkası. Bu, yalıtımın tasarlandığı gibi çalışmasıdır.

Ödeme adımı işi daha da zorlaştırıyor, çünkü Shopify’ın checkout’u her zaman ayrı bir bağlam oldu. Yani kurulumların en çok önemsediği event olan purchase, aynı zamanda sayfayı okuyan her şeyin en uzağındaki event.

İstisna, Elevar ya da benzeri bir aktarıcı çalıştıran mağazalar: yalıtılmış çerçevenin event’lerini sayfaya dl_purchase, dl_add_to_cart ve benzeri adlarla yeniden yayınlarlar. Bu isimler görünüyorsa katman aktarılıyor demektir ve siz bir kopyayı okuyorsunuz — iyi bir kopya, ama başka bir yazımla.

Onun yerine nereden okunur

Bu platformların hepsinde event’ler yine ağ isteğine dönüşür ve istekler, ağı izleyen bir hata ayıklayıcıdan yalıtılarak saklanamaz. GA4’ün ne aldığı /g/collect hit’inde, Meta’nın ne aldığı /tr çağrısında yazıyor. Push gizli; sonucu değil.

Dolayısıyla yöntem tersine döner. Push’u okuyup tag’in ona uyduğunu doğrulamak yerine, hit’i okuyup taşıması gerekeni taşıyıp taşımadığına geri gidersiniz: doğru event adı, bir değer, bir para birimi, bir işlem kimliği. Bir GA4 hit’ini parametre parametre okumak bu mağazalardaki tüm beceridir ve sayfanın ne gönderdiğini listelemek de işe başlamadan önce hangi platformların devrede olduğunu öğrenme yoludur.

Hata aramaya çıkmadan önce

  1. Sitenin gerçekte hangi katmana sahip olduğunu doğrulayın. window.utag, window._satellite, window.adobeDataLayer, window.Shopify — her biri konsolda tek satır ve cevap, bundan sonra ne yapacağınızı değiştirir.
  2. Aktarıcısız bir Shopify ise push aramayı bırakın. Ağa geçin.
  3. Tealium ya da Launch ise event’ler sağlayıcının kendi debug konsolundadır; o konsol zaten açık olan sekme için açılabilir.
  4. Ancak bundan sonra, site gerçekten dataLayer’lı bir GTM sitesiyse, boş listeyi peşinden gidilecek bir hata olarak görün.

Boş bir denetçi, event’lerin nerede olduğuna dair bir olgudur; var olup olmadıklarına dair bir hüküm değil. Yukarıdaki mağazalar, hangisine baktığınızı kontrol etme sebebidir.

Sorular

Shopify dataLayer’ım neden boş?

Çünkü Shopify’ın Web Pixels’leri kendi dataLayer’ı olan yalıtılmış bir çerçevede çalışır. product_added_to_cart ve checkout_completed üst pencereye hiç ulaşmaz; sayfada çalışan hiçbir eklenti — bu da dahil — onları göremez. Ürettikleri istekler ise ağda durmaya devam eder.

Ödeme adımının takibi gerçekten görünmez mi?

Push’lar görünmez. Shopify’ın ödeme adımı her zaman kendi bağlamında çalıştı ve Web Pixels bunu kurallı hâle getirdi. Pixel’lerin dışarı gönderdiği şey ise sıradan ağ trafiğidir ve tamamen okunabilir; Shopify mağazasında cevabın katman yerine hit’lerden geçmesinin sebebi budur.

Peki Tealium ve Adobe?

İkisi de dizi kullanmıyor. Tealium event’leri utag.link() ve utag.view() ile, Adobe Launch ise _satellite.track() ile gönderir. Bunlar fonksiyon çağrısıdır; hiçbir dataLayer adı listesi onlara ulaşmaz. Tek istisna Launch: Adobe’nin yayınladığı monitor kancasıyla çalışan kuralları okunabilir.

Boş dataLayer takibin bozuk olduğu anlamına mı gelir?

Hayır ve böyle varsaymak pahalıya patlar. Bir mağaza window.dataLayer tamamen boşken beş platforma kusursuz bir satın alma gönderiyor olabilir. Katman hakkında hüküm vermeden önce ağa bakın.

Bunu panelde yapmak →

Bu kümenin geri kalanı: Mağazalar ve veri katmanları

Mağazalar ve veri katmanları kümesinin tamamı

Kendi sitenizde deneyin

Tag Master ücretsizdir, hesap istemez ve hiçbir veri toplamaz.

Chrome'a Ekle — Ücretsiz