Yazan
Uliana Lesiv
Google Tag Manager (GTM), web sitesi analitiğini ve izlemesini bir üst seviyeye taşımak için harika bir araçtır. Veri katmanı (data layer) ise izlemeyi bir sonraki seviyeye taşımaya yardımcı olan özelliklerden biridir.
GTM veri katmanı, web sitenizdeki kullanıcı etkileşimleri hakkında ayrıntıları toplayan bir JavaScript nesnesidir. Yardımıyla, ürün görüntülemelerinden kullanıcının işletim sistemine kadar hemen hemen her türlü veriyi toplayabilirsiniz. GTM’de veri katmanlarını kullanmak, daha hedefli izleme etiketleri ve tetikleyiciler yapılandırmanızı sağlar; bu da kullanıcı davranışına dair daha zengin içgörüler sunar ve güçlü müşteri veri analizi için sağlam bir temel oluşturur.
Bu yüzden, Google Tag Manager’da veri katmanının uygulanması ve kullanımının birçok yönünü kapsayan kapsamlı bir rehber hazırladık. Veri katmanının ne olduğunu, kullanım senaryolarını, web sitesinde veri katmanı uygulamasını, Tag Manager’da nasıl veri katmanı oluşturacağınızı, kurulumu nasıl test edeceğinizi ve kurulumla ilgili yaygın hataları açıklayacağız.
Hadi başlayalım!
Doğru veriyi toplamak işin yalnızca yarısı
GTM veri katmanınızı Stape üzerinde sunucu taraflı izlemeyle tamamlayın, böylece etkinlik teslimatının güvenilirliğini artırın.
GTM veri katmanı, etiketlere veri aktarmak için kullanılan bir JavaScript nesnesidir. Olayları veya değişkenleri aktarmanıza ve belirli değişken değerlerine dayalı tetikleyiciler ayarlamanıza olanak tanır. Veri katmanı hem Google Tag Manager’da hem de gtag.js’de kullanılır.
Veri katmanı, web siteniz ile Google Tag Manager arasında bir aracıdır ve konteyneriniz için yapılandırılmış verileri depolayan bir merkez olarak işlev görür.
Aşağıdakileri yapmak istiyorsanız bir veri katmanı oluşturmanız gerekir:
Veri katmanı ile böyle bir sorunla karşılaşmazsınız, çünkü GTM konteyneri verileri sayfanın veri katmanından çeker; bu da HTML DOM’dan çok daha kararlıdır. Veri kaydı, yalnızca birisi sayfanın veri katmanını bozarsa durur.
Bu katmanda tam olarak hangi verileri saklamak istediğinizi belirtebilirsiniz. Veri katmanını oluşturmak ve izlenecek gerekli parametrelerle doldurmak için iki yöntem vardır; bunları bir sonraki bölümde inceleyeceğiz.
GTM, veri katmanından gerekli değerleri okur ve alır, ardından bunları Google Analytics, Google Ads, Facebook Pixel gibi analiz araçlarına gönderir.

Google Tag Manager’da dataLayer, “[]” ile belirtildiği gibi bir dizidir ve aşağıdaki kod örneğinde gösterildiği gibi “{}” ile temsil edilen bir nesne içerir:
dataLayer = [{}];Veri katmanı içindeki öğeler değişken olarak adlandırılır ve ‘anahtar’ : ‘değer’ çiftleri şeklinde biçimlendirilir (“{}” içinde yer alır).
GTM, kullanıcı bir web sitesindeki öğelerle etkileşime girdiğinde etiketleri tetiklemek için JavaScript olay dinleyicileri tarafından da kullanılan “event” adlı bir veri katmanı değişkeni kullanır. Yani, aşağıdaki örneğe göre, ‘event’ bir ‘anahtar’ ve ‘register’ ise bir ‘değer’dir.
dataLayer = [{'event' : 'register' }];Değişkenler için sözdizimi, olaylarla aynıdır. Aşağıdaki örnekte, izlemek için istenen ülkeyi alıyoruz – ‘country’ (‘variable_name’) ‘anahtar’dır ve ‘united states’ (‘variable_value’) ‘değer’dir.
dataLayer = [{'country' : 'united states' }];Veri katmanı uygulaması için iki yöntem vardır: veri katmanı bildirimi (declaration) ve veri katmanı push. Her iki yöntemin nasıl kullanılacağını açıklayacağız, ancak doğrudan size en uygun olana geçebilirsiniz.
Kısaca, dataLayer.push kullanmanızı öneririz, çünkü daha popülerdir ve çoğu ihtiyacı karşılar. Ayrıca, bu yöntem kullanımı daha güvenlidir, çünkü Google Tag Manager’daki olayları bozmaz; oysa veri katmanı bildirimlerinin uygunsuz kurulumu kolayca sorunlara neden olabilir.
| Veri Katmanı bildirimi | dataLayer.push | |
| En iyi çalıştığı durum | Sayfa yüklenmeden önce gereken değerler | Sayfa yükleme olayı dışındaki olaylar için veri katmanına bilgi gönderme |
| Veri katmanı değişkeninin push zamanı | Çalışma zamanından önce | Çalışma zamanı sırasında |
| Kod içindeki konumu | Google Tag Manager konteyner kod parçasının üstünde | Kodun herhangi bir yerinde |
| Veri Katmanı bildirimine geç | dataLayer.push’a geç |
Bu yöntemi kullanmak için, veri katmanı kod parçası Google Tag Manager konteyner kod parçasının üstüne yerleştirilmelidir. Bu durumda, veri katmanı, Tag Manager başlatılmadan önce başlatılır.
Genel olarak, bu veri katmanı oluşturmak için popüler veya önerilen bir yol değildir, ancak GTM konteyneri yüklenmeden önce veri noktaları oluşturmak ve bu veri noktalarını etiket yönetimi için kullanmak istiyorsanız işe yarayacaktır.
‘variable_name’: ‘variable_value’ kısmını gerekli parametrelerle değiştirin ve kodu web sitesi sayfasında GTM kod parçasından önce yapıştırın.
dataLayer = [{
'variable_name': 'variable_value'
}];
...
Not: Nesnenin değerlerini dataLayer dizisine atamak için “=” operatörünü kullanın.
Push yöntemi, nesne öğelerini veri katmanına dinamik olarak ekler. Veri katmanı bildirimi yönteminin aksine, push verisiyle veri katmanı kod parçasını kodun herhangi bir yerine yerleştirebilirsiniz.
Biraz kafa karıştırıcı olabilir, ancak ‘dataLayer’ aynı zamanda window nesnesiyle etkileşime giren herhangi bir fonksiyon tarafından erişilebilen bir JavaScript değişkenidir. Bu nedenle, ‘dataLayer’ adlı başka bir yerel JavaScript dizisiyle çakışmaları önlemek için en iyi yol, ‘window.dataLayer’ önekini kullanmaktır.
Dolayısıyla, dataLayer.push yöntemi için aşağıdaki kodu kullanmanız gerekecek. ‘variable_name’ : ‘variable_value’ yerine, gereken parametreleri ekleyin.
window.datalayer = window.dataLayer || [];
window.dataLayer.push({
'variable_name' : 'variable_value'
});Yukarıdaki kod bloğunda, mevcut bir dataLayer varsa dataLayer ona ayarlanır; aksi takdirde boş bir dizi olarak yeni bir dataLayer oluşturulur. || (VEYA) operatörü, bu koşullardan herhangi biri karşılandığında atamanın gerçekleşmesini sağlar.
Bu şekilde, dataLayer’ın üzerine yazabilecek birden fazla bildirim oluşturmaktan kaçınmış olursunuz.
Birçok eCommerce CMS’i için, standart eCommerce olayları için bir veri katmanı oluşturabilen eklentiler (Stape’in eklentileri dahil) bulunmaktadır. Bazı durumlarda bu yeterli olmayabilir. Örneğin, veri katmanı olaylarında ek olaylara veya ek verilere ihtiyacınız varsa. Ya da tamamen özelleştirilmiş bir platform kullanıyorsanız.
Bu durumda, ihtiyacınız olan yük (payload) ile veri katmanı olayları oluşturmak için geliştiricilerinizle iletişime geçmeniz gerekir. Bu, genellikle geliştiriciler için oldukça basit bir görevdir ve çok uzun sürmez, ancak sitenizin veya platformunuzun mimarisine bağlıdır.
Birkaç faydalı kural:
1. Ürün/öğe verisi
2. İşlem verisi
3. Kullanıcı verisi
4. Olaya özgü parametreler
| Olay | Ne zaman tetiklenmeli |
| view_item_list | Ürün listeleme veya kategori sayfası |
| view_item | Ürün detay sayfası |
| add_to_cart | Sepete ürün eklendi |
| begin_checkout | Ödeme işlemi başlatıldı |
| add_payment_info | Ödeme yöntemi seçildi |
| purchase | Sipariş onaylandı |
Google Tag Manager’da veri katmanı dizinizden öğelere farklı şekillerde erişebilirsiniz. Google Tag Manager içindeki verilerden yararlanmak için, bir değişkene atayın veya bir olay tetikleyicisi olarak kullanın. Bu değişkenler veya olaylar daha sonra etiketlerinize, tetikleyicilerinize veya diğer değişkenlerinize dahil edilebilir.
Aşağıda, veri katmanının üç kullanım senaryosunu ve bunların GTM’de kurulumunu sunuyoruz:
Örnek olarak, turuncu tişörtlerin satın alma değerini alıyoruz.
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
‘product_name’ : ‘orange t-shirt’,
'purchase_value' : '5',
‘purchase_currency’ : ‘EUR’
});1. Değişken yapılandırması için, GTM konteynerinde Variables → Kullanıcı Tanımlı Değişkenlerde “New” tıklayın.

2. Değişken türü olarak “Data Layer Variable” seçin.

3. Veri katmanı değişken adını ekleyin ve “Save” tıklayın.
Lütfen dikkat: bu alan büyük/küçük harfe duyarlıdır, bu nedenle adın sayfaya eklediğiniz koddaki değer adıyla eşleştiğinden emin olun. Bizim durumumuzda bu, ”purchase_value” dür.

Kod örneği olarak, kullanıcı kayıt için gerekli verileri doldurup “Register” tıkladığında “register” olayını tetikleyen dataLayer değişkenini alıyoruz.
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event' : 'register'
});1. Google Tag Manager Triggers’a gidin → “New” tıklayın.

2. “Custom Event” tetikleyici türünü seçin.

3. “Event name” alanına, bu alan büyük/küçük harfe duyarlı olduğundan koddaki değer adıyla aynı şekilde adı ekleyin. “Save” tıklayın.

Aşağıdaki veri katmanı değişkeni örneği, satın alma olaylarını tetikler ve satın alma bilgisi oluşturur.
dataLayer = [{
'event': 'purchase',
'purchase_info': {
'purchase_amount': 5,
'purchase_curency': 'EUR'
}
}];Koddan gelen değişkenleri Google Tag Manager’da hem değişken hem de olay tetikleyicisi olarak kullanabilirsiniz. Değişkenler ve olaylar için önceki adımlardaki kurulum sürecini kontrol edin.
Veri katmanı, istemci taraflı GTM’de olduğu gibi sunucu taraflı Google Tag Manager’da mevcut değildir.
Ancak sGTM, web GTM’den gelen HTTP isteklerini kontrol eden Client adlı bir nesneye sahiptir. İstek belirli verileri içeriyorsa, Client, istek verilerini olay verisine dönüştürür. Etiketler de web GTM konteynerinden GTM sunucusuna veri göndermek için kullanılır.
Server GTM konteynerindeki veri noktalarını doldurmak için, webden server GTM’ye veri göndermek üzere kullanacağınız yöntemi seçmeniz gerekir; popüler olanlar arasında şunlar bulunur:
Bu yöntem, özellikle Google Ads veya Floodlight için sunucu taraflı izleme kuruyorsanız etkilidir, çünkü ikisi de yalnızca GA4 etiketlerine dayanır.
1. Web GTM’de yapılandırması “Google Analytics: GA4 Event” olan bir etiket oluşturun.

2. Bu veri için önceden tanımlanmış alanlar bulacaksınız ve her parametreye ayrı ayrı veri katmanı değişkenleri atayabilirsiniz.

Data Tag/Data Client kullanmanın temel avantajı, veri katmanını ve diğer ortak verileri otomatik olarak webden GTM sunucusuna göndermesidir.
Lütfen dikkat: GTM galerisine Data Client’ı eklemeniz gerekir.

2. Etiket yapılandırmasında, “Send common data” ve “Send all from DataLayer” seçeneklerinin iki onay kutusunu etkinleştirin.
Sistem, web GTM’deki verileri otomatik olarak ayrıştıracak ve mevcut tüm bilgileri server GTM’ye iletecektir.

| Kurulum süreci hakkında daha fazla bilgi edinmek için sunucu taraflı Google Tag Manager için veri katmanı oluşturma hakkındaki blog yazımıza göz atın. |
Not: Aşağıda, veri göndermek için Google Tag’i nasıl kuracağınızı açıklıyoruz; zaten yapılandırılmış bir Google Tag’iniz varsa, yeni bir etiket oluşturmanıza gerek yoktur. Aşağıdaki adımları atlayın ve doğrudan özel boyut oluşturma bölümüne geçin.
Bu durumda, yalnızca “Shared event settings” bölümündeki veri katmanı kodundaki gibi parametreler eklemeniz gerekir.
1. GTM’nin “Tags” bölümünde “New”’a tıklayın ve etiket türü olarak “Google Tag”’ı seçin.

2. GA4 Measurement ID’nizi ekleyin ve “Shared event settings” bölümünde, kodunuza eklediğiniz parametreleri listeleyin.

3. Tetikleyici olarak “Page View – All Pages”’i seçin.

Standart bir parametre listesi vardır. Veri katmanı yardımıyla izlemek istediğiniz veri, Google Analytics’ten önerilen olaylar arasında yoksa, bunu GA4 hesabınıza manuel olarak özel boyut olarak eklemeniz gerekir. Eklendikten sonra GA4 raporlarında görünecektir.
1. Google Analytics hesabında, “Admin”’a → “Custom definitions”’a tıklayın.

2. “Create custom dimension”’a tıklayın ve gerekli parametreyi doldurun:
“Save”’a tıklayın.

| Stape GTM Helper sayesinde, müşterileriniz veya kendi büyük GTM konteyneriniz için daha iyi bir GTM önizlemesi ve daha kolay inceleme için biçimlendirilmiş sunucu istekleri elde edin. |
Google Tag Manager’ın değişkeni yakalayıp yakalamadığını kontrol etmek için, GTM’de normal hata ayıklamaya benzer birkaç basit adım atmanız gerekir.
1. “Preview”’a tıklayın ve hata ayıkladığınız web sitesinin URL’sini ekleyin.

2. “Variable” bölümü sekmesine geçin ve her şey çalışıyorsa, bu sekmede gereken veriyi göreceksiniz.

GTM’deki Hata Ayıklama Modu ile ilgili sorunlarınız varsa, rehberlerimize göz atın:
Google Analytics’in veriyi yakalayıp yakalamadığını kontrol etmek için, “Admin” → DebugView’e gidin.

Değişkenlerin veya olayların push edilemediğini görüyorsanız, muhtemelen nesne adları için uygun büyük/küçük harf kullanımını kullanmıyorsunuz veya tırnak işaretlerini atlamışsınızdır.
İyi örnek:
dataLayer.push({'variable_name': 'variable_value'});Kötü örnek:
datalayer.push({'variable_name': 'variable_value'});İyi örnek:
dataLayer.push({'variable_name': 'variable_value'});Kötü örnek:
dataLayer.push({variable_name': 'variable_value'});Web sitesinde gereken tüm konumlarda etiketleri tetikleyemiyorsanız, farklı sayfalardaki değişken adlarını kontrol edin.
En sık yapılan hata, farklı sayfalardaki değişken adlarında tutarsız büyük/küçük harf kullanımıdır, bu nedenle adları gözden geçirmeniz gerekir.
İyi örnek:
// Homepage:
dataLayer.push({'variable_name': 'variable_value'});
// Product page:
dataLayer.push({'variable_name': 'variable_value'});Kötü örnek:
// Homepage:
dataLayer.push({'variable_name': 'variable_value'});
// Product page:
dataLayer.push({'variable Name': 'variable_value'});GTM datalayer, GTM’nin önemli bir bileşenidir. Kullanıcıların web sitenizle olan etkileşimlerini yakalamamızı sağlarken, aynı zamanda etkileşim veya bağlamı hakkında ek veriler de sunar. Daha iyi bir veri yapısı oluşturmak istiyorsanız, veri katmanını kullanmak önemlidir.
Veri katmanı kavramını uygulamak oldukça zorludur ve karmaşık bir izleme altyapısı kurmak için büyük olasılıkla geliştiricilere ihtiyaç duyulacaktır.
İşte hızlı bir özet:
Sunucu tarafında başlamak ister misiniz?
Ücretsiz deneyin
Yorumlar