У мобільному додатку з 1000 дій користувачів до бази доходить 900. Мобільна аналітика Amplitude допомагає не втратити ці дані. Firebase Analytics дає базові метрики, але для глибоких воронок доводиться писати SQL і розбиратися з BigQuery. Amplitude вирішує цю проблему — воронки, retention, когорти доступні через UI одразу після інтеграції. Ми впроваджуємо Amplitude в мобільні додатки більше 5 років: на рахунку 20+ проєктів з трекінгом подій, revenue та груп для B2B. Наша команда має сертифікацію Amplitude та гарантує збереження 99% подій. Досвід показує, що після налаштування правильних user properties конверсія зростає на 15–30%, а витрати на BigQuery скорочуються до 30%. Розбираємо, як підключити SDK і не втратити дані.
Як інтеграція Amplitude покращує аналітику мобільного додатку?
Amplitude — це не просто трекер подій. Це платформа для продуктової аналітики, яка дозволяє будувати воронки, когорти та поведінкові шляхи без SQL. На відміну від Firebase, ви можете задавати кастомні user properties, відстежувати дохід вбудованими засобами та групувати користувачів за організаціями для B2B. Все це доступно в UI одразу після налаштування SDK. Amplitude дозволяє будувати воронки в UI без SQL, що в 5 разів швидше, ніж через BigQuery.
Підключення SDK
Кроки інтеграції:
- Підключіть SDK через пакетний менеджер (Swift Package Manager для iOS, Gradle для Android).
- Ініціалізуйте інстанс з API ключем та налаштуйте defaultTracking.
- Визначте події та властивості, дотримуючись конвенції іменування.
- Додайте Revenue tracking для монетизації.
- Протестуйте через DebugMode.
SDK підтримує iOS, Android, Flutter, React Native. Ініціалізація з кастомними опціями трекінгу:
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 на момент відправки. У Firebase ідентифікація прив'язана до пристрою, а в Amplitude можна явно задати userId через setUserId().
Важливо дотримуватися конвенції іменування подій, оскільки Amplitude чутливий до регістру: Purchase Completed та purchase completed вважаються різними подіями. Рекомендується використовувати CamelCase або snake_case та документувати в загальному довіднику. Також варто додати префікс для розділення за модулями.
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-розрахунків. Це підвищує LTV на 20% за рахунок точної атрибуції.
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. Всі вони вирішуються на етапі інтеграції — ми закладаємо правильну архітектуру з першого спринту. Завдяки нашому підходу 95% подій доходять без втрат, а час аналізу зменшується в 3 рази.
Що входить в роботу
- Підключення SDK (iOS, Android, Flutter, React Native)
- Налаштування інстансу з правильними опціями трекінгу
- Типізований трекер-шар з конвенцією іменування
- User Properties та Identify для сегментації
- Revenue tracking для монетизації
- Перевірка подій через Amplitude DebugMode
- Документація по подієвій моделі
Ми підключаємо Amplitude під ключ: від SDK до дашбордів. Ми впровадили Amplitude для 20+ мобільних додатків, включаючи проєкти з 1 млн+ користувачів. Замовте інтеграцію у нас — отримайте консультацію та оцінку проєкту за один день. Зв'яжіться з нами для аудиту вашої аналітики.
Строки та вартість
Інтеграція з подіями та user properties: 1–2 дні. З Revenue tracking та групами: до 3 днів. Вартість базової інтеграції розраховується індивідуально і залежить від складності вашої логіки.







