Elido
Todo lo que hace Elido
Pro y Business

Deep links. Open the app. Fall back gracefully.

Manifiestos de Universal Links y App Links servidos desde tu dominio personalizado. iOS abre tu aplicación al tocar; Android hace lo mismo. Fallback del navegador en escritorio.

  • 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
Servido automáticamente
AASA + assetlinks.json
0
Instalaciones de SDK en la app
iOS + Android
Cobertura de plataformas
UTM
Passthrough en 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
  • Reglas de smart link para el fallback de la tienda
  • Probado con adb y xcrun

Cómo funcionan realmente los deep links — y dónde fallan

Universal Links y App Links son mecanismos a nivel de sistema operativo. La configuración es sencilla; los casos borde no lo son. Esto cubre el panorama completo.

iOS Universal Links
01

apple-app-site-association servido automáticamente desde tu dominio personalizado

Los Universal Links requieren un archivo apple-app-site-association (AASA) en /.well-known/apple-app-site-association en tu dominio personalizado. iOS descarga este archivo cuando se instala tu app; mapea tu dominio con el bundle ID y team ID de tu app. Si el mapeo es correcto, al tocar un enlace HTTPS en tu dominio en cualquier app de iOS (Safari, Mail, Twitter, Instagram), se abre tu app directamente en lugar de ir a un navegador. Elido genera y sirve el archivo AASA desde la ruta well-known de tu dominio personalizado automáticamente, basándose en el bundle ID y team ID que configures en los ajustes del dominio. No necesitas alojar el archivo por separado. iOS cachea el archivo AASA y lo vuelve a descargar periódicamente; si cambias la configuración de tu bundle ID en los ajustes de dominio de Elido, el nuevo AASA estará activo en segundos, pero los dispositivos iOS lo recogerán en su próxima actualización de caché (normalmente 24-48 horas, o al reinstalar la app). Probado contra el validador Apple AASA en cada lanzamiento de Elido.

Android App Links
02

assetlinks.json servido automáticamente — huella SHA-256 de tu clave de firma

Los Android App Links requieren un archivo Digital Asset Links en /.well-known/assetlinks.json en tu dominio. El archivo mapea tu dominio con el nombre de paquete de tu app y la huella SHA-256 de tu certificado de firma. Android verifica este archivo durante la instalación de la app y de nuevo periódicamente. Elido lo sirve desde tu dominio personalizado automáticamente, basándose en el nombre de paquete y la huella SHA-256 que configures. La verificación de Android requiere HTTPS (aplicado por el TLS de Elido en el dominio personalizado) y el archivo debe responder en pocos segundos (también gestionado). Un modo de fallo común: diferentes claves de firma para compilaciones de debug vs release tienen diferentes huellas SHA-256. Configura ambas huellas en los ajustes de dominio de Elido si estás probando con una compilación de debug; las compilaciones de producción solo necesitan la huella de release. Probado con adb shell pm get-app-links en cada lanzamiento.

Fallback chain
03

App instalada → deep link. App no instalada → tienda. Escritorio → web. UTM preservados en todo momento.

La cadena de fallback se establece por enlace o por dominio en los ajustes de Elido. Para un enlace corto con configuración de deep-link: si el sistema operativo intercepta el clic (app instalada, dominio verificado), la app se abre. Si no (app no instalada), el enlace se abre en el navegador; el destino del navegador debe ser tu enlace de App Store / Play Store o un fallback web. Las reglas de smart-link gestionan esto limpiamente: configura una regla para iOS → URL de App Store, una regla para Android → URL de Play Store, y un fallback al destino web. Los parámetros UTM del enlace corto original se preservan en las URLs de fallback para que la atribución no se pierda cuando el usuario llegue a la tienda. El deep-linking diferido (pasar una ruta de deep-link específica a través de una instalación, para que la app se abra en la pantalla correcta tras instalarse) requiere un SDK en la app — Elido no proporciona esto. Para el deep-linking diferido, seguirás necesitando Appsflyer, Adjust o Firebase App Distribution.

Retargeting after install
04

Retargeting post-instalación: click ID pasado al destino para atribución

En un redireccionamiento de deep-link, Elido pasa el click_id como un parámetro de consulta a la URL de fallback. Si el usuario aterriza en la App Store e instala la app, el click_id está en la URL de referencia pero no se propaga automáticamente dentro de la app tras la instalación — eso requiere SKAdNetwork en iOS o un SDK de deep-link diferido en Android. Lo que hace Elido: pasa el click_id y los parámetros UTM a la URL de la tienda para que una plataforma de atribución móvil (MMP) que capture el referente de instalación pueda recogerlos. Esto funciona con Appsflyer y Adjust si pasas el click_id en el parámetro de campaña de la URL de la tienda. Si no utilizas una MMP, el click_id en la URL de la tienda se pierde efectivamente tras la instalación.

Firebase Dynamic Links migration
05

Migración desde Firebase Dynamic Links (cierre 2025)

Firebase Dynamic Links fue cerrado por Google en 2025. Elido puede manejar el patrón principal: un único enlace corto HTTPS que abre la pantalla correcta en una app instalada, vuelve a la tienda si no lo está, y vuelve a la web en escritorio. Configura el AASA y el assetlinks.json en los ajustes de dominio de Elido (reemplaza el alojamiento de Firebase de estos archivos), actualiza tus enlaces compartidos para que apunten a los enlaces cortos de Elido en lugar de las URLs page.link, y configura la cadena de fallback mediante reglas de smart-link. Lo que Elido no replica: el deep-linking diferido de Firebase (contexto de deep-link post-instalación mediante el SDK de Firebase) y los deep links de Firebase App Distribution. Si tu app depende mucho del deep-linking diferido, necesitarás Appsflyer, Adjust o Branch junto a Elido para la capa de atribución. Para las apps que solo necesitan 'abrir la pantalla correcta si está instalada, si no ir a la tienda', Elido reemplaza a Firebase Dynamic Links por completo.

Equipos móviles que utilizan deep links de Elido

Los nombres son marcadores de posición por ahora — los nombres reales de los clientes aparecerán aquí a medida que se publiquen los casos de estudio.

Migramos de Firebase Dynamic Links la semana que anunciaron el cierre. La configuración de AASA y assetlinks.json en Elido tomó medio día. La cadena de fallback de smart-link reemplazó la lógica del SDK de Firebase que teníamos en la app para el enrutamiento a la tienda.

E
Equipo móvil, app de consumo, 200K usuarios, Riga
Ingeniero móvil

Las analíticas de clics por enlace en deep links nos indicaron que el 35% de nuestros enlaces compartidos se clicaban en escritorio — no teníamos configurado un fallback web. Añadir el fallback tomó 10 minutos; la tasa de conversión de los enlaces compartidos aumentó porque los usuarios que clicaban desde escritorio ahora podían completar la acción.

E
Equipo de producto, marketplace B2C, Bruselas
Product Manager

Usamos enlaces cortos de Elido con configuración de deep-link para programas de referidos. El passthrough de UTM a la URL de la App Store significa que nuestra MMP recoge correctamente el referente de instalación — la atribución funciona sin necesidad de trabajo personalizado en el SDK por nuestra parte.

E
Equipo de Growth, app de fitness, 80K usuarios, Ámsterdam
Director de Growth

Deep links de Elido vs Branch.io vs Adjust vs Firebase Dynamic Links (cierre)

Branch y Adjust son plataformas completas de atribución móvil — más potentes para deep-linking diferido y atribución MMP. Elido es la herramienta adecuada cuando los deep links son parte de una configuración de acortador más amplia, no el producto principal.

FeatureElidoBranch.ioAdjust
Universal Links (iOS)AASA servido automáticamente desde tu dominioTotalmente gestionado a escalaNo — solo MMP, no es host de deep-link
App Links (Android)assetlinks.json servido automáticamente desde tu dominioTotalmente gestionadoNo
Requiere SDK en la appNo — intercepción a nivel de sistema operativoSí — SDK de BranchSí — SDK de Adjust
Deep-linking diferidoNo — requiere SDK en la appSí — característica principalSí — con SDK de Adjust
Atribución móvil (MMP)Passthrough de click ID; conexión MMP manualMMP nativa — integraciones con Appsflyer, KochavaPlataforma MMP completa
Passthrough de UTM a la tiendaSí — vía parámetro de consulta en URL de fallbackSí, con contexto de atribución
Analíticas de clics en enlacesClickHouse — geo, dispositivo, por enlaceAnalíticas profundas de atribución móvilDatos de atribución de instalación + eventos
Reemplazo de Firebase Dynamic LinksSí para el patrón básico; no para deep-link diferidoReemplazo total incluyendo diferidoParcial — solo la parte de MMP

Preguntas sobre deep links

¿Necesito un SDK de Branch o algún SDK en mi app para usar los deep links de Elido?

No. Los deep links de Elido utilizan iOS Universal Links y Android App Links — mecanismos a nivel de sistema operativo. Tu app solo necesita manejar la URL entrante de la manera estándar de iOS (scene:openURLContexts o application:continueUserActivity) o Android (intent-filter en el manifiesto). No se instala ningún SDK de terceros; el sistema operativo gestiona la intercepción basándose en los archivos AASA y assetlinks.json que Elido sirve desde tu dominio.

¿Cuál es el flujo de configuración de AASA?

En los ajustes de dominio de Elido → Deep links: introduce el bundle ID de tu app iOS (ej. com.tuempresa.app) y el Apple Team ID (cadena de 10 caracteres de tu cuenta de Apple Developer). Elido genera el JSON de AASA y lo sirve en /.well-known/apple-app-site-association en tu dominio personalizado. Verifica que es accesible con curl antes de enviar tu app a TestFlight o a la App Store. iOS descarga el archivo AASA durante la instalación de la app en dispositivos con iOS 9+.

¿Puedo tener múltiples apps en un solo dominio?

Sí — el archivo AASA admite múltiples entradas de apps. Configura el bundle ID y el Team ID de cada app en los ajustes del dominio; Elido genera un AASA combinado con todas las apps listadas. El assetlinks.json de Android también admite múltiples combinaciones de nombre de paquete + huella digital. Caso de uso común: app principal y un App Clip, o app principal y una extensión de widget.

Cierre de Firebase Dynamic Links — ¿cuál es la ruta de migración?

Sustituye las URLs cortas de page.link por enlaces cortos de Elido (tu dominio personalizado o el dominio compartido de Elido). Configura AASA y assetlinks.json en los ajustes de dominio de Elido. Establece la cadena de fallback mediante reglas de smart-link (regla de iOS → App Store, regla de Android → Play Store, fallback → web). Actualiza la generación de enlaces compartidos en tu app para llamar a la API create_link de Elido en lugar de Firebase. Qué no se migra: si tu app depende del deep-linking diferido de Firebase (paso de intención post-instalación), necesitarás Branch o Adjust para esa parte.

¿Cómo pruebo los Universal Links antes de publicarlos en la App Store?

Usa xcrun simctl openurl booted 'https://go.tuempresa.com/test-slug' con tu app instalada en un simulador. En un dispositivo físico con una compilación de debug, mantén pulsado un enlace en Safari y mira si aparece 'Abrir en tu App'. Apple también proporciona el App Association File Validator en developer.apple.com — pega tu URL de AASA y comprueba la accesibilidad, el Content-Type y la validez del JSON. El AASA de Elido supera las tres comprobaciones.

¿Qué es el deep-linking diferido y por qué Elido no lo hace?

El deep-linking diferido pasa contexto (ej. 'el usuario estaba viendo el producto con ID 123') desde el clic en el enlace a través de la instalación de la app y hasta el primer lanzamiento de la app. Requiere un SDK de huella digital o atribución en la app (Branch, Appsflyer, Adjust) que empareje la instalación con el clic durante el proceso de instalación. Elido no instala código SDK en tu app; solo servimos el AASA y el assetlinks.json. Sin el SDK, no hay mecanismo para pasar el contexto a través de una instalación. Para el caso de uso básico de 'abrir la pantalla correcta si está instalada', Elido es suficiente. Para pasar la intención a través de la instalación, necesitas una MMP.

¿Puedo usar deep links en el dominio compartido de Elido (s.elido.me)?

No. Los Universal Links y App Links requieren tu propio dominio — no puedes reclamar *.elido.me como un dominio de Universal Link para tu app. Los deep links requieren un dominio personalizado en los planes Pro o Business. El dominio personalizado es lo que configuras en tu AASA y assetlinks.json, y Elido sirve esos archivos desde allí.

¿Cómo gestiono el caso en el que el navegador del usuario bloquea la intercepción de la app?

Algunos navegadores (especialmente Chrome en Android anterior a 6.0, y algunos navegadores integrados como el de Instagram) bloquean la intercepción de App Links o Universal Links. La URL de fallback es lo que ven. Para navegadores integrados: redirige primero al navegador del sistema usando una URL de intención (Android) o un aviso al usuario. Para navegadores integrados de Instagram / TikTok: el enfoque estándar es mostrar un aviso de 'toca para abrir en tu navegador'. Elido no inyecta este aviso automáticamente — la URL de fallback es tu destino, y tú controlas lo que sucede allí.

¿Listo para probarlo?

Empieza con el plan gratuito, actualiza cuando necesites un dominio personalizado.

Deep links — Abre la aplicación, vuelve a la tienda. · Elido