Deep Link: qué es, tipos de enlaces y principio de funcionamiento

Autor: IT Sectr Publicado: 2026-05-14 Tiempo de lectura: 9 min

Un Deep Link (enlace profundo) es una URL que dirige al usuario a una pantalla o contenido específico dentro de una aplicación móvil, omitiendo la pantalla principal. A diferencia de un enlace normal a un sitio web, un deep link activa la aplicación y abre inmediatamente el contenido objetivo. Según Android Developers, los deep links correctamente configurados aumentan la conversión en la acción objetivo entre un 30 y un 50% al reducir el número de pasos para llegar al contenido.

Puntos clave

  • Deep Link — una URL que abre una pantalla específica de la aplicación, no la página principal
  • Esquema URI (myapp://profile/123) — el método clásico de deep link, funciona en ambas plataformas
  • Deferred Deep Link — un enlace que se activa después de instalar la aplicación, transmitiendo contexto
  • Universal Link (iOS) y App Link (Android) — la evolución de los deep links con verificación de dominio
  • Deep Link contextual — transmite parámetros adicionales: código promocional, referente, fuente de tráfico

Un Deep Link (enlace profundo) es un URI que al hacer clic no abre una página web, sino una pantalla específica dentro de una aplicación móvil. La tecnología resuelve un problema fundamental de las plataformas móviles: el navegador no puede abrir directamente una pantalla de la aplicación, y un deep link crea un puente entre la web y el código nativo. Sin un deep link, el usuario siempre llega a la pantalla principal y debe navegar manualmente hasta el contenido deseado.

La arquitectura de un deep link consta de dos partes: el esquema (scheme) determina qué aplicación debe procesar el enlace, y la ruta (path) apunta a un recurso específico dentro de la aplicación — un producto, artículo, perfil de usuario o sección de configuración. Los parámetros de consulta (?source=push&campaign=summer) transmiten contexto adicional para análisis, personalización y atribución de campañas.

Es importante distinguir entre un deep link y un enlace normal. Un enlace normal (https://example.com/product/42) se abre en el navegador y lleva a la versión web de una página. Un deep link (myapp://product/42), si la aplicación está instalada, abre la pantalla nativa con el mismo contenido, pero si la aplicación no está instalada, muestra un error. Universal Link (iOS) y App Link (Android) fueron creados precisamente para resolver el problema de la transición fluida (fallback).

Diferentes tareas requieren diferentes tipos de deep links. Algunos enlaces funcionan solo con la aplicación instalada, otros pueden esperar la instalación, y otros transmiten contexto analítico. La elección del tipo depende del caso de uso: campaña publicitaria, notificación push, compartir contenido o boletín informativo por correo electrónico.

Deep Link estándar (Standard Deep Link)

Un Standard Deep Link es el tipo básico que se activa solo si la aplicación ya está instalada en el dispositivo. El usuario hace clic en un enlace myapp://product/42, el sistema detecta el esquema registrado y abre la aplicación en la pantalla deseada. Si la aplicación no está instalada, el navegador muestra un error “Página no encontrada” o simplemente no hace nada. Este tipo es adecuado para la navegación interna dentro de una aplicación ya instalada.

Configurar un deep link estándar es simple: basta con registrar el esquema URI en el manifiesto (Android) o Info.plist (iOS). No se requiere validación del servidor ni certificados SSL. Sin embargo, precisamente por la falta de fallback, este tipo se considera obsoleto para campañas de marketing: la pérdida de tráfico de usuarios sin la aplicación puede alcanzar el 60%.

Deferred Deep Link (enlace profundo diferido)

Un Deferred Deep Link resuelve el principal problema de los deep links normales: funciona incluso si la aplicación no está instalada. El usuario hace clic en un enlace → ve una página (landing o App Store/Google Play) → instala la aplicación → en el primer inicio, la aplicación recibe el contexto del enlace original y abre la pantalla deseada. La tecnología requiere un SDK intermediario (AppsFlyer, Branch, Adjust) que almacena el contexto en el servidor hasta el primer inicio.

Branch es una de las plataformas más populares para deferred deep links. Proporciona un enlace único que funciona en todas las plataformas: detecta el SO del usuario, redirige a la tienda de aplicaciones y, después de la instalación, transmite el contexto (código promocional, ID del producto, fuente de la campaña). Según Branch (2024), los deferred deep links aumentan la conversión de campañas publicitarias entre un 40 y un 70%.

Contextual Deep Link (enlace profundo contextual)

Un Contextual Deep Link es un deep link normal o diferido complementado con parámetros de contexto: fuente de tráfico, campaña, código promocional, referente, ID del socio. Los parámetros se transmiten en la URL y son procesados por la aplicación para personalización: mostrar un bono de bienvenida, abrir un producto con descuento, registrar análisis de instalación.

Las etiquetas UTM (utm_source, utm_medium, utm_campaign) son una forma estándar de transmitir contexto. En el entorno móvil, los deep links contextuales son críticos para la atribución: sin ellos, el propietario de la aplicación no sabe qué canal trajo al usuario — tráfico orgánico, anuncios de Facebook, boletín por correo electrónico o código QR. La atribución de calidad requiere integración con un MMP (Mobile Measurement Partner).

Tipo de Deep LinkRequiere instalaciónEsperar instalaciónContexto
EstándarNoSolo en URL
DiferidoNoAlmacenamiento en servidor
ContextualCualquieraCualquieraUTM + parámetros

iOS admite deep links a través de dos mecanismos: el antiguo Custom URL Scheme y el moderno Universal Link (iOS 9+). Custom URL Scheme funciona registrando un esquema personalizado en Info.plist. La aplicación registra myapp://, e iOS abre la aplicación al hacer clic en dicho enlace. El problema: si el esquema no está registrado por ninguna aplicación, el navegador muestra un error.

El manejo de deep links en iOS se realiza a través del método AppDelegate application(_:open:options:) o SceneDelegate scene(_:openURLContexts:). El desarrollador extrae la URL, analiza la ruta y los parámetros, y luego navega a la pantalla correspondiente. Si se usa SwiftUI, el manejo se realiza mediante OpenURLAction o onChange(of: openURL). Es importante manejar correctamente el estado de la aplicación: puede estar no iniciada, en segundo plano o activa.

La seguridad en iOS es estricta: cualquier aplicación puede interceptar un Custom URL Scheme registrando el mismo esquema. Esta es una vulnerabilidad potencial (secuestro de esquema URL). Por lo tanto, Apple recomienda Universal Link como una alternativa más segura: solo el propietario verificado del dominio puede asociar enlaces con la aplicación. Más información sobre Universal Link en el artículo Universal Link.

Android implementa deep links a través de Intent Filters en AndroidManifest.xml. La aplicación define una Activity que maneja un esquema específico (myapp://) o hosts y rutas concretos. Cuando el usuario hace clic en un deep link, Android busca una Activity con un Intent Filter coincidente y la abre. Si hay varias Activities coincidentes, el sistema muestra un diálogo de selección de aplicación.

xml
// AndroidManifest.xml - Intent Filter para Deep Link
<activity
    android:name=".ui.ProductActivity"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data
            android:scheme="myapp"
            android:host="product"
            android:pathPrefix="/" />
    </intent-filter>
</activity>

El manejo de deep links en Android se realiza en el método Activity.onCreate() o onNewIntent(). El desarrollador recibe el Intent, extrae el URI y ejecuta la navegación. Para Jetpack Navigation, el componente Navigation Deep Link permite describir declarativamente los deep links en el grafo de navegación. Android App Link (Android 6.0+) es una evolución de los deep links con verificación a través de Digital Asset Links, eliminando el diálogo de selección de aplicación.

Es importante tener en cuenta los cambios de Android 12+: a partir de API 31, el sistema requiere la declaración explícita de exported=true para las Activities que manejan deep links y verifica la corrección del Intent Filter. Google Play Store verifica la verificación de App Link durante la publicación. Sin verificación, Google puede rechazar la actualización si los deep links llevan a páginas inexistentes del sitio web.

La configuración de deep links incluye varias etapas comunes a ambas plataformas. El primer paso es definir el esquema y la estructura de la URL. Se recomienda usar el esquema https (en lugar de uno personalizado) para compatibilidad con Universal Link y App Link. La estructura de la URL debe reflejar la estructura del sitio web: /product/42, /profile/john, /settings/notifications. Esto simplifica el mantenimiento y la indexación del contenido por parte de los motores de búsqueda.

La segunda etapa es el manejo de deep links en el código de la aplicación. Para Android, se recomienda Jetpack Navigation con deep links declarativos en nav_graph. Para iOS, SwiftUI NavigationStack con manejo de OpenURLAction. Es importante manejar tres estados de la aplicación: inicio en frío (aplicación no iniciada), inicio en cálido (en segundo plano) y activo (en pantalla). Cada estado requiere una lógica de navegación diferente.

  • Definir el esquema y la estructura de la URL (myapp:// o https://your.domain/)
  • Registrar el esquema en el manifiesto (Android) o Info.plist (iOS)
  • Implementar el manejo en Activity o AppDelegate/SwiftUI
  • Configurar el fallback para el caso de que la aplicación no esté instalada
  • Probar los tres estados: inicio en frío, inicio en cálido, activo

Las pruebas de deep links son una tarea aparte. Android Studio proporciona la herramienta App Links Assistant para verificar Intent Filters. En iOS, las pruebas se realizan a través de Xcode pasando una URL mediante argumentos del esquema de lanzamiento. Se recomienda configurar una verificación en CI: navegación automática por deep link y verificación de que se abrió la pantalla esperada. Para deferred deep links, las pruebas incluyen el ciclo completo de “instalación → primer inicio → contexto”. Sin pruebas, los deep links a menudo se rompen al actualizar la navegación en la aplicación.

Preguntas frecuentes

¿En qué se diferencia un deep link de un enlace normal?

Un enlace normal (https://site.com/page) se abre en el navegador. Un deep link (myapp://page o https://site.com/page con verificación) abre una pantalla dentro de una aplicación móvil. Un deep link también puede transmitir contexto: código promocional, fuente de tráfico, ID de referente.

¿Qué es un esquema URI y para qué sirve?

Un esquema URI es un prefijo de URL que determina qué aplicación debe procesar el enlace (por ejemplo, myapp://, vk://, tg://). El sistema utiliza el esquema para el enrutamiento: encuentra la aplicación que registró este esquema y le pasa la URL para su procesamiento.

¿Cómo funciona un deferred deep link?

El usuario hace clic en un enlace → el servicio (Branch, AppsFlyer) recuerda el contexto → redirige a App Store/Google Play → después de la instalación y el primer inicio, el SDK pasa el contexto guardado a la aplicación → la aplicación abre la pantalla deseada, como si el usuario ya tuviera la aplicación instalada.

¿Se puede usar un deep link sin tener la aplicación instalada?

Un deep link normal — no. Un deferred deep link — sí, mediante una página intermedia que redirige a la tienda de aplicaciones y guarda el contexto. Universal Link y App Link abren el sitio web como fallback si la aplicación no está instalada.

¿Cómo probar deep links en dispositivos reales?

En Android, usa adb: adb shell am start -W -a android.intent.action.VIEW -d “myapp://product/42”. En iOS — xcrun simctl openurl booted “myapp://product/42”. Para ambas plataformas están disponibles las consolas de prueba de Firebase Dynamic Links y Branch.

Resumen

  • Deep Link — una URL que abre una pantalla específica de la aplicación, no la página principal ni el sitio web
  • Tres tipos — Estándar (solo con aplicación instalada), Diferido (con espera de instalación), Contextual (con parámetros UTM)
  • Custom URL Scheme (myapp://) — método simple, pero sin fallback cuando falta la aplicación
  • Universal Link y App Link — evolución de los deep links con verificación de dominio y fallback en navegador
  • iOS maneja deep links a través de AppDelegate/SceneDelegate, Android — a través de Intent Filter
  • Deferred Deep Link requiere un SDK intermediario (Branch, AppsFlyer) para almacenar el contexto antes de la instalación
  • Probar los tres estados (frío, cálido, activo) es una etapa obligatoria en la configuración de deep links

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también