Глибокі посилання. Open the app. Fall back gracefully.
Universal Links та App Links manifests, що обслуговуються з вашого власного домену. iOS відкриває ваш додаток за натисканням; Android робить те саме. Резервний варіант браузера на настільних комп'ютерах.
- Universal Links (iOS) and App Links (Android) served from your domain
- Deferred deep links — context survives app install
- Smart platform detection with graceful fallbacks
- No SDK required — works with standard OS mechanisms
Universal Links & App Links
Manifest files, auto-served from your domain
iOS Universal Links require an apple-app-site-association file. Android App Links require assetlinks.json. Elido generates and serves both from your custom domain automatically — no separate hosting, no manual file management.
- iOS Universal LinksBundle ID + Team ID → AASA served at /.well-known/ automatically
- Android App LinksPackage name + SHA-256 fingerprint → assetlinks.json, HTTPS enforced
- Smart-link fallbackApp not installed → App Store / Play Store via rule-based routing
- UTM passthroughUTM parameters preserved to store URL — attribution doesn't break
- No SDK in your appOS-level interception only; intent-filter and continueUserActivity
{ "applinks": { "apps": [], "details": [ { "appID": "TEAMID.com.yours.app", "paths": [ "/product/*", "/referral/*", "/invite/*" ] } ] } }
[{ "relation": [ "delegate_permission/ common.handle_all_urls" ], "target": { "namespace": "android_app", "package_name": "com.yourcompany.app", "sha256_cert_fingerprints": [ "AB:12:CD:34:EF:56:..." ] } }]
Served from your custom domain automatically. Configure bundle ID + Team ID (iOS) or package name + SHA-256 fingerprint (Android) in domain settings — Elido generates and hosts both files.
Deferred deep links
Context that survives the install
When the app isn’t installed, the user goes to the store, installs, and opens the app. Deferred deep-linking passes the original deep-link context through that journey so the app can land the user on exactly the right screen after first launch.
- 01
Clicks link
User taps an Elido short link — from email, social, QR.
go.yourcompany.com/p/12345 - 02
No app → Store
App not installed. OS detects from AASA / assetlinks check. Falls back to App Store or Play Store.
iOS → App Store · Android → Play Store - 03
Installs app
User installs from the store. The install referrer carries the click context as a query parameter.
click_id + UTM preserved in referrer URL - 04
Opens app
App opens for the first time. MMP reads install referrer; maps click_id to the install event.
Appsflyer / Adjust / Branch picks it up - 05
Lands on exact page
App routes to the originally linked screen — product/12345 — as if the user had the app already.
product/12345 — context preserved through install
The click_id and UTM parameters from the original short link are passed as query parameters to the store URL. Mobile Measurement Platforms (MMPs) that capture the install referrer — Appsflyer, Adjust, Branch — can match the install to the originating click. Full deferred deep-linking (passing in-app context through install) requires the MMP SDK in your app; Elido covers the link layer.
Smart platform detection
One link. Three redirect paths.
The edge reads User-Agent and platform signals at the redirect layer — before any JS runs. iPhone gets Universal Links, Android gets App Links, desktop gets your web fallback. No JavaScript redirect delay; no client-side platform detection.
- UA parsing at the edge, sub-millisecond
- iOS → Universal Link interception by the OS
- Android → App Link interception via intent-filter
- Desktop → web URL, no store detour
- In-app browsers detected and redirected to system browser
- Composes with smart-link rules — geo + device + deep-link
What you can do
- Apple App Site Association
- Android Asset Links
- Smart-link правила для резервного варіанта магазину
- Протестовано за допомогою adb та xcrun
Як насправді працюють глибокі посилання — і де вони ламаються
Universal Links та App Links — це механізми на рівні ОС. Налаштування просте; крайові випадки — ні. Це охоплює повну картину.
apple-app-site-association автоматично видається з вашого власного домену
Universal Links потребують файл apple-app-site-association (AASA) за шляхом /.well-known/apple-app-site-association на вашому власному домені. iOS завантажує цей файл під час встановлення вашого застосунку; він пов'язує ваш домен із Bundle ID та Team ID вашого застосунку. Якщо зіставлення правильне, натискання на HTTPS-посилання на вашому домені в будь-якому застосунку iOS (Safari, Mail, Twitter, Instagram) відкриває ваш застосунок напряму замість переходу в браузер. Elido автоматично створює та надає файл AASA з відомого шляху вашого власного домену на основі Bundle ID та Team ID, які ви налаштували в параметрах домену. Вам не потрібно хостити файл окремо. iOS кешує файл AASA і періодично завантажує його знову; якщо ви зміните конфігурацію Bundle ID у налаштуваннях домену Elido, новий AASA стає доступним за лічені секунди, але пристрої iOS отримають його під час наступного оновлення кешу (зазвичай 24-48 годин або при перевстановленні застосунку). Перевірено за допомогою валідатора Apple AASA для кожного релізу Elido.
assetlinks.json видається автоматично — SHA-256 відбиток вашого ключа підпису
Android App Links потребують файл Digital Asset Links за шляхом /.well-known/assetlinks.json на вашому домені. Файл пов'язує ваш домен із назвою пакета застосунку та SHA-256 відбитком вашого сертифіката підпису. Android перевіряє цей файл під час встановлення застосунку та періодично після цього. Elido автоматично надає його з вашого власного домену на основі назви пакета та SHA-256 відбитка, які ви налаштували. Перевірка Android вимагає HTTPS (забезпечується TLS від Elido на власному домені), і файл має відповідати протягом декількох секунд (також обробляється). Один з поширених випадків збоїв: різні ключі підпису для налагоджувальних (debug) та релізних збірок мають різні SHA-256 відбитки. Налаштуйте обидва відбитки в параметрах домену Elido, якщо ви тестуєте налагоджувальну збірку; для релізних збірок потрібен лише релізний відбиток. Перевірено за допомогою adb shell pm get-app-links для кожного релізу.
Застосунок встановлено → глибоке посилання. Застосунок не встановлено → магазин. Десктоп → веб. UTM зберігаються всюди.
Ланцюжок резервних переходів (fallback chain) встановлюється для кожного посилання або домену в налаштуваннях Elido. Для короткого посилання з конфігурацією глибокого посилання: якщо ОС перехоплює натискання (застосунок встановлено, домен підтверджено), відкривається застосунок. Якщо ні (застосунок не встановлено), посилання відкривається в браузері; пунктом призначення в браузері має бути ваше посилання на App Store / Play Store або веб-сторінка. Правила смарт-посилань обробляють це чітко: налаштуйте правило для iOS → URL App Store, правило для Android → URL Play Store та резервний перехід на веб-адресу. UTM-параметри з оригінального короткого посилання зберігаються в резервних URL-адресах, тому атрибуція не переривається, коли користувач потрапляє в магазин. Відкладене глибоке посилання (передача специфічного шляху глибокого посилання через встановлення, щоб застосунок відкрився на потрібному екрані після встановлення) вимагає SDK у застосунку — Elido цього не надає. Для відкладених глибоких посилань вам все одно знадобляться Appsflyer, Adjust або Firebase App Distribution.
Ретаргетинг після встановлення: click_id передається в пункт призначення для атрибуції
При перенаправленні за глибоким посиланням Elido передає click_id як параметр запиту в резервний URL. Якщо користувач потрапляє в App Store і встановлює застосунок, click_id є в реферальному URL, але він не поширюється автоматично в застосунок після встановлення — для цього потрібен SKAdNetwork на iOS або SDK для відкладених глибоких посилань на Android. Що робить Elido: передає click_id та UTM-параметри в URL магазину, щоб платформа мобільної атрибуції (MMP), яка фіксує реферер встановлення, могла їх підхопити. Це працює з Appsflyer та Adjust, якщо ви передаєте click_id у параметрі кампанії URL магазину. Якщо ви не використовуєте MMP, click_id в URL магазину фактично втрачається після встановлення.
Міграція з Firebase Dynamic Links (закриття у 2025 році)
Firebase Dynamic Links було закрито Google у 2025 році. Elido може обробляти основний патерн: єдине коротке HTTPS-посилання, яке відкриває потрібний екран у встановленому застосунку, переходить до магазину за потреби та відкриває веб-версію на десктопі. Налаштуйте AASA та assetlinks.json у параметрах домену Elido (замінює хостинг цих файлів у Firebase), оновіть свої посилання для поширення, щоб вони вказували на короткі посилання Elido замість URL page.link, і налаштуйте ланцюжок резервних переходів за допомогою правил смарт-посилань. Що Elido не замінює: відкладені глибокі посилання Firebase (контекст глибокого посилання після встановлення через Firebase SDK) та глибокі посилання Firebase App Distribution. Якщо ваш застосунок значною мірою покладається на відкладені глибокі посилання, вам знадобляться Appsflyer, Adjust або Branch поряд з Elido для рівня атрибуції. Для застосунків, яким потрібно лише «відкрити потрібний екран, якщо встановлено, інакше перейти в магазин», Elido повністю замінює Firebase Dynamic Links.
Мобільні команди, що використовують глибокі посилання Elido
Назви наразі є плейсхолдерами — реальні імена клієнтів з'являться тут після публікації кейсів.
“Ми мігрували з Firebase Dynamic Links того ж тижня, коли було оголошено про закриття сервісу. Налаштування AASA та assetlinks.json в Elido зайняло півдня. Ланцюжок переходів смарт-посилань замінив логіку Firebase SDK, яку ми мали в застосунку для маршрутизації в магазини.”
“Аналітика кліків за глибокими посиланнями показала нам, що 35% наших посилань для поширення відкривалися на десктопі — а у нас не було налаштовано резервного переходу на веб. Додавання резервної адреси зайняло 10 хвилин; конверсія посилань зросла, бо користувачі з десктопів тепер могли завершити дію.”
“Ми використовуємо короткі посилання Elido з конфігурацією глибоких посилань для реферальних програм. Передача UTM в URL App Store означає, що наша MMP правильно фіксує реферер встановлення — атрибуція працює без розробки власного SDK з нашого боку.”
Глибокі посилання Elido проти Branch.io проти Adjust проти Firebase Dynamic Links (закрито)
Branch та Adjust — це повноцінні платформи мобільної атрибуції, потужніші для відкладених глибоких посилань та MMP-атрибуції. Elido — правильний інструмент, коли глибокі посилання є частиною ширшої системи скорочення посилань, а не основним продуктом.
| Feature | Elido | Branch.io | Adjust |
|---|---|---|---|
| Universal Links (iOS) | Автоматична видача AASA з вашого домену | Повністю керовано в масштабі | Ні — тільки MMP, не хост для глибоких посилань |
| App Links (Android) | Автоматична видача assetlinks.json з вашого домену | Повністю керовано | Ні |
| SDK необхідний у застосунку | Ні — перехоплення на рівні ОС | Так — Branch SDK | Так — Adjust SDK |
| Відкладені глибокі посилання | Ні — потребує SDK у застосунку | Так — основна функція | Так — з Adjust SDK |
| Мобільна атрибуція (MMP) | Передача Click ID; налаштування MMP вручну | Власна MMP — інтеграції з Appsflyer, Kochava | Повноцінна MMP-платформа |
| Передача UTM у магазин | Так — через параметр запиту в резервному URL | Так, з контекстом атрибуції | Так |
| Аналітика кліків за посиланнями | ClickHouse — гео, пристрої, за посиланнями | Глибока аналітика мобільної атрибуції | Дані про атрибуцію встановлень та подій |
| Заміна Firebase Dynamic Links | Так для базового патерну; ні для відкладених посилань | Повна заміна, включаючи відкладені посилання | Частково — лише з боку MMP |
Питання про глибокі посилання
Чи потрібен мені Branch SDK або будь-який інший SDK у моєму застосунку для використання глибоких посилань Elido?
Ні. Глибокі посилання Elido використовують iOS Universal Links та Android App Links — механізми на рівні ОС. Вашому застосунку просто потрібно обробляти вхідний URL стандартним для iOS (scene:openURLContexts або application:continueUserActivity) або Android (intent-filter у маніфесті) способом. Жодних сторонніх SDK не встановлюється; ОС здійснює перехоплення на основі файлів AASA та assetlinks.json, які Elido видає з вашого домену.
Який процес налаштування AASA?
В налаштуваннях домену Elido → Глибокі посилання: введіть Bundle ID вашого застосунку для iOS (наприклад, com.yourcompany.app) та Apple Team ID (10-символьний рядок з вашого облікового запису Apple Developer). Elido генерує AASA JSON і надає його за адресою /.well-known/apple-app-site-association на вашому власному домені. Перевірте його доступність за допомогою curl перед відправкою застосунку в TestFlight або App Store. iOS завантажує файл AASA під час встановлення застосунку на пристрої з iOS 9+.
Чи можу я мати кілька застосунків на одному домені?
Так — файл AASA підтримує запис для кількох застосунків. Налаштуйте Bundle ID та Team ID для кожного застосунку в параметрах домену; Elido згенерує комбінований AASA зі списком усіх застосунків. Android assetlinks.json також підтримує комбінації з кількох назв пакетів та відбитків пальців. Типовий випадок: основний застосунок та App Clip, або основний застосунок та розширення віджетів.
Firebase Dynamic Links закрито — який шлях міграції?
Замініть короткі URL page.link на короткі посилання Elido (ваш власний домен або загальний домен Elido). Налаштуйте AASA та assetlinks.json у параметрах домену Elido. Встановіть ланцюжок резервних переходів за допомогою правил смарт-посилань (правило iOS → App Store, правило Android → Play Store, резервний перехід → веб). Оновіть генерацію посилань для поширення у вашому застосунку, щоб викликати API create_link Elido замість Firebase. Що не підлягає міграції: якщо ваш застосунок покладається на відкладені глибокі посилання Firebase (передача інтенту після встановлення), вам знадобиться Branch або Adjust для цієї частини.
Як протестувати Universal Links перед публікацією в App Store?
Використовуйте xcrun simctl openurl booted 'https://go.yourcompany.com/test-slug' зі встановленим застосунком на симуляторі. На фізичному пристрої з налагоджувальною збіркою довго натисніть на посилання в Safari і подивіться, чи з'явиться пункт «Відкрити в застосунку». Apple також надає App Association File Validator на сайті developer.apple.com — вставте URL вашого AASA, і він перевірить доступність, Content-Type та валідність JSON. AASA від Elido проходить всі три перевірки.
Що таке відкладені глибокі посилання і чому Elido їх не підтримує?
Відкладені глибокі посилання передають контекст (наприклад, «користувач переглядав товар з ID 123») через процес встановлення застосунку аж до його першого запуску. Це вимагає SDK для фінгерпринтингу або атрибуції в застосунку (Branch, Appsflyer, Adjust), який зіставляє встановлення з кліком під час самого процесу встановлення. Elido не встановлює SDK-код у ваш застосунок; ми лише надаємо AASA та assetlinks.json. Без SDK немає механізму для передачі контексту через встановлення. Для базового випадку «відкрити потрібний екран, якщо встановлено» можливостей Elido достатньо. Для передачі інтенту через встановлення потрібна MMP.
Чи можу я використовувати глибокі посилання на загальному домені Elido (s.elido.me)?
Ні. Universal Links та App Links потребують вашого власного домену — ви не можете претендувати на *.elido.me як домен Universal Link для свого застосунку. Глибокі посилання потребують власного домену на тарифах Pro або Business. Власний домен — це те, що ви налаштовуєте у своїх AASA та assetlinks.json, і Elido видає ці файли з нього.
Як обробити випадок, коли браузер користувача блокує перехоплення застосунком?
Деякі браузери (зокрема Chrome на Android версій нижче 6.0 та деякі вбудовані браузери, як в Instagram) блокують перехоплення App Links або Universal Link. У такому разі користувач бачить резервний URL. Для вбудованих браузерів: спочатку перенаправте в системний браузер за допомогою intent URL (Android) або підказки користувачеві. Для вбудованих браузерів Instagram / TikTok: стандартний підхід полягає в показі повідомлення «натисніть, щоб відкрити у вашому браузері». Elido не додає цю підказку автоматично — резервним URL є ваш пункт призначення, і ви самі контролюєте, що там відбувається.
Keep reading
Налаштування власних доменів — необхідно для глибоких посилань; AASA та assetlinks.json видаються з вашого хоста.
iOS → App Store, Android → Play Store, десктоп → веб — ланцюжок резервних переходів за допомогою правил смарт-посилань.
Як команди продукту використовують глибокі посилання разом з A/B варіантами та правилами смарт-посилань.
Інтеграції з MMP — Appsflyer, Adjust та Branch для відкладених глибоких посилань поряд з Elido.
Готові спробувати?
Почніть з безкоштовного плану, оновіть, коли вам знадобиться власний домен.