Реализация Dynamic Links (Firebase) в мобильном приложении
Представьте: пользователь кликает по ссылке на акцию в мессенджере, но вместо нужного экрана открывается главная страница приложения. Или ещё хуже — ссылка ведёт в магазин приложений, хотя приложение уже установлено. Такие потери контекста снижают конверсию реферальных программ на 15–25%. Firebase Dynamic Links решает эту задачу, но требует правильной конфигурации.
Один из наших клиентов — интернет-магазин с реферальной программой. После интеграции Dynamic Links конверсия по реферальным ссылкам выросла на 35%, а глубина просмотра увеличилась вдвое. Секрет в том, что ссылка запоминает целевой экран ещё до установки приложения (deferred 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 дней |
Как настроить 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 существуют?
Если Firebasе 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.
Как мы обеспечиваем результат
Наши инженеры имеют сертификаты по Firebase и iOS/Android разработке. Для каждого проекта готовим индивидуальный чек-лист тестирования: установленные/неустановленные приложения, обновления, разные версии ОС, Carrier-зависимые прерывания. Получите консультацию по вашему сценарию — свяжитесь с нами.
Почему стоит заказать интеграцию сейчас
Dynamic Links упрощают вовлечение пользователей: реферальные программы с автоматическим переходом, email-рассылки с контекстом, рекламные кампании с точной аналитикой. Даже после отключения Firebase можно сохранить функциональность с другими инструментами. Мы поможем выбрать оптимальное решение под ваш бюджет. Закажите аудит текущей конфигурации или интеграцию под ключ.







