Configuração avançada – SDK do Android v2 (legado)

Este documento contém uma visão geral de alguns dos recursos de configuração avançada do SDK do Google Analytics para Android v2.

Visão geral

O SDK do Google Analytics para Android usa duas classes para gerenciar o estado global da implementação e enviar dados aos servidores do Google Analytics. O EasyTracker une essas classes para fornecer configuração simplificada e gerenciamento de sessão:

  • GoogleAnalytics: um singleton que processa o estado global da sua implementação, incluindo a obtenção de objetos Tracker.
  • Tracker: a classe com que você envia dados para o Google Analytics.

Por exemplo, para medir a visualização de uma Activity simples:

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 vários rastreadores

A partir da versão 2 do SDK, você pode usar vários rastreadores em uma única implementação, um por ID de acompanhamento exclusivo. Todos os rastreadores compartilham o mesmo estado global de seu singleton GoogleAnalytics.

No exemplo a seguir, uma exibição de tela é enviada para duas propriedades separadas usando dois rastreadores, cada um com seu próprio ID exclusivo:

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

Lembre-se de que os recursos de medição automatizada fornecidos pelo EasyTracker só vão usar o rastreador padrão para fazer as chamadas. Se você usa esses recursos do EasyTracker e quer enviar dados com outros rastreadores, precisa fazer isso manualmente.

Rastreador padrão

Embora uma implementação possa usar vários rastreadores, ela tem globalmente um rastreador padrão. O primeiro Tracker recuperado se torna o rastreador padrão.

Para obter o rastreador padrão, use:

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

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

Para definir o rastreador padrão, use:

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

Envios

As configurações de envio são gerenciadas pelo Singleton GAServiceManager. Para definir o período de envio:

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

Para enviar manualmente fora do intervalo programado, faça o seguinte:

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

Amostragem

Você pode ativar a amostragem do cliente para limitar o número de hits enviados ao Google Analytics. Se seu aplicativo tem um número grande de usuários ou envia um grande volume de dados ao Google Analytics, ativar a amostragem ajuda a garantir relatórios ininterruptos.

Por exemplo, para ativar a amostragem do lado do cliente a uma taxa de 50% por meio do EasyTracker e do XML, use o parâmetro a seguir no arquivo analytics.xml:

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

Também é possível ativar a amostragem do lado do cliente de maneira 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);

Desativação no nível do aplicativo

Você pode ativar uma sinalização de desativação no nível do aplicativo que desativará o Google Analytics em todo o aplicativo. Depois de definida, a sinalização permanecerá durante a vida útil do aplicativo ou até ser redefinida.

Para acessar a configuração de desativação no nível do aplicativo, use:

// 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 definir a flag de desativação no nível do app, use:

myInstance.setAppOptOut(appPreferences.userOptOut);

Como testar e depurar

O SDK do Google Analytics para Android oferece um modo de depuração que imprime informações úteis sobre quais dados estão sendo enviados ao Google Analytics nos seus registros.

Para ativar o modo de depuração usando o EasyTracker, adicione o seguinte ao seu arquivo de recursos analytics.xml:

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

Para ativar o modo de depuração de maneira programática, use:

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

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

A saída será mostrada no logcat usando a tag GAV2.