Guía para integrar Firebase Analytics en una aplicación Flutter


Avatar de Pedro Cortez

Publicar tu aplicación en los marketplaces no es suficiente para garantizar su éxito a largo plazo. Para asegurar su sostenibilidad, debes identificar y corregir continuamente los puntos de fricción con el fin de mejorar la experiencia del usuario. Aquí es donde entra Firebase Analytics, una herramienta poderosa que te permite seguir y analizar las interacciones…


añadir firebase analytics con Flutter

Configurar el servicio Google Analytics con Flutter

Instalar el paquete Firebase Analytics

El primer paso para configurar Firebase Analytics es agregar los paquetes necesarios en tu aplicación. Sigue estos pasos:

  1. Abre el archivo pubspec.yaml de tu proyecto.
  2. Agrega las siguientes dependencias:
dependencies:
  firebase_analytics: latest_version
  firebase_core: latest_version

3. Instala las dependencias ejecutando el comando:

flutter pub get

4. Importa los paquetes necesarios en tu archivo Dart principal:

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_analytics/firebase_analytics.dart';
import 'package:firebase_analytics/observer.dart';

Firebase Analytics ya está instalado en tu aplicación, pero aún hay algunos pasos que completar antes de poder usarlo.

Actualizar los archivos Gradle y Android Manifest

Para que Firebase Analytics funcione correctamente con tu proyecto Android, es posible que debas modificar algunos archivos de configuración.


android/build.gradle

En el archivo android/build.gradle, agrega las siguientes líneas en la sección dependencies:

buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:4.4.2' // Asegúrate de usar la última versión
        classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.2' // Asegúrate de usar la última versión
    }
}

android/settings.gradle

Abre el archivo android/settings.gradle y agrega estas líneas en la sección plugins {} para incluir los plugins Google Services y Firebase Crashlytics:

gradleCopier le codeplugins {
    id 'com.google.gms.google-services' version '4.3.15' apply false // Asegúrate de usar la última versión
    id "com.google.firebase.crashlytics" version "2.8.1" apply false // Asegúrate de usar la última versión
}

Esto asegura que los plugins necesarios estén disponibles en tu proyecto.

android/app/build.gradle

En el archivo android/app/build.gradle, agrega los plugins Google Services y Crashlytics:

apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'

Estas líneas deben añadirse al final del archivo.

AndroidManifest.xml

En tu archivo AndroidManifest.xml, activa Firebase Analytics añadiendo esta línea en la sección <application>:

<meta-data android:name="firebase_analytics_collection_enabled" android:value="true" />

Esto garantiza que la recopilación de datos analíticos esté habilitada.

Inicializar Firebase Analytics en tu aplicación Flutter

Antes de usar Firebase Analytics, debes inicializar Firebase en tu aplicación. En tu archivo Dart principal (generalmente main.dart), añade esta línea para inicializar Firebase en la función principal (main):

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

En tu State o Widget principal, crea una instancia reutilizable de Firebase Analytics:

class MyApp extends StatelessWidget {
  static FirebaseAnalytics analytics = FirebaseAnalytics.instance;
  static FirebaseAnalyticsObserver observer = FirebaseAnalyticsObserver(analytics: analytics);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      navigatorObservers: <NavigatorObserver>[observer], // Añade el observer aquí
      home: HomeScreen(),
    );
  }
}

El observer permite rastrear las interacciones del usuario dentro de la aplicación. Al añadirlo a navigatorObservers, registra automáticamente los eventos de navegación.

¿Por qué inicializar Firebase Analytics una sola vez?

La inicialización de FirebaseAnalytics y del Observer debe hacerse solo una vez en la aplicación para evitar duplicados y optimizar el rendimiento. Una instancia única centraliza la recopilación de eventos y asegura una gestión coherente de los datos analíticos en toda la aplicación, evitando inicializar nuevas instancias en cada uso.

Registrar eventos analíticos personalizados

Una vez que Firebase Analytics esté configurado, puedes registrar eventos personalizados para seguir las acciones de los usuarios. Crea una clase dedicada para gestionar estos eventos:

class AnalyticsService {
  final FirebaseAnalytics _analytics = FirebaseAnalytics.instance;

  Future<void> sendAnalyticsEvent(String nameValue, String kindOfEvent, String eventValue) async {
    await _analytics.logEvent(
      name: nameValue,
      parameters: <String, Object>{
        'kind': kindOfEvent,
        'value': eventValue,
      },
    );
  }
}

Esta clase permite registrar eventos llamando al método logEvent. Acepta tres parámetros:

  • nameValue: El nombre genérico del evento (por ejemplo, button_click).
  • kindOfEvent: La categoría o tipo del evento (por ejemplo, action).
  • eventValue: El valor asociado al evento (por ejemplo, button_back).

Luego, utiliza la clase AnalyticsService para registrar un evento específico cuando ciertas acciones ocurren en tu aplicación. Por ejemplo, para registrar un clic en un botón, puedes usar el siguiente código:

AnalyticsService().sendAnalyticsEvent(
  "Create question",
  "Type of question",
  "Réponses multiples",
);

Los nombres y valores de los eventos en Firebase Analytics solo pueden contener letras, números y guiones bajos (_). Asegúrate de seguir esta regla, de lo contrario, el evento no aparecerá en los informes.

Verificar que los eventos se están registrando correctamente en Analytics

Una vez que los eventos estén configurados, solo queda verificar que la información llegue correctamente a Google Analytics. Aquí te mostramos algunas formas de hacerlo.

Usar ADB Logcat

La primera manera de verificar que los eventos se están enviando correctamente a Firebase Analytics es utilizando el comando adb logcat en tu emulador o dispositivo Android. Abre una terminal adicional y ejecuta el siguiente comando:

adb logcat -v time -s FA FA-SVC

Este comando mostrará los registros en tiempo real para Firebase Analytics y te permitirá ver si tus eventos se están enviando correctamente.

Vista de depuración de Firebase (Firebase DebugView)

Firebase ofrece una vista de depuración en tiempo real en la consola de Firebase para ver inmediatamente los eventos generados por la aplicación.

Pasos para usar DebugView:

  1. Activar el modo de depuración: En tu emulador o dispositivo físico, ejecuta el siguiente comando en la terminal para activar el modo de depuración para Firebase Analytics:
adb shell setprop debug.firebase.analytics.app PACKAGE_NAME

Reemplaza PACKAGE_NAME por el nombre del paquete de tu aplicación (generalmente definido en el archivo AndroidManifest.xml).

  1. Abrir Firebase DebugView:

Inicia sesión en la consola de Firebase y selecciona tu proyecto. Luego ve a Analytics > DebugView.

Verás los eventos enviados en tiempo real desde tu aplicación mientras la usas. Los eventos aparecerán como puntos en una línea de tiempo y, al hacer clic sobre ellos, podrás ver los detalles de cada evento.

  1. Desactivar el modo de depuración: Una vez que hayas terminado, desactiva el modo de depuración con este comando:
adb shell setprop debug.firebase.analytics.app .none.

Consola de Firebase Analytics (Tablero de eventos)

Firebase Analytics ofrece una interfaz de usuario en la consola de Firebase para mostrar los eventos registrados en la aplicación. A diferencia de DebugView, generalmente toma entre 24 y 48 horas para que los eventos aparezcan en este tablero. Así que tendrás que esperar un poco antes de poder verificar que todo esté funcionando.

Aquí tienes los pasos a seguir:

  1. Ve a Firebase Console > Analytics > Events.
  2. Verás una lista de todos los eventos enviados por tu aplicación.
  3. Haz clic sobre un evento para ver sus detalles, incluyendo el número de ocurrencias, los parámetros asociados y las tendencias.

Conclusión

Siguiendo estos pasos, ahora has integrado Google Analytics en tu aplicación Flutter y eres capaz de seguir las interacciones de los usuarios a través de eventos personalizados. No olvides probar tus eventos y verificar los registros para asegurarte de que todos los datos se envían correctamente a Firebase. Google Analytics te proporcionará una visión completa del uso de tu aplicación y te ayudará a tomar decisiones basadas en datos.

Avatar de Pedro Cortez