Proje: Okul B2B App · Hub: Okul B2B App — Domain
Analytics Event Sistemi
Katmanlar
- Firebase Analytics (
AnalyticsService.ts) → olayları Firebase’e gönderir - AnalyticsEvents.ts → tip-güvenli event fonksiyonları (tüm domain’ler için)
- Customer.io (
CustomerIOService.ts) → kullanıcı tanımlama + screen tracking
Event Tipleri
| Tip | Interface | Kullanım |
|---|---|---|
| Ekran görüntüleme | ScreenViewEvent | Her ekran açılışında |
| Lead işlemleri | LeadEvent | Görüntüleme, arama, filtre, whatsapp |
| Galeri işlemleri | GalleryEvent | Fotoğraf ekle/sil/sırala |
| Auth | AuthEvent | Giriş/çıkış/OTP |
| Firma/Okul | OrganizationEvent | Firma ve okul seçimi |
| Dashboard | DashboardEvent | İstatistik görüntüleme |
| Profil | ProfileEvent | Şifre değiştirme, bildirim ayarları |
| Hata | ErrorEvent | API hataları, network hataları |
| Performans | PerformanceEvent | App start, ekran yükleme süresi |
| İçerik | ContentEvent | Duyuru/etkinlik/başarı işlemleri |
Kullanım Pattern’i
import { trackLeadEvent, trackGalleryEvent } from '@/services/AnalyticsEvents';
// Her önemli user action'da
await trackLeadEvent('view', { lead_id: id });
await trackGalleryEvent('add_photo', { school_id: schoolId });Gizlilik Kontrolü
privacyManager.isAnalyticsEnabled() kontrol edilir. Kullanıcı analytics consent vermemişse event’ler gönderilmez. PrivacyEvent ile consent durumu takip edilir.
Customer.io Ekstra
Customer.io her ekran değişikliğinde _last_visit attribute’unu günceller. Bu B2B müşteri aktivite takibi için kullanılır.
ZORUNLU: Yeni Feature’larda Event
Her yeni özellik veya CRUD işlemi eklerken AnalyticsEvents.ts’e yeni interface eklenmeli ve ilgili track*Event() çağrıları yapılmalı. Bu CLAUDE.md’de zorunlu olarak belirtilmiştir.
Related
- auth-akisi — auth event’leri
- leads-basvu-yonetimi — lead event’leri
- galeri-yonetimi — galeri event’leri