Voici une solution très simple pour ajouter Google Analytics à une application mobile Ionic / Cordova.

Installation du plugin Google Analytics

La première chose à faire est d’ajouter le plugin Cordova Google Analytics Plugin à votre application Ionic.

ionic plugin add https://github.com/danwilson/google-analytics-plugin.git

Il est ensuite nécessaire d’initialiser le plugin avec l’ID de suivi fourni par Google Analytics.

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    if(typeof analytics !== "undefined") {
        analytics.startTrackerWithId("UA-XXXXXXXX-X");
    } else {
        console.log("Google Analytics Unavailable");
    }
  });
})

Notez que le plugin Google Analytics ne fonctionnera qu’au sein d’un device ou de l’émulateur.

Le plugin de suivi étant initialisé, on peut désormais spécifier les pages à analyser.

Configuration du suivi sur Ionic

Analyser un écran

Pour analyser une vue, positionnez le code suivant au sein du contrôleur associé à la vue que vous souhaitez analyser.

if(typeof analytics !== "undefined") {
  analytics.trackView("Ecran : Accueil");
}

Analyser tous les écrans

Si vous avez un grand nombre d’écrans dans votre application, il peut être assez long de les analyser un par un.

Le code suivant permet donc d’analyser les changements d’états de l’application, et de les faire remonter à Google Analytics.

$rootScope.$on('$stateChangeSuccess', function(e, to) {
  if(typeof analytics !== "undefined" && to && to.name) {
    analytics.trackView("Ecran : "+to.name);
  }
});

Analyser un évènement

Il peut également être intéressant d’analyser des évènements. L’exemple suivant analyse un changement de catégorie lors d’un clic sur un bouton.

$scope.changeCategory = function(category) {
  if(typeof analytics !== "undefined") {
    analytics.trackEvent("Side Menu", "Changement de categorie", category);
  }
}

Autres analyses

Le plugin fourni un certain nombre de méthodes permettant de faire différentes analyses. Pour voir leur fonctionnement, reportez-vous à la documentation du plugin.