Firebase Analytics: cómo usar propiedades de usuario en una App Android

Cuando se utiliza Firebase Analytics para analizar el comportamiento de los usuarios en una app, tenemos que afrontar un cambio de conceptos importante desde Google Analytics.

Esto es debido a que su funcionamiento es bastante diferente y, aunque podamos acceder a los datos desde el propio Google Analytics nos encontraremos con una herramienta muy distinta.

Para no repetirnos, en el siguiente enlace puedes ver las principales características de Firebase Analytics y, como ya mencionábamos, una de las diferencias es que no existen dimensiones personalizadas, aunque podemos suplirlas con las propiedades de usuario. Al final del artículo Firebase: pantalla vista y debugview Sara ya nos adelantaba el uso de las propiedades de usuario de Firebase, a continuación las veremos más a fondo.

Al igual que ocurre con las dimensiones personalizadas de Google Analytics, las propiedades de usuario hay que crearlas en dos pasos: por una parte, en la consola de Firebase, y por otro lado en el código de la app. En Firebase no hay índices para las propiedades, pero es fundamental que usemos exactamente el mismo nombre en la consola y en la app, respetando mayúsculas y cualquier otro carácter, pues sino no funcionará.

Por otra parte, mientras que en Google Analytics las dimensiones personalizadas pueden tener un ámbito de hit, sesión o usuario, en Firebase, las propiedades de usuario, como su propio nombre indica, solo existen en el ámbito de usuario. Sin embargo, podríamos pasar otros valores con ámbito de hit, utilizando los parámetros de los eventos.

Es muy recomendable, casi obligatorio, que antes de lanzarnos a crear propiedades hagamos una buena planificación de los datos que vamos a necesitar recoger y como vamos a llamar a las propiedades, pues en Firebase no se pueden modificar ni eliminar las propiedades de usuario de un proyecto y, además tenemos un límite de 25, por lo que no conviene desperdiciarlas por errores o falta de planificación.

Crear la propiedad de usuario en la consola de Firebase Analytics

Como primer paso entraremos en la consola de Firebase y vamos a la app en la que queramos crear la propiedad. La última pestaña, Propiedades de usuario, aparecerá vacía invitándonos a crear una nueva propiedad.

Firebase

Creación de las propiedades de usuario desde la consola de Firebase Analytics

Al hacerlo nos pide un nombre (¡Cuidado! escrito idéntico a como vaya a ir en el código de la app) y una descripción opcional.

Firebase

Al poner el nombre de la propiedad hay que asegurarse de no cometer errores, pues solo hay 25 y no pueden borrarse ni editarse.

Añadir el código en Android Studio

A continuación, en Android Studio (o en el entorno de desarrollo que estemos usando) tendremos que añadir el código encargado de enviar el evento.
En el ejemplo que hemos usado tenemos una aplicación en la que al usuario se le pide que se defina en uno de cinco niveles posibles, y se registra la selección en una variable de tipo entero con un valor de 1 a 5. Usaremos ese valor para convertirlo en una cadena personalizable que se enviará como valor de la propiedad de usuario.

En esta aplicación se ha creado una clase (Analytics) dedicada a acoger todos los métodos empleados para la analítica con Firebase que luego se llamarán desde los puntos del programa que sea necesario. Por lo tanto, añadimos a la clase Analytics el siguiente método:

Propiedades de Usuario de Firebase Analytics

Como nombre del método (setUserPropertyGardeningExperience) elegimos el que queramos, y le vamos a pasar los valores del contexto y el nivel de usuario (experienceIndex).

Definimos la variable userPropertyKey, de tipo string, con el nombre de la propiedad de usuario (¡Cuidado! escrito idéntico a como se haya puesto en la consola de Firebase Analytics).

Definimos un array de strings (userPropertyValues[]) en el que asignamos los cinco nombres posibles a los que vamos a asignar cada valor de experienceIndex.

Para ser correctos, estas cadenas habría que ponerlas en el fichero strings.xml, y así separar los textos del código para facilitar posibles traducciones posteriores, pero para simplificar he preferido dejarlo así.

Y por último lanzamos la propiedad de usuario en Firebase mediante setUserProperty(nombre_propiedad, valor_propiedad).

Ya tenemos creado el método para fijar esta propiedad de usuario, para llamarlo vamos al punto del programa en el que se define el nivel del usuario, y añadimos la siguiente línea:

Código Usuario de Firebase Analytics

Esto llamará al método setUserPropertyGardeningExperience de la clase Analytics, enviándole los valores del contexto y el nivel de usuario (la variable mRatingChoice que se usa en esa parte del programa).

Comprobar que funciona

Con esto quedaría terminado, a falta solo de comprobar el funcionamiento. Podemos hacerlo de dos formas:

1- Desde el logcat de Android Monitor

Vamos a Android Monitor y en el logcat seleccionamos el dispositivo y filtramos solo la información de Firebase. Cuando ejecutemos la app veremos algo como esto:

Firebase Analytics código

2- Desde la consola de FireBase

Para habilitar el modo depuración, en el terminal ejecutamos:

(hay que ejecutarlo desde la carpeta donde esté adb.exe o añadir su ruta al PATH para que lo encuentre desde cualquier otra).

Vista de depuración de Firebase AnalyticsSi seleccionamos cualquiera de los eventos enviados y consultamos las Propiedades de usuario veremos que a partir de este momento va asociada la que acabamos de crear.

Un detalle importante es que, al igual que ocurre en Google Analytics, no podemos almacenar información personal de ningún tipo en Firebase Analytics, así que no se deben usar las propiedades de usuario para mandar datos como direcciones de email, teléfonos, DNIs, ni nada similar, bajo pena de borrado de la cuenta entera y pérdida de todos los datos almacenados hasta entonces.

Una vez que Firebase esté recogiendo datos, podemos usar sus valores para segmentar a los usuarios y hacer mejores análisis, incluso creando audiencias a medida, a partir del valor de las propiedades de usuario y los eventos. Además, Firebase recopila automáticamente bastantes propiedades de usuario, como la edad, versión de la app, país, hora de la primera apertura, etc. Puedes encontrar la lista completa en la Ayuda de Firebase.

Leave Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.