GA4'teki form sayısı geçen aya göre ikiye katlanmış görünüyor. Satış ekibi ise aynı sayıda talep konuştuğunu söylüyor. Reklam ajansı kendi rakamını, web ajansı kendi rakamını getiriyor ve toplantı, hangi rakamın doğru olduğunu tartışmakla geçiyor. Bu durumun sebebi neredeyse hiçbir zaman Google Analytics'in kendisi değildir; kurulumun planı yoktur.
Bu yazıda GA4 ve Google Tag Manager ile güvenilir bir ölçüm altyapısını nasıl kurduğumuzu anlatıyoruz: plan, adlandırma, veri katmanı, form ve e-ticaret izleme, trafik kaynakları, rıza, bağlantılar ve hata ayıklama. Sonunda kendi kurulumunuzu kontrol edebileceğiniz bir sıra var.
Ölçüm planı: neyi, neden ölçüyorsunuz?
İyi bir kurulum etiketle değil, bir tabloyla başlar. Önce işletmenin sorularını yazın: hangi kanaldan gelen kişi teklif istiyor, hangi ürün sayfası satışa dönüyor, katalog indirenler sonra geri geliyor mu? Her soru bir ya da birkaç etkinliğe, her etkinlik birkaç parametreye karşılık gelir. Tablonun bir sütunu da sahiplik olsun: bu etkinliği kim kurdu, kim test etti, en son ne zaman doğrulandı.
Örneğin Konya'da endüstriyel mutfak ekipmanı üreten ve bayi ağıyla satış yapan bir firmayı düşünelim. Onun için önemli olan teklif formu, katalog PDF'i, WhatsApp ve telefon tıklamaları ile bayi bulucu aramasıdır. Sayfada geçirilen süre ya da kaydırma derinliği bu firmanın hiçbir kararını değiştirmez; planda yer almaları gerekmez.
Adlandırma kuralları
GA4 etkinlik adları büyük-küçük harfe duyarlıdır: generate_lead ile Generate_Lead iki ayrı etkinlik olarak sayılır. Adlar harfle başlamalı, yalnızca harf, rakam ve alt çizgi içermeli ve 40 karakteri geçmemelidir. Parametre adları da 40 karakterle sınırlı, parametre değerleri çoğu durumda 100 karakterle. google_, ga_ ve firebase_ ile başlayan parametre adları ayrılmıştır. Kural basit tutulsun: hepsi küçük harf, kelimeler alt çizgiyle.
Mümkün olan her yerde Google'ın önerilen etkinlik adlarını kullanın. Talep için generate_lead, üyelik için sign_up, satın alma için purchase gibi adlar hem raporlarda hem Google Ads entegrasyonunda hazır karşılık bulur. Kendi adınızı ancak önerilen bir karşılığı olmayan bir eylem için uydurun.
| Etkinlik | Ne zaman tetiklenir | Önemli parametreler | Anahtar etkinlik mi? |
|---|---|---|---|
| generate_lead | Teklif formu başarıyla gönderildiğinde | form_name, lead_source, value, currency | Evet |
| qualify_lead | Talep CRM'de nitelikli işaretlendiğinde | lead_source | Evet, CRM bağlantısı varsa |
| contact_whatsapp | WhatsApp düğmesine tıklandığında | button_location | Hayır, gözlem için |
| contact_phone | Telefon bağlantısına tıklandığında | button_location | Hayır, gerçek arama ayrıca ölçülür |
| file_download | Katalog PDF'i indirildiğinde | file_name, file_extension | Hayır |
| search | Bayi bulucu ya da site içi arama yapıldığında | search_term | Hayır |
| view_item | Ürün sayfası görüntülendiğinde | items, value, currency | Hayır |
| add_to_cart | Ürün sepete eklendiğinde | items, value, currency | Hayır |
| begin_checkout | Ödeme adımı başladığında | items, value, currency | Hayır |
| purchase | Sipariş onaylandığında | transaction_id, value, currency, items | Evet |
Tablodaki contact_whatsapp ve contact_phone Google'ın önerilen etkinlikleri arasında yok, bizim adlandırmamız. Böyle özel adlar kullandığınızda ölçüm planına nedenini de yazın; iki yıl sonra kimse "contact_whatsapp mı, whatsapp_click mi?" diye tartışmasın.
Anahtar etkinlikler: eskiden dönüşüm denen şey
Google, 2024'te GA4'teki "dönüşüm" kavramının adını "anahtar etkinlik" olarak değiştirdi. Anahtar etkinlik, işiniz için önemli olan ve raporlarda ayrıca izlemek istediğiniz etkinliktir; Yönetici bölümündeki Anahtar etkinlikler sayfasından işaretlenir. "Dönüşüm" adı artık Google Ads tarafında kullanılıyor: bir anahtar etkinliği Google Ads'e aktarıp teklif için kullandığınızda o bir dönüşüm olur.
Her şeyi anahtar etkinlik yapmayın. On iki anahtar etkinliği olan bir mülkte hiçbiri öne çıkmaz. Gerçek iş sonuçlarını, yani satın almayı, nitelikli talebi ve gerekiyorsa üyeliği işaretleyin; geri kalanı sıradan etkinlik olarak raporlarda zaten durur.
Gelişmiş ölçüm hangi işi yapar, nerede yanıltır?
Web veri akışında gelişmiş ölçüm açıksa GA4 bazı etkinlikleri kendiliğinden toplar: sayfa görüntüleme, sayfanın sonuna yaklaşan kaydırma (yüzde 90 derinlik), başka alan adına giden tıklamalar, site içi arama, YouTube video etkileşimleri, dosya indirmeleri ve form etkileşimleri. Bunlar iyi bir başlangıçtır, ama varsayılanlarının neyi kaçırdığını bilmek gerekir.
- Kaydırma yalnızca yüzde 90 derinlikte tetiklenir; ara derinlikler için Tag Manager'da ayrı tetikleyici gerekir.
- Site içi arama yalnızca adreste q, s, search, query ya da keyword gibi bir parametre varsa algılanır. Aramanız farklı bir parametre kullanıyorsa ayarlardan ekleyin.
- Video ölçümü yalnızca JavaScript API'si açık YouTube yerleştirmelerinde çalışır.
- Başka alan adına giden tıklamalar arasında WhatsApp bağlantıları da vardır; bu tesadüfen işe yarar, ama ayrı bir etkinlik olarak ölçmek daha temizdir.
- Tek sayfa uygulamalarında sayfa görüntülemeler, tarayıcı geçmişi değişikliğiyle tetiklenir; bu ayar açık değilse ziyaretçi beş sayfa gezse de GA4 bir sayfa görür.
Form etkileşimleri neden güvenilmez?
Gelişmiş ölçümdeki form_start ve form_submit etkinlikleri, sitenizdeki her formu aynı sepete atar: arama kutusu, bülten aboneliği, giriş formu ve teklif formu. Form başarısız olduğunda, örneğin zorunlu bir alan boş kaldığında da gönderim sayılabilir. Bazı formlar sayfayı yenilemeden çalıştığı için tarayıcının gönderim olayını hiç tetiklemez ve sayılmaz. Bu yüzden form_submit'i anahtar etkinlik yapmıyoruz. Asıl talepleri aşağıda anlatacağımız veri katmanı yöntemiyle, yalnızca başarılı gönderimde ölçüyoruz.
Tag Manager kapsayıcısı ve veri katmanı
Google Tag Manager'da bir kapsayıcı, sitenize eklenen tek bir kod parçasıdır; etiketler, tetikleyiciler ve değişkenler onun içinde yönetilir. GA4 için temel yapı şöyledir: tüm sayfalarda çalışan bir Google etiketi (G- ile başlayan ölçüm kimliğinizle) ve her önemli eylem için bir GA4 etkinlik etiketi. Değişiklikleri çalışma alanında yapın, Önizleme ile test edin, sonra açıklayıcı bir sürüm adıyla yayınlayın. "Sürüm 47" bir yıl sonra kimseye bir şey anlatmaz; "Teklif formu generate_lead, form_name eklendi" anlatır.
Kapsayıcıya kimin hangi yetkiyle eriştiğini de denetleyin. Yayınlama yetkisi az kişide olsun. Ajans değiştirdiğinizde eski ekibin erişimini kaldırın; kapsayıcı, sitenize istediği kodu ekleyebilen bir araçtır.
Veri katmanı neden en sağlam yoldur?
Veri katmanı (dataLayer), sitenizin Tag Manager'a "şu oldu" diye haber verdiği ortak bir alandır. Geliştirici, form sunucuda başarıyla kaydedildiği anda dataLayer.push ile generate_lead gibi bir olay ve form_name gibi bilgiler gönderir. Tag Manager'da bu olay adına bağlı bir özel etkinlik tetikleyicisi kurulur ve GA4 etiketi yalnızca o anda çalışır. Sayfa tasarımı değişse, düğmenin rengi ya da yazısı değişse bile ölçüm bozulmaz.
Tıklama sınıflarına, düğme metnine ya da teşekkür sayfası adresine dayanan kurulumlar da çalışır, ama kırılgandır. Bir tasarımcı düğme metnini "Gönder"den "Teklif al"a çevirdiğinde ölçüm sessizce durur ve bunu genellikle üç ay sonra fark edersiniz.
Form izlemenin tuzakları
Tag Manager'daki form gönderimi tetikleyicisinin iki ayarı vardır. "Etiketleri bekle", sayfa değişmeden önce etiketlerin çalışması için gönderimi kısa bir süre geciktirir. "Doğrulamayı kontrol et" ise tetikleyicinin yalnızca form gerçekten gönderildiğinde çalışmasını sağlar; işaretli değilse her gönderim denemesinde çalışır. Bu ikisi işe yarar ama her durumu çözmez.
- Sayfayı yenilemeden çalışan formlar tarayıcı gönderim olayını tetiklemeyebilir; bu formlarda veri katmanı olayı şarttır.
- Üçüncü taraf bir hizmetten iframe ile gelen formlar, sizin sayfanızdaki Tag Manager tarafından görülmez; hizmetin kendi entegrasyonu ya da teşekkür sayfası yönlendirmesi gerekir.
- Teşekkür sayfası yöntemi kullanılıyorsa sayfa yenilendiğinde ya da yer imine eklenip tekrar açıldığında etkinlik yeniden sayılır.
- Aynı formu hem gelişmiş ölçüm hem Tag Manager ölçüyorsa raporda iki farklı etkinlik görünür ve biri yanlışlıkla anahtar etkinlik yapılabilir.
E-ticaret etkinlikleri nasıl kurulmalı?
GA4'ün e-ticaret raporları, önerilen etkinlik adları ve items dizisi doğru gönderildiğinde dolar: view_item_list, select_item, view_item, add_to_cart, view_cart, begin_checkout, add_shipping_info, add_payment_info, purchase ve iade için refund. Her etkinlikte items dizisi ürün kimliği ya da adını, fiyatı ve adedi taşımalıdır. Para birimini ISO kodu ile gönderin; Türk lirası için TRY.
purchase etkinliğinde transaction_id zorunludur ve önemli bir işi vardır: GA4, web veri akışlarında aynı kullanıcıdan aynı işlem kimliğiyle gelen satın almaları ayıklar. Bu korumanın bir tuzağı var: transaction_id boş bir metin olarak giderse GA4 boş kimlikli bütün satın almaları birbirinin tekrarı sayabilir. Tersi de sorun: farklı siparişler için aynı kimlik gidiyorsa satışlarınız eksik sayılır.
Hazır altyapılarda, örneğin Shopify'ın Google kanalında, bu etkinlikler büyük ölçüde hazır gelir. Yine de kontrol edin: ödeme adımı başka bir alan adında mı tamamlanıyor, sipariş onay sayfası 3D Secure dönüşünden sonra mı açılıyor, kargo ve vergi değere dahil mi? Bu soruların cevabı, raporlardaki ciro ile muhasebedeki ciro arasındaki farkı açıklar.
Trafik kaynakları: UTM, alanlar arası izleme ve dahili trafik
Bir ziyaretin nereden geldiğini GA4 büyük ölçüde UTM parametrelerinden öğrenir: utm_source, utm_medium, utm_campaign, utm_content, utm_term ve utm_id. Değerler büyük-küçük harfe duyarlıdır; utm_source=Instagram ile utm_source=instagram raporda iki ayrı satır olur. Google'ın kendi önerisi de bütün değerleri küçük harfle yazmaktır.
- Kaynak ve ortam için kısa bir sözlük oluşturun ve herkes onu kullansın: instagram ve paid_social, newsletter ve email, linkedin ve social gibi.
- Ortam değerlerini GA4'ün varsayılan kanal gruplamasının tanıdığı biçimde seçin; uydurma bir ortam değeri trafiği atanmamış (Unassigned) satırına düşürür.
- Fuar broşürü, ambalaj ya da kartvizit üzerindeki QR kodlara da UTM ekleyin; yoksa bu ziyaretler doğrudan trafik gibi görünür ve basılı materyalin etkisini hiç ölçemezsiniz.
- Sitenizin kendi iç bağlantılarına asla UTM eklemeyin; her tıklama yeni bir oturum ve sahte bir kaynak yaratır.
- Google Ads'de otomatik etiketlemeyi açık tutun; kampanya bilgisi gclid ile gelir, elle UTM eklemeye gerek kalmaz.
Alanlar arası izleme ve ödeme sayfaları
Siteniz ve ödeme ya da randevu sayfanız farklı alan adlarındaysa, GA4 bunları ayrı ziyaretler gibi görür. Çözüm, Yönetici > Veri toplama ve değiştirme > Veri akışları altında web akışınızı seçip Etiket ayarlarını yapılandırın > Alanlarınızı yapılandırın adımıyla iki alan adını da eklemektir. GA4 bu durumda alan adları arasında geçerken adrese _gl parametresini ekler ve aynı kullanıcıyı tanır. İki tarafta da aynı ölçüm kimliği kullanılmalıdır.
Türkiye'de sık gördüğümüz başka bir durum, iyzico ya da PayTR gibi ödeme kuruluşlarının 3D Secure ekranından geri dönen ziyaretçinin satın almasının "yönlendirme" trafiğine yazılmasıdır. Bunu engellemek için aynı etiket ayarlarındaki istenmeyen yönlendirmeler listesine ödeme kuruluşunun ve bankanın doğrulama alan adlarını ekleyin.
Dahili trafik
Ekibinizin kendi sitesini her gün açması, özellikle küçük sitelerde raporları bozar. Etiket ayarlarında dahili trafiği tanımlayın: ofis IP adreslerinizi girdiğinizde GA4 bu ziyaretlere traffic_type=internal değerini ekler. Ardından Yönetici bölümündeki veri filtrelerinde dahili trafik filtresini önce test durumunda deneyin, sonra etkin hâle getirin. Veri filtreleri geçmiş veriyi değiştirmez ve etkin hâle geldikten sonra dışlanan veri bir daha geri getirilemez.
Rıza, Consent Mode v2 ve veri saklama
Çerez bandınız ile Google etiketiniz aynı dili konuşmalıdır. Consent Mode v2 dört sinyal taşır: ad_storage ve analytics_storage çerez depolamayı, ad_user_data kullanıcı verisinin reklam amacıyla Google'a gönderilmesini, ad_personalization ise kişiselleştirilmiş reklamı yönetir. Temel kurulumda Google etiketleri ziyaretçi bandla etkileşime girene kadar hiç yüklenmez. Gelişmiş kurulumda etiketler yüklenir, onay yoksa çerezsiz ölçüm sinyalleri gönderir; GA4, belirli veri eşiklerini aşan mülklerde bu sinyallerden davranış ve dönüşüm modellemesi yapar.
Tag Manager'da bunun düzgün yolu, onay yönetim platformunuzun şablonunu onay başlatma tetikleyicisiyle (Consent Initialization - All Pages) çalıştırmak ve varsayılan onay durumunu reddedilmiş olarak ayarlamaktır. Google'ın kendi etiketlerinde yerleşik onay denetimi vardır. Meta Pixel gibi diğer etiketlerde ise Gelişmiş ayarlar altındaki onay ayarlarında ek onay denetimini açıp ilgili onay türünü, örneğin ad_storage'ı seçin. Avrupa Ekonomik Alanı, Birleşik Krallık ve İsviçre'deki kullanıcılar için Google bu sinyalleri zaten bekliyor; Türkiye'de ise Kişisel Verileri Koruma Kurumu'nun çerez rehberi analitik ve pazarlama çerezleri için açık rıza öngörüyor.
Veri saklama süresi
Yönetici > Veri ayarları > Veri saklama altında standart mülklerde iki seçenek vardır: 2 ay ya da 14 ay. Varsayılan genellikle kısa olandır ve bu ayar standart raporları değil, keşif raporlarını ve hunileri etkiler. Yani geçen yılın aynı dönemiyle kullanıcı düzeyinde bir karşılaştırma yapmak istediğinizde 2 ay seçiliyse veri artık yoktur. Kurulumun ilk gününde 14 ayı seçin ve "Yeni etkinlik olduğunda kullanıcı verilerini sıfırla" seçeneğinin ne yaptığını bilerek karar verin.
Google Ads, Search Console ve BigQuery bağlantıları
Google Ads bağlantısı Yönetici > Ürün bağlantıları altından kurulur. Bağlantıdan sonra anahtar etkinliklerinizi Google Ads'e dönüşüm olarak aktarabilir ve GA4 kitlelerini reklamlarda kullanabilirsiniz. Burada sık yapılan hata, aynı formu hem GA4'ten içe aktarılan dönüşümle hem de Google Ads etiketiyle ölçüp ikisini de birincil yapmaktır. Bir iş sonucu, bir birincil dönüşüm.
Search Console bağlantısı, organik arama sorgularını ve açılış sayfalarını GA4 içinde görmenizi sağlar. Bir web veri akışı yalnızca bir Search Console mülküne bağlanabilir. Bağlantıdan sonra Search Console raporları kitaplıkta yayınlanmamış olarak gelir; sol menüdeki Kitaplık bölümünden yayınlamanız gerekir. Veriler Search Console'a göre yaklaşık iki gün gecikmeyle ve en fazla 16 aylık geçmişle görünür.
BigQuery dışa aktarma, GA4'ün ham etkinlik verisini kendi veri ambarınıza gönderir. Standart mülklerde günlük dışa aktarma sınırı 1 milyon etkinliktir; gün içi akış dışa aktarması da vardır. Dışa aktarma bağlantıyı kurduğunuz günden itibaren veri taşır, geçmişi doldurmaz. Bugün kullanmayacak olsanız bile erken kurmak, bir yıl sonra elinizde ham veri olması demektir. BigQuery tarafında depolama ve sorgu maliyetleri oluşabileceğini de hesaba katın.
Hata ayıklama ve sunucu taraflı etiketleme
Yayına almadan önce her etkinliği iki yerden kontrol edin. Tag Manager'ın Önizleme modu (Tag Assistant) hangi tetikleyicinin hangi etiketi çalıştırdığını, veri katmanında ne olduğunu ve onay durumunu gösterir. GA4'ün DebugView ekranı ise etkinliğin GA4'e hangi parametrelerle ulaştığını saniye saniye listeler. Bir uyarı: ziyaretçi analitik çerezlerini reddetmişse etkinlikler DebugView'da görünmez. Testi kendi tarayıcınızda onay vererek yapın, ardından reddederek bir kez daha bakın. Gerçek zamanlı rapor da canlı sitede hızlı bir ikinci kontrol sağlar.
Sunucu taraflı etiketlemede tarayıcı, verileri doğrudan Google'a ya da Meta'ya değil, sizin kontrol ettiğiniz bir sunucu kapsayıcısına gönderir. Bu kapsayıcı Google Cloud'da ya da başka bir ortamda çalışır ve Google, onun sizin alan adınızın bir alt alan adından hizmet vermesini önerir. Getirisi şudur: hangi verinin hangi platforma gideceğine siz karar verirsiniz, tarayıcıda çalışan kod azalır, Conversions API gibi sunucu entegrasyonları tek yerden beslenir.
Bedeli de var. Sunucunun barındırma maliyeti, bakımı ve teknik bilgi gerektirmesi küçük siteler için yük olabilir. Sunucu taraflı kurulum rıza yükümlülüğünü de ortadan kaldırmaz; reddeden ziyaretçinin verisi sunucudan da gönderilmemelidir. Çoğu küçük ve orta işletme için önce istemci tarafını düzgün kurmak, sunucu tarafına ikinci adımda geçmek doğru sıradır.
Nereden başlamalı?
Mevcut bir GA4 mülkünüz varsa şu sırayla ilerlemenizi öneririz:
- İşletmenin cevap istediği beş soruyu yazın ve her birini bir etkinliğe bağlayan bir ölçüm planı tablosu hazırlayın.
- Anahtar etkinlik listesini gerçek iş sonuçlarına indirin; form_submit gibi genel etkinlikleri anahtar etkinlikten çıkarın.
- Teklif ve iletişim formlarını veri katmanı olayıyla, yalnızca başarılı gönderimde ölçecek biçimde yeniden kurun.
- Veri saklama süresini 14 aya çekin, dahili trafik filtresini etkinleştirin, ödeme kuruluşlarını istenmeyen yönlendirmelere ekleyin.
- Çerez bandını ve Consent Mode kurulumunu kabul ederek ve reddederek iki ayrı tarayıcı oturumunda test edin.
- UTM sözlüğünü yazın ve reklam, e-posta ve sosyal medya ekiplerinin aynı değerleri kullandığından emin olun.
- Google Ads, Search Console ve BigQuery bağlantılarını kurun; Google Ads'de aynı sonucun iki kez birincil sayılmadığını kontrol edin.
- Her değişikliği Tag Manager'da açıklayıcı bir sürüm adıyla yayınlayın ve ölçüm planındaki doğrulama tarihini güncelleyin.
AYTE Digital olarak ölçüm kurulumlarına bir plan tablosuyla başlıyor, GA4 ve Tag Manager'ı bu plana göre kurup her etkinliği test ederek teslim ediyoruz. Mülkün, kapsayıcının ve bütün verinin sizin hesabınızda kalması, kurulumun belgelenmiş olması ve ekibinizin onu sonradan da okuyabilmesi işin parçası.