- Konu sahibi
- #1
Bu rehberde genel tanım ve form başarı olayı ele alınıyor. DataLayer, web sayfasındaki bilgileri Google Tag Manager gibi etiket yönetim sistemlerine düzenli biçimde aktarmak için kullanılan JavaScript veri katmanıdır. Tek başına veri göndermez veya etiket çalıştırmaz; sayfadaki bir olayı ve o olaya ait değerleri
En sağlıklı akış şöyledir: Sayfa veya uygulama olayı dataLayer'a ekler, GTM bu olayı dinler, tetikleyici eşleştiğinde etiket çalışır. Örneğin bir form gönderildiğinde
Aşağıdaki kodu, ilgili formun başarıyla işlendiği noktaya yerleştirin. Formun yalnızca butona basılmasıyla değil, sunucu veya uygulama tarafından gerçekten başarılı kabul edildiğinde bu kodu çalıştırması önemlidir.
GTM kullanıyorsanız
Ardından GTM içinde şu eşleştirmeyi kurun:
Başarılı sonuçta GTM önizlemesinde
Her
Tablodaki alanlar yalnız örnektir; kullanılmayan alanları eklemeyin. Özellikle e-posta, telefon, ad-soyad veya doğrudan kişiyi tanımlayan başka bilgileri dataLayer'a koymak yerine olayın teknik kimliğini kullanın. Bir pazarlama veya analiz aracına aktarılacak alanların ilgili hizmetin veri politikalarıyla uyumlu olması gerekir.
GTM kurulmadan veri gönderildiğini sanmak: DataLayer'a nesne eklemek, tek başına Analytics veya başka bir hizmete istek gönderildiği anlamına gelmez. İlgili etiket, tetikleyici ve değişken ayrıca kurulmalıdır.
Yanlış başarı noktasına push eklemek: Buton tıklamasını form başarı olayı gibi göndermek, hatalı veya tekrarlı dönüşüm oluşturabilir. Push çağrısını doğrulanmış başarı yanıtından sonra çalıştırın.
Değişkeni tetikleyicide kullanmamak:
İsimleri tutarsız yazmak:
DataLayer'ı kurduktan sonra önce olayın, sonra değişkenin, en son da etiketin çalıştığını ayrı ayrı test edin. Böylece etiket tetiklenmediğinde sorunun sayfa kodunda mı, GTM eşleştirmesinde mi olduğunu hızlıca ayırabilirsiniz.
Hayır. DataLayer sayfanın çalışma bağlamındaki JavaScript verisidir. Sayfa yenilendiğinde veya yeni bir sayfaya geçildiğinde gerekli bilgiler yeniden oluşturulmalıdır; kalıcı saklama gerekiyorsa bunun için ayrı bir uygulama mekanizması gerekir.
Evet. Her işlem gerçekleştiğinde ayrı bir
dataLayer.push() ile yayınlar. Google Tag Manager ise bu bilgileri bir tetikleyici ve değişken aracılığıyla kullanarak ilgili etiketi çalıştırır.En sağlıklı akış şöyledir: Sayfa veya uygulama olayı dataLayer'a ekler, GTM bu olayı dinler, tetikleyici eşleştiğinde etiket çalışır. Örneğin bir form gönderildiğinde
event değeri lead_form_submit olarak gönderilebilir. GTM'de bu ada sahip bir özel etkinlik tetikleyicisi oluşturulur ve form adı gibi diğer alanlar etiket içinde kullanılabilir.En küçük uygulanabilir örnek
Aşağıdaki kodu, ilgili formun başarıyla işlendiği noktaya yerleştirin. Formun yalnızca butona basılmasıyla değil, sunucu veya uygulama tarafından gerçekten başarılı kabul edildiğinde bu kodu çalıştırması önemlidir.
Kod:
<script>
window.dataLayer = window.dataLayer || [];
function reportLeadFormSuccess() {
window.dataLayer.push({
event: 'lead_form_submit',
form_name: 'demo_contact_form'
});
}
// Gerçek başarı yanıtını işleyen kodunuz bu fonksiyonu çağırır.
// reportLeadFormSuccess();
</script>
GTM kullanıyorsanız
window.dataLayer = window.dataLayer || []; satırının, GTM kapsayıcı kodundan önce çalışması gerekir. Olay sonradan oluşuyorsa push() çağrısı olay anında yapılabilir. Örnek fonksiyonu tanımlar; sayfa yüklenir yüklenmez sahte bir başarı olayı üretmez. Testte geliştirici konsolundan reportLeadFormSuccess() çağrısı yapıp kuyruğu kontrol edebilirsiniz; gerçek sitede çağrı yalnız doğrulanmış başarı yanıtından sonra yapılmalıdır.Ardından GTM içinde şu eşleştirmeyi kurun:
- Tetikleyici türü olarak özel etkinlik seçin ve etkinlik adını
lead_form_submitgirin. - Form adı gibi alanları kullanacaksanız
form_nameadlı Data Layer Değişkeni oluşturun. - Bu tetikleyiciyi yalnızca ölçmek istediğiniz etikete bağlayın.
- Önizleme modunda form akışını çalıştırın ve olayın listede göründüğünü doğrulayın.
Başarılı sonuçta GTM önizlemesinde
lead_form_submit olayı ve form_name değeri görünür. Olay görünmüyorsa kod hiç çalışmamış, dataLayer başka bir adla oluşturulmuş veya çağrı formun gerçek başarı akışına bağlanmamış olabilir. Olay görünüyor fakat etiket çalışmıyorsa sorun genellikle tetikleyici koşulunda, etiketin yapılandırmasında veya önizleme ortamındaki filtrelemededir.Bilgiler nasıl taşınır?
Her
push() çağrısı bir JavaScript nesnesi gönderir. event alanı çoğunlukla hangi işlemin gerçekleştiğini belirtir; diğer alanlar o işlemin bağlamını taşır. Alan adlarını baştan belirlemek, farklı sayfalarda aynı olay için farklı isimler kullanılmasını önler.| Alan | Örnek | Görevi |
|---|---|---|
event | lead_form_submit | Tetikleyicinin dinlediği olay adı |
form_name | demo_contact_form | Olayın hangi formdan geldiği |
user_type | member | İhtiyaç varsa olay bağlamı |
Tablodaki alanlar yalnız örnektir; kullanılmayan alanları eklemeyin. Özellikle e-posta, telefon, ad-soyad veya doğrudan kişiyi tanımlayan başka bilgileri dataLayer'a koymak yerine olayın teknik kimliğini kullanın. Bir pazarlama veya analiz aracına aktarılacak alanların ilgili hizmetin veri politikalarıyla uyumlu olması gerekir.
Sık yapılan hatalar
GTM kurulmadan veri gönderildiğini sanmak: DataLayer'a nesne eklemek, tek başına Analytics veya başka bir hizmete istek gönderildiği anlamına gelmez. İlgili etiket, tetikleyici ve değişken ayrıca kurulmalıdır.
Yanlış başarı noktasına push eklemek: Buton tıklamasını form başarı olayı gibi göndermek, hatalı veya tekrarlı dönüşüm oluşturabilir. Push çağrısını doğrulanmış başarı yanıtından sonra çalıştırın.
Değişkeni tetikleyicide kullanmamak:
event olayın adıdır; form_name gibi diğer değerler için ayrıca Data Layer Değişkeni gerekir.İsimleri tutarsız yazmak:
lead_form_submit, leadFormSubmit ve büyük-küçük harf farklı adlar aynı olay kabul edilmez. Olay ve alan adları için sabit bir sözlük kullanın.DataLayer'ı kurduktan sonra önce olayın, sonra değişkenin, en son da etiketin çalıştığını ayrı ayrı test edin. Böylece etiket tetiklenmediğinde sorunun sayfa kodunda mı, GTM eşleştirmesinde mi olduğunu hızlıca ayırabilirsiniz.
Kaynaklar
Sık sorulan sorular
DataLayer sayfa yenilenince verileri kalıcı olarak saklar mı?
Hayır. DataLayer sayfanın çalışma bağlamındaki JavaScript verisidir. Sayfa yenilendiğinde veya yeni bir sayfaya geçildiğinde gerekli bilgiler yeniden oluşturulmalıdır; kalıcı saklama gerekiyorsa bunun için ayrı bir uygulama mekanizması gerekir.
Tek bir sayfada birden fazla olay gönderebilir miyim?
Evet. Her işlem gerçekleştiğinde ayrı bir
push() çağrısı yapabilirsiniz. Olay adlarını ve alanlarını tutarlı tutun; aynı işlemin sayfa yenileme, tekrar gönderim veya yeniden deneme nedeniyle yanlışlıkla birden fazla raporlanmadığını ayrıca kontrol edin.