Partager via



Juillet 2015

Volume 30, numéro 7

Google Analytique - analyser le comportement de l'utilisateur dans votre application de Windows/Windows Phone avec Google Analytique

Par Nicola Delfino

Développement d'application est par définition un processus itératif, donc vous aurez envie de comprendre, dans les plus brefs délais, utilisation de votre application et comment une nouvelle version ou une fonctionnalité peut-être avoir une incidence comportement de l'utilisateur. Combien coûte une fonctionnalité vraiment utilisée ? Quel est le comportement de l'utilisateur sur une page spécifique ? Combien temps a-t-il un utilisateur passer pour accomplir une tâche spécifique ? Quelles sont les configurations matérielles plus courantes ? Que se passe-t-il quand un accident se produit ? Dans quelle mesure les versions d'essai et in-app achats ? Vos utilisateurs exécuter l'application en mode hors connexion ? Voilà seulement quelques-unes des questions que peut répondre à un système de télémétrie.

Il y a un certain nombre de fournisseurs de télémétrie qui soutiennent officiellement le développement Windows (bit.ly/1KGgAdQ), et Microsoft Azure comprend Visual Studio Application Insight, qui est également intégré dans le Visual Studio 2015 (bit.ly/1EeM8Ui).

Google Analytique, grâce à la Google Analytique SDK pour Windows (disponible sur Codeplex à bit.ly/1zXfvxJ), est également facile d'intégrer dans une application Windows ou Windows Phone (Silverlight et universel).

Dans cet article, je me concentrerai sur Google Analytique, car c'est un du plus largement utilisé des fournisseurs sur les autres plates-formes, y compris le Web, et c'est un excellent choix si vous avez instrumentée déjà un site Web avec Google et que vous souhaitez utiliser le même compte pour les applications. Je décrirai comment recueillir des informations de la télémétrie avec Google Analytique et analyser les données recueillies, telles que les versions app installée, répartition géographique et les comportements de l'utilisateur et comment effectuer un A / B Testing.

Comprendre les concepts de télémétrie est utile n'importe quel fournisseur que vous utilisez. Un excellent point de départ sur ce sujet est le pont de Kraig Brockschmidt à partir de 2014 Build (bit.ly/1QGIsSO).

Ce qui est de Google Analytique ?

Google Analytique a été construit afin de suivre et d'analyser les comportements de l'utilisateur sur des sites Web. Au fil du temps, Google a étendu son soutien et les outils pour les apps, et maintenant un SDK est disponible pour iOS et Android, aussi bien. Google fournit également un protocole de mesure qui vous permet de passer des appels HTTP pour envoyer les données d'interaction utilisateur brutes directement aux serveurs de Google Analytique (bit.ly/1kHgDYz). Cela vous permet de déterminer comment les utilisateurs interagissent avec leur entreprise depuis n'importe quel environnement. Le kit de développement logiciel de Google Analytique utilise ce protocole pour Windows 8 et Windows Phone. Le SDK est un ensemble d'outils open source indépendant qui vise à ce que la parité de la fonction et la similitude des API avec le kit de développement officiel Google Analytique pour Android.

Intégrer votre application avec Google Analytique

Pour intégrer une application, vous devez d'abord accéder au tableau de bord Google Analytique avec un compte Google valide, puis créez le compte d'au moins une application qui accède à la zone administrative (bit.ly/1kPLnqG). C'est aussi une bonne idée de créer des comptes d'application séparée pour le développement, de bêta-test et de production. De cette façon, vous conservez les données de chaque réglage séparé et évitez la pollution de vos données de production important avec des données erronées provenant d'autres développeurs et testeurs de la bêta.

Un compte de l'application identifie de manière unique une application (Contoso, aux fins du présent article). Dans ce contexte, une « appli­cation "vraiment fait référence à une collection d'applications disponibles pour différentes plates-formes et/ou de sites Web (Contoso pour Windows, Contoso pour Android, tableau de bord Contoso Web), qui tous envoyer leur tele­métries informations au même compte. Chaque application peut être également disponible en plusieurs versions (Contoso pour Windows 1.0, Contoso pour Windows 1.1, Contoso pour Android 2.0.1).

Lorsque vous créez le compte dans Google Analytique, vous devez également définir une ou plusieurs propriétés. Ici, une propriété est une application ou un site Web pour votre compte. Une propriété de l'app peut avoir plusieurs versions, et il est logique d'avoir une propriété pour chaque plate-forme prise en charge (par exemple, ContosoW8, ContosoWP8, ContosoDroid). Une fois que vous avez choisi pour votre application, les noms et a répondu à quelques questions pour classer le champ d'activité de l'application, Google Analytique génère un ID de compte numérique et un ID de suivi avec le format UA-xxxxxxxx-x, qui représente votre application spécifique à la plateforme de Google Analytique et sera utilisée dans toutes les communications de télémétrie envoyées depuis l'application.

Dans mon exemple de scénario, j'ai une application universelle (W8.1 et WP8.1), j'ai donc créé deux ID de propriété dans un Google Analytique compte. Pour permettre à mon application parler avec Google Analytique, je vais utiliser un package NuGet. Pour ce faire, pour le Windows et Windows Phone apps, cliquez du bouton droit sur références, sélectionnez gérer les packages NuGet, et ajouter le package « GoogleAnalyticsSDK. » Ce paquet ajoute quelques références et le fichier analytics.xml, montré dans Figure 1, à votre solution de Visual Studio . Vous devrez modifier ce fichier afin que l'application peut utiliser l'ID de suivi correct, vous avez créé précédemment.

Figure 1 Analytics.xml pour Windows et Windows Phone App

<?xml version="1.0" encoding="utf-8" ?>
<analytics xmlns="http://googleanalyticssdk.codeplex.com/ns/easytracker">
<trackingId>UA-60759067-2</trackingId>
  <appName>ContosoWindows</appName>
  <appVersion>1.0.0.0</appVersion>
</analytics>
<?xml version="1.0" encoding="utf-8" ?>
<analytics xmlns="http://googleanalyticssdk.codeplex.com/ns/easytracker">
  <trackingId>UA-60759067-1</trackingId>
  <appName>ContosoWinPhone</appName>
  <appVersion>1.0.0.0</appVersion>
</analytics>

Enfin, vous devez vérifier que votre application est autorisée à utiliser le réseau. L'application Windows Phone, sélectionnez la fonction ID_CAP_NETWORKING dans le fichier WMAppManifest.xml ; pour Windows 8, sélectionnez la capacité Internet (client) dans le fichier package.appxmanifest.

Instrumentation de l'App

La première catégorie de la plupart des développeurs souhaitent effectuer le suivi d'informations est la navigation de l'utilisateur. En utilisant ce SDK, vous devez envoyer l'événement correct chaque fois qu'un utilisateur accède à une page. Le kit de développement logiciel de Google Analytique expose la commande SendView pour cela, et le lieu naturel d'appeler cette méthode est l'événement Loaded de chaque page :

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
GoogleAnalytics.EasyTracker.GetTracker().SendView("Main");
}
void Page1_Loaded(object sender, RoutedEventArgs e)
{
GoogleAnalytics.EasyTracker.GetTracker().SendView("Page1");
}
void Page2_Loaded(object sender, RoutedEventArgs e)
{
GoogleAnalytics.EasyTracker.GetTracker().SendView("Page2");
}

Gardez à l'esprit qu'une « vue » n'est pas juste une page de l'app ; vous devrez également tenir compte d'autres aspects de l'interface utilisateur que l'attention de l'utilisateur (par exemple, les boîtes de panneau et de la boîte de dialogue de paramètres) que vous souhaitez surveiller et analyser.

SendView requiert un paramètre de chaîne qui identifie la page ou l'aspect de l'interface utilisateur que vous êtes suivi. Ce nom apparaît sur le tableau de bord Google Analytique et des rapports comme référence pour votre page. Il devrait être générique et facilement associable avec la page source. Il ne doit pas être traduit même si votre application prend en charge plusieurs langues car il serait interprété par le système d'analyse dans une autre page. En d'autres termes, à moins que vous voulez spécifiquement différencier les données de télémétrie pour les versions localisées de votre application, assurez-vous que les identificateurs de que vous envoyez à Google Analytique ne sont pas eux-mêmes localisés.

L'app est maintenant prête à envoyer ses informations de télémétrie premières navigation de la page. Pour le voir, ouvrez votre application et parcourir les pages pendant un certain temps.

En quelques secondes, les données de navigation sont prêt et disponible pour votre analyse. Aller à google.com/analytics et ouvrez une session accéder à votre page d'accueil. Puis cliquez sur le lien App Data mobile tout au-dessous de la propriété que vous souhaitez analyser (dans mon exemple, la propriété est ContosoW8 ou Contoso WP8).

Le tableau de bord Bienvenue indique les données historiques des 30 derniers jours, non compris le jour actuel. Si le compte est nouvel, probablement tous les graphiques seront vides. Il y a également une zone de tableau de bord dédié aux données plus récentes, auquel vous pouvez accéder en cliquant sur le bouton en temps réel sur le côté gauche du tableau de bord.

La page vue d'ensemble indique le nombre d'utilisateurs actifs et montre l'affichage de l'écran en temps réel avec un graphique détaillé pour la dernière minute et la dernière heure (voir Figure 2). Barres verticales sur ces graphiques montrent page utilisateur accède.

tableau de bord des données en temps réel
Figure 2 tableau de bord des données en temps réel

Vous pouvez aussi voir une liste des écrans plus actifs dans la dernière heure, avec le nombre d'utilisateurs actifs. Le nom que vous allez voir sur le tableau de bord est celui qui est utilisé comme paramètre SendView dans le code d'application. Figure 2 présente des exemples en temps réel de données dans le « Coureur de Caledos, » une application que j'ai développé qui utilise Google Analytique pour collecter les données d'utilisation. J'ai voulu montrer des données réelles dans l'application, donc on pouvait voir la quantité d'informations vous pouvez obtenir cet outil — et le potentiel correspondant.

Chaque nom est cliquable, donc vous pouvez découper les données et ana­lyze l'utilisation spécifique d'une page. Une des pièces plus importantes de l'information ici est le temps passé sur chaque page (ou, mieux, sur chaque vue). Après avoir cliqué sur un nom d'écran, vous pouvez ajouter une métrique montrant temps moyen sur l'écran pour le graphique, en cliquant sur Sélectionner une métrique de l'onglet Explorateur de solutions.

Un excellent outil Google fournit est le rapport de comportement Flow, illustré dans Figure 3. Grâce à l'API SendView, cet outil est disponible en sélectionnant le comportement dans l'onglet rapports sur le tableau de bord, et il vous permet d'analyser comment les utilisateurs se déplacent sur plusieurs pages de votre application depuis le début d'une session utilisateur. Le graphique se compose d'une séquence d'écrans (écran de première, deuxième écran et ainsi de suite) et indique le nombre de sessions d'utilisateurs qui se connectent et sortez. Pour la sortie de la session, vous pouvez voir la prochaine page consultée (triés par nombre de session) et du nombre d'utilisateurs qui quittent l'app depuis cette page (en rouge).

exemple de comportement débit rapport
Figure 3 exemple de comportement débit rapport

Cet outil vous permet de comprendre où les utilisateurs passent leur temps quand ils utilisent l'application, et vous pouvez éventuellement décider de faciliter l'accès aux pages populaires en fournissant un bouton plus grand, plus reconnaissable. Figure 3 montre que, dans mon application, les trois premiers écran suivant destinations à partir de la page d'accueil sont askcloud, de courir et de l'activité de détail. Ceci suggère c' est prob­habilement une bonne idée de donner un emplacement central et visible aux boutons sur la page d'accueil, ou de déplacer certaines des fonctionnalités aux utilisateurs de trouver sur ces pages à l'écran principal afin de réduire le temps et le nombre d'utilisateurs de robinets doit accomplir ces activités.

Vous aurez également besoin de savoir quelle version de votre application est utilisée, et ces informations proviennent des périphériques à l'aide de votre application. Lors de chaque appel, le SDK envoie la version application fournie dans analytics.xml, vous pouvez couper vos données et trouver la version utilisée. Données de version historique app sont disponibles sous public | Versions d'app dans le volet de gauche du tableau de bord. Figure 4 montre ce qui arrive généralement quand j'ai sortir une nouvelle version de mon application dans le magasin. Parce que le comportement par défaut sur Windows Phone 8.1 est automatiquement télécharger et installer la nouvelle version de l'application lorsqu'elle est disponible, dans les prochains jours plus de 90 % de la base de l'utilisateur migre vers la dernière version, (bien qu'une longue queue de moins de 10 pour cent des utilisateurs reste qui, pour une raison quelconque, ne peuvent ou ne veulent pas mettre à niveau).

données de la Version de l'App
Figure 4 données de la Version de l'App

Autres dimensions que vous recevez « gratuitement » avec suivi de navigation sont l'emplacement, langue, nom de l'unité (ce qui n'est pas 100 % exactes pour Windows Phone) et réseau de prestataire de services, tandis que du côté de mesures, vous pouvez trouver le nombre de sessions, les utilisateurs uniques et unique aux nouveaux utilisateurs.

Avec cette information, vous êtes en mesure de répondre aux questions telles que : Ce qui est le pays ou la ville la plus active ? Où ai j'ai eu les plus de nouveaux utilisateurs dans le dernier mois ? Avec cette nouvelle version, sont mes clientes en utilisant l'application plus ou moins ? Et dans ce contexte, la seule limite est votre imagination, car vous pouvez définir des événements personnalisés, des compteurs, des dimensions et des mesures.

Comment un utilisateur navigue d'un écran à l'autre est un bon point de départ pour comprendre comment votre application est utilisée, mais il y a beaucoup plus d'informations disponibles, plus liés au domaine spécifique de votre application. Ce type d'information peut être suivi comme un événement personnalisé, ce qui implique généralement un interaction utilisateur générique ou un renseignement qui est logique d'être propagé jusqu'à l'équipe de développeurs. Un événement est composé de quatre champs, que vous pouvez utiliser pour décrire l'interaction de l'utilisateur avec le contenu de votre application :

  • Catégorie de chaîne
  • Action de la chaîne
  • Label As String
  • Valeur de type long

Parce que tous les événements personnalisés vont dans une seule liste commune, la catégorie, l'action et zones d'étiquettes aident à identifier les informations spécifiques que vous souhaitez analyser.

Les informations collectées par ce biais soient très génériques, et c'est là la télémétrie devient un art. Pour donner un sens aux données, vous commencez avec la question que vous voulez répondre, ce qui conduit à la conception de télémétrie, qui mène à l'instrumentation dont vous avez besoin. Commençons donc avec une approche de l'exemple.

Question : Mon exemple d'application a plusieurs fonctions, déclenchées par des boutons sur les différentes pages de l'application. J'aimerais comprendre quelles fonctions servent plus, à concentrer mes efforts de développement dans la bonne direction.

Conception de télémétrie : Les principales fonctions de l'application sont déclenchées par des boutons, donc si j'ai suivi les clics sur ces boutons, je gagnerez probablement une meilleure connaissance des préférences de l'utilisateur. Mesure du succès de la télémétrie sera le nombre de clics que je reçois de chaque bouton.

Instrumentation : Je peux aller à l'événement click des boutons sélectionnés et suivre l'événement.

Le code suivant montre comment enregistrer qu'un utilisateur a cliqué sur les boutons « play » et « stop » :

private void buttonPlay_Click(object sender, RoutedEventArgs e)
{
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "ui_action", "press", "play", 0);
// Your code here
}
private void buttonStop_Click(object sender, RoutedEventArgs e)
{
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "ui_action", "press", "stop", 0);
// Your code here
}

Comme dans l'analyse de navigation utilisateur précédente, vous avez une table d'événements sous les deux groupes en temps réel et le comportement. Selon le type d'analyse que vous voulez faire, vous pouvez sélectionner la vue appropriée, historique ou en temps réel.

Événements sont indiqués pour une plage de temps spécifique (la valeur par défaut est d'un mois), donc vous pouvez voir le nombre d'événements regroupés par la catégorie supérieure, l'action et l'étiquette en elle. Vous pouvez descendre sur une catégorie spécifique et sur une action spécifique de l'événement et vous pouvez également modifier l'intervalle de dates pour l'analyse.

Pour une catégorie d'événements spécifiques, d'une action ou d'étiquette, vous pouvez trouver le nombre total d'événements, le nombre d'événements uniques, la somme de toutes les valeurs et la valeur moyenne correspondante.

Figure 5 présente une liste d'exemples d'événements, et Figure 6 montre la somme totale, unique et les valeurs moyennes pour le groupe Grp1.

Figure 5 exemple événements

Groupe Action Étiquette Valeur
Grp1 Presse Button1 1
Grp1 Presse Button1 2
Grp1 Presse Button1 2
Grp1 Presse Button2 3
Grp1 Robinet Label1 4

 

Figure 6 valeurs de résumé pour Grp1

Nombre total d'événements 5
Événements uniques 4
Valeur de l'événement 12
Valeur moyenne d'événement 2.4

Un exemple réel d'utilisation peut vous aider à mieux comprendre le potentiel de l'outil. Pour « Caledos Runner, » j'ai voulu comprendre combien l'app a été réellement utilisé pour le suivi des activités, et parce que je ne voulais pas forcer l'utilisateur à ouvrir un compte pour pouvoir utiliser l'application, j'ai utilisé des événements à suivre cette information.

Au démarrage de l'application, j'ai suivi un événement pour chaque utilisateur inscrit et un événement différent pour chaque utilisateur qui n'est pas enregistré, avec un code semblable au suivant :

if (!string.IsNullOrEmpty(currentUser.AccessToken))
{
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "user", "Cloud", "Registered", 1);
}
else
{
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "user", "Cloud", "Unregistered", 1);
}

J'ai découvert que 55 % des utilisateurs n'envoient leurs données vers le nuage, donc, afin d'obtenir un profil précis de mes utilisateurs, à la fin de chaque activité GPS l'application envoie un événement avec des informations sur la distance parcourue et un événement avec le temps total écoulé de l'activité, en utilisant le code semblable au suivant :

GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "activity", "outdoor", "time", (long)CurrentFitnessActivity.Duration);
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "activity", outdoor", "distance", (long)model.CurrentFitnessActivity.TotalDistance);

En conséquence, j'ai obtenu les données affichées à Figure 7 pour la première semaine de février 2015.

Exemple de événements personnalisés
Exemple de la figure 7 événements personnalisés

Ce que dit cette analyse est : Dans la première semaine de février, l'app a suivi avec succès des plus de 15 000 heures (54,000,000 secondes) et 51 000 kkm 32 000 mmiles. L'utilisateur moyen utilise l'application pour une activité d'environ 5 Km (3,1 milles), couvrant la distance en une heure et demie (5 400 secondes).

Bon à savoir, mais pas assez ! C'est juste une vue de l'utilisation moyenne, mais plus probablement, vous ne souhaitez pas savoir comment cette utilisation est vraiment distribuée. Il s'agit d'une application multisport, si vous ne souhaitez pas connaître le sport le plus populaire et savoir si cette popularité provient d'un petit nombre d'utilisateurs en utilisant l'application souvent ou beaucoup d'utilisateurs à l'utiliser, mais pour seulement un court laps de temps.

Il s'agit là les dimensions personnalisées Google Analytique et métriques peut vous aider. Mesures et dimensions personnalisées vous permettent d'apporter des données supplémentaires dans Google Analytique qui peut vous aider à répondre à des questions nouvelles sur comment les utilisateurs interagissent avec votre contenu. Une mesure est un nombre de type de données qui se résume à travers vos visites de Google Analytique. Une métrique correspond à une colonne dans un rapport. Dimensions vous permettent de briser une métrique par une valeur particulière, par exemple, écran vues par nom d'écran. Dimensions correspondent aux lignes dans un rapport (bit.ly/1lOry2r).

Il y a deux étapes principales pour mettre en œuvre une dimension personnalisée ou la métrique :

  • Définir la dimension personnalisée ou la métrique à l'aide de l'interface de Google Analytique Web (bit.ly/1Je9RJQ).
  • Implémentez le code pour définir et recueillir dimension personnalisée et valeurs métriques.

Chaque propriété de Google Analytique a 20 indices disponibles pour dimensions personnalisées et un autre 20 indices pour les paramètres personnalisés. Lorsqu'une dimension ou une métrique est créée, votre code peut faire référence à cette métrique ou dimension à l'aide de l'index correspondant.

Pour en revenir à ma question, pour comprendre la répartition de sport que j'ai créé une Dimension, Type d'activité, avec une étendue, frapper et utilisé le code suivant pour suivre ces informations sur la vue affichée par l'application lors d'une séance de remise en forme :

GoogleAnalytics.EasyTracker.GetTracker().SetCustomDimension(1, activityType);
GoogleAnalytics.EasyTracker.GetTracker().SendView("Running");

A / B Testing

A / B testing est un terme marketing utilise pour faire référence aux essais qui donne un aperçu du comportement des visiteurs, dans le but d'augmenter le taux de conversion. (D'après Wikipedia, le taux de conversion "est la proportion de visiteurs d'un site Web qui prennent des mesures pour aller au-delà d'un affichage de contenu occasionnel ou le site Web visite, à la suite de demandes subtiles ou directes des commerçants, annonceurs et créateurs de contenu.")

Dans le monde du développement app, une / B essais moyens essais deux versions différentes d'un élément (par exemple un bouton ou une page) en utilisant une métrique qui définit le succès d'un scénario plutôt qu'un autre.

Supposons que vous ayez deux conceptions d'une page, A et B. En général, A est la conception existante (le contrôle), et B est la nouvelle conception. Vous pouvez fractionner votre utilisateur base entre ces deux versions et mesure leur performance à l'aide d'une mesure qui fait sens pour votre application (peut-être en cliquant sur un bouton spécifique) pour trouver votre mesure du succès ou votre taux de conversion. À la fin du test, vous sélectionnez l'élément qui fonctionne mieux.

En d'autres termes, supposons que chaque dessin ou modèle est une page d'application différente avec son fichier XAML (page3v1.xaml et page3v2.xaml). Sur chaque page, vous avez votre cible — le bouton pour que l'utilisateur de cliquer, et vous pouvez utiliser l'événement click du bouton pour suivre un événement personnalisé qui reconnaît un succès clic du bouton. En tirant parti du motif MVVM, vous pouvez découpler la vue du modèle et le modèle d'affichage, donc vous pouvez facilement avoir deux fichiers XAML qui contiennent la même logique et les données.

Vous pouvez ensuite utiliser les code comme suit pour mettre les utilisateurs vers les pages pour tester, fractionnement de navigation uniformément entre les versions A et B de la page :

if (DateTime.Now.Second % 2 == 0)
  this.Frame.Navigate(typeof(Page3V1));
else
  this.Frame.Navigate(typeof(Page3V2));

Vous pouvez suivre le succès de la mise en page par le bouton clic à l'aide d'enregistrement :

GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "ABTest", "Scenario1", "pageV1", 0);

ou le bouton, cliquez sur la première page :

GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "ABTest", "Scenario1", "pageV2", 0);

et sur le clic du bouton même sur la deuxième page.

Le nombre total d'événements pour chaque étiquette (PageV1, PageV2) détermine la page plus de succès. À la fin de l'essai, seule cette page restera dans l'application, tandis que l'autre peut être enlevé.

Jaquette en haut

Dans le développement de l'application moderne, outils d'analyse et de télémétrie peuvent faire une réelle différence en termes de rapidité, vous pouvez identifier les comportements de l'utilisateur, ainsi que des problèmes d'application et leur résolution. Dans cet article, j'ai expliqué qu'un petit échantillon des scénarios qui peuvent être analysés. Le nombre et le type de ce genre de scénario est limité que par votre imagination et la curiosité.


Nicola Delfino est un gestionnaire de développement d'application dans la division italienne de Microsoft et l'auteur de "coureur de Caledos," une des plus réussies suivi de remise en forme applications pour Windows Phone, qui lui a donné la possibilité d'utiliser la télémétrie pour découvrir et analyser comment les gens utilisent son App. Vous pouvez le joindre au nicold@microsoft.com ou nicola@caledos.com.

Grâce à l'expert technique Microsoft suivant d'avoir relu cet article : Kraig Brockschmidt