Azimjon Abdurasulov

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

  1. Onboarding turlari: Slayderlar vs Interaktiv Tanlov (Quiz)
  2. Time-to-Value (TTV) qisqartirish tamoyillari
  3. Tizim ruxsatlari (Push, Tracking, Camera): Pre-Permission strategiyasi
  4. Onboarding Voronkasi (Funnel Drop-off) tahlili
  5. Swift'da xavfsiz Pre-Permission boshqaruvi
  6. Amaliy Python: Voronka tahlili va to'siqlarni (Bottlenecks) topish
  7. Xulosa
  8. Manbalar

1. Onboarding turlari: Slayderlar vs Interaktiv Tanlov (Quiz) {#turlari}

Ilovalar tajribasida 3 xil onboarding modeli uchraydi:

ModelQanday ishlaydiKonversiya samarasi
Klassik Slayder (Carousel)3 ta rasm va "Keyingi" tugmasiEng past (deyarli 0%). Foydalanuvchilar o'qimasdan "O'tkazib yuborish"ni bosadi.
Interaktiv Harakat (Learning by doing)Birinchi vazifani darhol boshlashYuqori. 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:

  1. Majburiy ro'yxatdan o'tishni orqaga surish: Foydalanuvchiga avval mehmon (Guest mode) rejimida ilovani ko'rishga ruxsat bering.
  2. Sekin-asta to'ldirish (Progressive Profiling): Barcha savollarni bir vaqtda bermasdan, kerak bo'lganda so'rash.
  3. 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_viewed
  • onboarding_step_2_quiz_answered
  • onboarding_step_3_push_prompt
  • onboarding_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.

8. Manbalar {#manbalar}

  1. Reforge — The Three Types of Onboarding
  2. Apple Human Interface Guidelines — Requesting Permissions
  3. Nielsen Norman Group — Mobile Onboarding Design

Markdown manba

iOS Lessons