Трекінг та оптимізація воронки конверсії мобільного застосунку

Ви втрачаєте користувачів на шляху до покупки, але не розумієте, де саме і чому вони йдуть? Ми впроваджуємо наскрізний трекінг подій та аналізуємо кожен крок воронки, щоб виявити точки відтоку. Наша команда реалізує проєкт під ключ — від налаштування аналітики до оптимізації конверсії, забезпечуючи стабільну роботу та подальшу підтримку.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Трекінг та оптимізація воронки конверсії мобільного застосунку
Середній
~3-5 днів
Часті запитання

Багато клієнтів приходять до нас з проблемою: воронка продукту виглядає як чорна скринька. Ми бачимо, що після кроку add_to_cart втрачається 40% користувачів, але чому — невідомо. У підсумку гроші йдуть на рекламу, а не на доопрацювання. Ми вирішуємо це впровадженням наскрізного трекінгу з нуля. За 5 років ми реалізували трекінг для 50+ мобільних проектів — від MVP до enterprise-застосунків з мільйонами користувачів. Якщо ви хочете отримати консультацію з налаштування трекінгу у вашому застосунку, напишіть нам.

Воронка конверсії без правильного трекінгу — це діаграма, яку продакт малює по пам'яті. З трекінгом — це цифри, які показують, де саме і у якого сегменту користувачів гроші йдуть крізь пальці. Стандартна помилка: трекати тільки початок і кінець воронки (checkout_started → payment_succeeded) і потім дивуватися, що 60% drop-off незрозумілі. Правильний підхід — трекати кожен крок з контекстом, достатнім для пояснення причини відвалу.

Чому стандартна воронка не працює?

Часто воронку будують із занадто загальних подій: screen_viewed замість checkout_payment_opened. Без деталізації неможливо зрозуміти, який саме екран або дія викликає відтік. Наприклад, якщо на кроці payment_opened втрачається 30% користувачів — це може бути пов'язано з довгим завантаженням, відсутністю Apple Pay або помилкою 3DS. У нашій практиці був випадок: після додавання 3ds_required у властивості події drop-off на кроці payment_initiated скоротився вдвічі — просто тому, що ми побачили, що 80% тих, хто відвалився, проходили 3DS, і оптимізували цей процес.

Як налаштувати трекінг abandonment?

Abandonment — ключова подія, яку часто упускають. Коли користувач іде, не завершивши воронку, потрібно зафіксувати останній крок, час на ньому та можливі помилки. Ми реалізуємо це через onCleared() у ViewModel або аналог у SwiftUI. Це дає повну картину: хто пішов, на якому етапі і чому.

Проектування воронки

Перед реалізацією потрібно визначити:

  • Кроки воронки — атомарні події, що однозначно відповідають прогресу користувача
  • Властивості кожного кроку — що потрібно знати про користувача та контекст на цьому кроці
  • Точки відвалу — що відбувається з користувачем, який не перейшов до наступного кроку

Приклад воронки e-commerce:

Крок Подія Ключові властивості
1 product_viewed product_id, category, source
2 add_to_cart product_id, quantity, cart_size
3 checkout_started cart_total, item_count, has_promo
4 checkout_address_completed address_type (new/saved)
5 checkout_payment_opened payment_methods_available
6 payment_method_selected method (card/paypal/apple_pay)
7 payment_initiated method, 3ds_required
8 payment_succeeded order_id, total, method

Крок 7 → 8 з 3ds_required = true дасть окрему гілку воронки. Без цієї властивості незрозуміло, чому на цьому кроці більше drop-off.

Реалізація трекінгу

// Android — типобезпечний wrapper для воронки
object CheckoutFunnel {
    fun trackStepCompleted(step: CheckoutStep, props: Map<String, Any> = emptyMap()) {
        val eventName = when (step) {
            CheckoutStep.ADDRESS -> "checkout_address_completed"
            CheckoutStep.PAYMENT_OPENED -> "checkout_payment_opened"
            CheckoutStep.PAYMENT_METHOD_SELECTED -> "checkout_payment_method_selected"
            CheckoutStep.PAYMENT_INITIATED -> "payment_initiated"
            CheckoutStep.PAYMENT_SUCCEEDED -> "payment_succeeded"
            CheckoutStep.PAYMENT_FAILED -> "payment_failed"
        }
        val baseProps = mapOf(
            "session_id" to sessionManager.currentSessionId,
            "cart_id" to cartManager.currentCartId,
            "user_id" to authManager.currentUserId,
            "timestamp" to System.currentTimeMillis()
        )
        analyticsClient.track(eventName, baseProps + props)
    }
}

// Використання в ViewModel
checkoutViewModel.onAddressConfirmed.observe(this) { address ->
    CheckoutFunnel.trackStepCompleted(
        CheckoutStep.ADDRESS,
        mapOf(
            "address_type" to if (address.isNew) "new" else "saved",
            "country" to address.country
        )
    )
}
// iOS — аналогічний підхід
enum CheckoutStep {
    case addressCompleted(isNew: Bool, country: String)
    case paymentOpened(availableMethods: [String])
    case paymentMethodSelected(method: String, requires3DS: Bool)
    case paymentSucceeded(orderId: String, total: Double, method: String)
    case paymentFailed(errorCode: String, method: String)
}

extension AnalyticsService {
    func track(checkoutStep: CheckoutStep) {
        let (eventName, props) = checkoutStep.analyticsPayload
        amplitude.track(eventType: eventName, eventProperties: props)
    }
}

extension CheckoutStep {
    var analyticsPayload: (String, [String: Any]) {
        switch self {
        case .paymentMethodSelected(let method, let requires3DS):
            return ("checkout_payment_method_selected", [
                "payment_method": method,
                "requires_3ds": requires3DS,
                "cart_id": CartManager.shared.currentCartId
            ])
        // ...
        }
    }
}

Побудова воронки в Amplitude

В Amplitude Funnel Analysis:

// Amplitude Chart — налаштування через UI або API
{
  "chart_type": "FUNNEL",
  "steps": [
    { "event_type": "product_viewed" },
    { "event_type": "add_to_cart" },
    { "event_type": "checkout_started" },
    { "event_type": "payment_succeeded" }
  ],
  "funnel_type": "ordered", // строгий порядок
  "conversion_window": 7, // 7 днів на проходження воронки
  "conversion_window_unit": "days",
  "segment_definitions": [
    {
      "name": "iOS users",
      "filters": [{"subprop_key": "platform", "subprop_value": ["iOS"]}]
    },
    {
      "name": "Android users",
      "filters": [{"subprop_key": "platform", "subprop_value": ["Android"]}]
    }
  ]
}

conversion_window — критичний параметр. Для покупки товару 7 днів — розумно. Для підписки SaaS може бути і 30 днів. Занадто коротке вікно занижує конверсію.

Firebase Analytics Funnels

// Firebase funnel через Google Analytics
// Налаштововується в GA4 → Explore → Funnel Exploration
// Через API:
const { BetaAnalyticsDataClient } = require('@google-analytics/data');
const client = new BetaAnalyticsDataClient();
const [response] = await client.runFunnelReport({
  property: 'properties/YOUR_PROPERTY_ID',
  funnelSteps: [
    {
      name: 'Product Viewed',
      filterExpression: {
        filter: {
          fieldName: 'eventName',
          stringFilter: { value: 'product_viewed' }
        }
      }
    },
    {
      name: 'Add to Cart',
      filterExpression: {
        filter: {
          fieldName: 'eventName',
          stringFilter: { value: 'add_to_cart' }
        }
      }
    },
    {
      name: 'Purchase',
      filterExpression: {
        filter: {
          fieldName: 'eventName',
          stringFilter: { value: 'purchase' }
        }
      }
    }
  ],
  dateRanges: [{ startDate: '30daysAgo', endDate: 'today' }]
});

Порівняння інструментів для трекінгу

Інструмент Безкоштовний ліміт Гнучкість сегментів Сесійні записи
Amplitude 10 млн подій/міс Висока: когорти, поведінкові сегменти Ні
Firebase Analytics Безліміт (GA4) Середня: лише користувацькі сегменти Ні
Mixpanel 20 млн подій/міс Висока: кастомні звіти, прожектори Ні

Amplitude дозволяє будувати воронки швидше, ніж Firebase, особливо при складній сегментації. Firebase виграє в ціні — він безкоштовний для практично будь-яких обсягів даних.

Аналіз причин drop-off

Чисті дані воронки кажуть «тут втрачаємо 40%». Вони не кажуть чому. Для розуміння причин:

  • Сесійні записи на кроці drop-off (UXCam/Smartlook): що робили користувачі перед виходом
  • Властивості користувачів в аналітиці: хто йде — нові чи повернені, iOS чи Android, який план
  • A/B тест на кроці з високим drop-off: перевірити гіпотезу про покращення
// Трекінг причини відвалу при abandonment
class PaymentViewModel : ViewModel() {
    override fun onCleared() {
        super.onCleared()
        if (!paymentCompleted) {
            CheckoutFunnel.trackStepCompleted(
                CheckoutStep.ABANDONED,
                mapOf(
                    "last_step" to currentStep.name,
                    "time_on_step_seconds" to stepTimer.elapsed(),
                    "error_shown" to lastErrorShown
                )
            )
        }
    }
}
Як інтерпретувати результати воронки

Після налаштування трекінгу важливо не тільки дивитися на відсотки, але й порівнювати сегменти. Наприклад, конверсія на iOS може бути 15%, а на Android — 10%. Це привід перевірити, чи немає відмінностей в UI/UX на різних платформах. Також дивіться на час між кроками: різке збільшення часу на кроці може вказувати на роздратування користувача.

Підхід опису воронки базується на документації Amplitude по Funnel Analysis: атрибути подій та вікно конверсії визначають точність аналізу.

Що входить в роботу

  1. Аудит поточних подій та таксономії.
  2. Проектування повної карти воронки: атомарні події з контекстом.
  3. Реалізація типобезпечного wrapper'а на Kotlin/Swift.
  4. Інтеграція з Amplitude/Firebase, налаштування Funnel Report з сегментацією.
  5. Підключення Session Replay на критичних кроках.
  6. Документація таксономії та навчання команди аналітиці.
  7. Постійна підтримка — коригування подій при зміні логіки.

Строки та вартість

Проектування таксономії та реалізація трекінгу: 2–3 дні. Дашборди та первинний аналіз: ще 1–2 дні. Вартість розраховується індивідуально після аудиту. Оцінимо проект за 1 день — напишіть нам.

Чому обирають нас

У нас 5 років досвіду в мобільній аналітиці — ми впроваджували трекінг у fintech, e-commerce, SaaS. Гарантуємо, що кожен крок воронки супроводжуватиметься зрозумілим контекстом, а не просто ім'ям події. Після впровадження ви отримуєте не тільки цифри, але й інструмент для щоденної оптимізації. Замовте аудит поточної воронки — розберемо вашу таксономію і запропонуємо план дій.

Зв'яжіться з нами для консультації — розберемо вашу воронку і запропонуємо план дій.

Наші компетенції:

Останні роботи

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1009
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    902
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1331
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1179
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1106
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    713