Інтеграція аналітики Mixpanel у мобільний додаток
Mixpanel будує аналітику навколо користувачів, а не сесій. Кожна подія прив'язується до distinct_id — унікального ідентифікатора людини. Коли анонімний користувач реєструється, всі його попередні события об'єднуються з новим профілем через alias. Для воронок конверсії та retention це принципово: історія користувача не обривається в момент авторизації.
Підключення та ініціалізація
iOS через Swift Package Manager — репозиторій mixpanel/mixpanel-swift:
import Mixpanel
// AppDelegate
Mixpanel.initialize(token: "YOUR_PROJECT_TOKEN", trackAutomaticEvents: true)
trackAutomaticEvents: true ввімкує автоматичний трекінг: App Session, App Updated, App Crashed. Для iOS 14+ при першому запуску Mixpanel не використовує IDFA без явного запиту — це відповідає ATT.
Android:
MixpanelAPI.getInstance(context, "YOUR_PROJECT_TOKEN", true)
Ідентифікація користувачів — найважливіша частина
Типова помилка: виклик identify одразу при реєстрації без alias для анонімної історії.
Правильний сценарій:
let mixpanel = Mixpanel.mainInstance()
// До авторизації — анонімний distinct_id генерується автоматично
// mixpanel.distinctId містить UUID
// Після успішної реєстрації:
mixpanel.alias(newId: "user_\(userId)", distinctId: mixpanel.distinctId)
mixpanel.identify(distinctId: "user_\(userId)")
// Після входу в існуючий акаунт (без alias!):
mixpanel.identify(distinctId: "user_\(userId)")
alias створює постійний зв'язок між анонімним та авторизованим ID — це однократна операція. Повторний виклик alias для вже пов'язаного ID викличе дублювання в панелі управління.
События та Super Properties
Super Properties — властивості, які автоматично додаються до кожної наступної підії:
mixpanel.registerSuperProperties([
"app_version": Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "",
"platform": "ios",
"subscription_status": "free"
])
// Оновити при зміні підписки:
mixpanel.registerSuperPropertiesOnce(["subscription_status": "premium"])
Користувацька подія:
mixpanel.track(event: "Product Viewed", properties: [
"product_id": "sku_789",
"category": "electronics",
"price": 29990
])
People Analytics — профілі користувачів
Mixpanel People дозволяє будувати сегменти та відправляти push прямо з консолі:
let people = Mixpanel.mainInstance().people
people.set(["$name": "Іван Петров", "$email": "[email protected]"])
people.set(["plan": "premium", "total_orders": 5])
people.increment("total_orders", by: 1) // атомарний інкремент
Профілі синхронізуються з подіями за distinct_id — у панелі управління можна клікнути на профіль та побачити повну історію дій.
Типові проблеми
Mixpanel буферизує события у NSUserDefaults на iOS. При краху до відправки пакету дані зберігаються та йдуть при наступному запуску. Це добре. Проблема в іншому: якщо distinct_id не встановлений явно (наприклад, при logout викликав reset()), наступні события йдуть під новим анонімним ID — і воронка розривається. Використовуйте reset() тільки при зміні акаунту, не при кожному logout.
Що входить до роботи
- Підключення SDK для iOS/Android
- Налаштування ідентифікації: анонімний flow → alias → identify
- Super Properties для наскрізного контексту
- Трекінг ключових подій за планом
- People Analytics з профілями
- Перевірка подій через Mixpanel Live View
Сроки
Інтеграція з правильною ідентифікацією та подіями: 1–2 дні. Вартість розраховується індивідуально.







