Google Tag Manager - Trigger Group
Tetikleyiciler ve Tetikleyici Grubu Yapıları
Google Tag Manager (GTM) hemen hemen her ay var olan bir özelliğin geliştirilmesi veya yeni bir özelliğin kullanıcılara sunulması üzerine duyuru çıkıyor. Mart 2019'da duyurulan, tetikleyici türlerinden biri olan tetikleyici grubu (trigger group) da bu yeniliklerden biri1. Bu yazı ile birlikte GTM ile ilgili yazıları çeşitlendirmeye devam edeceğim.
Google Tag Manager (GTM) başlıklı yazıda Google tarafından sunulan etiket yönetim sisteminin (TMS) ile ilgili temel bilgiler vermiştim. Bu yazıya ek olarak, dataLayer ile de yine bu yapının önemli bir parçası olan veri katmanı ile ilgili çeşitli örneklere değinmiştim2. Bu temel yazılar ve kullanım örnekleri ile ilgili GTM kategorisini inceleyebilirsiniz.
Bu yazıda ise yine etiket yönetiminin önemli bir parçası olan tetikleyici türlerinden biri olan tetikleyici grubu ile ilgili bilgi vermeye çalışacağım.
GTM Tetikleyicileri
GTM'de etiketler (tags), tıklama, scroll hareketi, zamanlayıcı, öğe görünürlüğü, form gönderilmesi veya bir videonun oynatılması gibi etkileşimlere bağlı olarak tetiklenir3. Tetikleyiciler (triggers), bu etkinlikleri dinlemek için kullanılır ve bir etiketin ne zaman tetikleneceğini veya ne zaman engelleneceğini belirlerler4 5 6 7.
Tetikleyici grubu ise bir etiketin bir ya da daha fazla tetikleyicinin gerçekleşmesi şartı ile ilişkilendirilebilmesini sağlar. Örneğin, bir form alanının görüntülenmesi, form alanlarının doldurulması ve formun gönderilmesi gibi üç farklı etkileşimi temel olarak bir dönüşüm etiketinin tetiklenmesi sağlanabilir. Bir diğer örnek olarak consent uygulamalarında ilk consent durumunun iletilmesi ve kullanıcı tercihine göre yeni bir etkinlikler güncel tercihin iletilmesi ve etiketlerin bu tercihe göre yönetilmesi süreci göz önünde bulundurulabilir.
Tetikleyici Grubu (Trigger Group)
Tetikleyici grubu (trigger group), bir ya da daha fazla tetikleyicinin ve farklı tetikleyici türlerinin bir arada kullanılabileceği, belirlenen tüm tetikleyicilerin tetiklenmesi durumunda ilişkilendirilen etiketin ele alınmasını sağlar. Tetikleyici grupları başka tetikleyici gruplarını da içerebilir. Tetikleyiciler sıralılık gözetmez. Yukarıda temel bazı örnekleri ifade etmiştim. Şimdi, konuyu daha da netleştirmek adına başka bir örneği görsel üzerinden ele alalım 7.
Yukarıdaki görselde, iki farklı işlem yer almakta. Ana işlemlerimiz Triggers altında yer alan, zamanlayıcı ve video oynatma & izleme etkileşimlerinin gerçekleşmesini temel alırken, Conditions alanı bu etkileşimlerin belirli bir sayfada gerçekleşmesi şartını kontrol etmekte. Elbette herhangi bir sayfa ya da farklı bir diğer şartın gerçekleşme durumunu örnek olarak ekledim. Bu işlemi örneğin sayfa görüntüleme üzerinden de ele alabilirdim.
Örneğin, tetikleyicilerin gruplanması mantığı yapısal olarak özetlediğini düşünüyorum. Şimdi konuyu biraz daha detaylandıralım. Aşağıda sıklıkla karşılaştığım durumlara dair örnek bazı çözümlerden bahsedeceğim. Özellikle aynı etkinliğin birden fazla defa tetiklenmesi veya bir grup içerisinde yer alan tetikleyicilerin (özetle grubun) birden fazla nasıl işleme alınabileceğine bakalım.
Tekrarlanan Etkinlikler
Bir tetikleyicinin bir kereden fazla etkinleşmesinin gerekli olduğu durumlar olabilir. Örneğin, her 30 saniyede bir tetiklenen bir zamanlayıcının üçüncü kez etkinleşmesi durumunda (90. saniyede) bir etiketin işleme alınmasını isteyebilirsiniz. Bu tür durumlarda tetikleyici grubuna ilgili etkinliğin kaç kez gerçekleşmesi gerekiyorsa o kadar sayıda eklenmesi gerekmektedir.
Her tetikleyicinin benzersiz bir tanımlayıcıya ve ID'e sahip olduğu unutulmamalı. Aynı türe sahip tetikleyicilerin farklı ID ve tanımlayıcı değerleri olacağı için ayrı ayrı işleme alınırlar. Tekrar sayısı takip edilecek tetikleyicinin aynı değerlere sahip olması bu nedenle önemli1.
Bir tetikleyici grubu içerisinde aynı tetikleyici grubunu hata almadan tekrar ekleyebilirsiniz. Ancak, ilgili etiket bir önceki tetikleyici grubu tetiklenmemiş olacağı için aktifleş(e)meyecektir.
Etiket düzeyinde ise bir tetikleyici grubunu bir kez ekleyebilirsiniz. Elbette aynı etiket grubunu farklı bir isimle yeniden oluşturabilir ve etikete ekleyebilirsiniz. Bu sayede, aynı etiketin gerekli şartların sağlanması durumunda iki kez işleme alınması sağlanmış olur. Bu işlem için bir önceki tetikleyici grubuna ait tanımlayıcı değer de gtm.triggers
için bir veri katmanı oluşturulması durumunda kullanılabilir hale gelecektir. Bu sayede, tetikleyici gruplar arasında da kontroller yapılması ve ilişkiler oluşturulması mümkün hale gelir8.
Tekrarlanan Tetikleyici Grubu
Tekrarlanan Etkinlikler başlığında bir etiketin tetikleyici grupları ile birden fazla nasıl tetiklenebileceği ile ilgili temel bir bilgi vermiştim. Bu konuyu şimdi biraz daha detaylandıralım.
Örneğin, bir consent uygulaması kullandığımızı varsayalım. Ziyaretçi web sitesine ulaştığında cookie_consent_update
ön tanımlı değerleri, ardından kullanıcı tercihlerini belirttiğinde ya da çerez kullanımını reddettiğinde bu bilgileri iletsin. Toplamda ilgili etkinlik iki kez tetiklenmiş oldu. Bu tetikleyici grubu içerisinde tekrar sınırı olmaksızın kontroller gerçekleştirmek isteyebiliriz. Örneğin, ziyaretçi ödeme yöntemleri arasında iki veya daha fazla geçiş yapabilir. Böyle bir durumda ilgili etkinliğin tekrar sayısını bilemeyiz. Elbette seçenek adedi kadar etkinliği grup içerisine dahil edebiliriz ancak böyle bir durumda, tekrarlanan seçenekler sebebiyle hatalı bir işlem yürütmüş olma ihtimali ortaya çıkacaktır8 9.
Genelde consent uygulamaları etkinliğin yanı sıra veri katmanları da iletirler. Bu sayede, ilgili veri katman değerini şart (condition) olarak ele alabilir ve değer değişmediği sürece ilgili etkinliğin işleme alınmasını sağlayabiliriz. Elbette bu tür bir durumda tetikleyici grubuna ihtiyacımız kalmamakta. Ancak, benzer bir durumu tetikleyici grubu ile de ilişkilendirebiliriz. Bu durumda, ilgili şartların sağlandığı ilk tetikleyici grubu işleminde Custom HTML olarak bir bir veri katmanı değeri oluştururuz.
if('{{gtmTriggers}}'.indexOf('1142207_223') == 0){
dataLayer.push({'tgVariable': true});
}
Yukarıdaki kod örneğinde, eğer 1142207_223
değerine sahip tetikleyici grubu tetiklenmişse tgVariable
veri katmanına true
değeri atanacaktır. Bu sayede tetikleyici grubu yeni tanımlayıcı değer oluşması veya etkinlikler arasına grup dışındaki etkinliklerin dahil olması gibi durumlardan etkilenmez. Bu sayede, tekrarlanan etkinliğe tıpkı bazı consent uygulamalarının etkinlik(ler) ile birlikte ilettikleri veri katmanlarında olduğu gibi, kendi oluşturduğumuz veri katmanı üzerinden şartlar & kontroller oluşturabiliriz. Elbette bu yöntem consent uygulaması veya çözüm üretmeye çalıştığımız durumda kullanılabilecek bir veri kaymanı gibi bir değişken olmaması durumunda kullanılabilir. Önemli olanın, çözümün olabildiğince sade tutulması ve etiketlerin kararlı tetikleyicilerle ele alınması olduğunu unutmamak gerekir.
- Trigger group. Tag Manager Help ↩ ↩
- Components of Google Tag Manager ↩
- Trigger types. Tag Manager Help ↩
- Triggers. Tag Manager Help ↩
- About triggers. Tag Manager Help ↩
- Firing triggers and trigger exceptions. Tag Manager Help ↩
- Trigger Groups in Google Tag Manager ↩ ↩
- Firing a trigger group multiple times on a page | Tag Manager. Reddit ↩ ↩
- Firing a trigger group multiple times on a page ↩