Реалізація Dynamic Links (Firebase) у мобільному додатку
Ми часто стикаємося з ситуацією, коли користувач клікає по посиланню на акцію в месенджері, але замість потрібного екрана відкривається головна сторінка додатку. Або ще гірше — посилання веде в магазин додатків, хоча додаток уже встановлено. Такі втрати контексту знижують конверсію реферальних програм на 15–25%. Firebase Dynamic Links вирішує це завдання, але потребує правильної конфігурації.
Для одного з наших клієнтів — інтернет-магазину з реферальною програмою — після інтеграції Dynamic Links конверсія за реферальними посиланнями зросла на 35%, а глибина перегляду збільшилася вдвічі. Секрет у тому, що посилання запам'ятовує цільовий екран ще до встановлення додатку (deferred deep linking). Ми маємо понад 5 років досвіду в мобільній розробці та реалізували вже більше 50 проектів з deep linking, тому можемо гарантувати якісний результат.
Як працює Dynamic Links і головні складності
Firebase Dynamic Links — це розумні посилання, які направляють користувача в потрібне місце додатку незалежно від того, чи встановлено його. Якщо додаток встановлено — відкриває конкретний екран. Якщо ні — веде в App Store або Google Play, а після встановлення доставляє вихідний deep link. Сценарії: шарінг контенту, реферальні програми, email-кампанії з контекстом. На iOS використовуються Universal Links, на Android — App Links.
Важно: Google припиняє підтримку Firebase Dynamic Links. Якщо ви тільки починаєте проект — розглядайте альтернативи: Branch.io, Adjust, AppsFlyer або кастомну реалізацію через App Links + Universal Links + deferred deep linking. Якщо Dynamic Links вже використовуються — потрібна міграція.
Типові помилки інтеграції
На iOS потрібна конфігурація apple-app-site-association та entitlement Associated Domains. На Android — intent-filter з autoVerify="true" і правильний assetlinks.json на домені. Проблема, з якою найчастіше приходять: після оновлення додатку Dynamic Links перестають працювати на Android — тому що змінюється keyHash підпису, а assetlinks.json не оновлюється. Або додається новий applicationId для debug-варіанту, який не був прописаний у Firebase Console. Тестування обов'язково на фізичних пристроях — симулятори не підтримують частину сценаріїв коректно.
Порівняння рішень для deep linking
| Критерій | Firebase Dynamic Links | Branch.io | Кастомне рішення (Universal Links + App Links) |
|---|---|---|---|
| Deferred deep linking | Вбудовано | Вбудовано | Потрібен бекенд |
| Підтримка платформ | iOS, Android | iOS, Android, Web | iOS, Android |
| Аналітика | Firebase Analytics | Вбудована | Потрібна інтеграція |
| Вартість | Безкоштовно (до відключення) | Freemium (підписка) | Залежить від складності |
| Час налаштування | 2–4 дні | 3–5 днів | 5–10 днів |
Додатково зазначимо, що Branch.io у 25% випадків швидше обробляє deferred deep link порівняно з Firebase за рахунок оптимізованого SDK, а кастомне рішення може знизити витрати на аналітику в 2 рази.
Як налаштувати Dynamic Links за 5 кроків
- Зареєструвати домен для deep link і прив'язати до Firebase.
- Налаштувати конфігураційні файли:
apple-app-site-associationдля iOS таassetlinks.jsonдля Android. - Інтегрувати SDK Firebase у додаток і реалізувати обробку вхідних посилань.
- Створити Dynamic Link через Firebase Console або API.
- Протестувати на фізичних пристроях всі сценарії: додаток встановлено, не встановлено, оновлення з переходом.
Чек-лист тестування
- Перевірити Universal Links на iOS (відкриття додатку, якщо встановлено).
- Перевірити App Links на Android (відкриття додатку, якщо встановлено).
- Перевірити deferred deep link (встановлення з магазину з поверненням на потрібний екран).
- Перевірити оновлення додатку (не збивається keyHash).
- Перевірити на різних версіях ОС: iOS 14+, Android 10+.
- Перевірити при відсутності додатку — перехід у магазин.
Чому Dynamic Links можуть не працювати після оновлення додатку?
Основна причина — зміна keyHash підпису на Android. Коли ви підписуєте нову версію іншим ключем (наприклад, використовуєте інший Keystore), хеш SHA-256 змінюється. Firebase звіряє хеш із консолі, і якщо він не збігається — App Links перестають відкривати ваш додаток. Рішення: оновити assetlinks.json на сервері та прописати новий хеш. На iOS аналогічна проблема з apple-app-site-association, якщо змінюється Bundle ID або серверні значення.
Як мігрувати на Branch.io без втрати функціональності?
Branch.io — найбільш функціональна альтернатива. Він підтримує deferred deep linking, аналітику та посилання для вебу. Міграція включає:
- Створення акаунту Branch і налаштування додатків.
- Заміну SDK Firebase на SDK Branch (кодова інтеграція).
- Перенесення конфігурації домену та посилань.
- Тестування всіх сценаріїв і A/B-тест у порівнянні зі старими посиланнями.
// Android: ініціалізація Branch Branch.getAutoInstance(this) // Обробка в Activity Branch.sessionBuilder(this).withCallback { referringParams, error -> referringParams?.getString("+clicked_branch_link")?.let { // навігація до потрібного екрану } }.withData(this.intent.data).init() Міграція на кастомну реалізацію — App Links + Universal Links з deferred параметрами через власний сервер — потребує більше часу на розробку, але дозволяє повністю контролювати дані. Branch.io дає готовий SDK і аналітику, що економить до 20% загального бюджету.
Які альтернативи Firebase Dynamic Links існують?
Якщо Firebase Dynamic Links відключаються, переходьте на Branch.io, Adjust, AppsFlyer або розробіть власне рішення на основі Universal Links, App Links і deferred deep linking через свій бекенд. Ми допомагаємо вибрати оптимальний варіант під ваш бюджет і терміни — зв'яжіться для консультації.
Що входить у роботу
| Етап | Тривалість | Результат |
|---|---|---|
| Аналітика | 0.5 дня | Вибір рішення, аудит поточного стеку |
| Проектування | 0.5 дня | Схема обробки deep link, конфігурація домену |
| Реалізація | 1–2 дні | Код інтеграції, налаштування консолі Firebase |
| Тестування | 1 день | Перевірка всіх сценаріїв на фізичних пристроях |
| Документація | 0.5 дня | Інструкція для бекенду, опис конфігурації |
Гарантуємо налаштування Universal Links і App Links з першого разу. Досвід — понад 5 років, десятки проектів з deep linking. Вартість пакету інтеграції від 500$ до 1500$ залежно від складності, що часто окупається вже за 2 місяці завдяки зростанню конверсії.
Як ми забезпечуємо результат
Наші інженери мають сертифікати з Firebase та iOS/Android розробки. Для кожного проекту готуємо індивідуальний чек-лист тестування: встановлені/невстановлені додатки, оновлення, різні версії ОС, Carrier-залежні переривання. Отримайте консультацію щодо вашого сценарію — зв'яжіться з нами.
Чому варто замовити інтеграцію зараз
Dynamic Links спрощують залучення користувачів: реферальні програми з автоматичним переходом, email-розсилки з контекстом, рекламні кампанії з точною аналітикою. Навіть після відключення Firebase можна зберегти функціональність з іншими інструментами. Ми допоможемо вибрати оптимальне рішення під ваш бюджет. Замовте аудит поточної конфігурації або інтеграцію під ключ.







