J’implémente de l’analytique dans mon application avec Flurry !

Vous venez de lancer votre application sur le store Windows Phone mais vous trouvez que les statistiques mises à votre dispositions manquent de pertinence.
Il est peut être temps de se mettre à Flurry afin d’avoir accès à une analyse fine des interactions avec vos utilisateurs !
Dans cet article, je vais tenter d’intégrer cet outil dans une application Windows Phone d’émulation GameBoy (Purple Cherry).

Installer Flurry

Pour installer Flurry sur son application il suffit de se rendre sur http://www.flurry.com/ puis de creer un compte en cliquant sur le bouton « Sign Up ».
Une fois ce compte créer vous devrez ajouter vos applications dans flurry.
Pour se faire on clique sur l’onglet « Applications » et on crée une application en sélectionnant sa plateforme (Windows Phone pour nous :) ) puis en renseignant son nom et sa category dans le marketplace.
A la fin de la création de l’application, Flurry vous indiquera la clé unique représentant votre application et vous proposera de télécharger son SDK.

Le SDK se compose d’un fichier zip comprenant :

– La license d’utilisation
– deux fichiers pdf contenant les instructions d’installations
– Le SDK Flurry (FlurryWP7SDK.dll) qui va nous permettre de transmettre des informations à partir de notre app.
– La clé unique de notre application (ProjectApiKey.txt)

Pour intégrer le SDK Flurry dans notre application, nous allons ajouter la dll en tant que reference dans notre projet.
On va ensuite verfier que notre application contient bien les capacités suivantes (dans le fichier WMAppManifest.xml) nécessaire au SDK Flurry :

  • ID_CAP_NETWORKING : Pour envoyer des données aux serveurs de Flurry
  • ID_CAP_IDENTITY_USER : Pour identifier l’utilisateur de l’application, un id le representant sera également envoyé aux serveurs Flurry.

Pour Purple Cherry c’était déjà le cas donc pas de modification a apporter :

Démarrer Flurry

Le démarrage de Flurry est extrêment simple puisqu’il suffit d’intégrer dans les evenements Application_Launching et Application_Activated de App.cs la méthode suivante :


private void Application_Launching(object sender, LaunchingEventArgs e)
{
    this.StartFlurry(); 
}

private void Application_Activated(object sender, ActivatedEventArgs e)
{
    this.StartFlurry();
}

/// <summary>
/// Démarrage de flurry
/// </summary>

private void StartFlurry()
{
    FlurryWP7SDK.Api.StartSession("VotreIdApplication");
}  

Ce qui est envoyé à Flurry

Lorsque l’on démarre notre application Flurry envoie des données à ses serveurs.
En analysant le trafic envoyé, on détecte qu’il pousse les données suivantes :

– Le code de l’application
– le numero de version de l’application (par celui de l’assembly mais celui contenue dans le WMAppManifest.xml)
– L’identifiant unique de l’utilisateur du téléphone (UserId)
– le numero de version de l’OS (ex:7.10.8773)
– Le modèle du téléphone (Nokia Lumia 800)
– La langue du téléphone (fr-FR)
– Le GMT du téléphone (GMT +2)

Il envoie également des paquets TCP de naviguation de page, de maintient de Session et d’autres informations encore lorsque l’on quitte l’application.
Le tout semble rapide et n’a pas d’incidence sur l’expérience utilisateur.
J’ai également testé en mode avion et tout fonctionne sans problème.

Plus loin

Toutes les informations envoyées par Flurry permettent de collecter des informations utilisateurs de bases.
Mais dans le cadres de mon émulateurs je souhaiterais obtenir des informations sur les jeux lancé par les utilsateurs et leurs settings par exemple.

On va donc logguer des éléments complémentaires grace à la méthode suivante :


FlurryWP7SDK.Api.LogEvent(string eventId, List parameters)

Pour intégrer de nouvelles informations dans les logs, on peut lui donner un id, ici « Game » et un ensemble de paramètres de notre applications (Nom du jeu, id du jeu, …) :


public void LogGameInFlurry(GameViewModel game, string romName, string hardwareNeeded, bool isTrial )
{
    try
    {
        FlurryWP7SDK.Api.LogEvent("Game", new List<FlurryWP7SDK.Models.Parameter>()
            {
                new FlurryWP7SDK.Models.Parameter("Name", romName),
                new FlurryWP7SDK.Models.Parameter("Id", game.Id),
                new FlurryWP7SDK.Models.Parameter("Hardware", hardwareNeeded ),
                new FlurryWP7SDK.Models.Parameter("Cheat", game.IsCheatActivated.ToString()),
                new FlurryWP7SDK.Models.Parameter("TotalPlayed", game.TotalPlayedString),
                new FlurryWP7SDK.Models.Parameter("Trial", isTrial.ToString() ),
                new FlurryWP7SDK.Models.Parameter("HasSound", this.HasSound.ToString() ),
                new FlurryWP7SDK.Models.Parameter("SkipFrame", this.SkipFrame.ToString() ),
            }
        );
    }
    catch (Exception ex)
    {
        System.Diagnostics.Debug.WriteLine(ex.Message);
    }
}

Cette fonctionnalitée est très intéressante puisqu’elle me permettra dans l’avenir de comprendre les améliorations à apporter à l’application prioritairement (son, compatibilité sur certains jeux phares,…)
Il est a noté qu’il est aussi possible de logger le temps passé durant une action.

7h00 plus tard !

Après quelques tests il est temps de voir le résultat de notre utilisation dans l’interface de Flurry. Mais pour cela il faudra attendre environ 07h00, le temps que les données soient consommables.Voila ensuite ce que l’on obtient :

Dashboard comprenant la liste des utilisateurs et des sessions de notre applications :


Liste des events (telechargeable en CSV) :

Je trouve que les events pourraient être traités differement, sous forme de graphique par exemple, mais je n’ai malheureusmeent pas trouvé comment faire. Heureusement l’export CSV nous permet à travers Excel d’analyser comme on le souhaite les données issues de notre evenements « Game ».

Il existe quantité d’autres tableaux encore permettant de visualiser la version de l’application, le device ou le firmware utilisé, etc….

Conclusion

J’ai encore peu d’experience sur Flurry mais ce qui ressort de ce premier contact est que le SDK est puissant et s’installe facilement.
L’interface est belle et accessible à tous. Flurry semble largement mérité sa place de leader dans l’analyse des données clients sur windows Phone.

Merci à Cyril Cathala pour son aide sur l’interface (lorsque je ne disposais pas encore de données).

One Response to J’implémente de l’analytique dans mon application avec Flurry !

  1.  

    Bonjour,

    Merci pour cet article. Afin de faire bénéficier aux internautes d’un complément d’information exclusif, je vous propose une autre source que nous venons de publier, qui fait un zoom sur 5 solutions analytics pour mobile : http://www.lafabriquedunet.fr/applications-mobiles/articles/5-solutions-analytics-applications-mobiles/

    Encore merci et à bientôt,

    Adrien.

leave your comment