Usamos cookies. Tienes opciones. Las cookies nos ayudan a mantener el sitio funcionando sin problemas e informar sobre nuestra publicidad, pero si deseas realizar ajustes, puedes visitar nuestro Aviso de cookies para más información.
Utilizamos cookies propias y de terceros para analizar su actividad en el sitio web con el objetivo de enviarle publicidad personalizada y mejorar el funcionamiento de la web. Puedes aceptar todas las cookies pulsando el botón “ACEPTAR” o seleccionarlas en función de su funcionalidad pulsando el botón “AJUSTES”.
×

Firebase Dynamic Links: implementación en Android

En el post Firebase Dynamics Links – Parte I ‘Deep Link, de mi compañero Martín Alonso, pudimos ver desde un enfoque más teórico qué son los deep links aplicados a Firebase, conocidos como Firebase Dynamic Links. En este post trataremos de explicar de una manera práctica cómo implementar paso a paso estos Dynamic Links en tu aplicación para Android.

¿Cómo implementarlo?

  1. Configurar Firebase en tu aplicación: crea un proyecto de Firebase desde la consola. Después, incluye el SDK de Firebase en tu aplicación.
  2. Crea Dynamic Links: puedes crear Dynamic Links en forma automática o mediante Firebase console.
  3. Configura el SDK de Dynamic Links y procesa los Dynamic Links en la aplicación: incluye el SDK de Dynamic Links en la aplicación y cuando se abra la aplicación, úsalo para verificar si se le envió un vínculo dinámico. Si es así, obtén el vínculo directo de los datos de Dynamic Links y procésalo según corresponda.

1. Configuración de Firebase en la aplicación

Crea tu proyecto de Firebase y conéctalo con tu aplicación de Android siguiendo estos pasos. Es muy importante que durante el proceso de vinculación de tu proyecto de Firebase con tu aplicación de Android incluyas el certificado de firma de depuración SHA-1, ya que es obligatorio para Dynamic Links.

2 . Creación de Dynamic Links

Existen cuatro maneras de crear un Dynamic Link, cada una de ellas presenta sus ventajas y sus inconvenientes:

  • A través de Firebase Console: es útil para vínculos promocionales que se comparten en medios sociales. Permite hacer un seguimiento del rendimiento de estos Dynamic Links en Firebase console o mediante la API de REST de Analytics.
  • Mediante la API de Dynamic Link Builder en iOS y Android: es la manera recomendada de crear vínculos de forma dinámica cuando los usuarios comparten contenido entre sí o en cualquier situación en la que se necesiten muchos vínculos. Permite hacer un seguimiento del rendimiento de Dynamic Links creados con la API de Builder mediante la API de Analytics de Dynamic Links.
  • Mediante la API de REST: es la manera recomendada de crear vínculos de forma dinámica en plataformas que no tienen una API de Builder. Se puede usar la API de REST de Analytics para hacer un seguimiento del rendimiento de las campañas promocionales creadas en la consola.
  • Manualmente: si no necesitas hacer un seguimiento de los datos de clics y no te preocupa que los vínculos sean largos, puedes crear Dynamic Links de forma manual con parámetros de URL.

Creación de Dynamic Links a través de Firebase Console

A continuación se describe cómo crear Dynamic Links a través de Firebase Console, ya que esta es la manera más sencilla y visual de hacerlo:

  1. Haz clic en la opción Dynamic Links del menú lateral de Firebase Console.
Firebase 1

Menú lateral de Firebase Console

  1.  Haz clic en el botón ‘Empezar’ en el centro de la página de descripción general.Firebase 2

     

  2. Añade el dominio de Dynamic Links. Se puede utilizar un dominio personalizado. Si no se dispone de uno, se puede utilizar un domino gratuito proporcionado por Google con la siguiente sintaxis ‘xxxxxxxx.page.link’ donde ‘xxxxxxxx’ ha de ser un nombre que no esté siendo ya utilizado.
  3. Haz clic en el botón ‘Nuevo enlace dinámico’.Firebase 3

     

  4. Personaliza el enlace de URL corta.Firebase 5
  5. Configura el enlace profundo. Este será el vínculo que abra la aplicación. Cuando los usuarios abran un Dynamic Link en un navegador web de escritorio, cargarán esta URL.FIrebase 6

     

  6. Define el comportamiento del enlace en los distintos SO: en este apartado se especifica a dónde se redirige al usuario cuando abra el enlace dinámico. Bien se le puede dirigir a la URL que se especificó en el paso anterior, o bien indicar que el enlace se abra con una aplicación que esté vinculada al proyecto de Firebase. Si se escoge esta segunda opción, se puede especificar qué ocurre si el usuario no tiene la aplicación instalada.Firebase 7

     

  7. Configura las opciones para el seguimiento de campañas (opcional).Firebase 8

     

3. Recibe Dynamic Links en Android

Para recibir los Firebase Dynamic Links creados, se debe incluir el SDK de Dynamic Links en la aplicación y llamar al método FirebaseDynamicLinks.getDynamicLink() cuando se cargue la aplicación, con el fin de obtener los datos que se envían en el Dynamic Link.

Configurar Firebase y el SDK de Dynamic Links

  1.  Agrega la dependencia para la biblioteca de Android de Firebase Dynamic Links al archivo Gradle (generalmente app/build.gradle) de tu módulo (nivel de app):
    1. implementation 'com.google.firebase:firebase-dynamic-links:16.1.8'
  1. Pulsa ‘Sincronizar ahora’ en la barra que aparece en el IDE.

Registrar datos de análisis y administrar vínculos directos

Se puede hacer un seguimiento automático de los siguientes eventos en Google Analytics para Firebase y mostrarlos en Firebase console:

  • dynamic_link_app_open: se registra cuando un usuario vuelve a abrir la app mediante un Dynamic Link.
  • dynamic_link_first_open: se registra cuando un usuario abre la app por primera vez mediante un Dynamic Link.
  • dynamic_link_app_update: se registra cuando la app se actualiza a una nueva versión mediante un Dynamic Link.

Para registrar estos eventos, se debe configurar Google Analytics para Firebase antes de recuperar el vínculo directo:

  • Llama a FirebaseAnalytics.getInstance() antes de llamar al método FirebaseDynamicLinks.getDynamicLink()
  •  Llama a FirebaseDynamicLinks.getDynamicLink() en los puntos de entrada a la aplicación:
    • Actividades de Launcher, p.ej.: action="android.intent.action.MAIN" y category="android.intent.category.LAUNCHER".
    • Puntos de entrada de la actividad. Por ejemplo: onStart()onCreate().
    • Actividades de vínculos directos.

El siguiente código muestra un ejemplo de implementación en uno de los puntos de entrada de la actividad:

  1. public class MainActivity extends AppCompatActivity {
  1.  
  2. private FirebaseAnalytics mFirebaseAnalytics;
  3.  
  4. @Override
  5. protected void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.activity_main);
  8.  
  9. // Obtain the FirebaseAnalytics instance.
  10. mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
  11.  
  12. FirebaseDynamicLinks.getInstance()
  13. .getDynamicLink(getIntent())
  14. .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
  15. @Override
  16. public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
  17. // Get deep link from result (may be null if no link is found)
  18. Uri deepLink = null;
  19. if (pendingDynamicLinkData != null) {
  20. deepLink = pendingDynamicLinkData.getLink();
  21. }
  22.  
  23. // Handle the deep link.For example,open the linked
  24. // content, or apply promotional credit to the user's
  25. // account.
  26. // ...
  27. // ...
  28. }
  29. })
  30. .addOnFailureListener(this, new OnFailureListener() {
  31. @Override
  32. public void onFailure(@NonNull Exception e) {
  33. Log.w("ERROR", "getDynamicLink:onFailure", e);
  34. }
  35. });
  36.  
  37. }
  1. }

Agregar un filtro de intents para vínculos directos

Se debe agregar un filtro de intent nuevo en AndroidManifest.xml a la actividad que administra los vínculos directos en la aplicación. Cuando los usuarios abran un Dynamic Link con un vínculo directo al esquema y al host especificado, la app inicia la actividad con este filtro de intents para administrar el vínculo. Este host es el especificado en el punto 6 de la creación de Dynamic Links a través de Firebase Console.

  1. <intent-filter>
  1. <action android:name="android.intent.action.VIEW"/>
  2. <category android:name="android.intent.category.DEFAULT"/>
  3. <category android:name="android.intent.category.BROWSABLE"/>
  4. <data
  5. android:host="example.com"
  6. android:scheme="https"/>
  1. </intent-filter>

 

Una vez realizados todos estos pasos, ya deberías ser capaz de recibir y gestionar Dynamics Links en tu aplicación para Android. Si quieres saber cómo debuggear tu aplicación para ver los eventos asociados a los Dynamic Links, te invito a que leas el post Firebase, DebugView y el modo depuración de mi compañero David Picallo.

 

En nuestra compañía