Session dalam analitik mobile adalah periode interaksi berkelanjutan pengguna dengan aplikasi, yang dibatasi waktu. Metrik ini berfungsi sebagai dasar untuk menghitung retensi, keterlibatan, dan LTV. Menurut data Adjust, 2025, panjang median sesi dalam aplikasi adalah 4–7 menit, tetapi sangat bervariasi antar kategori. Memahami metrik sesi sangat penting untuk menilai kualitas pengalaman pengguna.
Poin Utama
Sesi adalah periode waktu di mana pengguna berinteraksi secara aktif dengan aplikasi. Sesi dimulai dari saat membuka aplikasi (atau kembali dari latar belakang) dan berakhir setelah periode tidak aktif atau penutupan.
Platform analitik yang berbeda mendefinisikan batas sesi secara berbeda. Firebase Analytics menganggap sesi selesai setelah 30 menit tidak aktif, AppsFlyer — setelah 60 menit, Amplitude — setelah 5 menit atau dengan peristiwa session_end. Tidak ada standar tunggal.
Metrik berbasis sesi menjadi dasar untuk menghitung retensi (Retention Rate), kedalaman keterlibatan (Stickiness Ratio) dan distribusi pengguna berdasarkan frekuensi penggunaan (Session Frequency). Tanpa definisi sesi yang benar, semua metrik turunan akan salah.
Menurut data Mixpanel (2024), aplikasi yang meningkatkan Session Duration sebesar 15% menunjukkan pertumbuhan LTV sebesar 22% dalam satu kuartal. Ini adalah korelasi langsung antara waktu dalam aplikasi dan monetisasi.
Pengukuran sesi didasarkan pada peristiwa siklus hidup aplikasi: open (session_start) dan close (session_end). Di antara keduanya, semua tindakan pengguna dicatat.
// Pelacak sesi paling sederhana untuk Android
class SessionTracker {
private var sessionStart: Long = 0L
private val SESSION_TIMEOUT = 30 * 60 * 1000L
fun onAppOpened() {
sessionStart = System.currentTimeMillis()
Analytics.logEvent("session_start")
}
fun onAppClosed() {
val duration = System.currentTimeMillis() - sessionStart
Analytics.logEvent("session_end") {
param("duration_ms", duration)
}
}
fun isNewSession(lastActive: Long): Boolean {
return (System.currentTimeMillis() - lastActive) > SESSION_TIMEOUT
}
}
Kode melacak awal dan akhir sesi melalui callback sistem. Parameter SESSION_TIMEOUT (30 menit) menentukan kapan kembali dari latar belakang dianggap sebagai sesi baru, bukan kelanjutan dari sesi sebelumnya.
| Platform | Timeout sesi | Cara penentuan |
|---|---|---|
| Firebase Analytics | 30 menit | Otomatis, tanpa kustomisasi |
| Amplitude | 5 menit (default) | Dapat dikonfigurasi melalui SDK |
| AppsFlyer | 60 menit | Interval tetap |
| Mixpanel | 30 menit | Dapat dikonfigurasi melalui opsi minimumSessionDuration |
| Adjust | 60 menit | Otomatis, terikat pada siklus hidup |
Pilihan timeout mempengaruhi metrik: timeout pendek (5 menit) menciptakan lebih banyak sesi, timeout panjang (60 menit) — menggabungkan interaksi. Yang paling penting — tetapkan aturan dan jangan mengubahnya saat membandingkan periode.
Analisis sesi didasarkan pada empat metrik dasar. Masing-masing mengungkapkan aspek tertentu dari perilaku pengguna.
Durasi sesi — waktu rata-rata yang dihabiskan pengguna dalam aplikasi per kunjungan. Untuk aplikasi berita normanya 2–4 menit, untuk game — 8–15 menit, untuk layanan streaming — 20+ menit. Jika Session Duration menurun, ini adalah sinyal masalah dengan konten atau kinerja.
Interval antar sesi — waktu antara akhir sesi sebelumnya dan awal sesi berikutnya. Interval pendek (menit atau jam) menunjukkan keterlibatan tinggi. Interval panjang (hari) — minat rendah atau skenario utilitas di mana aplikasi jarang dibutuhkan.
Jumlah sesi per pengguna dalam suatu periode (hari, minggu, bulan) — indikator Stickiness. Rumus: DAU / MAU (Day Active Users / Monthly Active Users). Nilai di atas 20% dianggap baik, di atas 50% — sangat baik untuk sebagian besar kategori aplikasi.
Kedalaman sesi — jumlah layar atau tindakan dalam satu sesi. Menunjukkan seberapa dalam pengguna masuk ke dalam fungsionalitas aplikasi. Kedalaman rendah dengan durasi tinggi menunjukkan masalah navigasi.
Perbedaan platform dalam siklus hidup aplikasi secara langsung mempengaruhi definisi sesi. iOS dan Android menangani status latar belakang dan notifikasi secara berbeda.
Di Android, sesi dimulai saat pemanggilan onStart() Activity pertama dan berakhir pada onStop() Activity terakhir. Namun, sistem dapat mematikan proses di latar belakang, yang secara salah mengakhiri sesi. Disarankan menggunakan Application.ActivityLifecycleCallbacks untuk pelacakan yang andal.
class AnalyticsApp : Application() {
private var activityReferences = 0
override fun onCreate() {
super.onCreate()
registerActivityLifecycleCallbacks(object : ActivityLifecycleCallbacks {
override fun onActivityStarted(act: Activity) {
if (++activityReferences == 1) {
Analytics.trackSessionStart()
}
}
override fun onActivityStopped(act: Activity) {
if (--activityReferences == 0) {
Analytics.trackSessionEnd()
}
}
})
}
}
Penghitung activityReferences menentukan apakah pengguna melihat setidaknya satu layar. Ketika aktivitas menjadi 0 — aplikasi telah masuk ke latar belakang, sesi berakhir.
Di iOS, sesi terikat pada metode applicationDidBecomeActive dan applicationDidEnterBackground. Notifikasi klik pada pemberitahuan push dapat secara artifisial meningkatkan penghitung sesi — ini harus diperhitungkan dalam analitik.
Contoh Swift:
import UIKit
class AppDelegate: UIResponder, UIApplicationDelegate {
func applicationDidBecomeActive(_ application: UIApplication) {
Analytics.trackSessionStart()
}
func applicationDidEnterBackground(_ application: UIApplication) {
Analytics.trackSessionEnd()
}
}
Perhatikan: di iOS, beralih antar aplikasi (App Switcher) tidak mengakhiri sesi — hanya masuk ke latar belakang dalam atau geser untuk menutup.
Analisis sesi melampaui penghitungan sederhana. Segmentasi dan analisis kohort mengungkapkan pola keterlibatan yang tidak terlihat dalam data agregat.
Kelompokkan pengguna berdasarkan minggu instalasi dan lihat jumlah rata-rata sesi dalam 7 hari pertama. Jika pada kohort instalasi terbaru Sessions Per User lebih rendah daripada yang lebih lama, ini adalah sinyal penurunan kualitas onboarding atau kualitas traffic.
Anomali dalam metrik sesi adalah indikator awal masalah. Lonjakan tiba-tiba Sesi Pendek (hingga 5 detik) setelah rilis menunjukkan bug saat startup. Penurunan Session Duration sebesar 30% dalam sehari — kemungkinan gangguan server atau perubahan API. Konfigurasikan pemantauan dengan ambang batas: jika rata-rata Session Duration turun lebih dari 2 standar deviasi dari rata-rata bergerak 7 hari — peringatan dalam sistem.
Gunakan segmentasi berdasarkan versi aplikasi dalam laporan sesi. Versi 3.2.0 menunjukkan Session Duration 4 menit, versi 3.2.1 — 2 menit. Penyebab — perubahan dalam onboarding. Pengembalian versi memulihkan metrik. Tanpa segmentasi versi, Anda akan melihat penurunan rata-rata tetapi tidak menemukan penyebabnya.
Power Users (5+ sesi per hari) — audiens kunci Anda. Casual Users (1–2 sesi per minggu) — grup untuk reaktivasi. Dormant Users (0 sesi dalam 30 hari) — kandidat untuk retargeting atau berhenti berlangganan notifikasi push.
Untuk setiap segmen, hitung metrik terpisah: Session Duration untuk Power Users akan menunjukkan kedalaman penggunaan, dan untuk Casual — hambatan masuk. Menurut data Amplitude (2024), aplikasi yang mempersonalisasi konten berdasarkan segmen sesi meningkatkan Session Duration rata-rata 18% per bulan.
Retensi dihitung melalui sesi: pengguna dipertahankan pada Hari N jika ia memiliki setidaknya satu sesi. Namun, produk yang berbeda memerlukan definisi yang berbeda. Untuk jejaring sosial, sesi bisa 1 detik (hanya membuka untuk memeriksa notifikasi), untuk layanan streaming — 15 menit.
Gunakan sesi uninstall sebagai indikator kualitas: jika setelah pembaruan jumlah sesi pendek (kurang dari 10 detik) meningkat, pengguna tidak menemukan fungsionalitas yang diperlukan. Ini adalah sinyal awal masalah UX sebelum peningkatan uninstall.
Hubungkan sesi dengan sumber traffic: pengguna dari saluran berbayar harus memiliki lebih banyak sesi dan Session Duration yang lebih besar. Jika traffic organik menunjukkan Session Duration 40% lebih tinggi daripada yang berbayar, masalahnya ada pada kualitas penargetan. Atribusi sesi membantu mengoptimalkan anggaran akuisisi.
Pertanyaan Umum
Rata-rata durasi sesi tergantung pada kategori: game — 8–15 menit, media sosial — 5–10 menit, utilitas — 1–3 menit. Tren lebih penting: jika Session Duration turun 20% dalam sebulan, diperlukan audit UX.
Banyak SDK analitik tidak mencatat peristiwa akhir saat diminimalkan — mereka menunggu timeout. Jika pengguna meminimalkan aplikasi selama 1 menit dan kembali, ini dihitung sebagai satu sesi. Hanya setelah timeout (30–60 menit) sesi baru dimulai.
Retensi pengguna pada Hari N dihitung sebagai proporsi penginstal yang memiliki setidaknya satu sesi pada hari itu. Jika sesi tidak dilacak dengan benar, retensi akan secara sistematis diremehkan atau dilebih-lebihkan.
Ya, aktivitas latar belakang (pemutaran musik, navigasi, sinkronisasi) dapat menjaga aplikasi tetap aktif. Lebih baik memisahkan sesi latar depan (pengguna melihat layar) dari sesi prosesor (kerja latar belakang tanpa antarmuka).
Untuk layanan berlangganan (streaming, kebugaran, pendidikan) disarankan timeout 5–10 menit. Pengguna sering kembali setelah jeda singkat — dan setiap jeda harus dihitung sebagai sesi baru agar tidak mendistorsi Session Duration.
Kesimpulan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga