Published on

Firebase analytics: foydalanuvchi harakatlarini kuzatish

Authors

Nega Analytics kerak?

Agar ilovangizda Analytics o'rnatilmagan bo'lsa, siz foydalanuvchilar ilovangizdan qanday foydalanayotganini bilmaysiz. "Bu yangi funksiya odamlarga yoqdimi?", "Qaysi sahifadan ko'p chiqib ketishmoqda?" kabi savollarga faqatgina Analytics orqali javob topish mumkin.

Bundan tashqari, Crashlytics va Analytics birga juda yaxshi ishlaydi. Foydalanuvchida xatolik (crash) yuz bersa, Crashlytics hisobotida o'sha xatolikdan oldin foydalanuvchi qaysi Analytics qadamlarini (event) bajarganini ham ko'rishingiz mumkin bo'ladi.

1. Analytics Menejer yaratish

Barcha analitik so'rovlarni bitta joydan boshqarish uchun AnalyticsManager yaratib olamiz. Bizga FirebaseAnalytics va FirebaseAnalyticsSwift kutubxonalari kerak bo'ladi.

import FirebaseAnalytics
import FirebaseAnalyticsSwift

class AnalyticsManager {
    static let shared = AnalyticsManager()
    private init() {}

    // 1. Foydalanuvchi harakatini (Event) yozib olish
    func logEvent(name: String, params: [String: Any]? = nil) {
        Analytics.logEvent(name, parameters: params)
    }

    // 2. Foydalanuvchi ID sini ulash
    func setUserId(userId: String) {
        Analytics.setUserID(userId)
    }

    // 3. Foydalanuvchining o'ziga xos xususiyatini saqlash
    func setUserProperty(value: String?, property: String) {
        Analytics.setUserProperty(value, forName: property)
    }
}

2. Event va Property farqi

Ilovada ma'lumot jo'natishning 2 xil asosiy turi bor:

  • User Property: Foydalanuvchining o'zgarmas (yoki kam o'zgaruvchi) holati. Masalan: is_premium = true, country = UZ. Firebase bitta loyiha uchun maksimum 25 ta user property yaratishga ruxsat beradi. Shuning uchun faqat eng muhimlarini ishlating. Ular foydalanuvchini segmentlarga (Audience) ajratish uchun ishlatiladi.
  • Event: Foydalanuvchining ma'lum vaqtdagi qisqa harakati. Masalan: button_clicked. Eventlar cheksiz bo'lishi mumkin. Har bir event ichida qoshimcha ma'lumot (parametrlar) yuborish mumkin:
// Tugma bosilganda
AnalyticsManager.shared.logEvent(
    name: "buy_button_clicked",
    params: ["product_name": "iPhone 15", "price": 1000]
)

3. SwiftUI sahifalarini (Screen) kuzatish

Foydalanuvchi qaysi ekranda qancha turganini bilish uchun FirebaseAnalyticsSwift kutubxonasida maxsus SwiftUI modifikatori bor:

struct HomeView: View {
    var body: some View {
        Text("Bosh sahifa")
            // Ushbu sahifa ochilganda avtomatik ravishda Firebase'ga "HomeView" ko'rildi degan log ketadi
            .analyticsScreen(name: "HomeView")
    }
}

4. Standart (Tavsiya etilgan) Eventlar

Firebase'ga xohlagan nom bilan event jo'natish mumkin (mening_maxsus_eventim). Lekin Firebase'ning o'zi tavsiya etgan standart event nomlari bor. Masalan, ro'yxatdan o'tish uchun AnalyticsEventSignUp ni ishlatsangiz, Firebase Console'dagi maxsus "Konversiya" va "Qo'shilishlar" (Acquisition) grafiklari chiroyli va avtomatik tarzda to'lib boradi.

5. Debug Analytics (Real vaqtda tekshirish)

Odatda, siz jo'natgan loglar Firebase Console'da ko'rinishi uchun bir necha soat (ba'zan 24 soatgacha) vaqt ketadi. Dasturlash jarayonida bu juda noqulay.

Loglar darhol (real vaqtda) ishlashini tekshirish uchun Xcode'da Debug View ni yoqish kerak:

  1. Xcode menyusidan Product -> Scheme -> Edit Scheme ni bosing.
  2. Run bo'limida Arguments Passed On Launch qismiga ushbu qatorni qo'shing: -FIRAnalyticsDebugEnabled yoki -FIRDebugEnabled
  3. Shundan so'ng Firebase Console'ning Analytics -> DebugView bo'limiga kirsangiz, siz yozgan eventlar simulyatordan to'g'ridan-to'g'ri, 1 soniya ichida kelib tushayotganini jonli ko'rishingiz mumkin bo'ladi!
Buy mea coffee