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







