Настройка событий и конверсий аналитики мобильного приложения
Самая распространённая ситуация: приложение работает полгода, 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 дней. Стоимость рассчитывается индивидуально.







