Growth 4: Onboarding va Aktivatsiya — Time-to-Value, Drop-off Funnellari va Ruxsatlar Strategiyasi
📈 Growth Engineering
Growth 4: Onboarding va Aktivatsiya — Time-to-Value, Drop-off Funnellari va Ruxsatlar Strategiyasi
Holat: 2026-yil sentabr. Yangi foydalanuvchilarning 70% dan ortig'i birinchi 3 daqiqa ichida ilovani tark etadi. Onboarding — bu shunchaki 3 ta chiroyli rasm (slayd) emas. Bu foydalanuvchini Time-to-Value (birinchi qiymatga yetishish) nuqtasiga eng kam ishqalanish (friction) bilan olib boruvchi muhandislik tizimidir. Ushbu darsda zamonaviy onboarding arxitekturasi va tizim ruxsatlarini olish strategiyalari tahlil qilinadi.
Mundarija
- Onboarding turlari: Slayderlar vs Interaktiv Tanlov (Quiz)
- Time-to-Value (TTV) qisqartirish tamoyillari
- Tizim ruxsatlari (Push, Tracking, Camera): Pre-Permission strategiyasi
- Onboarding Voronkasi (Funnel Drop-off) tahlili
- Swift'da xavfsiz Pre-Permission boshqaruvi
- Amaliy Python: Voronka tahlili va to'siqlarni (Bottlenecks) topish
- Xulosa
- Manbalar
1. Onboarding turlari: Slayderlar vs Interaktiv Tanlov (Quiz) {#turlari}
Ilovalar tajribasida 3 xil onboarding modeli uchraydi:
| Model | Qanday ishlaydi | Konversiya samarasi |
|---|---|---|
| Klassik Slayder (Carousel) | 3 ta rasm va "Keyingi" tugmasi | Eng past (deyarli 0%). Foydalanuvchilar o'qimasdan "O'tkazib yuborish"ni bosadi. |
| Interaktiv Harakat (Learning by doing) | Birinchi vazifani darhol boshlash | Yuqori. Foydalanuvchi ilova vazifasini zudlik bilan tushunadi. |
| Shaxsiylashtirilgan Quiz (Duolingo uslubi) | 3-5 ta savol (maqsadi, darajasi, vaqti) | Eng yuqori. Psixologik jalb etish (Endowed Progress) hisobiga to'lovga tayyorlik oshadi. |
2. Time-to-Value (TTV) qisqartirish tamoyillari {#ttv}
Time-to-Value — ilovani o'rnatgandan boshlab uning asosiy foydasini (Aha moment) his qilguncha ketgan soniyalar miqdori.
TTV'ni kamaytirish qoidalari:
- Majburiy ro'yxatdan o'tishni orqaga surish: Foydalanuvchiga avval mehmon (Guest mode) rejimida ilovani ko'rishga ruxsat bering.
- Sekin-asta to'ldirish (Progressive Profiling): Barcha savollarni bir vaqtda bermasdan, kerak bo'lganda so'rash.
- Muvaffaqiyat tuyg'usi (Endowed Progress Effect): Birinchi qadamni tizimning o'zi bajarib berishi (masalan, "Hisobingiz 25% tayyor!").
3. Tizim ruxsatlari (Push, Tracking, Camera): Pre-Permission strategiyasi {#ruxsatlar}
iOS'da Apple'ning tizim ruxsat dialogi (System Permission Alert) faqat bir marta ko'rsatiladi. Agar foydalanuvchi "Rad etish" (Don't Allow)ni bossa, siz uni qayta ko'rsata olmaysiz — uni faqat sozlamalarga jo'natish qoladi (bu esa 95% konversiya yo'qotilishiga olib keladi).
Pre-Permission (Soft Prompt) Qoidasi:
Tizim dialogidan oldin doimo o'zingizning chiroyli UI ekranchangizni chiqaring:
Sizning Ekranchangiz (Soft Prompt) ──► Foydalanuvchi "Keyinroq" dedi ──► Tizim dialogi ko'rsatilmaydi! (Zaxirada qoladi)
│
▼
Foydalanuvchi "Ha, xabardor qiling" dedi ──► Apple Tizim Dialogi ──► 85%+ Konversiya!
4. Onboarding Voronkasi (Funnel Drop-off) tahlili {#funnel}
Har bir ekranga telemetriya hodisasi qo'yiladi:
onboarding_step_1_viewedonboarding_step_2_quiz_answeredonboarding_step_3_push_promptonboarding_completed
Eng ko'p foydalanuvchi yo'qotilayotgan (drop-off) qadam asosiy diqqat markazida bo'ladi.
5. Swift'da xavfsiz Pre-Permission boshqaruvi {#swift-permission}
import UserNotifications
import UIKit
@MainActor
public final class NotificationPermissionService {
public static let shared = NotificationPermissionService()
public func requestPushNotification() async -> Bool {
let center = UNUserNotificationCenter.current()
do {
let granted = try await center.requestAuthorization(options: [.alert, .sound, .badge])
return granted
} catch {
return false
}
}
}
6. Amaliy Python: Voronka tahlili va to'siqlarni (Bottlenecks) topish {#python-funnel}
Quyidagi skript har bir onboarding qadamidagi drop-off (yo'qotish) ko'rsatkichini hisoblab beradi:
def analyze_funnel(steps):
print("Onboarding voronkasi tahlili:")
initial_users = steps[0][1]
for i in range(len(steps) - 1):
step_name, current_count = steps[i]
next_name, next_count = steps[i+1]
conversion = (next_count / current_count) * 100
overall_conversion = (next_count / initial_users) * 100
drop_off = 100 - conversion
print(f" {step_name} -> {next_name}:")
print(f" Konversiya: {conversion:.1f}% | Yo'qotish (Drop-off): {drop_off:.1f}% | Jami: {overall_conversion:.1f}%")
funnel_data = [
("1. Welcome Ekrani", 10000),
("2. Maqsadni Tanlash", 8200),
("3. Push Ruxsatini So'rash", 4100), # Eng katta to'siq (50% drop-off!)
("4. Birinchi Darsni Boshlash", 3800)
]
analyze_funnel(funnel_data)
7. Xulosa {#xulosa}
- Zerikarli slayderlarni olib tashlang va foydalanuvchini interaktiv savollar orqali jalb qiling.
- Tizim ruxsatlarini to'g'ridan-to'g'ri chaqirmang — Soft Prompt orqali birinchi bo'lib qiymatni tushuntiring.
- Voronka tahlili orqali eng ko'p odam chiqib ketayotgan to'siqni topib, tajribalar o'tkazing.