Mobil ölçüm kurulumunda en sık duyduğumuz soru şu: Firebase konsolunda bir sayı görünüyor, GA4 arayüzünde başka bir sayı. Hangisi doğru, hangisine göre karar vereceğim.
Sorunun kendisi yanlış kurulmuş. İkisi rakip iki ürün değil, aynı verinin iki penceresi. Ama pencereler her şeyi aynı göstermiyor ve farkın nereden geldiğini bilmeyen ekip aylarca yanlış rapora bakıyor.
Bu yazı üç şeyi netleştiriyor: verinin fiziksel olarak nerede durduğu, hangi işin hangi konsolda yapıldığı ve sayılar tutmadığında ilk nereye bakılacağı.
İkisi ayrı ürün değil
Uygulamada olayları toplayan şey Firebase SDK'sı. Web tarafındaki
dataLayer yerine geçen yapı bu, ayrıntısı
mobil uygulamada dataLayer karşılığı
yazısında.
Toplanan veri ise Firebase projesinde durmuyor. Google'ın dokümanı bunu açıkça yazıyor: Analytics verisi Google Analytics property'sinin içinde durur, Firebase projesinin içinde değil.
Bu tek cümle çoğu karışıklığı çözüyor. Firebase konsolundaki Analytics ekranları kendi veritabanından okumuyor; GA4 property'sinden okuyor. Yani "Firebase Analytics" diye ayrı bir veri deposu yok.
Zincir şöyle işliyor:
iOS SDK ─┐
├─► Firebase projesi ──► GA4 property (verinin durduğu yer)
Android ─┘ │
├──► Firebase konsolu
└──► GA4 arayüzü
İki konsol da aynı depoya bakıyor. Farklı sayı görüyorsanız sebep iki farklı veri değil, iki farklı sorgu.
Bağ bire bir ve bunun bir bedeli var
Google'ın dokümanı sınırı net koyuyor: bir Firebase projesini yalnızca tek bir GA4 property'sine bağlayabilirsiniz. Aynı şey ters yönde de geçerli, o projedeki bütün uygulamalar tek bir property'ye veri gönderir.
Pratikte bunun üç sonucu var:
Uygulamalarınızı property seviyesinde ayıramazsınız. Aynı Firebase projesinde üç uygulamanız varsa üçü de aynı property'ye düşer. Ayrım raporda veri akışı bazında yapılır, ayrı property açarak değil. Gerçekten ayrı raporlanması gereken iki ürününüz varsa bunu Firebase projesi seviyesinde ayırmanız gerekir, sonradan bölmek kolay değil.
Bağlantı kurulmadan GA4'te uygulama verisi hiç görünmez. Doküman bunu da yazıyor: GA4, ancak property Firebase'e bağlandıktan sonra Firebase verisini gösterir. Kurulum bitti sanıp raporu boş bulan ekiplerin çoğunda eksik olan tek şey bu bağ.
Bağladıktan sonra 24 saat bekleyin. Verinin iki ürün arasında akmaya başlaması 24 saati bulabiliyor. İlk gün boş rapor görmek arıza değil.
Bir de BigQuery tarafında bir kısıt var: property ile proje entegre edilmişse ikisi ayrı BigQuery projelerine bağlanamaz. Ham veriyi ayrı bir faturalama projesine akıtmayı planlıyorsanız bunu baştan kurgulayın.
Hangi konsol neyi yapar
Ekranlar 2021'de birbirine yaklaştırıldı: Firebase konsolundaki gösterge paneli, gerçek zamanlı rapor, olaylar ve dönüşümler ekranları GA4'teki karşılıklarıyla hizalandı. Aynı tarihte huniler Firebase'den kaldırıldı, yerine GA4'teki keşif raporları geçti.
Bugün iş bölümü kabaca şöyle:
| İş | Nerede yapılır |
|---|---|
| Olay ve parametre gönderimi | Uygulama kodu, Firebase SDK |
| Kurulum doğrulama, canlı olay izleme | Her ikisi (DebugView) |
| Huni ve serbest analiz | GA4, keşif raporları |
| Anahtar olay (dönüşüm) işaretleme | GA4 yönetici ekranı |
| Google Ads bağlantısı ve dönüşüm aktarımı | GA4 |
| Kitle tanımı | GA4 |
| Saklama süresi ayarı | GA4 yönetici ekranı |
| Crashlytics, Remote Config, A/B testi | Firebase |
| Push ve uygulama içi mesaj | Firebase |
Kural olarak: ölçme ve raporlama GA4'te, ürün geliştirme Firebase'de. Reklam tarafıyla ilgili hiçbir işi Firebase konsolunda aramayın, orada yok.
Sayılar neden tutmuyor
Aynı depo, farklı sayı. En sık karşılaştığımız sebep saklama süresi ve bunun hangi raporları etkilediği.
GA4'ün ücretsiz sürümünde olay seviyesi veri 2 ay veya 14 ay saklanıyor, kullanıcı seviyesi veri de aynı şekilde. 360 sürümünde 26, 38 ve 50 ay seçenekleri de var.
Kritik ayrıntı şu: bu ayar standart raporları etkilemiyor. Google'ın dokümanı bunu açıkça söylüyor, saklama süresi yalnızca keşif raporlarını ve huni analizlerini yönetiyor.
Sonuç, sahada şöyle görünüyor: standart rapor 18 ay önceki veriyi gösteriyor, aynı dönem için açtığınız keşif raporu bomboş geliyor. Kimse bir arıza aramasın, saklama süresi 2 aya ayarlı.
- Olay verisi2 ay veya 14 ay
- Kullanıcı verisi2 ay veya 14 ay
- Google signalsen fazla 26 ay
- Yaş, cinsiyet, ilgi alanıher zaman 2 ay
- Standart raporlarayardan etkilenmez
Yönetici ekranında veri saklama süresine bakın. 2 ay seçiliyse 14 aya alın ve kaydedin. Ayar geriye dönük çalışmıyor, yani bugün değiştirseniz bile silinmiş dönem geri gelmiyor. Kurulumdan sonra ilk yapılacak işlerden biri budur.
İkinci sebep kitle gecikmesi. Yeni tanımladığınız bir kitlenin kullanıcı toplaması 24 ila 48 saat sürüyor. Kitleyi tanımlayıp aynı gün sayıya bakan ekip boş görüyor ve kurulumu yanlış sanıyor.
Doğrulamayı hangi ekranda yaparsınız
Kurulumun çalıştığını raporun dolmasını bekleyerek anlamaya çalışmayın. Standart raporlar bir günlük gecikmeyle işleniyor, yani dün yazdığınız kodun doğru çalışıp çalışmadığını ertesi gün öğrenirsiniz. Bu döngüde hata ayıklanmaz.
Bunun yerine hata ayıklama modunu açıp olayları anlık izlersiniz. Cihazı hata ayıklama moduna aldığınızda gönderdiğiniz her olay saniyeler içinde listede belirir, parametreleriyle birlikte.
Burada iki şeye bakılır. Birincisi olayın beklediğiniz adla görünüp
görünmediği. İkincisi parametrelerin yanında firebase_error diye bir
şey olup olmadığı; varsa şema kuralı çiğnenmiş demektir ve o parametre
rapora hiç ulaşmayacak. Hata kodlarının ne anlama geldiği
mobil uygulamada dataLayer karşılığı
yazısında tablo hâlinde duruyor.
Aynı ekran iki konsolda da var ve aynı veriyi gösteriyor. Hangisini açtığınız fark etmiyor, alışkanlığınıza göre seçin.
14 aydan uzun geçmişe ihtiyacınız varsa
Ücretsiz sürümde saklama süresini 14 ayın üstüne çıkaramıyorsunuz. Yıllık karşılaştırma yapmak, sezonluk davranışı incelemek ya da ham olay verisini kendi sisteminizle birleştirmek istiyorsanız tek yol veriyi dışarı almak.
BigQuery dışa aktarımı bunun için var. Olaylar ham hâlde kendi bulut projenize akar, orada GA4'ün saklama süresi geçerli değildir, veriyi istediğiniz kadar tutarsınız.
Kurulumdan önce bilmeniz gereken bir kısıt var: property ile Firebase projesi entegre edilmişse ikisi ayrı BigQuery projelerine bağlanamıyor. Faturalamayı ayrı bir projede toplamayı planlıyorsanız bunu baştan kurgulayın, sonradan ayırmak kurulumu bozar.
Bu adımı ilk günden atmanız gerekmiyor. Ama saklama süresini 14 aya almayı unutup bir yıl sonra geçmiş veriyi arayan ekipler için geriye dönüş yok: silinmiş veri geri gelmiyor. Sıralama şu, önce saklama süresini 14 aya alın, BigQuery kararını sonra verin.
Hem siteniz hem uygulamanız varsa
Bu noktada sık gelen soru şu: web için ayrı bir property mi açayım.
Gerek yok. Bir GA4 property'si hem web hem uygulama veri akışı
barındırabiliyor, ikisi aynı veri modelini kullanıyor. Sitedeki
purchase ile uygulamadaki purchase aynı olay adıyla aynı property'ye
düşer ve tek raporda toplanır.
Karar vermeniz gereken şey ayrı property değil, olay adlarının aynı
olması. Web tarafında satin_alma, uygulamada purchase yazarsanız
iki akış tek property'de birleşir ama raporda iki ayrı satır olarak
durur. Birleştirme adlandırmayla olur, ayarla değil.
Kullanıcının iki platformda aynı kişi olarak sayılması ayrı bir konu ve kimlik eşleştirmesi gerektiriyor. Onu bu yazıya sığdırmıyoruz, ayrı bir yazıda ele alacağız.
Firebase'i ne zaman gerçekten açmanız gerekir
Ölçme GA4'te diye Firebase'i tamamen kenara koyamazsınız, çünkü bazı Firebase özellikleri Analytics olmadan çalışmıyor.
Remote Config'in koşullu hedeflemesi kullanıcı özellikleri ve kitleler üzerinden çalışıyor, bunun için Analytics gerekiyor. Kitle ve kullanıcı özelliği kullanacaksanız projede Analytics veri paylaşımını açmanız da şart.
A/B testi aynı altyapıya dayanıyor. Analytics kitlesini hedefleyen deneylerin veri toplaması daha uzun sürüyor, çünkü kitle üyeliği yukarıda yazdığımız 24-48 saatlik gecikmeye tabi. Zamana duyarlı bir deney kuruyorsanız kitle yerine kullanıcı özelliği ya da ülke, dil, uygulama sürümü gibi hazır hedefleme seçeneklerini kullanın.
Crashlytics çökme verisini Analytics olaylarıyla ilişkilendirebiliyor, böylece çöken oturumda kullanıcının ne yaptığını görebiliyorsunuz.
Yani soru "Firebase mi GA4 mü" değil. İkisi de kurulu olacak, siz hangi işi nerede yapacağınızı bileceksiniz.
Kurulum hazır mı
| Hazır | Hazır değil | |
|---|---|---|
| Firebase ve GA4 bağı | Proje tek bir GA4 property'sine bağlı, veri akıyor | Bağ kurulmamış, GA4'te uygulama verisi hiç yok |
| Veri saklama | 14 ay seçili, keşif raporları geçmişi görüyor | 2 ay seçili, yıl karşılaştırması boş geliyor |
| Anahtar olay | purchase GA4'te anahtar olay olarak işaretli | İşaretlenmemiş, Ads'e dönüşüm olarak aktarılamıyor |
| Uygulama ayrımı | Ayrı raporlanacak ürünler ayrı Firebase projesinde | Hepsi tek projede, property seviyesinde ayrılamıyor |
| BigQuery | Tek proje üzerinden dışa aktarım kurulu | Ayrı BigQuery projesi planlanmış, kurulum buna izin vermiyor |
Doğrulama
- Nerede
- Firebase konsolunda proje ayarları, Entegrasyonlar sekmesi.
- Doğru cevap
- Google Analytics kartında bağlı property adı görünüyor.
- Yanlışsa
- Bağlı property yoksa GA4'te uygulama verisi hiç oluşmaz. Bağladıktan sonra 24 saat bekleyin.
- Nerede
- GA4 yönetici ekranı, veri toplama ve değiştirme bölümü, veri saklama.
- Doğru cevap
- 14 ay seçili.
- Yanlışsa
- 2 ay seçiliyse keşif raporlarınız iki aydan eskisini göremez. Standart raporlarda sorun görünmediği için bu ayar çoğu hesapta gözden kaçıyor.
- Nerede
- Standart rapor ile keşif raporunu aynı tarih aralığında yan yana açın.
- Doğru cevap
- İki rapor aynı dönem için yakın sayı veriyor.
- Yanlışsa
- Keşif raporu boşsa veya çok düşükse önce saklama süresine bakın, veri kaybı sanmayın.
Sonuç
Firebase Analytics ile GA4 arasında seçim yapmıyorsunuz. Firebase SDK'sı topluyor, GA4 property'si saklıyor, iki konsol da aynı depoya bakıyor.
Karar vermeniz gereken tek şey hangi işi nerede yapacağınız: ölçme, raporlama ve reklam tarafı GA4'te; çökme takibi, uzaktan yapılandırma ve deneyler Firebase'de.
Kurulumun kendisi ise bu yazının konusu değil. Olayların GTM üzerinden nasıl yönetildiği ve container'ın iOS ile Android'e nasıl kurulduğu GTM ile iOS ve Android'de olay takibi rehberinde, satın almanın Google Ads'e dönüşüm olarak nasıl gittiği ise uygulamadaki satın almayı Google Ads'e dönüşüm olarak göndermek yazısında.
Sık sorulan sorular
Aynı verinin iki yüzü. Firebase SDK'sı uygulamada olayları toplar, veri Google Analytics property'sinin içinde durur, Firebase konsolu da o property'den okur. Ayrı bir Firebase veri deposu yoktur.
Hayır. Bir Firebase projesi yalnızca tek bir GA4 property'sine bağlanır ve o projedeki bütün uygulamalar aynı property'ye veri gönderir. Ayrı raporlanması gereken ürünleri ayrı Firebase projelerinde tutun.
İlk bakılacak yer Firebase ile property arasındaki bağ. Bağ kurulmadan GA4 uygulama verisini göstermez. Bağ varsa ve yeni kurulduysa verinin akması 24 saati bulabilir.
Veri saklama ayarı standart raporları etkilemez, yalnızca keşif ve huni raporlarını yönetir. Süre 2 aya ayarlıysa keşif raporu daha eskisini göremez. Ücretsiz sürümde seçenek 2 ay veya 14 aydır.
Yeni kitlenin kullanıcı toplaması 24 ila 48 saat sürer. Zamana duyarlı bir deney kuruyorsanız kitle yerine kullanıcı özelliği ya da ülke, dil, uygulama sürümü gibi hazır hedefleme seçeneklerini kullanın.