Реалізація Deferred Deep Linking в мобільному додатку

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

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Реалізація Deferred Deep Linking в мобільному додатку
Складний
~2-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

Реалізація Deferred Deep Linking у мобільному додатку

Звичайний deep link працює тільки якщо додаток встановлено. Користувач натискає на посилання, додаток не встановлено — посилання веде в стор, контекст втрачається. Deferred deep linking вирішує саме цю ситуацію: користувач встановлює додаток та при першому запуску потрапляє на той екран, на який натискав. Це критично для рекламних кампаній, реферальних програм та шаринга контенту.

Як це технічно працює

Механіка deferred deep linking будується на кількох шарах.

Шар 1: передача параметрів до встановлення. Класичний підхід — fingerprinting: при переході по посиланню сервер зберігає параметри (кампанія, контент, реферер) разом з fingerprint браузера (IP, user agent, розрішення екрана). Після встановлення додаток робить запрос до сервера зі своїм fingerprint — сервер матчить та повертає збережені параметри.

Точність fingerprinting — 70–85%. Достатньо для більшості маркетингових завдань, але не для фінансових операцій.

Шар 2: Google Play Referrer (Android). Надійніше за fingerprinting. При переході по посиланню з &referrer= параметром Google Play зберігає його та передає додатку при першому встановленні через InstallReferrerClient:

val referrerClient = InstallReferrerClient.newBuilder(context).build()
referrerClient.startConnection(object : InstallReferrerStateListener {
    override fun onInstallReferrerSetupFinished(responseCode: Int) {
        if (responseCode == InstallReferrerClient.InstallReferrerResponse.OK) {
            val referrer = referrerClient.installReferrer.installReferrer
            // parse UTM параметри з referrer string
        }
    }
    override fun onInstallReferrerServiceDisconnected() {}
})

Шар 3: SKAdNetwork / StoreKit AdNetwork (iOS). Apple закрила fingerprinting на iOS 14.5+ через App Tracking Transparency. Для iOS deferred deep linking працює тільки через:

  • Клипборд — копіюємо параметри в буфер обмену на лендингу, додаток читає при першому запуску (потребує UIPasteboard.general.string, iOS 16+ показує системний prompt)
  • Сторонні SDK (Branch, AppsFlyer, Adjust) які використовують детерміноване сопоставлення через IDFA (з дозволу) та SKAdNetwork для атрибуції без нього

Реалізація через Branch.io

Branch — найповніший інструмент для deferred deep linking. Підтримує Android (Play Referrer + fingerprint), iOS (клипборд + SKAdNetwork + детерміноване), web fallback.

Android SDK:

// Application.onCreate()
Branch.getAutoInstance(this)

// Activity.onStart()
Branch.sessionBuilder(this)
    .withCallback { referringParams, error ->
        if (error == null && referringParams != null) {
            val screen = referringParams.getString("screen")
            val itemId = referringParams.getString("item_id")
            if (referringParams.getBoolean("+clicked_branch_link", false)) {
                // навігація на потрібний екран
                navigateTo(screen, itemId)
            }
        }
    }
    .withData(intent?.data)
    .init()

iOS SDK:

Branch.getInstance().initSession(launchOptions: launchOptions) { params, error in
    guard error == nil, let params = params else { return }
    if let clicked = params["+clicked_branch_link"] as? Bool, clicked {
        let screen = params["screen"] as? String
        self.navigateTo(screen: screen)
    }
}

Universal links (iOS) та App Links (Android) налаштовуються паралельно — Branch генерує потрібні apple-app-site-association та assetlinks.json через свій dashboard.

Кастомна реалізація без сторонніх SDK

Якщо Branch/AppsFlyer надлишкові (немає бюджету на enterprise план або політика проти third-party SDK), можна реалізувати спрощену версію:

  1. Створити endpoint /deferred?screen=product&id=123 — зберігає параметри + fingerprint у Redis з TTL 24 години
  2. На Android: встановити referrer через ?referrer=screen%3Dproduct%26id%3D123 у посиланні на Play Store
  3. При першому запуску: читати через InstallReferrerClient (Android) або робити запрос з fingerprint (iOS)
  4. Навігація на потрібний екран

Обмеження: на iOS точність ~70–75%, Android через Play Referrer — ~95%.

Тестування

Deferred deep linking крайне складно тестувати у dev-окружені: потрібна реальна встановка зі сторе або тестовий track (Firebase App Distribution / TestFlight). Для Branch — режим testMode дозволяє емулювати клики у debug-складці.

Обов'язкові тест-кейси:

  • Встановлення на чистий пристрій по посиланню
  • Перехід по посиланню з уже встановленим додатком (звичайний deep link)
  • Перехід по посиланню, видалення та повторна встановлення (параметри не повинні застосовуватись повторно)
  • Перехід без клику на Branch посилання (organic install — параметрів немає)

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

Обираємо стратегію під платформи та бюджет (Branch/AppsFlyer vs кастомна реалізація), налаштовуємо Universal Links та App Links, реалізуємо SDK інтеграцію з навігацією на потрібні екрани, тестуємо всі сценарії встановлення на реальних пристроях. Документуємо схему параметрів для маркетингової команди.

Строк: 5–10 днів з урахуванням налаштування домена, тестування всіх сценаріїв встановлення та інтеграції з навігацією.