Configurazione avanzata - SDK Android v2 (legacy)

Questo documento offre una panoramica di alcune delle funzionalità di configurazione avanzate dell'SDK 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 inserisce queste classi per fornire una gestione semplificata della configurazione e delle sessioni:

  • GoogleAnalytics: un singleton che gestisce lo stato globale della tua implementazione, incluso il recupero di oggetti Tracker.
  • Tracker: il corso con cui invii dati a Google Analytics.

Ad esempio, per misurare la visualizzazione di una 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");
  }
}

Uso di più tracker

A partire dalla versione 2 dell'SDK, puoi utilizzare più tracker in una singola implementazione, una per ogni ID monitoraggio univoco. Tutti i tracker condividono lo stesso stato globale detenuto dal 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 automatica fornite da EasyTracker utilizzeranno solo il tracker predefinito per effettuare le chiamate. Se stai utilizzando queste funzionalità EasyTracker e vuoi inviare dati utilizzando altri tracker, dovrai farlo manualmente.

Tracker predefinito

Anche se un'implementazione può utilizzare più tracker, a livello globale ha un tracker predefinito. I primi Tracker recuperati diventano il tracker predefinito.

Per ottenere 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 spedizione sono gestite da GAServiceManager singleton. 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 grande volume di dati a Google Analytics, l'attivazione del campionamento consentirà di garantire rapporti senza interruzioni.

Ad esempio, per attivare il campionamento lato client a una velocità 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 attivare un flag di disattivazione a livello di app che disattiverà Google Analytics nell'intera app. Una volta impostato, il flag rimarrà per l'intera durata dell'app o fino a quando non verrà reimpostato.

Per ottenere 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 fornisce una modalità di debug che stampa le informazioni utili sui dati che vengono inviati a Google Analytics nei log.

Per abilitare la modalità di debug utilizzando EasyTracker, aggiungi quanto segue al 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.