Proje: Okul B2B App · Hub: Okul B2B App — Domain

Analytics Event Sistemi

Katmanlar

  1. Firebase Analytics (AnalyticsService.ts) → olayları Firebase’e gönderir
  2. AnalyticsEvents.ts → tip-güvenli event fonksiyonları (tüm domain’ler için)
  3. Customer.io (CustomerIOService.ts) → kullanıcı tanımlama + screen tracking

Event Tipleri

TipInterfaceKullanım
Ekran görüntülemeScreenViewEventHer ekran açılışında
Lead işlemleriLeadEventGörüntüleme, arama, filtre, whatsapp
Galeri işlemleriGalleryEventFotoğraf ekle/sil/sırala
AuthAuthEventGiriş/çıkış/OTP
Firma/OkulOrganizationEventFirma ve okul seçimi
DashboardDashboardEventİstatistik görüntüleme
ProfilProfileEventŞifre değiştirme, bildirim ayarları
HataErrorEventAPI hataları, network hataları
PerformansPerformanceEventApp start, ekran yükleme süresi
İçerikContentEventDuyuru/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.