Configuración avanzada: SDK de Android v2 (heredado)

En este documento, se proporciona una vista previa de algunas de las funciones de configuración avanzadas del SDK de Google Analytics para Android v2.

Descripción general

El SDK de Google Analytics para Android usa dos clases para administrar el estado global de la implementación y enviar datos a los servidores de Google Analytics. EasyTracker une estas clases para proporcionar una configuración y administración de sesiones simplificadas:

  • GoogleAnalytics: Es un singleton que controla el estado global de tu implementación, incluida la obtención de objetos Tracker.
  • Tracker: Es la clase con la que envías datos a Google Analytics.

Por ejemplo, para medir una vista de un Activity simple, haz lo siguiente:

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");
  }
}

Uso de varios monitores

A partir de la versión 2 del SDK, puedes usar varios rastreadores en una sola implementación, uno por ID de seguimiento único. Todos los rastreadores comparten el mismo estado global que mantiene tu singleton GoogleAnalytics.

En el siguiente ejemplo, se envía una vista de pantalla a dos propiedades independientes mediante dos segmentos, cada uno con su propio ID de propiedad único:

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");
  }
}

Ten en cuenta que las funciones de medición automatizada que proporciona EasyTracker solo usarán la herramienta de seguimiento predeterminada para realizar sus llamadas. Si usas estas funciones de EasyTracker y deseas enviar datos con otros rastreadores, deberás hacerlo de forma manual.

Monitor predeterminado

Si bien una implementación puede usar varios segmentos, a nivel global tiene uno predeterminado. El primer objeto Tracker recuperado se convierte en el rastreador predeterminado.

Para obtener el dispositivo de rastreo predeterminado, usa lo siguiente:

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

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

Para establecer el dispositivo de seguimiento predeterminado, usa lo siguiente:

// 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);

Despacho

La configuración de despacho se administra mediante el singleton GAServiceManager. Para configurar el período de envío, sigue estos pasos:

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

Para realizar el envío manual fuera del intervalo programado, haz lo siguiente:

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

Muestreo

Puedes habilitar el muestreo del cliente para limitar la cantidad de hits que se envían a Google Analytics. Si tu app tiene una gran cantidad de usuarios o envía un gran volumen de datos a Google Analytics, habilitar el muestreo ayudará a garantizar informes sin interrupciones.

Por ejemplo, para habilitar el muestreo del cliente a una tasa del 50% a través de EasyTracker y XML, usa el siguiente parámetro en tu archivo analytics.xml:

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

También puedes habilitar el muestreo del cliente de manera programática:

// 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);

Inhabilitar a nivel de la app

Puedes habilitar una marca de inhabilitación a nivel de la app que inhabilitará Google Analytics en toda la app. Una vez configurada, la marca persistirá durante el ciclo de vida de la app o hasta que se restablezca.

Para obtener la configuración de inhabilitación a nivel de la app, usa lo siguiente:

// 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.
     }
   });
}

Para establecer la marca de inhabilitación a nivel de la app, usa lo siguiente:

myInstance.setAppOptOut(appPreferences.userOptOut);

Pruebas y depuración

El SDK de Google Analytics para Android proporciona un modo de depuración que imprimirá información útil sobre los datos que se envían a Google Analytics en tus registros.

Para habilitar el modo de depuración con EasyTracker, agrega lo siguiente a tu archivo de recursos analytics.xml:

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

Para habilitar el modo de depuración de manera programática, usa lo siguiente:

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

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

El resultado se imprimirá en logcat con la etiqueta GAV2.