Versiyon: 3.1 | Guncelleme: 2026-05-18
PostPaid ana sayfa acildiginda 3 paralel API cagrilir, tumu tamamlaninca (veya timeout olunca) AOM MVA call tetiklenir. Toplam sure cihaza gore 794ms - 6913ms arasi degisir.
Ozet Sureler:
| Cihaz | Toplam Sure | AOM Request |
|---|---|---|
| Yuksek RAM (Device B) | 794ms | 335ms |
| Orta RAM (Device C) | 1724ms | 615ms |
| Dusuk RAM (Device A) | 6913ms | 4395ms |
Global Installation Base: 11.06 Milyon Kullanici (1,379 farkli cihaz modeli)
| RAM Grubu | Cihaz Sayisi | Toplam Kullanici | Kullanici Payi | Ort. per Model |
|---|---|---|---|---|
| ≤2GB | 158 | 513,954 | 4.6% | 3,252 |
| 2-3GB | 194 | 1,634,190 | 14.8% | 8,423 |
| 3-4GB | 431 | 3,370,668 | 30.5% | 7,820 |
| 4-5GB | 7 | 25,573 | 0.2% | 3,653 |
| 5-6GB | 239 | 2,912,495 | 26.3% | 12,186 |
| 6-8GB | 288 | 2,278,809 | 20.6% | 7,912 |
| 8-12GB | 59 | 327,084 | 3.0% | 5,543 |
| >12GB | 3 | 1,106 | 0.0% | 368 |
Sonuc: AOM tuning ve performance testing 3-4GB ve 5-6GB cihazlar uzerinde yapilmali (56.8% pazar payi)
+--------------------------------------------+
| Yanimda App |
| |
| +--------------------------------------+ |
| | PostPaidHomeActivity (UI) | |
| | - LiveData observe | |
| | - setTargetTimeoutTimer (2s guard) | |
| | - AOM_MVA confirmation | |
| +------------------+-------------------+ |
| v |
| +--------------------------------------+ |
| | PostPaidHomeViewModel | |
| | - isTargetRun (guard flag) | |
| | - isAllTargetDataEnabled() | |
| | - triggerTargetTimeout | |
| +------------------+-------------------+ |
| v |
| +--------------------------------------+ |
| | HomePageResponseState (State) | |
| | - postValue() [thread-safe bridge] | |
| +------------------+-------------------+ |
| v |
| +--------------------------------------+ |
| | TealiumHelper (SDK Wrapper) | |
| | - trackView() - HTTP POST | |
| | - homeRemoteCommand callback | |
| +------------------+-------------------+ |
| v |
| +--------------------------------------+ |
| | Tealium SDK | |
| +------------------+-------------------+ |
+---------------------+----------------------+
v
+---------------------+
| Tag Management |
| Server |
+---------------------+
ViewModel init'te 3 API ayni anda tetiklenir:
| API | Gorev |
|---|---|
| getAppIcons | Icon change response |
| getMainPageOffer | MCCM main page offer |
| setTobiWelcomeMessage | Tobi welcome message |
Her API response geldiginde ViewModel'e postValue yapilir.
Iki yoldan biri ilk olan kazanir:
Yol A - Normal: Tum API'ler tamamlanir (isAllTargetDataEnabled = true)
Yol B - Timeout: 2s dolar, API'ler hala gelmemis
| # | API | Tip | Tetikleyici | Timeout Guard |
|---|---|---|---|---|
| 1 | getAppIcons | REST | ViewModel init | 2s timer |
| 2 | getMainPageOffer | REST | ViewModel init | 2s timer |
| 3 | setTobiWelcomeMessage | REST | ViewModel init | 2s timer |
| 4 | fetch_aom (AOM MVA CALL) | Tealium trackView | Tum API complete VEYA timeout | - |
| 5 | homeRemoteCommand | Tealium Remote Cmd | Server response | - |
| 6 | aom_mva (AOM MVA RESPONSE) | Tealium trackView | Remote cmd response | - |
0ms 350ms 1813ms 1825ms 2518ms 6913ms
| | | | | |
Init APIs Icons Tobi AOM Call AOM Response
Start +Offer Done
| Metric | Sure |
|---|---|
| getAppIcons | 1463ms |
| getMainPageOffer | 1474ms |
| setTobiWelcomeMessage | 1473ms |
| AOM request | 4395ms |
| Toplam | 6913ms |
0ms 33ms 289ms 453ms 459ms 794ms
| | | | | |
Init APIs Icons Tobi AOM AOM
Start +Offer Done Call Response
| Metric | Sure |
|---|---|
| getAppIcons | 256ms |
| getMainPageOffer | 275ms |
| setTobiWelcomeMessage | 420ms |
| AOM request | 335ms |
| Toplam | 794ms |
0ms 485ms 522ms 890ms 1084ms 1109ms 1724ms
| | | | | | |
App Dash APIs Icons Tobi AOM AOM
Init Init Start +Offer Done Call Response
| Metric | Sure |
|---|---|
| app_to_dashboard_ms | 485ms |
| getAppIcons | 368ms |
| getMainPageOffer | 368ms |
| setTobiWelcomeMessage | 562ms |
| AOM request | 615ms |
| Toplam (dashboard journey) | 1239ms |
| Toplam (app init) | 1724ms |
| Metric | Dusuk RAM | Orta RAM | Yuksek RAM |
|---|---|---|---|
| API baslangic gecikmesi | 350ms | 37ms | 33ms |
| getAppIcons | 1463ms | 368ms | 256ms |
| getMainPageOffer | 1474ms | 368ms | 275ms |
| setTobiWelcomeMessage | 1473ms | 562ms | 420ms |
| AOM request | 4395ms | 615ms | 335ms |
| Toplam | 6913ms | 1724ms | 794ms |
| Timeout (2s) tetiklendi mi? | EVET | Hayir | Hayir |
Akis:
Guard Mekanizmasi:
isTargetRun = false (baslangic)
|
+--> Normal path tetiklerse -> isTargetRun = true -> Timer artik skip
|
+--> Timer tetiklerse -> isTargetRun = true -> Observer artik skip
| Ozellik | Deger |
|---|---|
| Event type | view |
| Tetikleyici | Tum API response VEYA 2s timeout |
| Guard | isTargetRun == false |
| Data | getTealiumData() veya null |
| Ozellik | Deger |
|---|---|
| Event type | view |
| Tetikleyici | Remote command response |
| Data | page_name, session_id, container_name, offer JSON, source |
| Timer | Sure | Kaynak | Amac | Fail Davranisi |
|---|---|---|---|---|
| setTargetTimeoutTimer | 2000ms (default) | ConfigManager.mccmTobiTargetData.timeoutDuration | API'ler gelmezse zorla AOM call | Partial data veya null ile devam |
| SDK Init | ~33-485ms | Jetpack Startup | SDK hazir olmasi | AOM call gecikir |
| fetch_aom Network | 8s | Tealium SDK | Server response | Timeout, no response |
| Target Offer Delay | 0-1000ms | Remote config | UI settle | Hemen goster |
setTargetTimeoutTimer detay:
ConfigManager.getConfig().mccmTobiTargetData.timeoutDurationHomeConstants.TARGET_DELAY = 2000LRace condition yonetimi: isTargetRun flag ile timer ve observer arasinda sadece ilk tetiklenen kazanir
Bottleneck dusuk RAM: API response'lar 1.4-1.5s suruyor (timeout tetiklenir)
Bottleneck yuksek/orta RAM: setTobiWelcomeMessage en yavas API (420-562ms)
Timeout onemli: Dusuk RAM cihazlarda 2s timeout olmasa AOM call 2.5s'de olur (API'ler 1.8s'de tamamlaniyor)
AOM request sureleri: 335ms (hizli) - 4395ms (yavas) arasi - buyuk fark network/server load kaynakli
Thread-safe: Remote command [IO] - postValue() - Observer [Main]
Priority: Tealium > API (remote command data varsa override eder)
Dashboard Init -> setTobiWelcomeMessage (562ms) -> AOM Call (615ms) = 1177ms
Dashboard Init -> Timer (2000ms) -> AOM Call (4395ms) = 6395ms
Bagimlilik Grafigi:
Dashboard Init
|
+---> setTargetTimeoutTimer(2s) ----timeout---+
| |
+---> getAppIcons --------+ |
+---> getMainPageOffer ---+-- isAllTarget? ---+---> trackAomCall (ilk gelen kazanir)
+---> setTobiWelcomeMsg --+ |
|
isTargetRun = true <--------------------------+
Uygulamamizda 3 test cihazi kullanarak yapilan zaman olcumlerinin pazar payina mapplenmesi:
| RAM Segment | Test Cihazi | % Pazar Payi | Toplam Sure | Timeout Tetikle? | Etkilenen Kullanici |
|---|---|---|---|---|---|
| Dusuk RAM (≤3GB) | Device A | 19.4% | 6913ms | EVET | 2.14M (+12.8MB data) |
| Orta RAM (4-6GB) | Device C | 56.8% | 1724ms | Hayir | 6.31M (optimal) |
| Yuksek RAM (6GB+) | Device B | 23.6% | 794ms | Hayir | 2.61M (en hizli) |
Karakteristikler:
Optimizasyon Onerisi:
Karakteristikler:
Kritik Path: setTobiWelcomeMessage (562ms) + AOM request (615ms) = 1177ms
Optimizasyon Onerisi:
Karakteristikler:
Durumu: Optimal performance - herhangi bir optimizasyon gerekmez
| Segment | Gunluk Etkilenen | Target Time | Margin | Risk |
|---|---|---|---|---|
| Dusuk RAM | 5,850 user/gun (19.4%) | 5s | +1s buffer | Yuksek (timeout sik) |
| Orta RAM | 17,300 user/gun (56.8%) | <1s | ±100ms | Orta |
| Yuksek RAM | 7,150 user/gun (23.6%) | <500ms | N/A | Dusuk |
Market Coverage: 56.8% kullanici icin 4-6GB cihaz=MANDATORY
Emulator Talimatlar:
| RAM Segment | Test Cihazi | API Sure | AOM Sure | Not |
|---|---|---|---|---|
| Dusuk RAM (≤3GB) | 3GB Emulator | ~1400ms | Timeout → 4400ms | Network gecikme simulatoru kullan |
| Orta RAM (4-6GB) | Nexus 5X, Pixel 4a | ~400-550ms | ~600ms | Gunluk test cihazi |
| Yuksek RAM (6GB+) | Pixel 6+, S21+ | 250-300ms | 300-350ms | Baseline (reference) |