Configurazione avanzata - SDK per Android v2 (legacy)

Questo documento fornisce una panoramica di alcune delle funzionalità di configurazione avanzate dell'SDK di Google Analytics per Android v2.

Panoramica

L'SDK Google Analytics per Android utilizza due classi per gestire lo stato globale dell'implementazione e l'invio dei dati ai server di Google Analytics. EasyTracker aggrega questi corsi per fornire configurazione e gestione delle sessioni semplificate:

  • GoogleAnalytics: un singleton che gestisce lo stato globale dell'implementazione, incluso il recupero di Tracker oggetti.
  • Tracker: il corso con cui vengono inviati i dati a Google Analytics.

Ad esempio, per misurare la visualizzazione di un elemento Activity semplice:

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

Utilizzo di più tracker

A partire dalla versione 2 dell'SDK, puoi utilizzare più tracker in un'unica implementazione, uno per ID di monitoraggio univoco. Tutti i tracker condividono lo stesso stato globale di cui è titolare il tuo singleton GoogleAnalytics.

Nell'esempio seguente, una visualizzazione di schermata viene inviata a due proprietà separate utilizzando due tracker, ciascuno con il proprio ID proprietà univoco:

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

Tieni presente che le funzionalità di misurazione automatiche offerte da EasyTracker utilizzeranno solo il tracker predefinito per effettuare le chiamate. Se stai utilizzando queste funzioni di EasyTracker e desideri inviare i dati utilizzando altri tracker, dovrai inviare i dati manualmente.

Tracker predefinito

Sebbene un'implementazione possa utilizzare più tracker, a livello globale ha un solo tracker predefinito. Il primo Tracker recuperato diventa il tracker predefinito.

Per scegliere il tracker predefinito, utilizza:

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

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

Per impostare il tracker predefinito, utilizza:

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

Invio

Le impostazioni di invio sono gestite dal singleton GAServiceManager. Per impostare il periodo di spedizione:

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

Per inviare manualmente al di fuori dell'intervallo pianificato:

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

Campionamento

Puoi attivare il campionamento lato client per limitare il numero di hit inviati a Google Analytics. Se la tua app ha un numero elevato di utenti o invia un elevato volume di dati a Google Analytics, l'attivazione del campionamento aiuta a garantire report senza interruzioni.

Ad esempio, per abilitare il campionamento lato client a una percentuale del 50% tramite EasyTracker e XML, utilizza il seguente parametro nel file analytics.xml:

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

Puoi anche attivare il campionamento lato client in modo programmatico:

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

Disattivazione a livello di app

Puoi abilitare un flag di disattivazione a livello di app che disattiverà Google Analytics nell'intera app. Una volta impostato, il flag viene mantenuto per tutta la durata dell'app o fino a quando non viene reimpostato.

Per attivare l'impostazione di disattivazione a livello di app, utilizza:

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

Per impostare il flag di disattivazione a livello di app, utilizza:

myInstance.setAppOptOut(appPreferences.userOptOut);

Test e debug

L'SDK Google Analytics per Android mette a disposizione una modalità di debug che consente di stampare informazioni utili sui dati inviati a Google Analytics nei log.

Per attivare la modalità di debug utilizzando EasyTracker, aggiungi quanto segue al tuo file di risorse analytics.xml:

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

Per attivare la modalità di debug in modo programmatico, utilizza:

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

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

L'output verrà stampato su logcat utilizzando il tag GAV2.