Google Tag Manager kurulumlarında en sık karşılaşılan veri kirliliği nedenlerinden biri, aynı etiketin gereğinden fazla çalışmasıdır. Teşekkür sayfası yenilendiğinde ikinci kez sayılan bir dönüşüm, gezinme sırasında tekrar tekrar tetiklenen bir giriş olayı ya da her sayfada yeniden ateşlenen bir remarketing etiketi raporlardaki rakamları şişirir. Bu rehber, bir etiketin kullanıcı başına ya da oturum başına yalnızca bir kez çalışmasını sağlayan yöntemleri, çerez tabanlı çözümün adım adım kurulumunu ve sahada karşılaşılan tuzakları ele alıyor.
Tek seferlik tetikleme ne zaman gerekir
Bir etiketin yalnızca bir kez çalışması gereken durumlar, ölçümün doğruluğunu doğrudan etkiler. En yaygın senaryolar şunlardır:
- Kullanıcı satın alma ya da form gönderimini tamamladıktan sonra teşekkür sayfasını yeniler veya tarayıcının geri tuşunu kullanır, dönüşüm etiketi ikinci kez çalışır.
- Tetikleyici koşulu kalıcı bir durum bilgisine dayanır. Örneğin dataLayer içinde giriş yapmış kullanıcı için login=true değeri bulunuyorsa, “login true ise tetikle” koşulu kullanıcı her sayfa görüntülediğinde yeniden sağlanır.
- Oturum başına bir kez gönderilmesi gereken özel olaylar, örneğin “kullanıcı ilk kez fiyat sayfasını gördü” gibi bir ölçüm noktası vardır.
- Pazarlama etiketleri, aynı ziyaretçiden birden fazla bağımsız dönüşüm kaydı alıp reklam platformunun öğrenme sürecini bozar.
Bu tekrarların maliyeti yalnızca raporlama hatası değildir. Akıllı teklif stratejileri dönüşüm verisini girdi olarak kullandığı için şişirilmiş sayılar teklif kararlarını da çarpıtır. Performance Max kampanyası optimizasyonunda dönüşüm sinyallerinin temiz olması bu nedenle ön koşuldur.
GTM’in yerleşik etiket tetikleme seçenekleri
Her etiketin ayarlarında yer alan etiket tetikleme seçenekleri (tag firing options) ilk bakılması gereken yerdir. Üç seçenek sunulur. “Etkinlik başına bir kez” aynı olay için etiketin yalnızca bir kez çalışmasını sağlar ve aynı olay birden fazla tetikleyiciyle yakalandığında çift çalışmayı önler. “Sayfa başına bir kez” etiketi her sayfa yüklemesinde en fazla bir kez ateşler. “Sınırsız” ise koşul her sağlandığında etiketi çalıştırır.
Bu seçeneklerin ortak sınırı, yalnızca o anki sayfa yüklemesinin belleğinde çalışmalarıdır. Kullanıcı sayfayı yenilediğinde ya da başka bir sayfaya geçtiğinde sayaç sıfırlanır. Dolayısıyla “oturum başına bir kez” ya da “kullanıcı başına bir kez” davranışı için tarayıcıda kalıcı bir işaret saklamak gerekir. Bu işaret çoğu durumda birincil taraf çerezi (first party cookie) olur.
Yöntemlerin karşılaştırılması
Hangi yöntemin seçileceği, tekrarın hangi kapsamda önlenmesi gerektiğine bağlıdır. Aşağıdaki tablo seçenekleri kapsam, sıfırlanma ve uygun kullanım açısından özetler.
| Yöntem | Kapsam | Ne zaman sıfırlanır | Uygun kullanım |
|---|---|---|---|
| Sayfa başına bir kez | Tek sayfa yüklemesi | Sayfa yenilendiğinde | Aynı sayfada çift tetiklenen etiketler |
| Oturum çerezi | Tarayıcı oturumu | Tarayıcı kapandığında | Oturum başına tek ölçüm olayları |
| Süreli çerez | Belirlenen gün sayısı | Son kullanma tarihinde | Kullanıcı başına tek dönüşüm veya kayıt |
| localStorage veya sessionStorage | Tarayıcı ve alan adı | Kullanıcı temizleyene kadar veya sekme kapanana dek | Sunucuya gönderilmesi gerekmeyen işaretler |
Çoğu dönüşüm senaryosu için süreli çerez ya da oturum çerezi yeterlidir. Çerez, GTM değişkeni olarak doğrudan okunabildiği için kurulum ve hata ayıklama kolaylığı da sağlar.
Çerez tabanlı tek seferlik tetikleme mantığı
Yaklaşım üç parçadan oluşur. Birincisi, etiket çalıştığında tarayıcıya bir işaret bırakan çerezdir. İkincisi, bu çerezi okuyan bir GTM değişkenidir. Üçüncüsü, çerez varsa etiketi engelleyen tetikleyici koşuludur. Böylece etiket ilk kez çalıştığında işareti bırakır, sonraki her denemede koşul sağlanmadığı için çalışmaz.
Burada kritik nokta işaretin hangi anda bırakıldığıdır. Çerezi sayfa açılır açılmaz bırakırsanız, aynı sayfa yüklemesinde etiket koşulu da çerezi okuyup engellenebilir. Bu yüzden çerez, ölçüm etiketi ateşlendikten sonra yazılmalıdır. GTM’in etiket sıralaması (tag sequencing) özelliği tam bu iş içindir.
Adım 1 Çerezi yazan Custom HTML etiketini oluşturma
Etiketler bölümünden Özel HTML türünde yeni bir etiket oluşturun ve adını anlaşılır tutun, örneğin “cHTML – Cerez Yaz – Donusum Gonderildi”. İçine aşağıdaki kodu yapıştırın. Kod, 30 gün geçerli olan donusum_gonderildi adlı çerezi tüm alt dizinlerde geçerli olacak biçimde yazar. Oturum bazlı davranış istiyorsanız son kullanma tarihi kısmını kaldırmanız yeterlidir, çünkü tarih verilmeyen çerez tarayıcı kapandığında silinir.
<script>(function(){var d=new Date();d.setTime(d.getTime()+30*24*60*60*1000);document.cookie=”donusum_gonderildi=1; expires=”+d.toUTCString()+”; path=/; SameSite=Lax”;})();</script>
Kodu kopyalarken düz tırnak karakterlerinin korunduğundan emin olun. Metin editörlerinin dönüştürdüğü kıvrık tırnaklar betiğin sessizce çalışmamasına yol açan en yaygın hatadır. Bu etiketin kendi tetikleyicisi olmasına gerek yoktur, çünkü bir sonraki adımda ana etiketin ardından çalıştırılacaktır.
Adım 2 Çerezi okuyan değişkeni tanımlama
Değişkenler bölümünde yeni bir kullanıcı tanımlı değişken oluşturun ve türünü 1. taraf çerezi olarak seçin. Çerez adı alanına donusum_gonderildi yazın. Değişkene “Cookie – donusum_gonderildi” gibi bir ad verin. Çerez henüz yazılmamışsa değişken tanımsız (undefined) değer döndürür, bu da koşul mantığında işimize yarar.
Adım 3 Tetikleyiciye engelleme koşulu ekleme
Dönüşüm etiketinin mevcut tetikleyicisini, örneğin /tesekkurler sayfası için oluşturulmuş sayfa görüntüleme tetikleyicisini, açın. Mevcut koşulların yanına “Cookie – donusum_gonderildi” değişkeninin “1’e eşit değil” olması şartını ekleyin. Çerez henüz bulunmadığı için ilk ziyarette koşul sağlanır ve etiket çalışır. Çerez yazıldıktan sonra yapılan her yenilemede koşul sağlanmaz.
Birden fazla etiketi aynı tetikleyici paylaşıyorsa koşulu tetikleyiciye eklemek hepsini etkiler. Yalnızca belirli bir etikete uygulamak istiyorsanız ayrı bir tetikleyici kopyası oluşturun ya da koşulu “tetikleyici istisnası” olarak tanımlayın.
Adım 4 Etiket sıralamasını ayarlama
Dönüşüm etiketini açın ve gelişmiş ayarlarda etiket sıralaması bölümünü genişletin. “Bu etiket tetiklendikten sonra bir etiket tetikle” kutusunu işaretleyin ve çerezi yazan Özel HTML etiketini seçin. Ana etiket başarısız olursa çerezin yazılmaması için “Ana etiket başarısız olursa veya duraklatılırsa tetikleme” seçeneğini de işaretleyin. Bu ayar kritik öneme sahiptir, çünkü dönüşüm gönderilemediği halde çerez yazılırsa kullanıcının sonraki gerçek dönüşümü kaybedilir.
Tek oturum işareti yaklaşımı ile etiket başına çerez yaklaşımı
Bazı kurulumlarda tek bir “ilk sayfa görüntüleme” çerezi oluşturulup her sayfada değeri değiştirilir. Bu yöntem basit görünür fakat ölçeklenmez. Çerezin değeri sayfa akışına göre sürekli değiştiği için hangi etiketin hangi koşulda çalışacağını takip etmek zorlaşır ve farklı etiketler aynı çerezi paylaştığında beklenmedik çakışmalar ortaya çıkar. Her tek seferlik etiket için kendi çerezini kullanmak, adlandırma standardıyla birleştiğinde çok daha sürdürülebilirdir. Örneğin giris_olayi_gonderildi, donusum_gonderildi ve kayit_olayi_gonderildi ayrı ayrı yönetilir, biri silindiğinde diğerleri etkilenmez.
Dönüşüm tekilleştirmede işlem kimliği kullanımı
Çerez yöntemi tarayıcı düzeyinde çalışır. Kullanıcı farklı bir cihaz ya da tarayıcı kullanırsa çerez bulunmaz ve etiket yeniden çalışabilir. E-ticarette bu riski azaltmanın en güvenilir yolu, satın alma olayına benzersiz bir işlem kimliği (transaction ID) eklemektir. Google Analytics 4 ve Google Ads aynı işlem kimliğiyle gelen tekrarları otomatik olarak tekilleştirir. En sağlıklı yapı, çerez tabanlı engellemeyi ve işlem kimliği tekilleştirmesini birlikte kullanmaktır. Biri istemci tarafı tekrarları keser, diğeri platform tarafında son güvenlik katmanı olarak çalışır.
Önizleme modunda test etme
Yayına almadan önce kurulumu GTM önizleme modunda doğrulayın. Test akışı şu sırayla ilerlemelidir:
- Tarayıcınızda ilgili çerezi silin ve önizleme oturumunu başlatın.
- Dönüşüm sayfasını açın. Etiketin “Tags Fired” listesinde, çerez yazıcı etiketin ise ardından çalıştığını doğrulayın.
- Tarayıcı geliştirici araçlarında Application sekmesinden çerezin yazıldığını ve süresinin beklediğiniz gibi olduğunu kontrol edin.
- Sayfayı yenileyin. Dönüşüm etiketi bu kez “Tags Not Fired” bölümünde görünmeli ve değişken değeri 1 olarak okunmalıdır.
- Gizli pencerede aynı akışı tekrarlayarak temiz bir kullanıcı davranışını simüle edin.
Önizleme panelindeki değişkenler sekmesi, tetikleyici koşulunun neden sağlanmadığını görmenin en hızlı yoludur. Çerez değişkeni beklenmedik biçimde tanımsız dönüyorsa çerez yolunu ve alan adı ayarını kontrol edin.
Sık yapılan hatalar ve çözümleri
Sahada tekrar eden sorunların büyük kısmı birkaç nedene dayanır. Çerez adında yazım farkı olması, değişkenin hiçbir zaman değer okuyamamasına neden olur ve etiket her seferinde çalışır. Çerezin alt alan adlarında görünmesi gerekiyorsa çerez yazımına alan adı (domain) parametresi eklenmelidir, aksi halde www ile shop alt alan adları arasında geçişte işaret kaybolur. Çerezi ana etiketten önce yazmak ise etiketin hiç çalışmamasına yol açar, bu yüzden sıralama ayarı atlanmamalıdır.
Tarayıcı kısıtlamaları da hesaba katılmalıdır. Bazı tarayıcılar JavaScript ile yazılan çerezlerin ömrünü kısaltır, dolayısıyla 30 günlük bir çerez pratikte çok daha kısa yaşayabilir. Uzun vadeli kullanıcı bazlı tekilleştirme gerekiyorsa sunucu tarafı bir kayıt ya da işlem kimliği temelli doğrulama daha güvenilirdir. Ayrıca çerez yazan kod, kullanıcı onay yönetimi (consent) kurallarına tabi olabilir. Onay verilmemiş kullanıcılar için çerez yazılıp yazılmayacağını gizlilik politikanıza ve ilgili mevzuata göre belirlemek gerekir.
Performans ve veri kalitesi açısından değerlendirme
Gereksiz yere tekrar çalışan etiketler yalnızca veriyi bozmaz, sayfa performansını da etkiler. Her ek betik ana iş parçacığında yürütme süresi tüketir ve kullanıcı etkileşimlerine yanıt gecikmesini artırabilir. Etiket yükünün INP metriği üzerindeki etkisi bu açıdan izlenmelidir. Tek seferlik tetikleme, gereksiz çalışmaları azalttığı için hem ölçüm doğruluğuna hem de sayfa hızına katkı sağlar.
Temiz dönüşüm verisinin en büyük faydası optimizasyon kararlarında görülür. Bir sayfanın dönüşüm oranı şişirilmiş sayılarla hesaplandığında, yapılan iyileştirmelerin gerçek etkisini ayırt etmek imkânsızlaşır. Bu nedenle dönüşüm oranı optimizasyonu çalışmalarına başlamadan önce etiket tekrarlarının temizlenmesi gerekir. Aynı şekilde A/B testi sonuçları da çift sayılan dönüşümlerle yanlış yorumlanabilir, çünkü varyantlar arasında tekrarın dağılımı eşit olmayabilir. Reklam hesaplarında dönüşüm eylemlerinin doğru yapılandırılması ise Google Ads danışmanlığı kapsamında düzenli olarak denetlenen başlıklardan biridir.
Uygulama sonrası kontrol listesi
Kurulumu tamamladıktan sonra birkaç gün boyunca GA4 ve reklam platformundaki dönüşüm sayıl
arını sunucu tarafındaki sipariş veya form kayıtlarıyla karşılaştırın. İki kaynak arasındaki fark belirgin biçimde azalmış olmalıdır. Fark devam ediyorsa tekrarın kaynağı çoğunlukla çerez mantığı değil, aynı olayı farklı tetikleyicilerle yakalayan ikinci bir etiket ya da sayfa dışı bir entegrasyondur.
- GA4 dönüşüm sayısı ile sistemdeki gerçek sipariş veya form sayısı arasındaki oranı günlük olarak izleyin.
- Reklam platformundaki dönüşüm eylemlerinin sayım yönteminin “her biri” ya da “bir” seçeneğine uygun ayarlandığını doğrulayın.
- Çerezi yazan etiketin başarısız tetikleme oranını önizleme ve tarayıcı konsolu üzerinden kontrol edin.
- Tarayıcı ve cihaz kırılımında tekrar eden dönüşümlerin yoğunlaştığı bir segment olup olmadığına bakın.
Tek bir göstergeye bakarak karar vermek yanıltıcı olabilir. Görünürlük metriklerinin tek başına KPI olamamasının nedenleri ölçüm tarafında da geçerlidir. Dönüşüm sayısı, gelir ve sunucu kayıtları birlikte okunduğunda gerçek tablo ortaya çıkar.
Kurulumun dokümantasyonu ve bakım disiplini
Tek seferlik tetikleme kurgusu zamanla unutulan bir bağımlılığa dönüşebilir. Çerez adı, süresi, bağlı olduğu etiket ve tetikleyici koşulu bir ölçüm planı belgesinde tutulmalıdır. Konteynerde kod ya da tetikleyici değişikliği yapan bir ekip üyesi, çerez adını değiştirdiğinde ya da değişkeni sildiğinde etiketin her sayfada yeniden çalışmasına yol açabilir. Etiketleri ve değişkenleri tutarlı bir adlandırma standardıyla oluşturmak, bu tür kazaları büyük ölçüde önler.
Her konteyner yayınında sürüm notu yazmak da aynı derecede önemlidir. “Dönüşüm etiketine çerez tabanlı tek seferlik koşul eklendi” gibi net bir not, veri sapması görüldüğünde geriye dönük incelemeyi dakikalara indirir. Sitede tasarım ya da altyapı değişikliği yapıldığında, özellikle teşekkür sayfası adresi veya form akışı değiştiğinde, tetikleyici koşulları yeniden test edilmelidir. Bu kontrol rutini, teknik ölçüm sağlığını kurumsal düzeyde güvence altına alan profesyonel SEO hizmeti süreçlerinin de standart bir parçasıdır.
Kurulumun genel değerlendirmesi
Tek seferlik etiket tetikleme, GTM’de küçük bir yapılandırma gibi görünse de ölçüm güvenilirliğinin temel taşlarından biridir. Etiket tetikleme seçenekleri sayfa içi tekrarları keser, birincil taraf çerezi sayfalar ve oturumlar arası tekrarları engeller, işlem kimliği ise farklı cihaz ve tarayıcı kaynaklı çift sayımları platform tarafında tekilleştirir. Bu üç katmanın birlikte kullanıldığı bir yapı, dönüşüm verisini hem raporlama hem de otomatik teklif stratejileri için güvenilir hale getirir. Etiket sıralaması ile çerezin yalnızca ana etiket başarıyla çalıştıktan sonra yazılması, önizleme modunda yapılan düzenli testler ve açık bir dokümantasyon ise kurulumun zaman içinde bozulmasını engeller. Doğru kurgulanmış bir tek seferlik tetikleme mantığı, analiz ekibinin rakamlara şüpheyle değil, güvenle bakmasını sağlar.