web-dev-qa-db-fra.com

Support de suivi d'écran - Firebase 9.8

Selon Notes de publication du SDK Firebase Android avec la mise à jour 9.8 nous avons le support le suivi d'écran avec les écrans et les activités Android ... La documentation indique que cet événement fonctionne comme cela:

mFirebaseAnalytics.setCurrentScreen(activity,class_name,class_override_name);

Dans mon cas, je n'ai pas besoin de substitutions de nom de classe et j'envoie une valeur nulle ... Mais j'attends 48h et ma console d'analyse Firebase n'affiche pas d'informations sur cet événement, des idées? 

Merci d'avance!

J'avais d'abord la même question: où se trouve mon événement avec le nom d'écran actuel sur le tableau de bord Firebase? J'ai appelé la méthode mFirebaseAnalytics.setCurrentScreen(this, "MainActivity", null); sans résultat.

Grâce au commentaire de Benoit, je me suis rendu compte que cette méthode indique la valeur de implicite paramètre qui est automatiquement associé à tout événement que vous envoyez. Cela signifie que ce n'est pas un événement indépendant, c'est un paramètre qui collera à tous vos événements depuis que vous l'avez défini.

Cela sera utile si vous avez plusieurs écrans à changer au sein d’une seule activité. Par exemple, lorsque vous avez plusieurs fragments avec une activité d'hébergement. Et vous appelez cette méthode dans chaque fragment dans onResume().

Si vous voulez avoir une métrique distincte avec le nom de votre écran, déclenchez explicitement un nouvel événement pour cela.

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);
7
Kirill Karmazin

Une autre chose très importante que je n’ai remarquée qu’après deux jours de lutte intense: la méthode setCurrentScreenDOITêtre appelée sur le fil de l’UI.

Je n'ai pu le voir qu'après avoir cherché une lumière dans le code décompilé 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) {
    //...
}

Chaque fois que cette méthode est appelée, un événement de type screen_view est enregistré.

Et gardez à l'esprit les restrictions de taille de Firebase. La taille maximale d'un nom d'écran est de 36 caractères.

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);

Essayez d'utiliser setCurrentScreen ainsi que le déclenchement manuel d'événements, car Firebase n'envoie pas immédiatement les données à la console ... mais si l'événement est déclenché, toutes les données restantes sont envoyées à Firebase ..

0
Harsh Agrawal

Définit le nom d'écran actuel, qui spécifie le contexte visuel actuel dans votre application. Cela aide à identifier les zones de votre application où les utilisateurs passent leur temps et comment ils interagissent avec votre application.

Notez que le rapport d'écran est activé automatiquement et enregistre pour vous le nom de classe de l'activité en cours sans que vous ayez à appeler cette fonction. Le nom de classe peut éventuellement être remplacé en appelant cette fonction dans le rappel onResume de votre activité et en spécifiant le paramètre screenClassOverride.

Si votre application n'utilise pas d'activité distincte pour chaque écran, vous devez appeler cette fonction et spécifier un nom d'écran distinct chaque fois qu'un nouvel écran est présenté à l'utilisateur.

Le nom et classOverride restent en vigueur jusqu'à ce que l'activité en cours soit modifiée ou qu'un nouvel appel à setCurrentScreen soit effectué. Je vais essayer d'ajouter cette méthode à la méthode onResume. Je ne connais pas le résultat mais je partagerai mon expérience.

0
Colibri

Appelez simplement cette méthode dans onResume() et vérifiez le suivi via DebugView. cela a fonctionné pour moi.

Découvrez la documentation .

0
Manjunath