Playvoi/Playvoi.Client/Assets/ShiroginSDK/Documents/Analytics/AnalyticsService.md

5.5 KiB
Raw Permalink Blame History

📊 ShiroginSDK Analytics System (v1.0.0 Updated)

Firebase • AppsFlyer • Facebook Tam Otomatik Event Forwarding + Çok Katmanlı Servis Mimarisi

Bu doküman, ShiroginSDK v1.0.0 sürümüyle birlikte gelen yeni analiz servis mimarisini açıklar. Yeni sistem, ShiroginServiceRegistry üzerinden otomatik başlatılır ve Firebase, AppsFlyer ve Facebook SDKlarına merkezi olarak bağlanır. Tüm loglama işlemleri event tabanlıdır — geliştirici sadece EventService.Invoke() çağrısı yapar.


🚀 1. Genel Bakış

Yeni analiz sistemi üç ana katmandan oluşur:

  1. EventService (Core) → Oyun içi tüm ShiroginEventsleri yönetir. → AnalyticsService, FirebaseService, AppsFlyerService gibi servislerle otomatik iletişim kurar.

  2. AnalyticsService (Coordinator) → Eventleri dinler, AnalyticsEventMapper üzerinden uygun SDK formatına dönüştürür. → Aktif SDKlara log iletir (FirebaseService, AppsFlyerService, FacebookService).

  3. Platform Servisleri (Backends) → Her SDKya özel bağlantı, initialization ve log gönderim süreçlerini yönetir.

Tüm servisler ShiroginServiceRegistry.InitializeAll() çağrısı ile otomatik olarak başlatılır.


🧩 2. Yeni Servis Mimarisi

🔹 Başlatma (Yeni Sistem)

ShiroginServiceRegistry.InitializeAll();

Bu çağrı aşağıdaki servisleri sırayla oluşturur:

  • EventService → Event iletişimi
  • DataService → Kalıcı veri yönetimi
  • FirebaseService → Firebase Analytics + RemoteConfig
  • AppsFlyerService → AppsFlyer SDK
  • FacebookService → Meta SDK
  • AnalyticsService → Otomatik event yönlendirme

🔹 Örnek Event Akışı

EventService.Invoke(new ShiroginEvents.PurchaseCompletedEvent(product));

Bu çağrıdan sonra sistem sırasıyla:

  1. EventService eventi yakalar.
  2. AnalyticsService event tipini analiz eder.
  3. AnalyticsEventMapper parametreleri uygun SDK formatına çevirir.
  4. FirebaseService, AppsFlyerService ve FacebookService log gönderir.

Tam akış:

[Game Event]
  ↓
EventService
  ↓
AnalyticsService
  ↓
Firebase / AppsFlyer / Facebook

🔥 3. Servis Güncellemeleri

🔸 AnalyticsService

Artık doğrudan ServiceBaseden türetilir ve ServiceLocator üzerinden erişilir. Kendi Initialize() metodunda bağlı SDKları otomatik bulur.

var analytics = ServiceLocator.Get<IAnalyticsService>();
analytics.LogEvent(AnalyticsEventType.Purchase, parameters);

🔸 FirebaseService

Yeni sistemde hem RemoteConfig hem Analytics aynı instance üzerinden yönetilir. Başarılı başlatma sonrası artık FirebaseReadyEvent yayınlanır.

_eventService.Invoke(new ShiroginEvents.FirebaseReadyEvent());

🔸 AppsFlyerService

Tamamen ServiceBase yapısına geçti. Başlatma işlemi otomatik olarak ShiroginServiceRegistry içinde gerçekleşir.

🔸 EventService

Artık SDKnin ana “event bus” yapısıdır. Tüm servisler (Firebase, Ads, IAP, RemoteConfig) kendi eventlerini bu sistem üzerinden yayınlar. Oyun içi tüm veri akışı tek bir hat üzerinden ilerler.


🧠 4. Otomatik Event Forwarding (Yeni)

Yeni versiyonda, AnalyticsEventListener artık doğrudan kullanılmaz. Onun yerine AnalyticsService kendisi EventServicee subscribe olur ve dinleme işlemini merkezi hale getirir.

Örnek:

EventService.Invoke(new ShiroginEvents.AdWatchedEvent("rewarded", true));

→ Otomatik olarak üç platforma log gönderilir.


🧰 5. SDKConfig Entegrasyonu

Yeni SDKConfig sınıfı üzerinden tüm analitik modüller yönetilir:

public bool enableFirebaseAnalytics = true;
public bool enableAppsFlyerAnalytics = true;
public bool enableFacebookAnalytics = true;

Bu alanlar AnalyticsService.Initialize() aşamasında kontrol edilir, aktif olmayan SDKlara log gönderimi yapılmaz.


🧾 6. Örnek Kullanım: Satın Alma Eventi

EventService.Invoke(new ShiroginEvents.PurchaseCompletedEvent("com.game.removeads", 4.99f, "USD"));

Arka planda:

  • AnalyticsServicePurchase eventini tanır.
  • AnalyticsEventMapper → Parametreleri dönüştürür.
  • FirebaseService, AppsFlyerService, FacebookService → Aynı anda log gönderir.
  • FirebaseReadyEvent ve PurchaseLoggedEvent tetiklenir.

⚙️ 7. Güncellenen Özellikler

Yeni Service Registry sistemi (otomatik init & dispose) EventService tabanlı otomatik log forwarding Firebase + AppsFlyer + Facebook tam entegrasyon Async initialization + error fallback Tek config kaynağı (SDKConfig) Event bazlı hata loglama (örneğin NoConnectionEvent, RewardedAdUnavailableEvent)


📘 8. Uyumlu Modüller

Yeni sistem doğrudan şu modüllerle entegre çalışır:

  • IAPService → Satın alma logları
  • AdsService → Ad impression + revenue logları
  • PopupService → UI etkileşimleri
  • RemoteConfigService → Firebase senkronizasyon eventleri

🧠 9. Özet

ShiroginSDK Analytics System v1.0.0 artık tamamen service-driven ve event-driven mimari üzerinde çalışır. Tüm SDKlar ortak bir event hattını kullanır, initialization sırası ShiroginServiceRegistry tarafından yönetilir. Bu yapı hem oyun entegrasyonunu sadeleştirir hem de log takibini merkezi hale getirir.


Prepared by: Emir Han MAMAK

Version: 1.1.0 (2025.12)

Module: ShiroginSDK.Runtime.Services.Implementations.Analytics