web-dev-qa-db-fra.com

Les événements Firebase Analytics d'iOS ne s'affichent pas

Je teste la nouvelle Firebase optimisée par Google et j'ai mis en place des notifications à distance et des rapports de plantage. Je rencontre cependant d'énormes problèmes pour faire fonctionner Analytics.

Je surveille les événements avec FIRAnalytics.logEventWithName(...) et enregistre les propriétés de l'utilisateur avec FIRAnalytics.setUserPropertyString(...). Cependant, peu importe ce que je fais, aucune donnée n'apparaît dans la console Firebase Analytics.

Eh bien, je reçois certains événements, mais ceux-ci ne sont pas envoyés par moi (comme first_open et session_start). De plus, ces données semblent tomber après très longtemps.

De plus, lorsque je surveille des événements et enregistre des données utilisateur, je reçois ce qui suit:

Upload task scheduled to be executed in approx. (s): 3102.294599890709

Cela semble vraiment étrange - Firebase attend près d'une heure avant d'essayer d'envoyer le prochain lot de données doit être un bug, ou est-il configurable? Lorsque j'ai attendu ce délai extrêmement long, des données ont été envoyées ... mais ne s'affichent pas.

28
Daniel Saidi

Les événements Firebase sont regroupés par lots et téléchargés toutes les heures afin d'éviter une décharge excessive de la batterie sur les appareils. Sur iOS, lorsque vous mettez en arrière-plan l'application avant la cible de téléchargement d'une heure, les événements seront envoyés à ce moment-là en arrière-plan.

Vous pouvez activer la journalisation du débogage pour iOS ( https://firebase.google.com/docs/analytics/ios/events#view_events_in_the_xcode_debug_console ) pour voir quand les événements sont téléchargés dans la console de débogage.

Une fois les événements téléchargés, il y a un délai d'environ 3 heures avant que les données n'apparaissent dans le tableau de bord Firebase Analytics. De plus, la plage de jours par défaut exclut "aujourd'hui", vous ne voyez donc que les événements d'hier. Vous pouvez changer le sélecteur de date pour inclure Aujourd'hui si vous souhaitez voir les derniers événements.

La principale raison de retarder le téléchargement des données par lots est d'économiser la batterie. Chaque fois que le réseau est utilisé, le modem du réseau mobile de l'appareil est mis en mode haute puissance et reste dans ce mode pendant un certain temps. Si le réseau est utilisé régulièrement, il a un impact important sur la durée de vie de la batterie. En regroupant les téléchargements et en retardant le téléchargement, l'impact sur la batterie est considérablement réduit.

59
djabi

Dans Swift cela devrait être comme:

FIRAnalytics.logEvent(withName: "SignUp", parameters: ["user_id": userid, "user_name": username])

Pour afficher cet événement dans Firebase:

  1. Accédez à la console Firebase → onglet Analytics
  2. Cliquez sur l'onglet DebugView; vos événements y sont affichés

Pour afficher cet événement dans Xcode:

  1. Dans Xcode, sélectionnez Produit → Schéma → EditScheme
  2. Sélectionnez Exécuter dans le menu de gauche
  3. Sélectionnez l'onglet Arguments
  4. Dans les arguments transmis au lancement, ajoutez -FIRAnalyticsDebugEnabled

Un tiret seulement !!

Notez que -FIRAnalyticsDebugEnabled a seulement [~ # ~] un [~ # ~] tiret devant lui.

18
urvashi bhagat

Si vous ne recevez pas d'événements dans la console, c'est peut-être parce que vous ne respectez pas la convention de dénomination, comme je l'ai constaté s'il y a un espace dans le nom de l'événement, il n'apparaîtra jamais dans la console comme suit:

mFirebaseAnalytics.logEvent("Add Camera", bundle);

Mais lorsque vous supprimez l'espace comme suit:

mFirebaseAnalytics.logEvent("Add_Camera", bundle);

Vous verrez maintenant les événements dans la console, après environ 3 heures. L'application enverra les données sur la console dans les cas suivants:

1- Data is more than an hours old
2- App goes into the background

Vous pouvez regarder ce tutoriel pour plus d'informations: Premiers pas avec Firebase Analytics sur iOS: événements - Firecasts

11
Zulqarnain

Application React-Native (IOS/Android)

J'ai eu le même problème, debugView ne fonctionnait pas, et streamView glitches plusieurs fois, le meilleur moyen que j'ai trouvé pour tester mes événements était de se connecter avec ma createPageEvent() puis

l'important est de mettre l'application en arrière-plan après avoir enregistré les événements , ils apparaîtront presque en temps réel sur les événements firebase ou dans streamView (vérifier - cet article pour voir quand les événements sont envoyés à firebase)

les événements ne sont envoyés qu'après 1 heure depuis qu'ils ont été enregistrés ou immédiatement si vous mettez votre application en arrière-plan.

import firebase, { RNFirebase } from 'react-native-firebase';

export default class AnalyticsService  {

    static async initialize() {
        firebase.analytics().setAnalyticsCollectionEnabled(true);
    }

    static async createPageEvent(screen: string) {
        firebase.analytics().setCurrentScreen(screen)
        firebase.analytics().logEvent(`open_${screen}`)
    }

}

le résultat est ceci dans streamView presque en temps réel ->

enter image description here

Vous pouvez maintenant commencer à créer des entonnoirs et autres

2
Kuza Grave

Une autre chose à vérifier est de vous assurer que vos entrées de journalisation dans les arguments passés au lancement sont correctes. Ils devraient commencer par un tiret, par exemple

-FIRAnalyticsDebugEnabled

et pas

FIRAnalyticsDebugEnabled

L'autre jour, j'ai perdu une heure à me demander pourquoi rien n'est enregistré.

2
crashoverride777

first_open, session_start sont répertoriés par Firebase comme événements collectés automatiquement .

Je ne peux pas vous aider avec le retard extrême de la tâche de téléchargement que vous rencontrez sur vos événements personnalisés .. mais Firebase Analytics a moins d'une semaine et ce n'est peut-être qu'un bug de leur côté.

J'ai trouvé cette question StackOverflow qui mentionne les mêmes lignes de débogage mais liées à Google App Measurement ou à l'ancien SDK Google Mobile Analytics.

Sachez également que la console Firebase n'affichera pas les événements en temps réel ( source ):

Vous pouvez afficher des statistiques agrégées sur vos événements dans les tableaux de bord de la console Firebase. Ces tableaux de bord sont mis à jour périodiquement tout au long de la journée . Pour un test immédiat, utilisez la sortie logcat comme décrit dans la section précédente.

1
Antoine Guénard

Juste une note simple ici: selon cette petite vidéo https://www.youtube.com/watch?v=5pYdTgSkW5E après avoir joué avec votre simulateur , vous devez appuyez sur le bouton d'accueil du Xcode, sinon les données ne seront pas envoyées au serveur.

0
am.sbr

Le problème le plus courant auquel la plupart des gens sont confrontés est que la base de feu ne consigne pas les événements même si tout fonctionne parfaitement. C'est ce que j'ai trouvé dans la documentation

Si vous devez désactiver définitivement la collection Analytics dans une version de votre application, définissez FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED to YES Dans le fichier Info.plist de votre application. La définition de FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED to YES A priorité sur toutes les valeurs de FIREBASE_ANALYTICS_COLLECTION_ENABLED Dans le Info.plist De votre application ainsi que sur toutes les valeurs définies avec setAnalyticsCollectionEnabled.

Pour réactiver la collecte, supprimez FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED De votre Info.plist. Définir FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED Sur NO n'a aucun effet et entraîne le même comportement que de ne pas avoir FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED Défini dans votre Info.plist file.

Vous devez donc supprimer FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED De votre fichier google-servicesinfo.plist Pour que l'analyse fonctionne.

0
Abdullah