Firebase Dynamic Links: що це, як працює та використовується в розробці

Автор: IT Sectr Опубліковано: 2026-05-14 Час читання: 8 хв

Firebase Dynamic Links — це сервіс Google для створення розумних посилань, які спрямовують користувача в потрібне місце додатка незалежно від того, встановлено додаток чи ні. За даними Firebase Documentation, Dynamic Links автоматично перенаправляють користувача в App Store або Google Play за відсутності додатка та відновлюють контекст переходу після встановлення. Smart-посилання Firebase вирішують проблему URL Scheme, яка не працює з невстановленими додатками.

Головне

  • Firebase Dynamic Links — сервіс Google для створення універсальних посилань, що працюють на iOS та Android з підтримкою deferred deep link.
  • Deferred — головна перевага: посилання зберігає контекст переходу, навіть якщо додаток не встановлено, і відновлює його після встановлення.
  • Аналітика — Firebase автоматично відстежує переходи за Dynamic Links та надає дані в Firebase Analytics та Google Analytics.
  • Платформи — Dynamic Links працюють на iOS (через Universal Links) та Android (через App Links) з єдиним універсальним посиланням для обох платформ.
  • Створення — посилання генеруються через Firebase Console, REST API або SDK на клієнті з налаштуванням поведінки для кожного сценарію.

Firebase Dynamic Links — це хмарний сервіс від Google, який створює єдині універсальні посилання для мобільних додатків на iOS та Android. Динамічне посилання містить глибоке посилання на контент всередині додатка, але поводиться як звичайне HTTPS-посилання: якщо додаток встановлено, воно відкриває його безпосередньо, якщо ні — перенаправляє в магазин додатків.

На відміну від звичайних URL Scheme, Dynamic Links можуть працювати з невстановленими додатками завдяки технології deferred deep link. Коли користувач встановлює додаток після переходу за посиланням, Firebase зберігає параметри переходу та передає їх при першому запуску. Це відкриває можливості для реферальних програм, маркетингових кампаній та запрошень.

Відмінність від звичайних URL Scheme

URL Scheme вимагають встановленого додатка та не мають стандартного механізму fallback. Firebase Dynamic Links вирішують цю проблему через проміжний веб-сервіс Firebase, який визначає статус встановлення додатка на пристрої та маршрутизує користувача коректно. При цьому одне посилання працює однаково на обох платформах.

Firebase Dynamic Link використовує домен виду yourcode.page.link, який реєструється у Firebase Console. Коли користувач переходить за таким посиланням, Firebase визначає тип пристрою та статус встановлення додатка. Для iOS використовується механізм Universal Links, для Android — App Links з автоматичною верифікацією через Digital Asset Links.

Процес обробки включає кілька послідовних етапів: при переході за посиланням браузер надсилає GET-запит до сервера Firebase, сервер визначає платформу та перевіряє наявність додатка на пристрої. Якщо додаток встановлено — генерується редирект на Universal Link або Intent з параметрами для відкриття цільового екрана. Якщо додаток не встановлено — редирект в App Store або Google Play для завантаження.

Життєвий цикл Dynamic Link

Додаток отримує посилання на етапі ініціалізації Firebase SDK. Метод getDynamicLink() повертає PendingResult з даними про перехід. Після успішного отримання з посилання витягуються параметри deep link, UTM-мітки для аналітики та довільні дані, передані при створенні посилання.

Firebase Console надає візуальний інтерфейс для створення Dynamic Links. Розробник вказує глибоке посилання (deep link URL), назву кампанії, налаштування для iOS та Android окремо, а також параметри аналітики. Після створення Firebase генерує коротке посилання виду https://yourcode.page.link/abc123, яке можна використовувати в рекламних матеріалах, email-розсилках та соціальних мережах.

Для програмного створення Dynamic Links використовується Firebase REST API або клієнтський SDK. REST API дозволяє масово генерувати посилання для маркетингових кампаній з кастомними параметрами, включаючи посилання для соціальних мереж та асинхронну аналітику переходів. При створенні посилань через API важливо правильно вказувати параметри socialMetaTagInfo — вони визначають, як посилання відображається при передачі в месенджери та соцмережі з карткою попереднього перегляду.

Параметри Dynamic Link

ПараметрПризначенняОбов’язковість
Deep Link URLВнутрішнє посилання на контент додаткаТак
iOS Bundle IDІдентифікатор додатка в App StoreДля iOS
Android Package NameІм’я пакета в Google PlayДля Android
Fallback URLВеб-сторінка за відсутності додаткаНі
UTM-міткиПараметри для Google AnalyticsНі

Для роботи з Firebase Dynamic Links на iOS потрібно підключити Firebase SDK через CocoaPods або Swift Package Manager, налаштувати Info.plist з GOOGLE_APP_ID та зареєструвати домен Dynamic Links в Associated Domains проекту. Після цього додаток автоматично обробляє Universal Links, згенеровані Firebase.

В Xcode необхідно додати capability Associated Domains із записом виду applinks:yourcode.page.link. Firebase SDK використовує метод application(_:continue:restorationHandler:) для обробки Universal Links, тому додаткова інтеграція з AppDelegate не потрібна — Firebase автоматично витягує параметри Dynamic Link з User Activity.

Налаштування в Xcode

Приклад налаштування Info.plist для коректної ініціалізації Firebase та реєстрації обробника Dynamic Links. Ключ FIROptions повинен містити ідентифікатор проекту GoogleService-Info.plist.

xml
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
    <string>https://yourcode.page.link</string>
</array>
<key>FirebaseAppDelegateProxyEnabled</key>
<false/>

Якщо проксі AppDelegate вимкнено, необхідно вручну викликати метод handleUniversalLink(_:) та передавати User Activity з continue NSUserActivity. Firebase SDK автоматично витягує параметри посилання та повертає DynamicLink через completion handler.

На Android інтеграція Firebase Dynamic Links починається з додавання залежностей у build.gradle та файлу google-services.json від Firebase Console. Домен Dynamic Links реєструється у Firebase Console, після чого всі посилання з цим доменом автоматично розпізнаються Android-додатком через Intent Filter з action VIEW. Для коректної роботи необхідно також додати плагін Google Services в кореневий та модульний build.gradle та виконати синхронізацію Gradle.

Для коректної обробки посилань на Android необхідно додати Intent Filter для домену Dynamic Links в Activity, яка повинна приймати вхідні посилання. Фільтр повинен містити схему https, хост вашого домену Dynamic Links та шлях за замовчуванням.

Intent Filter для Dynamic Links

Приклад Intent Filter в AndroidManifest.xml для прийому Dynamic Links на домені yourcode.page.link.

xml
<activity android:name=".MainActivity"
    android:launchMode="singleTask">
    <intent-filter
        android:autoVerify="true">
        <action
            android:name="android.intent.action.VIEW" />
        <category
            android:name="android.intent.category.DEFAULT" />
        <category
            android:name="android.intent.category.BROWSABLE" />
        <data
            android:scheme="https"
            android:host="yourcode.page.link" />
    </intent-filter>
</activity>

Важливо встановити launchMode singleTask для Activity, що приймає Dynamic Links. Це запобігає створенню нового екземпляра Activity при повторному переході за посиланням та дозволяє коректно обробляти всі вхідні deep link в одному екземплярі.

Firebase SDK для Android надає метод FirebaseDynamicLinks.getInstance().getDynamicLink(intent), який повертає об’єкт PendingTask з даними про посилання. З об’єкта DynamicLink витягується глибокий URI, UTM-параметри та мітка часу переходу. Обробку рекомендується виконувати в методах onCreate() та onNewIntent() Activity.

При обробці важливо враховувати, що Dynamic Link може бути отриманий як при запуску додатка з холодного стану (cold start), так і при переході з іншого додатка в уже запущений додаток. Для другого випадку необхідно перевизначити onNewIntent() та повторно викликати перевірку Dynamic Link.

Обробка в коді на Kotlin

Приклад отримання та обробки Firebase Dynamic Link в MainActivity. Код обробляє як cold start, так і перехід з іншого додатка.

kotlin
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        checkDynamicLink(intent)
    }
    override fun onNewIntent(intent: Intent) {
        super.onNewIntent(intent)
        checkDynamicLink(intent)
    }
    private fun checkDynamicLink(intent: Intent) {
        FirebaseDynamicLinks.getInstance()
            .getDynamicLink(intent)
            .addOnSuccessListener link ->
                val deepLink = link?.link.toString()
                handleDeepLink(deepLink)
            }
    }
}

Метод addOnSuccessListener повертає DynamicLink, з якого витягується цільове посилання через link?.link. Якщо listener повертає null, значить Intent не містить Dynamic Link — це нормальний запуск додатка без вхідного посилання. Також доступні UTM-мітки для аналітики переходів, включаючи campaign, medium, source та content, які можна передати в Google Analytics для детальної оцінки ефективності кожного маркетингового каналу.

Часті запитання

Чим Firebase Dynamic Links відрізняється від звичайного deep link?

Firebase Dynamic Links підтримує deferred deep link — посилання зберігає контекст, навіть якщо додаток не встановлено. Після встановлення додаток отримує всі параметри переходу, що неможливо зі звичайними URL Scheme або Universal Links.

Чи потрібно платити за Firebase Dynamic Links?

Firebase Dynamic Links входять у безкоштовний тарифний план Firebase Spark. Обмежень на кількість створюваних посилань немає. Однак з 2024 року Google анонсував перехід на нову інфраструктуру, тому умови можуть змінитися.

Чи можна використовувати Dynamic Links у веб-додатку?

Dynamic Links призначені для мобільних додатків. При переході з веб-браузера на десктопі посилання відкриє fallback URL. Для веб-додатків використовуйте звичайні посилання або власну логіку редиректів.

Як тестувати Dynamic Links на етапі розробки?

Firebase Console надає кнопку Test Dynamic Link для попереднього перегляду поведінки. Також можна використовувати емулятор Android або симулятор iOS з встановленим Firebase SDK для локального тестування всіх сценаріїв переходу.

Скільки символів може містити Dynamic Link?

Коротке посилання Firebase Dynamic Link складається з домену page.link та випадкового суфікса довжиною близько 7 символів. Загальна довжина — приблизно 30 символів. Deep link всередині може бути будь-якої довжини, але рекомендується обмежувати його до 2 КБ для сумісності.

Підсумки

  • Firebase Dynamic Links — єдині універсальні посилання від Google для iOS та Android з підтримкою deferred deep link.
  • Принцип роботи — посилання проходить через сервер Firebase, який визначає пристрій та статус встановлення додатка для коректної маршрутизації.
  • Deferred — ключова перевага: параметри переходу зберігаються та відновлюються після встановлення додатка з магазину.
  • Створення — посилання генеруються через Firebase Console, REST API або клієнтський SDK з налаштуванням параметрів для кожної платформи.
  • iOS-інтеграція — вимагає Associated Domains в Xcode та Firebase SDK; обробка через Universal Links та метод continue UserActivity.
  • Android-інтеграція — вимагає Intent Filter в маніфесті з action VIEW та доменом Dynamic Links, плюс Firebase SDK в build.gradle.
  • Аналітика — Firebase автоматично відстежує переходи за Dynamic Links з підтримкою UTM-міток для Google Analytics.

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також