Elido
Все, что делает Elido
Pro и Business

Глубокие ссылки. Open the app. Fall back gracefully.

Манифесты Universal Links и App Links, обслуживаемые вашим пользовательским доменом. 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
go.yourcompany.com/product/12345
User taps linkgo.yourcompany.com/product/12345App installed?OS checks AASA / assetlinksYESNOOpen in appproduct/12345deep path preservedOS?UA detectiOSApp Storeapps.apple.comAndroidPlay Storeplay.google.comDesktopMobile webbrowser fallbackUTM passthrough
OS-level interception, no SDKAASA + assetlinks.json
Авто-раздача
AASA + assetlinks.json
0
Установок SDK в приложении
iOS + Android
Покрытие платформ
UTM
Передача при откате (fallback)

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 Links
    Bundle ID + Team ID → AASA served at /.well-known/ automatically
  • Android App Links
    Package name + SHA-256 fingerprint → assetlinks.json, HTTPS enforced
  • Smart-link fallback
    App not installed → App Store / Play Store via rule-based routing
  • UTM passthrough
    UTM parameters preserved to store URL — attribution doesn't break
  • No SDK in your app
    OS-level interception only; intent-filter and 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:..."
    ]
  }
}]

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.

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

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.

  1. 01

    Clicks link

    User taps an Elido short link — from email, social, QR.

    go.yourcompany.com/p/12345
  2. 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
  3. 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
  4. 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
  5. 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
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.

Platform detection
go.yourcompany.com/p/12345
Live
iPhone 15 Pro
iOS 17.4
iOS Universal Links
Mozilla/5.0 (iPhone; CPU iPhone OS 17_4…)
OS intercepts HTTPS tap → opens app
yourapp://product/12345
Pixel 8 Pro
Android 14
Android App Links
Mozilla/5.0 (Linux; Android 14; Pixel 8…)
Intent matched by assetlinks.json → app opened
yourapp://product/12345
MacBook / Desktop
macOS / Windows / Linux
Web fallback
Mozilla/5.0 (Macintosh; Intel Mac OS X…)
No AASA check → 302 to web URL
yourcompany.com/product/12345
UA parsing runs inside the edge redirect process — p50 under 0.5 ms. In-app browsers (Instagram, TikTok) are detected separately and can be routed to a system-browser redirect prompt.

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
  • Правила умных ссылок для резервного перенаправления в магазин
  • Протестировано с 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, Почта, Twitter, Instagram) откроет ваше приложение напрямую вместо браузера. Elido автоматически генерирует и раздает файл AASA с вашего домена на основе данных, указанных в настройках. Вам не нужно хостить файл отдельно. iOS кэширует AASA и периодически обновляет его; изменения в Elido вступают в силу мгновенно, но устройства подхватят их при следующем обновлении кэша (обычно 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 раздает его автоматически на основе настроенных вами данных. Для верификации Android требуется HTTPS (обеспечивается TLS от Elido) и быстрый ответ сервера. Распространенная ошибка: разные ключи для debug и release сборок имеют разные SHA-256. Укажите оба отпечатка в настройках Elido для тестирования; для продакшена нужен только release. Проверено через adb shell pm get-app-links.

Цепочка отката (fallback)
03

Приложение установлено → диплинк. Не установлено → магазин. Десктоп → веб. UTM сохраняются везде.

Цепочка отката настраивается для каждой ссылки или домена. Для короткой ссылки с диплинком: если ОС перехватывает нажатие (приложение установлено, домен подтвержден), открывается приложение. Если нет, ссылка открывается в браузере, который перенаправляет в App Store / Play Store или на веб-страницу. Правила смарт-ссылок управляют этим: настройте правило iOS → App Store, Android → Play Store и дефолтный веб-адрес. Параметры UTM сохраняются в URL отката, поэтому атрибуция не прерывается при переходе в магазин. Отложенные диплинки (передача пути внутрь приложения после установки) требуют SDK — Elido этого не делает. Для этого по-прежнему нужны Appsflyer, Adjust или Firebase App Distribution.

Ретаргетинг после установки
04

Пост-установочный ретаргетинг: click ID передается для атрибуции

При редиректе через диплинк Elido передает click_id как параметр запроса в URL отката. Если пользователь попадает в магазин и устанавливает приложение, click_id присутствует в реферальном URL, но не пробрасывается в приложение автоматически — для этого нужны SKAdNetwork на iOS или SDK для отложенных диплинков на Android. Elido передает click_id и UTM в URL магазина, чтобы платформа мобильной атрибуции (MMP), фиксирующая источник установки, могла их считать. Это работает с Appsflyer и Adjust, если передать click_id в параметре кампании. Без использования MMP click_id в ссылке на магазин будет фактически утерян после установки.

Миграция с Firebase Dynamic Links
05

Миграция с Firebase Dynamic Links (закрытие в 2025 году)

Google закрывает Firebase Dynamic Links в 2025 году. Elido поддерживает основной паттерн: единая HTTPS-ссылка, которая открывает нужный экран в приложении, ведет в магазин или на веб-сайт. Настройте AASA и assetlinks.json в Elido (вместо хостинга Firebase), обновите ссылки на домен Elido и настройте цепочку отката через смарт-ссылки. Что Elido не заменяет: отложенные диплинки Firebase (контекст после установки через SDK) и диплинки App Distribution. Если ваше приложение сильно зависит от передачи контекста через установку, вам понадобятся Branch или Adjust вместе с Elido. Для кейсов 'открыть экран, если установлено, иначе — в магазин' Elido полностью заменяет Firebase Dynamic Links.

Мобильные команды, использующие диплинки Elido

Имена являются временными заглушками — реальные названия появятся по мере публикации кейсов.

Мы перешли с Firebase Dynamic Links сразу после анонса их закрытия. Настройка AASA и assetlinks.json в Elido заняла полдня. Смарт-ссылки заменили логику SDK Firebase для маршрутизации в магазины приложений.

М
Мобильная команда, потребительское приложение, 200к пользователей, Рига
Mobile Engineer

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

П
Продуктовая команда, B2C маркетплейс, Брюссель
Product Manager

Мы используем короткие ссылки Elido с диплинками для реферальных программ. Передача UTM в URL магазина означает, что наша MMP корректно определяет источник установки — атрибуция работает без внедрения кастомных SDK.

К
Команда роста, фитнес-приложение, 80к пользователей, Амстердам
Head of Growth

Диплинки Elido против Branch.io, Adjust и Firebase Dynamic Links (закрыт)

Branch и Adjust — это полноценные платформы атрибуции, более мощные для отложенных диплинков. 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 откатаДа, с контекстом атрибуцииДа
Аналитика кликов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.company.app) и Apple Team ID (10-значная строка из аккаунта разработчика Apple). Elido сгенерирует AASA JSON и будет раздавать его по пути /.well-known/apple-app-site-association. Проверьте доступность через curl перед отправкой приложения в TestFlight или App Store. iOS скачивает этот файл при установке приложения.

Можно ли привязать несколько приложений к одному домену?

Да, файл AASA поддерживает несколько записей. Настройте bundle ID и Team ID для каждого приложения; Elido создаст комбинированный файл со списком всех приложений. Android assetlinks.json также поддерживает несколько комбинаций имени пакета и отпечатка ключа. Типичный случай: основное приложение и App Clip или виджет.

Firebase Dynamic Links закрывается — каков путь миграции?

Замените короткие ссылки page.link на ссылки Elido (ваш кастомный домен или общий домен Elido). Настройте AASA и assetlinks.json в настройках домена Elido. Установите цепочку отката через смарт-ссылки (iOS → App Store, Android → Play Store, иначе → веб). Обновите генерацию ссылок в приложении на вызов API create_link Elido. Что не переносится: если вы используете отложенные диплинки Firebase (передача данных после установки), для этой части понадобятся Branch или Adjust.

Как протестировать Universal Links до публикации в App Store?

Используйте команду xcrun simctl openurl booted 'https://go.yourcompany.com/test-slug' в симуляторе с установленным приложением. На реальном устройстве с debug-сборкой зажмите ссылку в Safari и проверьте, появилось ли меню 'Открыть в приложении'. Apple также предоставляет App Association File Validator — вставьте туда URL вашего AASA, и он проверит доступность, Content-Type и валидность JSON. AASA от Elido проходит все проверки.

Что такое отложенные диплинки и почему Elido их не делает?

Отложенные диплинки передают контекст (например, ID просматриваемого товара) через процесс установки приложения. Это требует наличия SDK для фингерпринтинга или атрибуции (Branch, Appsflyer, Adjust), который сопоставляет установку с кликом. Elido не внедряет код в ваше приложение и только раздает файлы конфигурации. Без SDK нет механизма передачи контекста через установку. Для сценария 'открыть экран, если установлено' возможностей Elido достаточно. Для передачи данных через установку нужна MMP.

Можно ли использовать диплинки на общем домене Elido (s.elido.me)?

Нет. Universal Links и App Links требуют владения доменом — вы не можете заявить права на *.elido.me для своего приложения. Для диплинков нужен кастомный домен на тарифах Pro или Business. Elido будет раздавать файлы AASA и assetlinks.json именно с вашего настроенного домена.

Что делать, если браузер блокирует перехват ссылки приложением?

Некоторые браузеры (например, старые версии Chrome на Android или встроенные браузеры Instagram) могут блокировать App Links или Universal Links. В этом случае пользователь увидит URL отката. Для встроенных браузеров можно сначала перенаправлять в системный браузер через intent URL (Android) или подсказку пользователю. Elido не внедряет такие подсказки автоматически — вы сами контролируете контент страницы назначения.

Готовы попробовать?

Начните с бесплатного тарифа, перейдите на платный, когда вам понадобится пользовательский домен.

Глубокие ссылки — Откройте приложение, перейдите в магазин. · Elido