android firebase firebase-analytics

android - Soporte de seguimiento de pantalla-Firebase 9.8



firebase-analytics (5)

Establece el nombre de la pantalla actual, que especifica el contexto visual actual en su aplicación. Esto ayuda a identificar las áreas en su aplicación donde los usuarios pasan su tiempo y cómo interactúan con su aplicación.

Tenga en cuenta que los informes de pantalla se activan automáticamente y registran el nombre de la clase de la Actividad actual sin necesidad de llamar a esta función. El nombre de la clase se puede anular opcionalmente llamando a esta función en la devolución de llamada onResume de su Actividad y especificando el parámetro screenClassOverride.

Si su aplicación no utiliza una Actividad distinta para cada pantalla, debe llamar a esta función y especificar un Nombre de pantalla distinto cada vez que se presente una nueva pantalla al usuario.

El nombre y classOverride permanecerán vigentes hasta que la Actividad actual cambie o se realice una nueva llamada a setCurrentScreen. Intentaré agregar este método al método onResume. No sé el resultado pero compartiré mi experiencia.

Según las Notas de la versión del SDK de Firebase para Android con actualización 9.8 , tenemos soporte de seguimiento de pantalla con pantallas y actividades de Android ... La documentación dice que este evento funciona así:

mFirebaseAnalytics.setCurrentScreen(activity,class_name,class_override_name);

En mi caso, no necesito anular el nombre de la clase y envío un valor nulo ... Pero estoy esperando 48h y mi consola de análisis de base de firebase no muestra información sobre este evento, ¿alguna idea?

¡Gracias por adelantado!


Otra cosa muy importante que he notado solo después de dos días de lucha intensiva: el método setCurrentScreen DEBE llamarse en el subproceso de la interfaz de usuario.

Solo pude ver eso después de buscar una luz en el código descompilado de Firebase:

@MainThread @Keep public final void setCurrentScreen(@NonNull Activity var1, @Size(min = 1L,max = 36L) @Nullable String var2, @Size(min = 1L,max = 36L) @Nullable String var3) { //... }

Cada vez que se llama a este método, se registra un evento de tipo screen_view .

Y ten en cuenta las restricciones de tamaño de Firebase. El tamaño máximo de un nombre de pantalla es de 36 caracteres.


Primero tuve la misma pregunta: ¿dónde está mi evento con el nombre de pantalla actual en el panel de Firebase? He llamado el método mFirebaseAnalytics.setCurrentScreen(this, "MainActivity", null); sin resultado

Gracias al comentario de Benoit, me di cuenta de que este método indica el valor del parámetro implícito que se adjunta automáticamente a cualquier evento que envíe. Eso significa que no es un evento independiente, es un parámetro que se mantendrá en todos tus eventos desde que lo configuraste.

Esto será útil si tiene pantallas cambiantes dentro de una sola actividad. Por ejemplo, cuando tiene varios fragmentos con una actividad de hosting. Y llamas a este método en cada fragmento en onResume() .

Si desea tener una métrica distinta con el nombre de su pantalla, dispare explícitamente un nuevo evento para eso.

Bundle params = new Bundle(); params.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "screen"); params.putString(FirebaseAnalytics.Param.ITEM_NAME, "MainActivity"); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_ITEM, params);


Simplemente llame a ese método en onResume() y verifique el seguimiento a través de DebugView. funciono para mi

Echa un vistazo a la documentación .


firebaseAnalytics.setCurrentScreen(activity,screeenName,activity.getClass().getSimpleName()); firebaseAnalytics.setMinimumSessionDuration(100L); params = new Bundle(); params.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "screen"); params.putString(FirebaseAnalytics.Param.ITEM_NAME, screeenName); firebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_ITEM, params);

Intente usar setCurrentScreen, así como el disparo manual de eventos, ya que firebase no envía datos inmediatamente a la consola ... pero si el evento se activa ... todos los datos restantes se envían a firebase ...