Tealium AOM Takip Akisi

Versiyon: 3.1 | Guncelleme: 2026-05-18


1. Yonetici Ozeti

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

1a. Uygulama Kullanici Tabani - RAM Dagilimi

Global Installation Base: 11.06 Milyon Kullanici (1,379 farkli cihaz modeli)

RAM Grubu Bazli Dagilim

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

Tespit Edilen Segments

Sonuc: AOM tuning ve performance testing 3-4GB ve 5-6GB cihazlar uzerinde yapilmali (56.8% pazar payi)


2. Architecture Overview - Component Diagram

+--------------------------------------------+
|            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              |
           +---------------------+

3. Business Sequence Diagram

[Diagram]

4. Business Flow Chart

[Diagram]

5. Yukleme Fazlari

Faz 1: Dashboard Init

Faz 2: Paralel API Cagrilari

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.

Faz 3: Karar Noktasi (Race Condition)

Iki yoldan biri ilk olan kazanir:

Yol A - Normal: Tum API'ler tamamlanir (isAllTargetDataEnabled = true)

Yol B - Timeout: 2s dolar, API'ler hala gelmemis

Faz 4: AOM Response


6. API Envanteri

# 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 -

7. API Response Sureleri - Cihaz Bazli Production Verisi

Device A - Dusuk RAM

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

Device B - Yuksek RAM

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

Device C - Orta RAM

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

Karsilastirma Tablosu

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

8. Tealium Target Entegrasyon Akisi

Akis:

  1. Dashboard init - startAomMva() cagirilir
  2. Timer baslar - setTargetTimeoutTimer(2000ms veya config'den)
  3. 3 API paralel tetiklenir - ViewModel init icinde
  4. Her response gelince - ViewModel LiveData gunceller
  5. Karar noktasi:
    • isAllTargetDataEnabled() == true VE isTargetRun == false → Normal akis
    • Timer dolarsa VE isTargetRun == false → Timeout akis
  6. isTargetRun = true - Sadece 1 kez calisir (guard)
  7. trackAomCall() - TealiumHelper.trackView("aom_mva") + markAomCall()
  8. Server response - homeRemoteCommand callback - markAomResponse()

Guard Mekanizmasi:

isTargetRun = false (baslangic)
  |
  +--> Normal path tetiklerse -> isTargetRun = true -> Timer artik skip
  |
  +--> Timer tetiklerse -> isTargetRun = true -> Observer artik skip

9. Tealium Event Envanteri

fetch_aom (AOM MVA CALL)

Ozellik Deger
Event type view
Tetikleyici Tum API response VEYA 2s timeout
Guard isTargetRun == false
Data getTealiumData() veya null

aom_mva (AOM MVA RESPONSE)

Ozellik Deger
Event type view
Tetikleyici Remote command response
Data page_name, session_id, container_name, offer JSON, source

10. Delay and Timer Envanteri

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:


11. Mimari Notlar ve Cikarimlar

  1. Race condition yonetimi: isTargetRun flag ile timer ve observer arasinda sadece ilk tetiklenen kazanir

  2. Bottleneck dusuk RAM: API response'lar 1.4-1.5s suruyor (timeout tetiklenir)

  3. Bottleneck yuksek/orta RAM: setTobiWelcomeMessage en yavas API (420-562ms)

  4. Timeout onemli: Dusuk RAM cihazlarda 2s timeout olmasa AOM call 2.5s'de olur (API'ler 1.8s'de tamamlaniyor)

  5. AOM request sureleri: 335ms (hizli) - 4395ms (yavas) arasi - buyuk fark network/server load kaynakli

  6. Thread-safe: Remote command [IO] - postValue() - Observer [Main]

  7. Priority: Tealium > API (remote command data varsa override eder)

Kritik Path (Orta RAM)

Dashboard Init -> setTobiWelcomeMessage (562ms) -> AOM Call (615ms) = 1177ms

Kritik Path (Dusuk RAM - timeout tetiklenir)

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 <--------------------------+

11a. RAM Segmentleri ile Performance Mapping

Gozlemler vs. Market Distribution

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)

Segment Bazli Akis Analizi

Dusuk RAM Segment (≤3GB) - 19.4% Kullanici = 2.14M

Karakteristikler:

Optimizasyon Onerisi:

Orta RAM Segment (4-6GB) - 56.8% Kullanici = 6.31M [HEDEF]

Karakteristikler:

Kritik Path: setTobiWelcomeMessage (562ms) + AOM request (615ms) = 1177ms

Optimizasyon Onerisi:

Yuksek RAM Segment (6GB+) - 23.6% Kullanici = 2.61M

Karakteristikler:

Durumu: Optimal performance - herhangi bir optimizasyon gerekmez

Hedef KPI'lar (RAM Segment Bazli)

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

Onem Sirasi (Impact x Frequency)

  1. Orta RAM (4-6GB): 56.8% × 1724ms = Yuksek impact, cok sik
  2. Dusuk RAM (≤3GB): 19.4% × 6913ms = Cok yuksek impact, sik
  3. Yuksek RAM (6GB+): 23.6% × 794ms = Dusuk impact, az etkili

12. Test Stratejisi - RAM Segment Bazli

Cihaz Secimi Kriterleri

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)

Regression Test Checklist