Elido
Все, що робить Elido
Pro та Business

Глибокі посилання. Відкривайте застосунок. Витончено відкочуйтеся.

Universal Links та App Links manifests, що обслуговуються з вашого власного домену. iOS відкриває ваш додаток за натисканням; Android робить те саме. Резервний варіант браузера на настільних комп'ютерах.

  • Universal Links (iOS) і App Links (Android), що обслуговуються з вашого домену
  • Відкладені діплінки - контекст переживає встановлення застосунку
  • Розумне визначення платформи з витонченими фолбеками
  • Без SDK - працює зі стандартними механізмами ОС
go.yourcompany.com/product/12345
Користувач натискає посиланняgo.yourcompany.com/product/12345Застосунок встановлено?ОС перевіряє AASA / assetlinksТАКНІВідкрити у застосункуproduct/12345deep path збереженоОС?Визначення UAiOSApp Storeapps.apple.comAndroidPlay Storeplay.google.comДесктопМобільний вебфолбек браузераUTM passthrough
Перехоплення на рівні ОС, без SDKAASA + assetlinks.json
Автоматична видача
AASA + assetlinks.json
0
Встановлень SDK в застосунку
iOS + Android
Покриття платформ
UTM
Передача при переході на резервну адресу

Universal Links і App Links

Маніфест-файли, що автоматично обслуговуються з вашого домену

iOS Universal Links вимагають файл apple-app-site-association . Android App Links вимагають assetlinks.json. Elido автоматично генерує та обслуговує обидва з вашого власного домену - без окремого хостингу, без ручного управління файлами.

  • iOS Universal Links
    Bundle ID + Team ID → AASA автоматично обслуговується за шляхом /.well-known/
  • Android App Links
    Ім'я пакету + SHA-256 fingerprint → assetlinks.json, HTTPS обов'язковий
  • Smart-link фолбек
    Застосунок не встановлено → App Store / Play Store через rule-based маршрутизацію
  • UTM passthrough
    UTM-параметри зберігаються в URL магазину - атрибуція не ламається
  • Без SDK у вашому застосунку
    Тільки OS-level перехоплення; intent-filter і continueUserActivity
Apple Universal Links
/.well-known/apple-app-site-association
{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAMID.com.yours.app",
        "paths": [
          "/product/*",
          "/referral/*",
          "/invite/*"
        ]
      }
    ]
  }
}
Android App Links
/.well-known/assetlinks.json
[{
  "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:..."
    ]
  }
}]

Обслуговується з вашого власного домену автоматично. Налаштуйте bundle ID + Team ID (iOS) або ім'я пакету + SHA-256 fingerprint (Android) в налаштуваннях домену - Elido генерує та хостить обидва файли.

xcrun simctl openurl booted '…'
adb shell pm get-app-links

Відкладені діплінки

Контекст, що переживає встановлення

Коли застосунок не встановлено, користувач йде до магазину, встановлює та відкриває застосунок. Відкладений діплінкінг передає оригінальний deep-link контекст через цей шлях, щоб застосунок міг привести користувача саме на той екран, де потрібно, після першого запуску.

  1. 01

    Натискає на посилання

    Користувач натискає коротке посилання Elido - з email, соцмереж, QR.

    go.yourcompany.com/p/12345
  2. 02

    Немає застосунку → Магазин

    Застосунок не встановлено. ОС визначає за перевіркою AASA / assetlinks. Відкочується у App Store або Play Store.

    iOS → App Store · Android → Play Store
  3. 03

    Встановлює застосунок

    Користувач встановлює з магазину. Install referrer несе контекст кліку як query-параметр.

    click_id + UTM збережено в URL referrer'а
  4. 04

    Відкриває застосунок

    Застосунок запускається вперше. MMP читає install referrer; зв'язує click_id з подією встановлення.

    Appsflyer / Adjust / Branch підхоплюють
  5. 05

    Потрапляє на потрібний екран

    Застосунок маршрутизує на оригінально прив'язаний екран - product/12345 - наче застосунок уже був.

    product/12345 - контекст збережено через встановлення
Контекст збережено через встановлення

Параметр click_id і UTM з оригінального короткого посилання передаються як query-параметри в URL магазину. Mobile Measurement Platforms (MMP), що захоплюють install referrer - Appsflyer, Adjust, Branch - можуть зматчити встановлення з вихідним кліком. Повний відкладений діплінкінг (передача in-app контексту через встановлення) вимагає SDK MMP у вашому застосунку; Elido покриває шар посилань.

Визначення платформи
go.yourcompany.com/p/12345
Live
iPhone 15 Pro
iOS 17.4
iOS Universal Links
Mozilla/5.0 (iPhone; CPU iPhone OS 17_4…)
ОС перехоплює HTTPS-натискання → відкриває застосунок
yourapp://product/12345
Pixel 8 Pro
Android 14
Android App Links
Mozilla/5.0 (Linux; Android 14; Pixel 8…)
Intent зматчено з assetlinks.json → застосунок відкрито
yourapp://product/12345
MacBook / Десктоп
macOS / Windows / Linux
Веб-фолбек
Mozilla/5.0 (Macintosh; Intel Mac OS X…)
Без перевірки AASA → 302 на веб-URL
yourcompany.com/product/12345
Парсинг UA працює всередині процесу edge-редиректу - p50 менше 0.5 мс. Внутрішньозастосункові браузери (Instagram, TikTok) визначаються окремо та можуть бути спрямовані на підказку редиректу в системний браузер.

Розумне визначення платформи

Одне посилання. Три шляхи редиректу.

Edge читає User-Agent і сигнали платформи на рівні редиректу - до того, як запуститься будь-який JS. iPhone отримує Universal Links, Android отримує App Links, десктоп отримує ваш веб-фолбек. Без затримки JavaScript-редиректу; без клієнтського визначення платформи.

  • Парсинг UA на edge, субмілісекунди
  • iOS → перехоплення Universal Link операційною системою
  • Android → перехоплення App Link через intent-filter
  • Десктоп → веб-URL, без об'їзду через магазин
  • Внутрішньозастосункові браузери визначаються та редиректяться у системний браузер
  • Поєднується зі smart-link правилами - гео + пристрій + діплінк

Що ви можете зробити

  • Apple App Site Association
  • Android Asset Links
  • Smart-link правила для резервного варіанта магазину
  • Протестовано за допомогою adb та xcrun

Як насправді працюють глибокі посилання - і де вони ламаються

Universal Links та App Links - це механізми на рівні ОС. Налаштування просте; крайові випадки - ні. Це охоплює повну картину.

iOS Universal Links
01

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.

Android App Links
02

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 для кожного релізу.

Fallback chain
03

Застосунок встановлено → глибоке посилання. Застосунок не встановлено → магазин. Десктоп → веб. 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.

Retargeting after install
04

Ретаргетинг після встановлення: 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 migration
05

Міграція з 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, яку ми мали в застосунку для маршрутизації в магазини.

М
Мобільна команда, споживчий застосунок, 200 тис. користувачів, Рига
Мобільний інженер

Аналітика кліків за глибокими посиланнями показала нам, що 35% наших посилань для поширення відкривалися на десктопі - а у нас не було налаштовано резервного переходу на веб. Додавання резервної адреси зайняло 10 хвилин; конверсія посилань зросла, бо користувачі з десктопів тепер могли завершити дію.

К
Команда продукту, B2C маркетплейс, Брюссель
Менеджер продукту

Ми використовуємо короткі посилання Elido з конфігурацією глибоких посилань для реферальних програм. Передача UTM в URL App Store означає, що наша MMP правильно фіксує реферер встановлення - атрибуція працює без розробки власного SDK з нашого боку.

К
Команда зростання, фітнес-застосунок, 80 тис. користувачів, Амстердам
Head of Growth

Глибокі посилання Elido проти Branch.io проти Adjust проти Firebase Dynamic Links (закрито)

Branch та Adjust - це повноцінні платформи мобільної атрибуції, потужніші для відкладених глибоких посилань та MMP-атрибуції. Elido - правильний інструмент, коли глибокі посилання є частиною ширшої системи скорочення посилань, а не основним продуктом.

FeatureElidoBranch.ioAdjust
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Так, з контекстом атрибуціїТак
Аналітика кліків за посиланнямиАналітичне сховище - гео, пристрої, за посиланнямиГлибока аналітика мобільної атрибуціїДані про атрибуцію встановлень та подій
Заміна 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 є ваш пункт призначення, і ви самі контролюєте, що там відбувається.

Готові спробувати?

Почніть з безкоштовного плану, оновіть, коли вам знадобиться власний домен.