Firebase Dynamic Links: qué es, cómo funciona y se usa en el desarrollo

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

Firebase Dynamic Links es un servicio de Google para crear enlaces inteligentes que dirigen al usuario al lugar correcto de la aplicación independientemente de si la aplicación está instalada o no. Según la Documentación de Firebase, Dynamic Links redirigen automáticamente al usuario a App Store o Google Play si la aplicación no está instalada y restauran el contexto de transición después de la instalación. Los Smart Links de Firebase resuelven el problema de URL Scheme, que no funciona con aplicaciones no instaladas.

Puntos clave

  • Firebase Dynamic Links — un servicio de Google para crear enlaces universales que funcionan en iOS y Android con soporte de deferred deep link.
  • Deferred — la principal ventaja: el enlace conserva el contexto de transición incluso si la aplicación no está instalada y lo restaura después de la instalación.
  • Analítica — Firebase rastrea automáticamente los clics en Dynamic Links y proporciona datos en Firebase Analytics y Google Analytics.
  • Plataformas — Dynamic Links funcionan en iOS (a través de Universal Links) y Android (a través de App Links) con un único enlace universal para ambas plataformas.
  • Creación — los enlaces se generan a través de Firebase Console, REST API o SDK del cliente con configuración de comportamiento para cada escenario.

Firebase Dynamic Links es un servicio en la nube de Google que crea enlaces universales unificados para aplicaciones móviles en iOS y Android. Un enlace dinámico contiene un deep link al contenido dentro de la aplicación, pero se comporta como un enlace HTTPS normal: si la aplicación está instalada, la abre directamente; si no, redirige a la tienda de aplicaciones.

A diferencia de los URL Scheme normales, Dynamic Links pueden funcionar con aplicaciones no instaladas gracias a la tecnología deferred deep link. Cuando un usuario instala la aplicación después de hacer clic en el enlace, Firebase guarda los parámetros de transición y los pasa en el primer inicio. Esto abre oportunidades para programas de referidos, campañas de marketing e invitaciones.

Diferencia con los URL Scheme normales

Los URL Scheme requieren que la aplicación esté instalada y no tienen un mecanismo de fallback estándar. Firebase Dynamic Links resuelven este problema a través de un servicio web intermedio de Firebase que determina el estado de instalación de la aplicación en el dispositivo y enruta al usuario correctamente. Al mismo tiempo, un único enlace funciona de forma idéntica en ambas plataformas.

Firebase Dynamic Link utiliza un dominio como yourcode.page.link, que se registra en Firebase Console. Cuando un usuario hace clic en dicho enlace, Firebase determina el tipo de dispositivo y el estado de instalación de la aplicación. Para iOS se utiliza el mecanismo Universal Links, para Android App Links con verificación automática mediante Digital Asset Links.

El proceso de manejo incluye varias etapas secuenciales: al hacer clic en el enlace, el navegador envía una solicitud GET al servidor de Firebase; el servidor determina la plataforma y verifica la presencia de la aplicación en el dispositivo. Si la aplicación está instalada, se genera una redirección a un Universal Link o Intent con parámetros para abrir la pantalla objetivo. Si la aplicación no está instalada, redirige a App Store o Google Play para su descarga.

Ciclo de vida de Dynamic Link

La aplicación recibe el enlace durante la inicialización del SDK de Firebase. El método getDynamicLink() devuelve un PendingResult con datos de la transición. Después de una obtención exitosa, se extraen los parámetros del deep link, las etiquetas UTM para análisis y los datos arbitrarios pasados al crear el enlace.

Firebase Console proporciona una interfaz visual para crear Dynamic Links. El desarrollador especifica la URL del deep link, el nombre de la campaña, la configuración para iOS y Android por separado, así como los parámetros de análisis. Después de la creación, Firebase genera un enlace corto como https://yourcode.page.link/abc123, que se puede usar en materiales publicitarios, campañas de correo electrónico y redes sociales.

Para la creación programática de Dynamic Links se utiliza la API REST de Firebase o el SDK del cliente. La API REST permite generar enlaces en masa para campañas de marketing con parámetros personalizados, incluidos enlaces para redes sociales y análisis asíncrono de clics. Al crear enlaces a través de la API, es importante especificar correctamente los parámetros socialMetaTagInfo — determinan cómo se muestra el enlace al compartirlo en mensajeros y redes sociales con una tarjeta de vista previa.

Parámetros de Dynamic Link

ParámetroPropósitoObligatorio
Deep Link URLEnlace interno al contenido de la aplicación
iOS Bundle IDIdentificador de la aplicación en App StorePara iOS
Android Package NameNombre del paquete en Google PlayPara Android
Fallback URLPágina web si la aplicación no está instaladaNo
Etiquetas UTMParámetros para Google AnalyticsNo

Para trabajar con Firebase Dynamic Links en iOS, es necesario integrar el SDK de Firebase a través de CocoaPods o Swift Package Manager, configurar Info.plist con GOOGLE_APP_ID y registrar el dominio de Dynamic Links en Associated Domains del proyecto. Después de eso, la aplicación maneja automáticamente los Universal Links generados por Firebase.

En Xcode, es necesario añadir la capacidad Associated Domains con una entrada como applinks:yourcode.page.link. El SDK de Firebase utiliza el método application(_:continue:restorationHandler:) para manejar Universal Links, por lo que no se requiere integración adicional con AppDelegate — Firebase extrae automáticamente los parámetros de Dynamic Link de User Activity.

Configuración en Xcode

Ejemplo de configuración de Info.plist para la inicialización correcta de Firebase y el registro del manejador de Dynamic Links. La clave FIROptions debe contener el identificador del proyecto de GoogleService-Info.plist.

xml
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
    <string>https://yourcode.page.link</string>
</array>
<key>FirebaseAppDelegateProxyEnabled</key>
<false/>

Si el proxy de AppDelegate está desactivado, es necesario llamar manualmente al método handleUniversalLink(_:) y pasar User Activity desde continue NSUserActivity. El SDK de Firebase extrae automáticamente los parámetros del enlace y devuelve un DynamicLink a través del completion handler.

En Android, la integración de Firebase Dynamic Links comienza agregando dependencias en build.gradle y el archivo google-services.json de Firebase Console. El dominio de Dynamic Links se registra en Firebase Console, después de lo cual todos los enlaces con este dominio son reconocidos automáticamente por la aplicación Android a través de un Intent Filter con action VIEW. Para un funcionamiento correcto, también es necesario agregar el plugin de Google Services en el build.gradle raíz y del módulo, y realizar la sincronización de Gradle.

Para manejar correctamente los enlaces en Android, es necesario agregar un Intent Filter para el dominio de Dynamic Links en la Activity que debe recibir los enlaces entrantes. El filtro debe incluir el esquema https, el host de su dominio de Dynamic Links y la ruta predeterminada.

Intent Filter para Dynamic Links

Ejemplo de Intent Filter en AndroidManifest.xml para recibir Dynamic Links en el dominio yourcode.page.link.

xml
<activity android:name=".MainActivity"
    android:launchMode="singleTask">
    <intent-filter
        android:autoVerify="true">
        <action
            android:name="android.intent.action.VIEW" />
        <category
            android:name="android.intent.category.DEFAULT" />
        <category
            android:name="android.intent.category.BROWSABLE" />
        <data
            android:scheme="https"
            android:host="yourcode.page.link" />
    </intent-filter>
</activity>

Es importante establecer launchMode en singleTask para la Activity que recibe Dynamic Links. Esto evita la creación de una nueva instancia de Activity al hacer clic repetido en el enlace y permite manejar todos los deep links entrantes en una única instancia.

El SDK de Firebase para Android proporciona el método FirebaseDynamicLinks.getInstance().getDynamicLink(intent), que devuelve un objeto PendingTask con datos del enlace. Del objeto DynamicLink se extraen la URI profunda, los parámetros UTM y la marca de tiempo de la transición. Se recomienda realizar el manejo en los métodos onCreate() y onNewIntent() de la Activity.

Al manejar, es importante considerar que un Dynamic Link puede recibirse tanto al iniciar la aplicación desde un estado frío (cold start) como al pasar desde otra aplicación a una aplicación ya en ejecución. Para el segundo caso, es necesario sobrescribir onNewIntent() y volver a llamar a la verificación de Dynamic Link.

Manejo en código Kotlin

Ejemplo de recepción y manejo de Firebase Dynamic Link en MainActivity. El código maneja tanto cold start como la transición desde otra aplicación.

kotlin
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        checkDynamicLink(intent)
    }
    override fun onNewIntent(intent: Intent) {
        super.onNewIntent(intent)
        checkDynamicLink(intent)
    }
    private fun checkDynamicLink(intent: Intent) {
        FirebaseDynamicLinks.getInstance()
            .getDynamicLink(intent)
            .addOnSuccessListener link ->
                val deepLink = link?.link.toString()
                handleDeepLink(deepLink)
            }
    }
}

El método addOnSuccessListener devuelve un DynamicLink, del cual se extrae el enlace objetivo a través de link?.link. Si el listener devuelve null, significa que el Intent no contiene un Dynamic Link — es un inicio normal de la aplicación sin un enlace entrante. También están disponibles las etiquetas UTM para análisis de clics, incluyendo campaign, medium, source y content, que se pueden pasar a Google Analytics para una evaluación detallada de la efectividad de cada canal de marketing.

Preguntas frecuentes

¿En qué se diferencia Firebase Dynamic Links de un deep link normal?

Firebase Dynamic Links soporta deferred deep link — el enlace conserva el contexto incluso si la aplicación no está instalada. Después de la instalación, la aplicación recibe todos los parámetros de transición, lo que es imposible con los URL Scheme o Universal Links normales.

¿Hay que pagar por Firebase Dynamic Links?

Firebase Dynamic Links están incluidos en el plan gratuito Firebase Spark. No hay límites en la cantidad de enlaces que se pueden crear. Sin embargo, desde 2024 Google anunció la transición a una nueva infraestructura, por lo que las condiciones pueden cambiar.

¿Se pueden usar Dynamic Links en una aplicación web?

Dynamic Links están diseñados para aplicaciones móviles. Al hacer clic en el enlace desde un navegador web de escritorio, se abrirá la URL de fallback. Para aplicaciones web, use enlaces normales o su propia lógica de redirección.

¿Cómo probar Dynamic Links durante el desarrollo?

Firebase Console proporciona un botón Test Dynamic Link para previsualizar el comportamiento. También puede usar el emulador de Android o el simulador de iOS con el SDK de Firebase instalado para probar localmente todos los escenarios de transición.

¿Cuántos caracteres puede contener un Dynamic Link?

Un enlace corto de Firebase Dynamic Link consta del dominio page.link y un sufijo aleatorio de aproximadamente 7 caracteres. La longitud total es de unos 30 caracteres. El deep link interno puede tener cualquier longitud, pero se recomienda limitarlo a 2 KB para compatibilidad.

Resumen

  • Firebase Dynamic Links — enlaces universales unificados de Google para iOS y Android con soporte de deferred deep link.
  • Cómo funciona — el enlace pasa por el servidor de Firebase, que determina el dispositivo y el estado de instalación de la aplicación para un enrutamiento correcto.
  • Deferred — ventaja clave: los parámetros de transición se guardan y restauran después de instalar la aplicación desde la tienda.
  • Creación — los enlaces se generan a través de Firebase Console, REST API o SDK del cliente con configuración de parámetros para cada plataforma.
  • Integración iOS — requiere Associated Domains en Xcode y SDK de Firebase; manejo a través de Universal Links y el método continue UserActivity.
  • Integración Android — requiere Intent Filter en el manifiesto con action VIEW y el dominio de Dynamic Links, además del SDK de Firebase en build.gradle.
  • Analítica — Firebase rastrea automáticamente los clics en Dynamic Links con soporte de etiquetas UTM para Google Analytics.

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