Configuration avancée – SDK Android v2 (ancien)

Ce document présente certaines des fonctionnalités de configuration avancées du SDK Google Analytics pour Android v2.

Présentation

Le SDK Google Analytics pour Android utilise deux classes pour gérer l'état global de l'implémentation et envoyer les données aux serveurs Google Analytics. EasyTracker encapsule ces classes pour simplifier la configuration et la gestion des sessions:

  • GoogleAnalytics : singleton qui gère l'état global de votre implémentation, y compris l'obtention d'objets Tracker.
  • Tracker : classe avec laquelle vous envoyez des données à Google Analytics.

Par exemple, pour mesurer la vue d'un Activity simple:

import android.app.Activity

import com.google.analytics.tracking.android.GoogleAnalytics
import com.google.analytics.tracking.android.Tracker

/**
 * A simple Activity that sends a screen view to Google Analytics
 * when it is displayed to the user.
 */
public class HomeScreen extends Activity {

  private Tracker mGaTracker;
  private GoogleAnalytics mGaInstance;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Get the GoogleAnalytics singleton. Note that the SDK uses
    // the application context to avoid leaking the current context.
    mGaInstance = GoogleAnalytics.getInstance(this);

    // Use the GoogleAnalytics singleton to get a Tracker.
    mGaTracker = mGaInstance.getTracker("UA-XXXX-Y"); // Placeholder tracking ID.
    ... // The rest of your onCreate() code.
  }

  @Override
  public void onStart() {
    super.onStart();

    // Send a screen view when the Activity is displayed to the user.
    mGaTracker.sendView("/HomeScreen");
  }
}

Utiliser plusieurs coachs électroniques

À partir de la version 2 du SDK, vous pouvez utiliser plusieurs outils de suivi dans une seule implémentation, à raison d'un par ID de suivi unique. Tous les traceurs partagent le même état mondial détenu par votre singleton GoogleAnalytics.

Dans l'exemple suivant, un visionnage d'écran est envoyé à deux propriétés distinctes à l'aide de deux outils de suivi, chacun avec son propre ID de propriété:

import android.app.Activity

import com.google.analytics.tracking.android.GoogleAnalytics
import com.google.analytics.tracking.android.Tracker

/**
 * A simple Activity that sends a screen view to Google Analytics
 * when it is displayed to the user.
 */
public class HomeScreen extends Activity {

  private GoogleAnalytics mGaInstance;
  private Tracker mGaTracker1;
  private Tracker mGaTracker2;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Get the GoogleAnalytics singleton.
    mGaInstance = GoogleAnalytics.getInstance(this);

    // Use the GoogleAnalytics singleton to get two Trackers with
    // unique property IDs.
    mGaTracker1 = mGaInstance.getTracker("UA-XXXX-Y");
    mGaTracker2 = mGaInstance.getTracker("UA-XXXX-Z");

    ... // The rest of your onCreate() code.
  }

  @Override
  public void onStart() {
    super.onStart();

    // Send a screen view to "UA-XXXX-Y" the Activity is displayed to the user.
    mGaTracker1.sendView("/HomeScreen");

    // Send another screen view to the second property, "UA-XXXX-Z".
    mGaTracker2.sendView("/Home");
  }
}

N'oubliez pas que les fonctionnalités de mesure automatisées fournies par EasyTracker n'utilisent que l'outil de suivi par défaut pour effectuer leurs appels. Si vous utilisez ces fonctionnalités EasyTracker et que vous souhaitez envoyer des données à l'aide d'autres outils de suivi, vous devez le faire manuellement.

Coach électronique par défaut

Bien qu'une implémentation puisse utiliser plusieurs outils de suivi, elle possède un outil de suivi par défaut à l'échelle mondiale. Le premier Tracker récupéré devient le suivi par défaut.

Pour obtenir le coach électronique par défaut, utilisez:

// Get singleton.
GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this);

// Get default tracker.
Tracker myDefault = myInstance.getDefaultTracker();

Pour définir le coach électronique par défaut, utilisez:

// First get a tracker using a new property ID.
Tracker newTracker = myInstance.getTracker("UA-XXXX-2");

// Then make newTracker the default tracker globally.
myInstance.setDefaultTracker(newTracker);

Distribution

Les paramètres de distribution sont gérés par le singleton GAServiceManager. Pour définir la période d'envoi:

// Set dispatch period to 30 seconds.
GAServiceManager.getInstance().setDispatchPeriod(30);

Pour expédier manuellement des messages en dehors de l'intervalle planifié:

// Manually dispatch any queued hits.
GAServiceManager.getInstance().dispatch();

Échantillonnage

Vous pouvez activer l'échantillonnage côté client pour limiter le nombre d'appels envoyés à Google Analytics. Si votre application compte un grand nombre d'utilisateurs ou envoie un grand volume de données à Google Analytics, l'activation de l'échantillonnage vous permettra de générer des rapports sans interruption.

Par exemple, pour activer l'échantillonnage côté client à un taux de 50% via EasyTracker et XML, utilisez le paramètre suivant dans votre fichier analytics.xml:

<string name="ga_sampleFrequency">50.0</string>

Vous pouvez également activer l'échantillonnage côté client de manière programmatique:

// Get tracker from singleton.
GoogleAnalytics gaInstance = GoogleAnalytics.getInstance(this);
Tracker tracker = gaInstance.getTracker("UA-XXXX-Y"); // Placeholder property ID.

// Set a sample rate of 50%.
tracker.setSampleRate(50.0d);

Désactivation au niveau de l'application

Vous pouvez activer un indicateur de désactivation au niveau de l'application, qui désactivera Google Analytics pour l'ensemble de l'application. Une fois défini, l'indicateur continuera de s'appliquer pendant toute la durée de vie de l'application ou jusqu'à sa réinitialisation.

Pour obtenir le paramètre de désactivation au niveau d'une application, utilisez:

// Get singleton.
GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this);

// Get the app opt out preference using an AppOptOutCallback.
myInstance.requestAppOptOut(new AppOptOutCallback() {
   @Override
   public void reportAppOptOut(boolean optOut) {
     if (optOut) {
     ... // Alert the user that they've opted out.
     }
   });
}

Pour définir l'indicateur de désactivation au niveau de l'application, utilisez:

myInstance.setAppOptOut(appPreferences.userOptOut);

Tester et déboguer

Le SDK Google Analytics pour Android fournit un mode de débogage qui affiche des informations utiles sur les données envoyées à Google Analytics dans vos journaux.

Pour activer le mode débogage à l'aide d'EasyTracker, ajoutez les éléments suivants à votre fichier de ressources analytics.xml:

<bool name="ga_debug">true</bool>

Pour activer le mode débogage par programmation, utilisez:

// Get singleton using application context.
GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this);

// Enable debug mode.
myInstance.setDebug(true);

La sortie sera imprimée dans logcat à l'aide du tag GAV2.