В мобильном приложении из 1000 пользовательских действий до базы доходит 900. Десять процентов теряются из-за сбоев сети, форс-закрытий или неверной конфигурации. Firebase Analytics даёт базовые метрики, но для глубоких воронок приходится писать SQL и разбираться с BigQuery. Amplitude решает эту проблему — воронки, retention, когорты доступны через UI сразу после интеграции. Мы внедряем Amplitude в мобильные приложения больше 5 лет: на счету 20+ проектов с трекингом событий, revenue и групп для B2B. Опыт показывает, что после настройки правильных user properties конверсия растёт на 15–30%, а затраты на BigQuery сокращаются до 30%. Разбираем, как подключить SDK и не потерять данные.
Как интеграция Amplitude улучшает аналитику мобильного приложения?
Amplitude — это не просто трекер событий. Это платформа для продуктовой аналитики, которая позволяет строить воронки, когорты и поведенческие пути без SQL. В отличие от Firebase, вы можете задавать кастомные user properties, отслеживать доход встроенными средствами и группировать пользователей по организациям для B2B. Всё это доступно в UI сразу после настройки SDK.
Подключение SDK
SDK подключается через пакетные менеджеры. iOS — Swift Package Manager, пакет Amplitude-Swift, Android — Gradle. Инициализация с кастомными опциями трекинга:
import AmplitudeSwift
let amplitude = Amplitude(configuration: Configuration(
apiKey: "YOUR_API_KEY",
defaultTracking: DefaultTrackingOptions(
sessions: true,
appLifecycles: true,
screenViews: false
)
))
// build.gradle
implementation("com.amplitude:analytics-android:1.+")
// Application class
val amplitude = Amplitude(
Configuration(
apiKey = "YOUR_API_KEY",
context = applicationContext,
defaultTracking = DefaultTrackingOptions(
sessions = true,
appLifecycles = true
)
)
)
Singleton-инстанс лучше инжектировать через DI-контейнер — это упростит тестирование и замену SDK в будущем. Для Flutter используем пакет amplitude_flutter, для React Native — @amplitude/analytics-react-native. Версии SDK обновляем ежеквартально, чтобы использовать последние фиксы и функции.
События и свойства
Amplitude использует модель Event → Event Properties + User Properties. В отличие от Firebase, свойства события и пользователя разделены, и каждое событие обогащается текущими user properties на момент отправки.
amplitude.track(
eventType: "Purchase Completed",
eventProperties: [
"product_id": "sku_12345",
"price": 990.0,
"currency": "RUB",
"payment_method": "card"
]
)
amplitude.setUserId("user_\(userId)")
let identify = Identify()
identify.set(property: "plan", value: "premium")
identify.add(property: "total_purchases", value: 1)
amplitude.identify(identifyEvent: identify)
Identify.add() — атомарный инкремент на сервере. При параллельных сессиях set() перезаписывает последнее значение, add() корректно суммирует.
| Метод | Описание | Пример |
|---|---|---|
setUserId |
Привязывает события к пользователю | amplitude.setUserId("user_123") |
identify |
Обновляет user properties | identify.set(property: "plan", value: "premium") |
revenue |
Отслеживает доход | revenue.price = 9.99 |
setGroup |
Устанавливает группу для B2B | amplitude.setGroup(groupType: "company", groupName: "Acme Corp") |
Типизированный слой трекера
Создайте слой трекера, который маппит бизнес-события в вызовы Amplitude. Это обеспечит консистентность имен и типов параметров. Например, структура PurchaseCompleted с обязательными полями — productId, price, currency. Все события задокументируйте в общем справочнике. Иначе через месяц появятся purchase и Purchase Completed как разные воронки.
Revenue tracking
Amplitude имеет встроенный объект Revenue для отслеживания монетизации — не нужно добавлять события покупки вручную. Amplitude Documentation рекомендует использовать его для LTV-расчётов.
let revenue = Revenue()
revenue.productId = "premium_monthly"
revenue.price = 9.99
revenue.quantity = 1
revenue.revenueType = "subscription"
amplitude.revenue(revenue: revenue)
Revenue автоматически попадает в дашборд с расчётом LTV по когортам. Это даёт точную картину монетизации без SQL.
Группы и account-level analytics
Для B2B-приложений Amplitude поддерживает групповую аналитику — события привязываются к организации, а не только к пользователю:
amplitude.setGroup(groupType: "company", groupName: "Acme Corp")
amplitude.groupIdentify(
groupType: "company",
groupName: "Acme Corp",
identifyObj: Identify().set(property: "plan", value: "enterprise")
)
Это Enterprise-фича, но архитектурно правильно заложить поддержку группы с первого спринта. Иначе позже придётся переписывать трекер и пересчитывать историю. Групповой groupType регистрозависим: "Company" и "company" — разные группы.
Почему Amplitude лучше Firebase для продуктовой аналитики?
Firebase Analytics хорош для маркетинговых метрик, но для глубокой продуктовой аналитики нужен инструмент, позволяющий строить воронки, когорты и поведенческие пути без SQL. Amplitude делает это через UI, а данные обогащаются user properties в реальном времени. Вот сравнение ключевых возможностей:
| Функция | Firebase Analytics | Amplitude |
|---|---|---|
| Воронки | Ограниченные, через BigQuery | Полноценные в UI, до 10 шагов |
| Когорты | Только retention | Любые когорты по свойствам |
| User Properties | Только стандартные | Кастомные, атомарные операции |
| Revenue Tracking | Нет встроенного | Встроенный объект Revenue |
| Групповая аналитика | Нет | setGroup + groupIdentify |
Кроме того, Amplitude поддерживает revenue tracking с LTV и гибкие API для event streaming. Если вам нужны воронки и когорты без BigQuery — Amplitude подходит лучше.
Как избежать потери событий?
Amplitude буферизирует события и отправляет батчами (по умолчанию каждые 30 секунд или 30 событий). При форс-закрытии приложения последние события могут потеряться — для критичных (покупка, активация) вызовите amplitude.flush() сразу после трека. Также можно отправлять события в applicationDidEnterBackground. Типичные ошибки: разные регистры имён (purchase vs Purchase), отсутствие flush на выходе, игнорирование groupIdentify для B2B, использование Amplitude.instance() вместо DI. Все они решаются на этапе интеграции — мы закладываем правильную архитектуру с первого спринта.
Что входит в работу
- Подключение SDK (iOS, Android, Flutter, React Native)
- Настройка инстанса с правильными опциями трекинга
- Типизированный трекер-слой с конвенцией именования
- User Properties и Identify для сегментации
- Revenue tracking для монетизации
- Проверка событий через Amplitude DebugMode
- Документация по событийной модели
Мы подключаем Amplitude под ключ: от SDK до дашбордов. Закажите интеграцию у нас — получите консультацию и оценку проекта за один день. Свяжитесь с нами для аудита вашей аналитики.
Сроки
Интеграция с событиями и user properties: 1–2 дня. С Revenue tracking и группами: до 3 дней. Стоимость рассчитывается индивидуально и зависит от сложности вашей логики.







