Налаштування подій та конверсій аналітики мобільного додатка
Найпоширеніша ситуація: додаток працює кілька місяців, Firebase підключений, события летять — але маркетолог відкриває панель управління й не може відповісти на питання «скільки користувачів дійшли від реєстрації до першої покупки». Тому що события є, а конверсії не розмічені, воронка не налаштована, і purchase подія срабатує з параметрами, які не можна сегментувати.
Налаживання аналітичних подій — це не просто «додати Firebase.logEvent». Це проектування схеми даних, яка потім дозволить відповідати на бізнес-питання.
Проектування схеми подій
До написання коду складаємо Event Taxonomy — таблицю всіх подій з параметрами:
| Event Name | Trigger | Parameters | Platform |
|---|---|---|---|
sign_up |
Успішна реєстрація | method (email/google/apple), source |
iOS, Android |
tutorial_complete |
Закриття онбордингу | steps_completed, skipped |
iOS, Android |
add_to_cart |
Натискання "В корзину" | item_id, item_name, price, currency, quantity |
iOS, Android |
purchase |
Успішна оплата | transaction_id, value, currency, items[] |
iOS, Android |
subscription_start |
Перший платіж підписки | plan, trial, source |
iOS, Android |
Кожна подія повинна давати відповідь на конкретне питання. Якщо питання немає — события нема.
Реалізація: Firebase Analytics
// iOS — подія з параметрами
Analytics.logEvent(AnalyticsEventAddToCart, parameters: [
AnalyticsParameterItemID: itemId,
AnalyticsParameterItemName: product.name,
AnalyticsParameterPrice: product.price,
AnalyticsParameterCurrency: "RUB",
AnalyticsParameterQuantity: 1
])
// Подія покупки (E-commerce schema)
Analytics.logEvent(AnalyticsEventPurchase, parameters: [
AnalyticsParameterTransactionID: orderId,
AnalyticsParameterValue: orderTotal,
AnalyticsParameterCurrency: "RUB",
AnalyticsParameterItems: items.map { item in
[
AnalyticsParameterItemID: item.id,
AnalyticsParameterItemName: item.name,
AnalyticsParameterPrice: item.price,
AnalyticsParameterQuantity: item.quantity
]
}
])
// Android — ідентично, але через Bundle
val params = bundleOf(
FirebaseAnalytics.Param.TRANSACTION_ID to orderId,
FirebaseAnalytics.Param.VALUE to orderTotal,
FirebaseAnalytics.Param.CURRENCY to "RUB"
)
Firebase.analytics.logEvent(FirebaseAnalytics.Event.PURCHASE, params)
Використання стандартних констант (AnalyticsEventPurchase, AnalyticsParameterTransactionID) замість рядків — не просто стиль. Google автоматично розпізнає ці события та активує enhanced e-commerce звіти у Firebase Console та Google Analytics 4.
Конверсії та ключові события
У Firebase Console → Events позначаємо ключові события як Conversion Events (в GA4 — Key Events). Це міняє їхнє відображення в звітах та дозволяє будувати воронки. Зазвичай конверсіями позначають:
-
sign_up -
subscription_start -
purchase -
tutorial_complete(якщо онбординг критичний для retention)
Після позначення события як конверсії дані з'являться у Google Ads та дозволять оптимізувати кампанії під реальні покупки, а не просто установки.
User Properties для сегментації
События без контексту мало інформативні. User Properties дозволяють сегментувати аудиторію:
Analytics.setUserProperty("premium", forName: "subscription_status")
Analytics.setUserProperty("ios_user", forName: "platform")
Analytics.setUserProperty(String(userAge / 10 * 10), forName: "age_bracket") // 20, 30, 40...
Після встановлення User Properties можна дивитися конверсії окремо для premium-користувачів або будувати аудиторії у Firebase Audiences для таргетингу в Google Ads.
Дедупліація подій покупки
Одна з найбільш болісних помилок — подвійний purchase через retry оплати або restore покупок. Рішення через transaction_id:
// Перевіряємо, чи не логували вже цю транзакцію
if !UserDefaults.standard.bool(forKey: "logged_\(orderId)") {
Analytics.logEvent(AnalyticsEventPurchase, parameters: [...])
UserDefaults.standard.set(true, forKey: "logged_\(orderId)")
}
Firebase сам по собі не дедуплицирует события по transaction_id — це потрібно робити на стороні додатка.
Валідація подій
Перш ніж виконати в production, перевіряємо события через DebugView у Firebase Console. Активується через:
# iOS Simulator
-FIRDebugEnabled
# Android
adb shell setprop debug.firebase.analytics.app com.myapp
DebugView показує события в реальному часі з параметрами. Обов'язково перевіряємо: всі ли параметри передаються, правильні ли типи даних (число vs рядок), нема ли опечаток в іменах подій.
Що входить до роботи
- Складання Event Taxonomy для всього додатка
- Реалізація подій на iOS та Android з правильними параметрами
- Налаштування конверсійних подій у Firebase / GA4
- Налаштування User Properties для сегментації
- Дедупліація критичних подій (purchase, subscription)
- Валідація через DebugView та Firebase Analytics Debugger
- Передача конверсій у Google Ads / Meta Ads
Сроки
Схема подій та базова реалізація для 10–15 подій: 2–3 дні. Повний аудит існуючої аналітики + рефакторинг: 3–5 днів. Вартість розраховується індивідуально.







