Інтеграція аналітики Branch у мобільний додаток

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Інтеграція аналітики Branch у мобільний додаток
Середній
від 1 дня до 3 днів
Часті запитання

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

Етапи розробки

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Інтеграція аналітики Branch у мобільний додаток

Branch — це не просто MMP (Mobile Measurement Partner). Основна цінність платформи — інфраструктура deep linking: Universal Links на iOS та App Links на Android працюють коректно навіть в edge-кейсах, де стандартні механізми ломаються. Атрибуція установок — вторинна функція, яка йде в комплекті.

Типова ситуація: користувач кликає на баннер в Instagram Stories на iOS, переходить в App Store, встановлює додаток. Стандартна атрибуція через Universal Links втрачає UTM-параметри на етапі редиректу через App Store. Branch розв'язує це через відложений диплінк (deferred deep link) — при першому відкритті додатка SDK «дізнається» звідки прийшов користувач та відкриває потрібний екран.

Підключення iOS SDK

Через CocoaPods або SPM (BranchPlugin). Конфігурація в AppDelegate:

import Branch

func application(_ application: UIApplication,
                 didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    Branch.getInstance().setIdentity(userId)  // якщо користувач авторизований
    Branch.getInstance().initSession(launchOptions: launchOptions) { params, error in
        guard error == nil, let params = params, params["+clicked_branch_link"] as? Bool == true else { return }
        let screen = params["screen"] as? String
        let itemId = params["item_id"] as? String
        // навігація на потрібний екран
        NavigationRouter.shared.navigate(to: screen, itemId: itemId)
    }
    return true
}

// Universal Links
func application(_ application: UIApplication,
                 continue userActivity: NSUserActivity,
                 restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
    Branch.getInstance().continue(userActivity)
    return true
}

// URL Schemes
func application(_ app: UIApplication, open url: URL,
                 options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
    Branch.getInstance().application(app, open: url, options: options)
    return true
}

+clicked_branch_link — флаг в params, який відрізняє Branch-диплінк від звичайного першого запуску. Без цієї перевірки буде навігація куди-то при кожному першому відкритті додатка.

Підключення Android SDK

// build.gradle (app)
implementation("io.branch.sdk.android:library:5.+")

Додайте метадані Branch Key в AndroidManifest.xml та intent-filter для App Links. В Application.onCreate():

Branch.getAutoInstance(this)

У цільовій Activity:

override fun onStart() {
    super.onStart()
    Branch.sessionBuilder(this).withCallback { referringParams, error ->
        if (error != null) return@withCallback
        if (referringParams?.getBoolean("+clicked_branch_link") == true) {
            val screen = referringParams.getString("screen")
            // навігація
        }
    }.withData(intent.data).init()
}

Створення диплінків та атрибуція

Branch Link створюється через панель управління або програмно через SDK:

let buo = BranchUniversalObject(canonicalIdentifier: "product/\(productId)")
buo.title = product.name
buo.contentMetadata.customMetadata["screen"] = "product_detail"
buo.contentMetadata.customMetadata["item_id"] = productId

let lp = BranchLinkProperties()
lp.channel = "email"
lp.campaign = "summer_sale"
lp.addControlParam("$fallback_url", withValue: "https://myapp.com/products/\(productId)")

buo.getShortUrl(with: lp) { url, error in
    // url — Branch-посилання для шаринга
}

$fallback_url — куди відправляти користувачів, у яких не встановлено додаток і немає можливості перейти в Store (наприклад, десктопні браузери).

Атрибуція та аналітика

Branch відстежує весь шлях: клік → установка → першопочне відкриття → конверсійна подія. Передача конверсій:

let event = BranchEvent.standardEvent(.purchase)
event.transactionID = orderId
event.revenue = orderTotal
event.currency = BNCCurrency.RUB
event.logEvent()

Стандартні события (BranchEvent.standardEvent) автоматично мэпляються на рекламні платформи (Meta, Google Ads) без додаткового налаштування.

Проблеми, з якими стикаємося

Associated Domains не налаштовані — Universal Links не працюють, додаток не перехоплює посилання. Потрібно додати applinks:yourdomain.app.link в Entitlements та переконатися, що Apple Developer Portal містить Associated Domains Capability.

Клієнтський SDK ініціалізується після навігації — параметри диплінка втрачаються, тому що UI вже відобразився до того, як initSession повернув результат. Рішення: відкласти першопочну навігацію до completion block.

Android Back Stack при диплінці — користувач відкриває додаток через диплінк, попадає на екран продукту, натискає Back та виходить з додатка замість переходу на головний екран. Потрібно явно вибудовувати Back Stack через TaskStackBuilder.

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

  • Підключення Branch SDK (iOS / Android / Flutter / React Native)
  • Налаштування Associated Domains та Universal Links на iOS
  • Налаштування App Links та intent-filter на Android
  • Конфігурація deferred deep linking з навігацією
  • Створення шаблонів Branch Links для маркетингових каналів
  • Налаштування конверсійних подій
  • Тестування через Branch Dashboard → Live View

Сроки

Диплінк з атрибуцією на одній платформі: 1–2 дні. iOS + Android з повним набором подій: 3–4 дні. Вартість розраховується індивідуально.