Mobil Geliştirme

Mobil Analitik: Firebase Analytics ve Kullanıcı Davranışı

Fatih Algül
20.03.2026 170 görüntülenme

Firebase Analytics Nedir ve Neden Kullanmalıyız?

Mobil uygulama geliştirme sürecinde kullanıcıların uygulamanızla nasıl etkileşim kurduğunu anlamak, başarılı bir ürün ortaya koymanın temel taşlarından biridir. Firebase Analytics (güncel adıyla Google Analytics for Firebase), Google'ın sunduğu ücretsiz ve sınırsız bir analitik çözümüdür. Kullanıcı davranışlarını izlemek, dönüşüm hunilerini analiz etmek ve uygulama performansını ölçmek için güçlü bir altyapı sağlar.

Firebase Analytics'in öne çıkan avantajları şunlardır:

  • Ücretsiz ve sınırsız: Olay (event) sayısı ve kullanıcı özelliği (user property) konusunda cömert kotalar sunar.
  • Otomatik olay toplama: Uygulama açılması, ilk açılış, uygulama güncellemesi gibi olayları herhangi bir kod yazmadan otomatik olarak toplar.
  • BigQuery entegrasyonu: Ham verileri BigQuery'ye aktararak SQL ile derinlemesine analiz yapmanızı sağlar.
  • Diğer Firebase servisleriyle entegrasyon: Remote Config, A/B Testing, Cloud Messaging gibi servislerle sorunsuz çalışır.
  • Çapraz platform desteği: Android, iOS ve web uygulamalarını tek bir panelden izleyebilirsiniz.

Firebase Analytics Kurulumu

Android Projesi İçin Kurulum

Firebase Analytics'i Android projenize eklemek için öncelikle Firebase konsolundan projenizi oluşturmanız ve google-services.json dosyasını indirmeniz gerekir. Ardından aşağıdaki bağımlılıkları ekleyin:

Proje düzeyindeki build.gradle dosyasına:

buildscript { dependencies { classpath 'com.google.gms:google-services:4.4.0' } }

Uygulama düzeyindeki build.gradle dosyasına:

plugins { id 'com.google.gms.google-services' } dependencies { implementation platform('com.google.firebase:firebase-bom:32.7.0') implementation 'com.google.firebase:firebase-analytics' }

iOS Projesi İçin Kurulum (Swift)

iOS tarafında Swift Package Manager veya CocoaPods kullanabilirsiniz. CocoaPods ile kurulum:

pod 'FirebaseAnalytics'

Ardından AppDelegate dosyanızda Firebase'i başlatın:

import FirebaseCore @main class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { FirebaseApp.configure() return true } }

Özel Olaylar (Custom Events) ile Kullanıcı Davranışını İzleme

Firebase Analytics'in otomatik olarak topladığı olaylar temel bilgileri sağlasa da, uygulamanıza özgü kullanıcı davranışlarını izlemek için özel olaylar tanımlamanız gerekir. Özel olaylar, kullanıcıların uygulamanızda gerçekleştirdiği spesifik aksiyonları takip etmenize olanak tanır.

Android'de Özel Olay Loglama (Kotlin)

val firebaseAnalytics = Firebase.analytics // Ürün görüntüleme olayı fun logProductView(productId: String, productName: String, category: String, price: Double) { firebaseAnalytics.logEvent("view_product") { param("product_id", productId) param("product_name", productName) param("category", category) param("price", price) } } // Sepete ekleme olayı fun logAddToCart(productId: String, quantity: Long, price: Double) { firebaseAnalytics.logEvent(FirebaseAnalytics.Event.ADD_TO_CART) { param(FirebaseAnalytics.Param.ITEM_ID, productId) param(FirebaseAnalytics.Param.QUANTITY, quantity) param(FirebaseAnalytics.Param.PRICE, price) param(FirebaseAnalytics.Param.CURRENCY, "TRY") } } // Arama olayı fun logSearch(searchTerm: String, resultsCount: Long) { firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SEARCH) { param(FirebaseAnalytics.Param.SEARCH_TERM, searchTerm) param("results_count", resultsCount) } }

iOS'te Özel Olay Loglama (Swift)

import FirebaseAnalytics // Ürün görüntüleme olayı func logProductView(productId: String, productName: String, category: String, price: Double) { Analytics.logEvent("view_product", parameters: [ "product_id": productId, "product_name": productName, "category": category, "price": price ]) } // Satın alma tamamlama olayı func logPurchaseComplete(orderId: String, totalAmount: Double, itemCount: Int) { Analytics.logEvent(AnalyticsEventPurchase, parameters: [ AnalyticsParameterTransactionID: orderId, AnalyticsParameterValue: totalAmount, AnalyticsParameterCurrency: "TRY", "item_count": itemCount ]) }

Kullanıcı Özellikleri (User Properties)

Kullanıcı özellikleri, kullanıcı segmentasyonu yapmanızı ve farklı kullanıcı gruplarının davranışlarını karşılaştırmanızı sağlar. Örneğin, premium ve ücretsiz kullanıcıların uygulama içi davranışlarını ayrı ayrı analiz edebilirsiniz.

// Android (Kotlin) firebaseAnalytics.setUserProperty("subscription_type", "premium") firebaseAnalytics.setUserProperty("preferred_language", "tr") firebaseAnalytics.setUserProperty("user_level", "advanced") // iOS (Swift) Analytics.setUserProperty("premium", forName: "subscription_type") Analytics.setUserProperty("tr", forName: "preferred_language") Analytics.setUserProperty("advanced", forName: "user_level")

Kullanıcı özellikleri tanımlarken dikkat etmeniz gereken noktalar:

  • Uygulama başına en fazla 25 adet özel kullanıcı özelliği tanımlayabilirsiniz.
  • Özellik adları en fazla 24 karakter, değerleri en fazla 36 karakter olabilir.
  • Kişisel verileri (e-posta, telefon numarası, TC kimlik numarası gibi) kullanıcı özelliği olarak asla kaydetmeyin.

Dönüşüm Hunileri ve Funnel Analizi

Kullanıcıların uygulamanızda belirli bir hedefe ulaşana kadar geçtiği adımları analiz etmek, kayıp noktalarını tespit etmek açısından kritik öneme sahiptir. Firebase Analytics'te dönüşüm hunisi oluşturmak için öncelikle ilgili olayları doğru bir şekilde loglamanız gerekir.

Bir e-ticaret uygulaması için tipik bir dönüşüm hunisi şöyle olabilir:

  1. view_product — Kullanıcı ürün detay sayfasını görüntüler
  2. add_to_cart — Kullanıcı ürünü sepete ekler
  3. begin_checkout — Kullanıcı ödeme sürecini başlatır
  4. add_payment_info — Kullanıcı ödeme bilgilerini girer
  5. purchase — Kullanıcı satın almayı tamamlar

Firebase konsolunda Funnel raporu oluşturarak her adım arasındaki dönüşüm oranlarını ve kayıp noktalarını görselleştirebilirsiniz. Bu veriler, UX iyileştirmeleri için somut yol haritaları oluşturmanıza yardımcı olur.

BigQuery ile Derinlemesine Analiz

Firebase Analytics verilerini BigQuery'ye aktararak SQL sorguları ile gelişmiş analizler yapabilirsiniz. Bu entegrasyon Blaze planı ile ücretsiz olarak kullanılabilir (BigQuery'nin kendi ücretsiz kotaları dahilinde).

-- Son 30 günde en çok görüntülenen ürünler SELECT event_params.value.string_value AS product_name, COUNT(*) AS view_count, COUNT(DISTINCT user_pseudo_id) AS unique_users FROM `project_id.analytics_123456789.events_*`, UNNEST(event_params) AS event_params WHERE event_name = 'view_product' AND event_params.key = 'product_name' AND _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)) AND FORMAT_DATE('%Y%m%d', CURRENT_DATE()) GROUP BY product_name ORDER BY view_count DESC LIMIT 20; -- Kullanıcı retention analizi (gün bazında) SELECT event_date AS cohort_date, COUNT(DISTINCT user_pseudo_id) AS total_users, COUNT(DISTINCT CASE WHEN days_since_first_visit = 1 THEN user_pseudo_id END) AS day_1_retained, COUNT(DISTINCT CASE WHEN days_since_first_visit = 7 THEN user_pseudo_id END) AS day_7_retained FROM ( SELECT user_pseudo_id, event_date, DATE_DIFF( PARSE_DATE('%Y%m%d', event_date), PARSE_DATE('%Y%m%d', first_visit_date), DAY ) AS days_since_first_visit FROM ( SELECT user_pseudo_id, event_date, MIN(event_date) OVER (PARTITION BY user_pseudo_id) AS first_visit_date FROM `project_id.analytics_123456789.events_*` ) ) GROUP BY cohort_date ORDER BY cohort_date DESC;

DebugView ile Gerçek Zamanlı Test

Olaylarınızın doğru şekilde loglandığını doğrulamak için Firebase'in DebugView özelliğini kullanabilirsiniz. Bu özellik, olayları neredeyse gerçek zamanlı olarak Firebase konsolunda görmenizi sağlar.

Android'de DebugView'ı etkinleştirmek için terminal üzerinden şu komutu çalıştırın:

adb shell setprop debug.firebase.analytics.app com.example.myapp

iOS'te ise Xcode'da şu launch argument'ı ekleyin:

-FIRDebugEnabled

Debug modunu devre dışı bırakmayı unutmayın; aksi takdirde test verileri üretim raporlarınızı kirletebilir.

En İyi Uygulamalar ve Öneriler

  • Olay isimlendirme konvansiyonu belirleyin: Tutarlı bir isimlendirme (snake_case) kullanın. Örneğin view_product, add_to_cart, complete_registration gibi.
  • Önceden tanımlı olayları tercih edin: Firebase'in önerdiği standart olayları (FirebaseAnalytics.Event) mümkün olduğunca kullanın. Bu olaylar Google Ads ve diğer Google servisleriyle daha iyi entegre çalışır.
  • Parametre sayısını sınırlandırın: Her olaya en fazla 25 parametre ekleyebilirsiniz. Gerçekten analiz edeceğiniz parametreleri seçin.
  • Kişisel veri loglamayın: KVKK ve GDPR uyumluluğu için kullanıcı kimliğini doğrudan tanımlayabilecek verileri olay parametrelerine eklemeyin.
  • Consent (onay) yönetimi uygulayın: Kullanıcılardan veri toplama onayı alın ve onay durumuna göre analitik toplamayı kontrol edin:
// Android - Consent yönetimi firebaseAnalytics.setConsent { analyticsStorage(if (userConsented) ConsentStatus.GRANTED else ConsentStatus.DENIED) adStorage(if (userConsented) ConsentStatus.GRANTED else ConsentStatus.DENIED) }
  • Audience (kitle) segmentleri oluşturun: Firebase konsolunda farklı kullanıcı kitleleri tanımlayarak hedefli bildirimler gönderebilir ve A/B testleri gerçekleştirebilirsiniz.
  • Dashboard'ları düzenli inceleyin: Haftalık veya aylık olarak analitik verilerinizi gözden geçirin. Anormal değişimleri erken tespit etmek, kullanıcı kaybını önlemek için kritik önem taşır.

Sonuç

Firebase Analytics, mobil uygulama geliştiricileri için vazgeçilmez bir araçtır. Doğru olay yapısı, anlamlı kullanıcı özellikleri ve düzenli analiz ile kullanıcı davranışlarını derinlemesine anlayabilir, ürününüzü veri odaklı kararlarla geliştirebilirsiniz. Özellikle BigQuery entegrasyonu sayesinde ham verileriniz üzerinde sınırsız analiz yapabilir, kullanıcı segmentasyonu ve retention analizleri ile uygulamanızın büyüme stratejisini şekillendirebilirsiniz. Unutmayın: ölçemediğiniz şeyi iyileştiremezsiniz.

Yazar Hakkında
Fatih Algül
TechSoft Solutions
Proje mi var?

Yazılım, IoT veya otomasyon konularında destek almak ister misiniz?

İletişime Geç