Blog details

Google Tag Manager’da Data Layer Kurulumu ve GA4 Eşlemesi

Event görünüyor ama parametreler boş geliyorsa sorun çoğu zaman etikette değil, data layer tarafındadır. GTM’de sağlam ölçüm kurmak istiyorsanız, veri akışını DOM’dan çekmek yerine yapılandırılmış bir katmandan beslemeniz gerekir.

2026’da doğru yaklaşım daha net: sayfa veriyi üretir, data layer taşır, GTM okur, GA4’e gönderir. Bu yapı hem hata ayıklamayı hızlandırır hem de consent, e-ticaret ve server-side senaryolarında işi temiz tutar.

Data layer ne yapar, GTM ile nasıl konuşur?

Data layer, sayfadaki verileri anahtar-değer mantığıyla GTM’e ileten JavaScript dizisidir. Sayfa veya uygulama bir olay üretir, siz de bunu dataLayer.push() ile itersiniz. GTM bu veriyi üç parçayla işler: değişken değeri okur, tetikleyici olayı dinler, etiket veriyi GA4’e yollar.

Central data layer in browser window connects web elements like buttons and forms to GTM variables, triggers, and tags.

Kurulumun temel kuralı basit: window.dataLayer GTM yüklenmeden önce tanımlanmalı. Google’ın data layer dokümantasyonu da bunu açık söylüyor. Aynı dokümanda bir uyarı daha var, window.dataLayer değişkenini sonradan sıfırlamayın.

window.dataLayer = []; yazmak, daha önce biriken veriyi silebilir. Güvenli kalıp window.dataLayer = window.dataLayer || []; olmalı.

Aşağıdaki ilişkiyi net kurduğunuzda GTM tarafı kolaylaşır:

KatmanNe yapar?GTM’deki karşılığı
Data layerVeriyi taşırKaynak
VariableAnahtarı okurecommerce.value, user_id
TriggerOlayı dinleradd_to_cart, purchase
TagVeriyi yollarGA4 Event

Kısa özet şu: data layer olmadan da bazı takipler yapılır, ama ölçekli ve güvenilir kurulum için bu yol zayıf kalır. Form başarı durumu, giriş bilgisi, ürün verisi, sepet değeri gibi alanlarda düzenli bir veri katmanı şarttır.

Google Tag Manager data layer kurulumu adım adım

İlk adım, sayfada GTM kodundan önce şu kalıbı çalıştırmaktır: window.dataLayer = window.dataLayer || [];. Sonra sayfanın ilk bağlamını itersiniz. Örneğin ürün detay sayfasında page_type, user_login_state veya item_id gibi alanlar ilk yüklemede gönderilebilir.

GTM tarafında önce bir GA4 Configuration etiketi kurun ve tüm sayfalarda çalıştırın. Sonra data layer anahtarlarını okuyacak Data Layer Variable’ları açın. İç içe yapılar için nokta yolu kullanın, mesela ecommerce.value, ecommerce.currency, ecommerce.items.

GTM değişken, tetikleyici ve etiket eşlemesi

Kurulum sırası pratikte şöyle ilerler:

  1. Sayfaya veri itilir, örnek olay adı add_to_cart.
  2. GTM’de bir Custom Event trigger açılır ve event adı add_to_cart olur.
  3. Data Layer Variable’lar ilgili alanları okur.
  4. GA4 Event etiketi aynı event adıyla çalışır.
  5. Parametreler, data layer değişkenlerinden eşlenir.

Örnek bir eşleme şöyle görünür: event adı add_to_cart, parametre currency için ecommerce.currency, parametre value için ecommerce.value, parametre items için ecommerce.items. GA4’te önerilen event adlarını korumak önemli, çünkü raporlar ve e-ticaret kartları bu standarda göre daha temiz çalışır. Event adları için GA4 etkinlik oluşturma rehberi iyi bir referanstır.

Bu aşamada ileride sunucu tarafına geçmeyi planlıyorsanız, veri isimlerini baştan düzenli tutun. Çünkü Server-side tagging GTM kurulumu sırasında da aynı veri sözlüğü işinizi kolaylaştırır.

JavaScript ile dataLayer.push örnekleri

Teori burada bitiyor, işin kritik kısmı uygulama. İlk örnek, ürün görüntüleme olayıdır: dataLayer.push({event:"view_item", ecommerce:{currency:"TRY", value:1299, items:[{item_id:"SKU_123", item_name:"Koşu Ayakkabısı", price:1299, quantity:1}]}});

Laptop screen shows blurred JavaScript dataLayer.push ecommerce code, hands on keyboard, coffee mug on desk.

Sepete ekleme için mantık aynıdır, sadece event adı değişir: dataLayer.push({event:"add_to_cart", ecommerce:{currency:"TRY", value:1299, items:[{item_id:"SKU_123", item_name:"Koşu Ayakkabısı", price:1299, quantity:1}]}}); GTM’de Custom Event trigger add_to_cart olur. GA4 Event etiketi de add_to_cart adıyla gönderilir. items parametresi dizi olmalı, tek nesne göndermeyin.

Sipariş tamamlandığında daha zengin veri gerekir: dataLayer.push({event:"purchase", ecommerce:{transaction_id:"T2026_001", currency:"TRY", value:2598, tax:200, shipping:0, items:[{item_id:"SKU_123", item_name:"Koşu Ayakkabısı", price:1299, quantity:2}]}}); Burada GA4 eşlemesi doğrudandır. transaction_id, value, currency ve items aynı isimlerle etikete bağlanır.

E-ticaret dışı örnek de sık kullanılır. Başarılı form gönderiminde dataLayer.push({event:"generate_lead", form_name:"teklif_formu", form_id:"quote_01"}); gönderebilirsiniz. Sonra GTM’de form_name ve form_id için değişken açar, GA4 Event etiketine parametre olarak eklersiniz. Benzer bir kurgu için Türkçe bir GA4 e-ticaret data layer örneği de faydalı olabilir.

Kurulum sonrası test ve sık yapılan hatalar

Preview açmadan yayınlamak, karanlıkta iş yapmaktır. Önce GTM Preview ile siteyi Tag Assistant’a bağlayın. Sonra ilgili aksiyonu yapın ve soldaki event akışında doğru olayın düştüğünü görün. Event’e tıklayın, “Variables” sekmesinde değerlerin dolu geldiğini kontrol edin. Burada boşsa sorun GTM’de değil, veri kaynağındadır.

Computer screen on simple desk displays browser developer console logging dataLayer array beside GA4 DebugView event list.

Tarayıcı konsolunda window.dataLayer veya dataLayer[dataLayer.length-1] ile son push’u görün. Son aşamada GA4 DebugView’da event ve parametreleri doğrulayın. Bu akışı daha ayrıntılı görmek isterseniz Tag Assistant ile GA4 testleri iyi bir başvuru sayfasıdır.

En sık kırılan noktalar

  • Yanlış anahtar adları kullanılır. item_id yerine id gönderirseniz GA4 raporu bozulabilir.
  • Push zamanlaması hatalı olur. Event, kullanıcı aksiyonundan önce ya da sayfa kapanırken kaybolur.
  • Veri tipleri karışır. value sayı olmalı, "1299" gibi string olmamalı.
  • Yinelenen event’ler oluşur. Aynı tıklamada hem tema kodu hem özel script push atabilir.
  • undefined değerler taşınır. GTM değişkeni boş kalır, GA4’e eksik parametre gider.
  • Consent engelleri atlanır. Consent Mode V2 yoksa event Preview’da görünür, fakat GA4 isteği gitmeyebilir.

Sonuç

Sağlam bir Google Tag Manager data layer kurulumu, GTM’de daha az tahmin ve daha çok kontrol demektir. Değişken, tetikleyici ve etiket zinciri net olduğunda GA4 event’leri tutarlı çalışır.

İyi kurulumun ölçüsü basittir: aynı event’i Preview, konsol ve DebugView’da aynı veriyle görürsünüz. İlk doğru event’i kurduğunuzda, kalan takipler çok daha hızlı ilerler.