- Published on
Firebase analytics: foydalanuvchi harakatlarini kuzatish
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
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:
- Xcode menyusidan
Product -> Scheme -> Edit Schemeni bosing. Runbo'limidaArguments Passed On Launchqismiga ushbu qatorni qo'shing:-FIRAnalyticsDebugEnabledyoki-FIRDebugEnabled- Shundan so'ng Firebase Console'ning
Analytics -> DebugViewbo'limiga kirsangiz, siz yozgan eventlar simulyatordan to'g'ridan-to'g'ri, 1 soniya ichida kelib tushayotganini jonli ko'rishingiz mumkin bo'ladi!