Tealium AOM Takip Akisi

Versiyon: 4.0 | Guncelleme: 2026-06-11


1. Yonetici Ozeti

PostPaid ana sayfa acildiginda 3 paralel API cagrilir, tumu tamamlaninca (veya timeout olunca) AOM MVA call tetiklenir. 200K gercek kullanici verisiyla toplam sure cihaza gore 3.7s - 7.4s arasi degisir.

Ozet Sureler (200K Kullanici Verisi):

RAM Segmenti Kullanici Payi Dashboard → AOM Request AOM Request → Response Toplam Sure Render Suresi
3-4GB RAM 30.5% 3.9s 3.5s 7.4s 1.8s
4-6GB RAM 26.3% 3.1s 3.0s 6.1s 0.9s
6-8GB RAM 20.6% 2.5s 2.4s 4.9s 0.8s
8-12GB+ RAM 3.0% 1.8s 1.9s 3.7s 0.4s

Kritik Bulgu: Kullanicilarin %56.8'i 3-6GB RAM segmentinde ve ortalama 6.8s yukleme yasiyorlar.


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: Performance tuning 3-4GB ve 4-6GB RAM segmentlerine odaklanmali (%56.8 toplam pazar payi, 6.28M kullanici)


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. Production Performance Data - 200K Kullanici Bazli

7.1 RAM Segmentlerine Gore Detayli Yukleme Sureleri

Dusuk RAM Segment (3-4GB) - 30.5% Kullanici = 3.37M

0ms            3900ms                 7400ms
|               |                      |
Dashboard     AOM Request           AOM Response
Init          Gonderildi            Alindi
              
              [---- 3.5s network ----]
              
              Render: 1.8s (Dashboard componentleri)

Metrikler:

Asamalar Sure
Dashboard acilisi → AOM istegi gonderimi 3.9s
AOM istegi → AOM yaniti 3.5s
Toplam (Dashboard → AOM response) 7.4s
Dashboard komponentlerinin render suresi 1.8s

Karakteristikler:


Orta RAM Segment (4-6GB) - 26.3% Kullanici = 2.91M

0ms         3100ms              6100ms
|            |                   |
Dashboard  AOM Request        AOM Response
Init       Gonderildi         Alindi

           [--- 3.0s network ---]
           
           Render: 0.9s

Metrikler:

Asamalar Sure
Dashboard acilisi → AOM istegi gonderimi 3.1s
AOM istegi → AOM yaniti 3.0s
Toplam (Dashboard → AOM response) 6.1s
Dashboard komponentlerinin render suresi 0.9s

Karakteristikler:


Yuksek RAM Segment (6-8GB) - 20.6% Kullanici = 2.28M

0ms      2500ms           4900ms
|         |                |
Dash    AOM Req         AOM Resp
Init    Gonderildi      Alindi

        [-- 2.4s network --]
        
        Render: 0.8s

Metrikler:

Asamalar Sure
Dashboard acilisi → AOM istegi gonderimi 2.5s
AOM istegi → AOM yaniti 2.4s
Toplam (Dashboard → AOM response) 4.9s
Dashboard komponentlerinin render suresi 0.8s

Karakteristikler:


Premium RAM Segment (8-12GB+) - 3.0% Kullanici = 327K

0ms   1800ms        3700ms
|      |             |
Dash  AOM Req     AOM Resp
Init  Gonderildi  Alindi

      [- 1.9s net -]
      
      Render: 0.4s

Metrikler:

Asamalar Sure
Dashboard acilisi → AOM istegi gonderimi 1.8s
AOM istegi → AOM yaniti 1.9s
Toplam (Dashboard → AOM response) 3.7s
Dashboard komponentlerinin render suresi 0.4s

Karakteristikler:


7.2 Karsilastirma Tablosu (200K Kullanici Production Verisi)

Metric 3-4GB RAM 4-6GB RAM 6-8GB RAM 8-12GB+ RAM
Kullanici Payi 30.5% 26.3% 20.6% 3.0%
Etkilenen Kullanici 3.37M 2.91M 2.28M 327K
Dashboard → AOM Request 3.9s 3.1s 2.5s 1.8s
AOM Request → Response 3.5s 3.0s 2.4s 1.9s
Toplam Dashboard Yukleme 7.4s 6.1s 4.9s 3.7s
Dashboard Render Suresi 1.8s 0.9s 0.8s 0.4s
RAM vs Baseline (8GB+) Fark +100% +65% +32% Baseline

Kritik Cikarimlar:

  1. Dashboard hazirlik suresi RAM ile ters orantili: 3.9s → 1.8s (2.2x fark)
  2. AOM network latency RAM ile ters orantili: 3.5s → 1.9s (1.8x fark) - muhtemelen istek hazirlik + network processing
  3. Render suresi RAM ile ters orantili: 1.8s → 0.4s (4.5x fark) - en buyuk fark burda
  4. %56.8 kullanici 3-6GB segmentinde, ortalama 6.8s yukleme yasiyorlar

7.3 Legacy Test Cihazi Verileri (Referans)

Onceki test cihazlariyla yapilan olcumler (referans amacli):

Metric Device A (Dusuk) Device C (Orta) Device B (Yuksek)
getAppIcons 1463ms 368ms 256ms
getMainPageOffer 1474ms 368ms 275ms
setTobiWelcomeMessage 1473ms 562ms 420ms
AOM request 4395ms 615ms 335ms
Toplam 6913ms 1724ms 794ms

Not: Bu veriler 3 test cihazi bazlidir. Production verileri (Section 7.1-7.2) 200K kullanici bazli olup daha gercekci.


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 3-4GB RAM: Dashboard hazirlik 3.9s + AOM network 3.5s = 7.4s toplam (en buyuk segment)

  3. Bottleneck 4-6GB RAM: Dashboard hazirlik 3.1s + AOM network 3.0s = 6.1s toplam (ikinci buyuk segment)

  4. Render suresi RAM'e cok bagli: 1.8s (dusuk) → 0.4s (yuksek) - 4.5x fark

  5. AOM network latency RAM'e bagli: Muhtemelen dusuk RAM cihazlar istek hazirlik + network processing'de yavasliyor

  6. Toplam yukleme 2x fark: 7.4s (3-4GB) vs 3.7s (8GB+)

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

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

Kritik Path (200K Kullanici Verisi)

3-4GB RAM (30.5% kullanici - EN BUYUK SEGMENT):

Dashboard Init (3.9s) → AOM Network (3.5s) → Render (1.8s) = 7.4s total

4-6GB RAM (26.3% kullanici - IKINCI BUYUK SEGMENT):

Dashboard Init (3.1s) → AOM Network (3.0s) → Render (0.9s) = 6.1s total

6-8GB RAM (20.6% kullanici):

Dashboard Init (2.5s) → AOM Network (2.4s) → Render (0.8s) = 4.9s total

8GB+ RAM (3% kullanici - BASELINE):

Dashboard Init (1.8s) → AOM Network (1.9s) → Render (0.4s) = 3.7s total

Bagimlilik Grafigi:

Dashboard Init
  |
  +---> setTargetTimeoutTimer(2s) ----timeout---+
  |                                             |
  +---> getAppIcons --------+                   |
  +---> getMainPageOffer ---+-- isAllTarget? ---+---> trackAomCall (ilk gelen kazanir)
  +---> setTobiWelcomeMsg --+                   |
                                                |
  isTargetRun = true <--------------------------+

11a. RAM Segmentleri ile Performance Mapping - 200K Kullanici

200K Production Data ile Segment Analizi

RAM Segment Kullanici Payi Kullanici Sayisi Toplam Sure Dashboard → AOM AOM Network Render Optimizasyon Onceligi
3-4GB 30.5% 3.37M 7.4s 3.9s 3.5s 1.8s CRITICAL
4-6GB 26.3% 2.91M 6.1s 3.1s 3.0s 0.9s HIGH
6-8GB 20.6% 2.28M 4.9s 2.5s 2.4s 0.8s MEDIUM
8-12GB+ 3.0% 327K 3.7s 1.8s 1.9s 0.4s LOW

Segment Bazli Akis Analizi (Guncellenmis)

3-4GB RAM Segment - 30.5% Kullanici = 3.37M [EN KRITIK]

Karakteristikler:

Optimizasyon Onerisi (ONCELIKLI):

  1. Dashboard init optimizasyonu: 3.9s → 2.5s (-1.4s)

    • API cagrilarini parallelize et
    • Lazy loading uygula
    • Gereksiz view hierarchy azalt
  2. AOM network iyilestirme: 3.5s → 2.5s (-1.0s)

    • Request payload kucult
    • Gzip compression
    • CDN kullan
  3. Render optimizasyonu: 1.8s → 1.0s (-0.8s)

    • RecyclerView view recycling iyilestir
    • Overdraw azalt
    • Layout hierarchy basitlestir

Hedef: 7.4s → 5.0s (-2.4s, %32 iyilestirme)


4-6GB RAM Segment - 26.3% Kullanici = 2.91M [YUKSEK ONCELIK]

Karakteristikler:

Optimizasyon Onerisi:

  1. Dashboard init: 3.1s → 2.0s (-1.1s)
  2. AOM network: 3.0s → 2.0s (-1.0s)
  3. Render zaten iyi (0.9s)

Hedef: 6.1s → 4.0s (-2.1s, %34 iyilestirme)


6-8GB RAM Segment - 20.6% Kullanici = 2.28M [ORTA ONCELIK]

Karakteristikler:

Optimizasyon Onerisi:

Hedef: 4.9s → 4.0s (-0.9s, %18 iyilestirme)


8-12GB+ RAM Segment - 3.0% Kullanici = 327K [DUSUK ONCELIK]

Karakteristikler:

Optimizasyon Onerisi:


Onem Sirasi (Impact x Frequency x Severity)

Oncelik Segment Kullanici Sure Impact Score Optimizasyon ROI
1 3-4GB RAM 3.37M (30.5%) 7.4s 24,938 En Yuksek
2 4-6GB RAM 2.91M (26.3%) 6.1s 17,751 Yuksek
3 6-8GB RAM 2.28M (20.6%) 4.9s 11,172 Orta
4 8-12GB+ RAM 327K (3.0%) 3.7s 1,210 Dusuk

Impact Score = Kullanici Sayisi × Sure (saniye)

Hedef KPI'lar (RAM Segment Bazli) - Guncellenmis

Segment Mevcut Target Iyilestirme Etkilenen Kullanici Risk
3-4GB RAM 7.4s 5.0s -2.4s (-32%) 3.37M Yuksek
4-6GB RAM 6.1s 4.0s -2.1s (-34%) 2.91M Orta
6-8GB RAM 4.9s 4.0s -0.9s (-18%) 2.28M Dusuk
8-12GB+ RAM 3.7s 3.7s Baseline 327K N/A

Optimizasyon Roadmap

Phase 1 (Q3 2026) - Quick Wins:

Phase 2 (Q4 2026) - Major Improvements:

Phase 3 (Q1 2027) - Polish:


12. Test Stratejisi - RAM Segment Bazli (Guncellenmis)

Cihaz Secimi Kriterleri

Market Coverage: %56.8 kullanici icin 3-6GB cihazlar MANDATORY

Test Onceligi:

Oncelik RAM Segment Cihaz Secimi Kullanici Payi Baseline Sure Target Sure
P0 3-4GB Redmi Note 8, Galaxy A32 30.5% 7.4s 5.0s
P0 4-6GB Pixel 4a, Redmi Note 10 26.3% 6.1s 4.0s
P1 6-8GB Galaxy S20, OnePlus 8 20.6% 4.9s 4.0s
P2 8-12GB+ Pixel 6 Pro, S21 Ultra 3.0% 3.7s 3.7s

Regression Test Checklist (Guncellenmis)

3-4GB RAM Cihazlar (CRITICAL):

4-6GB RAM Cihazlar (HIGH):

6-8GB RAM Cihazlar (MEDIUM):

8-12GB+ RAM Cihazlar (BASELINE):

Performance Testing Tools


13. Sonuc ve Oneri

Mevcut Durum (200K Kullanici Verisi)

Kullanici Dagilimi:

Bottlenecklar:

  1. Dashboard initialization: 1.8s - 3.9s (RAM'e gore)
  2. AOM network latency: 1.9s - 3.5s (RAM'e gore)
  3. UI rendering: 0.4s - 1.8s (RAM'e gore, 4.5x fark)

Oneri ve Aksiyon Plani

Immediate Actions (Sprint 1-2):

  1. 3-4GB segment icin dashboard init optimizasyonu (target: -1.0s)
  2. AOM request payload size reduction (target: -0.5s)
  3. View hierarchy flattening (target: -0.3s)

Short-term (Q3 2026):

  1. API parallelization tam implementasyon
  2. Lazy loading stratejisi
  3. Network optimization (gzip, CDN)

Long-term (Q4 2026 - Q1 2027):

  1. Architectural refactoring (modularization)
  2. Progressive loading implementation
  3. Adaptive performance based on device tier

Success Metrics:


Doküman Sonu