Traquer vos utilisateurs avec Google Analytics

Aujourd’hui, nous allons apprendre à traquer les utilisateurs de notre application. N’ayez crainte, nous n’allons pas jouer à la chasse à l’homme ou à la NSA. Nous allons simplement implémenter Google Analytics et enregistrer quelques événements.

Avant d’aller l’intégrer à notre application, il nous faut d’abord récupérer notre ID de suivi. Pour cela il faut aller sur Google Analytics

image3174

 

– Cliquez sur Admin puis sur Compte et Créer un compte.

image3191

 

– Remplissez les formulaires concernant le compte et cliquer sur Obtenir un ID de suivi


image3180

image3197

– Normalement maintenant vous aller obtenir votre code de suivi qui commence par UA-xxx…

image3214

 

Côté client

  1. Dans Android studio, créer un nouveau projet en allant dans File->New->New Project                                       
  2. Dans Application name mettez “GoogleAnalyticsexemple” et Company domaine “com.androidpourtous.googleanalyticsexemple”
  3. Dans votre fichier build.gradle, copier le code suivant et synchroniser
    compile 'com.google.android.gms:play-services-analytics:7.5.0'
  4. Dans le fichier res/strings.xml, copier la ressource suivante mais n’oubliez pas de la remplacer par l’id de suivi  que vous avez obtenu plus haut.
    <!-- Remplacer le par le votre -->
    <string name="id_google_analytics">UA-65162892-1</string>
  5. Copiez le code suivant dans votre AndroidManifest.xml et n’oubliez pas de rajouter android:name=".App" ( Merci à DJEMA 🙂 )
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.androidpourtous.googleanalyticsexemple" >
    
        <!-- Google Analytics required permissions -->
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
        <!-- Optional permission for reliable local dispatching on non-Google Play devices -->
        <uses-permission android:name="android.permission.WAKE_LOCK" />
    
        <application
            android:allowBackup="true"
            android:name=".App"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
    
            <!-- Add the following meta-data for devices running Google Play service. -->
            <meta-data
                android:name="com.google.android.gms.version"
                android:value="@integer/google_play_services_version" />
    
            <!-- Optionally, register AnalyticsReceiver and AnalyticsService to support background
           dispatching on non-Google Play devices -->
            <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver"
                android:enabled="true">
                <intent-filter>
                    <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
                </intent-filter>
            </receiver>
            <service android:name="com.google.android.gms.analytics.AnalyticsService"
                android:enabled="true"
                android:exported="false"/>
    
            <!-- Optionally, register CampaignTrackingReceiver and CampaignTrackingService to enable
                 installation campaign reporting -->
            <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
                android:exported="true">
                <intent-filter>
                    <action android:name="com.android.vending.INSTALL_REFERRER" />
                </intent-filter>
            </receiver>
            <service android:name="com.google.android.gms.analytics.CampaignTrackingService" />
    
            <activity
                android:name=".MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
  6. Créer un fichier activity_main.xml et copier cela
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
        android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Bouton 1"
            android:id="@+id/button"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="84dp" />
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Bouton 2"
            android:id="@+id/button2"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true" />
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Bouton 3"
            android:id="@+id/button3"
            android:layout_marginBottom="88dp"
            android:layout_alignParentBottom="true"
            android:layout_alignLeft="@+id/button2"
            android:layout_alignStart="@+id/button2" />
    </RelativeLayout>
  7. Dans votre package, créer une class App qui nous servira pour initialiser notre tracker
    package com.androidpourtous.googleanalyticsexemple;
    
    import android.app.Application;
    
    import com.google.android.gms.analytics.GoogleAnalytics;
    import com.google.android.gms.analytics.Tracker;
    
    /**
     * Created by Back Packer
     * Date : 15/07/15
     */
    public class App extends Application {
    
        public static GoogleAnalytics analytics;
        public static Tracker tracker;
    
        @Override
        public void onCreate() {
            super.onCreate();
    
            analytics = GoogleAnalytics.getInstance(this);
    
            tracker = analytics.newTracker(getString(R.string.id_google_analytics));
    
            // Cela permet de pouvoir récupérer les erreurs
            tracker.enableExceptionReporting(true);
    
            /**
             *  Pouvoir récupérer des données démographiques et leurs centre d'intêrets
             */
            tracker.enableAdvertisingIdCollection(true);
    
            tracker.enableAutoActivityTracking(true);
    
        }
    }
  8. Et pour finir créer une class MainActivity 
    package com.androidpourtous.googleanalyticsexemple;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    
    import com.google.android.gms.analytics.HitBuilders;
    
    public class MainActivity extends AppCompatActivity
        implements View.OnClickListener {
    
        Button button1, button2, button3;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            button1 = (Button) findViewById(R.id.button);
            button2 = (Button) findViewById(R.id.button2);
            button3 = (Button) findViewById(R.id.button3);
    
            button1.setOnClickListener(this);
            button2.setOnClickListener(this);
            button3.setOnClickListener(this);
    
            // Pour que nous sachions de quelle endroit viennent nos cliques
            App.tracker.setScreenName("Main Screen");
        }
    
        @Override
        public void onClick(View view) {
    
            switch (view.getId())
            {
                case R.id.button:
    
                    /**
                     * Ici nous envoyons un événement à Google Analytics comme quoi
                     *  il y a eu un clique.
                     *  Vous pouvez mettre ce que vous voulez comme paramètre, à vous de voir ce qui vous arrange
                     */
                    App.tracker.send(new HitBuilders.EventBuilder()
                            .setCategory("UX")
                            .setAction("Clique")
                            .setLabel("Bouton 1")
                            .build());
    
                    break;
    
                case R.id.button2:
    
                    App.tracker.send(new HitBuilders.EventBuilder()
                            .setCategory("UX")
                            .setAction("Clique")
                            .setLabel("Bouton 2")
                            .build());
    
                    break;
    
                case R.id.button3:
    
                    App.tracker.send(new HitBuilders.EventBuilder()
                            .setCategory("UX")
                            .setAction("Clique")
                            .setLabel("Bouton 3")
                            .build());
    
                    break;
            }
    
        }
    
    }

 

Voilà maintenant en lançant l’application et en cliquant sur les boutons, normalement cela s’affichera sur votre interface, pour y accéder vous aller ici et vous cliquer sur “Toutes les données de l’application mobile”

image3232

 

Et en allant par exemple sur la partie Temps réels, voici ce qu’on obtient comme informations intéressantes envoyer par nous

image3252

Conclusion:

Google Analytics est un outil indispensable pour toute application qui se respecte, cela vous permet de traquer les événements de votre app, ce que vous avons ici, ce ne sont que des miettes. N’hésitez pas approfondir cela en allant sur la doc.

CODE SOURCE SUR GITHUB

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *