Ми інтегруємо New Relic APM в мобільні застосунки на iOS та Android. Ця система показує не лише краші, а й гальма UI, повільні мережеві запити, падіння конверсії. Ви отримуєте єдиний трейс від натискання кнопки до SQL-запиту — без додаткової кореляції. Заголовок newrelic (W3C TraceContext) пробрасовується автоматично. В New Relic One можна відкрити HTTP-запит із застосунку і провалитися в серверний трейс. Ми провели 30+ інтеграцій для проєктів з аудиторією від 50 000 DAU. Гарантуємо стабільність моніторингу і правильне семплювання.
Чому Distributed Tracing обов'язковий для мобільного моніторингу?
Без Distributed Tracing ви бачите лише клієнтську частину. Якщо запит падає з 500-ю помилкою на бекенді, ви не дізнаєтеся причину. При включеному трейсингу кожен HTTP-виклик отримує унікальний ідентифікатор. Агент мобільного застосунку додає заголовки traceparent та tracestate. Серверний агент New Relic підхоплює їх та формує єдиний трейс. Ви бачите час кожного сегмента: мережевий виклик, SQL, кеш. New Relic документація рекомендує вмикати Distributed Tracing для всіх застосунків з мікросервісною архітектурою.
Як встановити агент New Relic на iOS та Android?
iOS через Swift Package Manager:
// Package.swift
.package(url: "https://github.com/newrelic/newrelic-ios-agent-spm", from: "7.4.0")
// AppDelegate.application(_:didFinishLaunchingWithOptions:)
import NewRelic
NewRelic.start(withApplicationToken: "AA-XXXXXXXX-XXXX")
Android через Gradle:
// build.gradle (project level)
classpath("com.newrelic.agent.android:agent-gradle-plugin:7.+")
// build.gradle (app level)
apply plugin: 'newrelic'
implementation("com.newrelic.agent.android:android-agent:7.+")
// Application.onCreate()
NewRelic.withApplicationToken("AA-XXXXXXXX-XXXX")
.withLoggingEnabled(false)
.start(applicationContext)
Після встановлення агент автоматично інструментує HTTP-виклики: iOS перехоплює URLSession через swizzling, Android — через байткод-інструментацію OkHttp та HttpURLConnection. Якщо використовуєте кастомні мережеві шари (NWConnection, кастомний URLProtocol), перевірте, що трекінг працює явно.
Як перевірити автоінструментацію?
Одразу після запуску відкрийте вкладку Distributed traces в New Relic One. Якщо запити відображаються з коректними тривалостями та статусами, інтеграція виконана правильно. В іншому випадку перевірте, що агент ініціалізований до першого мережевого запиту.
Що таке Distributed Tracing і як його включити?
Distributed Tracing за замовчуванням включений тільки для Infinite Tracing. Для стандартного семплювання додайте:
NewRelic.enableFeatures([.NRFeatureFlag_DistributedTracing])
На Android аналогічний флаг не потрібен — трейсинг працює після активації в налаштуваннях New Relic. Заголовок TraceContext автоматично пробрасовується в запити до бекенду, де New Relic APM агент підхоплює його і формує єдиний трейс.
Як кастомні події покращують бізнес-метрики?
Кастомні події дозволяють відстежувати бізнес-воронку. Наприклад, запис події CheckoutCompleted з атрибутами order_id, total, payment_method.
// iOS
NewRelic.recordCustomEvent("CheckoutCompleted",
attributes: ["order_id": orderId, "total": total, "payment_method": method])
// Android
NewRelic.recordCustomEvent("CheckoutCompleted",
mapOf("order_id" to orderId, "total" to total))
Ці події потрапляють в NRQL — потужну SQL-подібну мову. Будуємо дашборди з часовими рядами, FACET по платіжних методах, рахуємо конверсію воронки.
Відстеження помилок та крашів
Краші збираються автоматично. Handled exceptions записуємо явно:
// iOS
do {
try performPayment()
} catch {
NewRelic.recordError(error, attributes: ["context": "checkout"])
}
// Android
NewRelic.recordError(exception, mapOf("context" to "checkout"))
Краш-репорти містять Thread State всіх потоків, ANR-події та Breadcrumb Trail — послідовність дій до крашу.
Чому New Relic кращий за Firebase Crashlytics для бізнес-метрик?
| Критерій |
New Relic APM |
Firebase Crashlytics |
| Тип моніторингу |
Продуктивність + помилки |
Тільки помилки |
| Distributed Tracing |
Так, до SQL-запиту |
Ні |
| Кастомні бізнес-події |
Так, з NRQL |
Тільки лог помилок |
| Алерти по конверсії |
Так, на основі NRQL |
Ні |
| Єдиний акаунт з бекендом |
Так |
Ні |
New Relic дозволяє налаштувати алерт на падіння crash-free rate нижче 99.5% або кореляцію network error rate з бізнес-метрикою. Firebase такого не дає.
Як ми налаштовуємо NRQL-алерти
Типові алерти, які ми конфігуруємо:
| Метрика |
Умова |
Канал сповіщення |
| Crash-free rate |
< 99.5% |
Slack |
| Середня тривалість HTTP-запиту |
> 2 с |
PagerDuty |
| Конверсія checkout |
падіння > 10% за годину |
Email |
Приклад конфігурації агента для Android
NewRelic.withApplicationToken("AA-XXXXXXXX-XXXX")
.withLoggingEnabled(true)
.withCrashReporting(true)
.withHttpResponseBodyCaptureEnabled(true)
.start(applicationContext)
Як ми впроваджуємо New Relic
-
Аналізуємо поточний застосунок — визначаємо ключові сценарії, мережеві запити, бізнес-події.
- Встановлюємо агент на iOS та Android, перевіряємо HTTP-автоінструментацію.
- Налаштовуємо Distributed Tracing з бекенд-агентом, верифікуємо трейси.
- Створюємо кастомні події під бізнес-воронку — реєстрація, перегляд, покупка.
- Конфігуруємо NRQL-алерти з нотифікацією в Slack/PagerDuty.
- Передаємо документацію — дашборди, алерти, інструкції з доробок.
Що входить в роботу
- Встановлення агента iOS/Android (включаючи React Native через
@newrelic/react-native-agent)
- Верифікація HTTP-автоінструментації
- Налаштування Distributed Tracing
- Кастомні події під бізнес-воронку
- NRQL-алерти
- Документація по дашбордах та алертах
- Навчання команди роботі з New Relic One
- Пост-релізна підтримка 2 тижні
Терміни
Базова інтеграція з автоінструментацією: 1–2 дні. Кастомні події та дашборди: ще 1 день. Вартість розраховується індивідуально під ваш проєкт.
Отримайте консультацію щодо інтеграції New Relic у ваш мобільний застосунок — зв'яжіться з нами, щоб обговорити деталі. Замовте налаштування моніторингу вже сьогодні.
Аналітика мобільних застосунків: Firebase, Amplitude, AppsFlyer та атрибуція
Наша команда регулярно стикається з проектами, де аналітика вже «налаштована», але реальних інсайтів немає. Типовий приклад — стартап з 50k DAU: трекінг десятків подій без жодної відповіді на питання «чому користувачі не доходять до оплати». За два тижні ми побудували базову воронку і з'ясували, що 70% аудиторії відвалюється на екрані верифікації номера телефону. Після локалізації бага retention зріс на 12%. Висновок: аналітика повинна починатися з конкретних питань, а не з трекінгу всього підряд.
Чому таксономія подій — основа аналітики мобільних застосунків?
Firebase Analytics, Amplitude, Mixpanel — технічно схожі. Різниця в тому, що ви в них кладете. Типова помилка: події screen_view, button_tap_1, button_tap_2 без контексту. Через місяць ніхто не пам'ятає, що таке button_tap_2.
Правильна таксономія: об'єкт + дія + контекст. product_viewed, checkout_started, payment_completed з параметрами product_id, category, price, source. Це дозволяє будувати воронки, когортний аналіз та retention без додаткового трекінгу.
Ми фіксуємо naming convention у tracking plan — документі (Google Sheet або Amplitude Data Catalog), де описано кожну подію, її параметри та умови спрацьовування. Tracking plan синхронізується з командою аналітиків до початку розробки, а не після. Такий підхід гарантує, що через місяць дані залишаться інтерпретованими, а не перетворяться на звалище. Досвід впровадження на 50+ проектах підтверджує: при відсутності tracking plan вартість підтримки аналітики зростає у 2-3 рази за рахунок переробок.
Що обрати для аналітики мобільних застосунків: Firebase, Amplitude чи Mixpanel?
Таблиця нижче показує ключові відмінності трьох популярних платформ. Вибір залежить від бюджету, трафіку та завдань.
| Критерій |
Firebase Analytics |
Amplitude |
Mixpanel |
| Безкоштовний ліміт |
Безліміт (в рамках Spark-плану) |
До 10 млн events/міс |
До 1 тис. MTU/міс (Special) |
| Затримка даних |
До 24 годин (стандарт) |
Хвилини (real-time) |
Хвилини (real-time) |
| Воронки та когорти |
Базові воронки, обмежена кількість |
Глибокі воронки, Journeys, когорти |
Funnels, Retention, Insights |
| BigQuery-експорт |
Так (безкоштовно, сирі дані) |
Так (підписка) |
Так (Enterprise) |
| Session Replay |
Ні |
Є (iOS/Android SDK) |
Ні |
| Інтеграція з рекламою |
Google Ads (нативна) |
Через Universal Links |
Через партнерів |
Firebase Analytics — безкоштовно, глибока інтеграція з Google Ads, BigQuery-експорт для сирих даних. Обмеження: затримка даних до 24 годин, обмежені воронки. Для стартапів з Google Ads трафіком — перший вибір.
Amplitude — продуктова аналітика з акцентом на когорти та шляхи користувача. Journeys (колишній Pathfinder) показує реальні шляхи між подіями — не передбачувані воронки, а фактичні маршрути. Session Replay — запис сесій для UX-аналізу. Безкоштовний тир до 10 млн events/місяць достатній для більшості продуктів на старті.
Mixpanel — ближче до Amplitude, сильніший у сегментації в реальному часі. Insights, Funnels, Retention — базові інструменти, які закривають 90% аналітичних завдань продакта.
Більш формальні визначення цих платформ можна знайти у Wikipedia (Firebase) та Wikipedia (Amplitude).
Як вирішити проблему мультиканальної атрибуції з AppsFlyer?
Знати звідки прийшов користувач — окреме завдання. Firebase Attribution працює лише всередині Google-екосистеми. Для мультиканальної атрибуції (Facebook Ads, TikTok, Apple Search Ads, programmatic) потрібен MMP — Mobile Measurement Partner.
AppsFlyer — лідер ринку. OneLink — universal deep link, який працює на iOS та Android і коректно атрибутує встановлення з будь-якого каналу. Protect360 — вбудований захист від fraud (фейкові встановлення, click injection на Android). Adjust та Branch — конкуренти з подібним функціоналом. Branch сильний у deep linking; Adjust популярний у gaming.
Згідно з Apple, з iOS 14.5 застосунки повинні отримувати дозвіл користувача через ATT перед збором IDFA для відстеження. AppsFlyer використовує probabilistic matching (IP + user agent + timing) для цих користувачів — точність нижча, але краще ніж нічого. SKAdNetwork та Privacy Preserving Attribution надають агреговані дані від Apple із затримкою 24-72 години.
Як налаштувати crash-аналітику, щоб не пропускати баги?
Firebase Crashlytics — стандарт для crash reporting. Автоматично групує креші за стектрейсом, показує affected users %, velocity alerts при зростанні crash rate більш ніж на 10% за годину.
Важливо: символікація. На iOS .dSYM файли повинні автоматично завантажуватися при кожній збірці — через Fastlane upload_symbols_to_crashlytics або Xcode Cloud built-in. Без символів креш у Crashlytics виглядає як набір адрес пам'яті. Це трапляється частіше, ніж здається при переході на новий CI — в одному проекті з аудиторією 500k користувачів ми виявили, що 40% крешів залишалися несимволізованими через пропущений етап у CI/CD. Після автоматизації час реакції на баги скоротився з 3 годин до 15 хвилин.
Для React Native та Flutter — @sentry/react-native та sentry_flutter дають додатковий контекст: breadcrumbs, мережеві запити перед крешем, стан Redux/Provider.
Нижче — порівняння популярних інструментів crash-аналітики для вибору під свої завдання.
| Критерій |
Firebase Crashlytics |
Sentry |
Instabug |
| Безкоштовний ліміт |
Безліміт (в рамках Spark) |
5k events/міс |
250 MAU |
| Групування |
За стектрейсом + параметри |
За fingerprint |
За стектрейсом + метадані |
| Символікація |
Автоматична (через файл) |
Автоматична (через CLI) |
Автоматична |
| Velocity alerts |
Так (за % зміни) |
Так (за кількістю) |
Так (за порогом) |
| Дод. контекст |
Logs, Keys, Custom Keys |
Breadcrumbs, User, Tags |
User steps, мережеві запити |
| Ціна |
Безкоштовно (у Firebase) |
Від $26/міс (Team) |
Від $99/міс |
Налаштування оточення
Три оточення з окремими Firebase проектами: dev, staging, production. Змішувати аналітику з тестових сесій і production — поширена помилка, яка спотворює всі метрики. На iOS через GoogleService-Info.plist для кожної схеми, на Android через google-services.json у папці кожного flavor.
Терміни: базова аналітика з Firebase + Crashlytics — 3-5 днів. Повноцінний tracking plan + Amplitude/Mixpanel з воронками та когортами — 2-3 тижні. Атрибуція через AppsFlyer з deep linking та fraud protection — 1-2 тижні. Вартість розраховується індивідуально залежно від складності інтеграцій.
Що входить у нашу роботу
В рамках впровадження аналітики ми надаємо:
- Розробку та узгодження tracking plan з командами продукту та маркетингу.
- Інтеграцію SDK (Firebase, Amplitude, Mixpanel, AppsFlyer) з урахуванням вашого стеку (Swift/Kotlin/Flutter/React Native).
- Налаштування воронок, когорт, дашбордів та алертів.
- Автоматизацію символікації та завантаження .dSYM через Fastlane.
- Документацію щодо подій та параметрів.
- Навчання команди роботі з аналітичною платформою.
- Два тижні пост-релізної підтримки та коригування трекінгу.
Наш досвід — 7 років впровадження аналітики та понад 80 успішних проектів у сфері мобільної розробки. Ми гарантуємо коректність даних і прозорість кожного етапу.
Зв'яжіться з нами, щоб отримати консультацію з налаштування аналітики вашого застосунку. Замовте аудит поточної аналітики — і ми покажемо, які метрики ви втрачаєте.