Event Tracking, mobil uygulama içinde kullanıcı eylemleriyle ilgili etkinliklerin toplanması ve analizidir, düğme tıklamalarından satın alma işlemlerine kadar. Kaliteli event tracking, ürün analitiğinin, A/B testlerinin ve kişiselleştirmenin temelidir.Amplitude (2024)'a göre, sistematik Event Tracking uygulayan ekipler, veri odaklı yaklaşım sayesinde ürün kararlarını 3 kat daha hızlı alır. Etkinlikler olmadan uygulama analitiği kördür.
Önemli Noktalar
Event Tracking, bir uygulamadaki kullanıcıların ayrık eylemlerini toplama, depolama ve analiz etme sürecidir. Her etkinlik bir addan (event_name) ve bir dizi parametreden (event_params) oluşur. Örneğin, purchase etkinliği price, currency, product_id, quantity parametrelerine sahiptir.
Screen View'in bir ekranı açma gerçeğini kaydetmesinin aksine, Event Tracking kullanıcının o ekranda tam olarak ne yaptığını tanımlar: "Satın Al" düğmesine bastı, sepete ekledi, promosyon kodu uyguladı. Etkinlikler olmadan kullanıcı eylemlerinin motivasyonunu ve bağlamını anlamak imkansızdır.
Her Analytics Event zorunlu ve isteğe bağlı alanlar içerir. Zorunlu: event_name, event_timestamp, user_id (veya device_id). İsteğe bağlı: parametreler, bağlam açıklaması.
| Alan | Zorunlu | Örnek |
|---|---|---|
| event_name | Evet | "purchase_completed" |
| event_timestamp | Evet | 1719876543000 |
| user_id | Evet | "user_abc123" |
| session_id | Hayır | "session_456def" |
| revenue | Hayır | 9.99 |
| currency | Hayır | "USD" |
revenue parametresi özellikle önemlidir — ROAS ve LTV'nin otomatik hesaplanması için MMP platformlarına iletilir.
Etkinlikler kaynak ve amaca göre sınıflandırılır. Bu ayrım, veri yapısını düzenlemeye ve farklı ekipler için erişim hakları belirlemeye yardımcı olur.
Analitik platformlarının SDK'ları otomatik olarak temel etkinlikleri toplar: app_install, app_remove, session_start, screen_view. Firebase Analytics, tek satır kod olmadan yaklaşık 20 otomatik etkinlik oluşturur. Bu etkinlikler temel metrikleri kapsar ancak iş mantığının anlaşılmasını sağlamaz.
Özel etkinlikler, Event Tracking'i değerli kılan şeydir. İş eylemlerini tanımlarlar: add_to_cart, start_subscription, level_complete, share_content, search_performed. Özel etkinlikler, uygulama kodundan açıkça gönderilmelidir.
// Firebase'e özel etkinlik gönderme
val bundle = Bundle().apply {
putString(AnalyticsParam.ITEM_ID, "prod_789")
putString(AnalyticsParam.ITEM_NAME, "Premium Subscription")
putString(AnalyticsParam.CURRENCY, "USD")
putDouble(AnalyticsParam.PRICE, 29.99)
putString(AnalyticsParam.SOURCE, "onboarding_screen")
}
FirebaseAnalytics.getInstance(this)
.logEvent("subscribe_premium", bundle)
Örnekte, subscribe_premium etkinliği dört bağlam parametresi içerir. source parametresi, kullanıcının aboneliği hangi ekrandan başlattığını ( onboarding, ayarlar veya paywall) anlamayı sağlar.
Etkinliklerin yanı sıra, Event Tracking User Properties — kullanıcıya bağlı nitelikler (abonelik seviyesi, ülke, uygulama sürümü) içerir. User Property bir kez gönderilir ve oturumun sonraki tüm etkinliklerine uygulanır. Bu, her etkinliğe parametre eklemeden analitiği segmentlere ayırmayı sağlar.
Super Properties (Amplitude) veya Global Properties (Mixpanel), kullanıcıya değil oturuma bağlı niteliklerdir. A/B testleri için kullanılır: variant_id, oturumdaki tüm etkinliklere Super Property olarak eklenir ve analistin kullanıcının hangi grupta olduğunu görmesini sağlar.
Gelir etkinlikleri, işlemleri kaydetmek için ayrı bir sınıftır. Tutar, para birimi ve satın alma türünü (abonelik, tek seferlik satın alma, geri yükleme) içerir. MMP platformları (AppsFlyer, Adjust), ROAS hesaplaması için gelir etkinliklerine ihtiyaç duyar.
Branch (2024) verilerine göre, gelir etkinliklerini MMP'ye doğru şekilde ileten uygulamalar, %25 daha doğru atıf verisi alır ve kampanyaları CPI yerine LTV'ye göre optimize edebilir.
Event Tracking yapılandırması üç aşamada gerçekleşir: etkinlik şeması planlaması, SDK entegrasyonu, veri doğrulaması.
Bir Event Taxonomy belgesi oluşturun — her etkinliği tanımlayan: adı, parametreleri, gönderme tetikleyicisi, sahibi. E-ticaret örneği: order_completed → parametreler: order_id, total_price, items_count, payment_method, shipping_city.
Analitik SDK'sını projeye ekleyin. Firebase Analytics, Amplitude, Mixpanel — her SDK, Application.onCreate() içinde başlatma gerektirir. Flutter için örnek:
import 'package:firebase_analytics/firebase_analytics.dart';
class AnalyticsService {
final _analytics = FirebaseAnalytics.instance();
Future<void> logPurchase({
required String productId,
required double price,
required String currency,
}) async {
await _analytics.logEvent(
name: 'purchase_completed',
parameters: {
'product_id': productId,
'price': price,
'currency': currency,
'timestamp': DateTime.now().millisecondsSinceEpoch,
},
);
}
}
AnalyticsService sınıfı, tüm etkinliklerin gönderimini merkezileştirir. Her yöntem bir iş eylemine karşılık gelir. Bu, aramayı basitleştirir — bir etkinlik gelmezse, kodda yöntem adına göre arama yapılır. Proje ölçeklendikçe yöntem sayısı 50–100'e ulaşabilir, ancak yapı özelliklere göre gruplandırma sayesinde okunabilir kalır.
Firebase DebugView, geliştirici cihazında etkinlikleri gerçek zamanlı olarak görmeyi sağlar. Modu etkinleştirin: adb shell setprop debug.firebase.analytics.app your.package. Tüm etkinlikler 5 saniyeden kısa gecikmeyle Firebase konsolunda görünür.
DebugView'i etkinleştirdikten sonra uygulamayı açın ve bir test senaryosu (kayıt, satın alma, katalog taraması) çalıştırın. Konsolda şunları kontrol edin: tüm etkinlikler gönderildi mi, doğru parametreler iletildi mi, tekrar var mı. Amplitude benzer bir araç sunar — iOS ve Android için Amplitude Debugger.
CI/CD ile otomatik doğrulama bir sonraki kalite seviyesidir. Şemadaki her etkinliğin test çalıştırması sırasında en az bir kez gönderildiğini kontrol eden bir komut dosyası ekleyin. Bu, eksik etkinliklerle sürümlerin yayınlanmasını önler ve QA mühendislerinin zamanından tasarruf sağlar.
Etkinlik adlandırma, Event Tracking'in en hafife alınan yönüdür. Yanlış bir ad, projede 50'den fazla etkinlik olduğunda analitiği işe yaramaz hale getirir.
object_action modelini (küçük harf, snake_case) kullanın: product_added, cart_opened, payment_failed, subscription_cancelled. Nesne varlık, eylem geçmiş zaman fiilidir. Bir cümle gibi okunur: "ürün eklendi", "sepet açıldı".
Boşluk ("Add to Cart"), CamelCase ("AddToCart"), nokta ("add.to.cart"), tire ("add-to-cart") KULLANMAYIN. Çoğu SDK snake_case önerir. UI öğesi adları ("btn_submit_clicked") kullanmayın — etkinlik teknik değil iş odaklı olmalıdır.
Ön ek olarak özellik veya ekran adı ekleyin: onboarding_step_completed, checkout_payment_selected. Bu, raporlarda etkinlikleri işlevselliğe göre filtrelemeyi sağlar.
Parametreler üç türe ayrılır: string (değer), number (toplama için sayı), boolean (bayrak). String parametreler kategorik veriler içerir: ülke, trafik kaynağı, ürün adı. Number parametreler metrikler için kullanılır: fiyat, miktar, süre. Boolean parametreler durumu belirtir: is_trial, is_promo_applied.
Tek bir parametrede nesne veya dizi iletmekten kaçının — analitik platformları bunları ayrıştıramaz. Bir alanda JSON dizisi yerine birden çok düz parametre iletin. Örneğin, items_count_total yerine items_count ve total_price'ı ayrı ayrı iletin.
Event Tracking platformu seçimi, projenin ölçeğine ve ekibe bağlıdır. Farklı seviyelerde üç seçeneği inceleyelim.
Firebase, startuplar için standart seçimdir. Ücretsiz limit 500 farklı event_name, sınırsız parametre sayısı. Özel analitik için BigQuery ile entegrasyon. Dezavantajları: sınırlı segmentasyon, oturumda etkinliklerin otomatik bağlanması yok.
Amplitude, ürün analitiği platformudur. Behavioural Cohorts, Funnel Analysis, Pathfinder'ı destekler. Gerçek etkinliklerin kombinasyonundan sanal etkinlikler oluşturmayı sağlar. Segment aracılığıyla 50'den fazla araçla entegre olur.
Segment, etkinlik yönetimi için bir middleware'dir. Etkinlikleri Segment'e gönderirsiniz, Segment bunları 300'den fazla araca dağıtır. Firebase, Amplitude, Mixpanel, Braze ve Salesforce'un aynı anda kullanıldığı kurumsal ortamlarda kullanışlıdır.
PostHog, kendi Event Tracking'ine sahip açık kaynaklı bir ürün analitiği platformudur. Otomatik etkinlik yakalamayı, oturum kaydını ve özellik bayraklarını destekler. Kendi sunucunuzda dağıtılır, bu GDPR veya hassas verileri olan projeler için kritiktir. ETL hatları için Python uyumlu API sağlar.
Flutter projeleri için flutterfire_analytics + amplitude_flutter eklentisi ile Amplitude önerilir. React Native için — react-native-firebase + mixpanel-react-native.
Sıkça Sorulan Sorular
Optimum aralık, uygulama başına 50–150 etkinliktir. 50'den az — analiz için yeterli veri yok, 150'den fazla — kalite düşer (analistler hepsini takip edemez). MVP için 20–30 temel etkinlik yeterlidir.
Ortalama mobil SDK, etkinlikleri arabelleğe alır ve her 5–30 saniyede bir toplu olarak gönderir. Güvenli limit, cihaz başına dakikada 100 etkinliktir. Fazlası — zayıf bağlantıda veri kaybı riski. Ani artışlar (ör. seviye yükleme) kritik değildir.
Evet, modern SDK'lar ağ olmadığında etkinlikleri yerel depolamada saklar. Bağlantı yenilendiğinde, doğru zaman damgasıyla gönderilir. Firebase 7 güne kadar, Amplitude 30 güne kadar çevrimdışı etkinliği saklar.
Yeni event_name ile yeni bir etkinlik oluşturulur, eskisi geçmiş veriler için kalır. Verileri birleştirmek için BI katmanında (SQL CASE veya gösterge paneli) bir eşleme oluşturun. Mevcut bir etkinlik adını asla değiştirmeyin — geçmişi bozarsınız.
Evet, Event Tracking kişiselleştirmenin temelidir. Etkinlikler gerçek zamanlı olarak filtrelenir: bir kullanıcı product_viewed'ı 3 kez gönderdi ancak satın almadıysa, indirim açılır penceresi gösterin. Amplitude ve Braze, etkinlik tabanlı tetikleyicileri destekler.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun