Расширенная конфигурация — Android SDK v2 (устаревшая версия)

В этом документе представлен обзор некоторых расширенных функций настройки Google Analytics SDK для Android v2.

Обзор

Google Analytics SDK для Android использует два класса для управления глобальным состоянием реализации и отправки данных на серверы Google Analytics. EasyTracker объединяет эти классы для упрощения настройки и управления сеансами:

  • GoogleAnalytics — синглтон, который обрабатывает глобальное состояние вашей реализации, включая получение объектов Tracker .
  • Tracker – класс, с помощью которого вы отправляете данные в Google Analytics.

Например, чтобы измерить просмотр простого Activity :

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

Использование нескольких трекеров

Начиная со второй версии SDK, вы можете использовать несколько трекеров в одной реализации, по одному на каждый уникальный идентификатор отслеживания. Все трекеры имеют одно и то же глобальное состояние, хранящееся в вашем синглтоне GoogleAnalytics .

В следующем примере вид экрана отправляется на два отдельных ресурса с помощью двух трекеров, каждый из которых имеет свой уникальный идентификатор свойства:

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

Имейте в виду, что функции автоматического измерения, предоставляемые EasyTracker, для совершения вызовов будут использовать только трекер по умолчанию . Если вы используете эти функции EasyTracker и хотите отправлять данные с помощью других трекеров, вам придется сделать это вручную.

Трекер по умолчанию

Хотя реализация может использовать несколько трекеров, глобально у нее есть один трекер по умолчанию. Первый полученный Tracker становится трекером по умолчанию.

Чтобы получить трекер по умолчанию, используйте:

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

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

Чтобы установить трекер по умолчанию, используйте:

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

Диспетчеризация

Настройки отправки управляются синглтоном GAServiceManager . Чтобы установить период отправки:

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

Чтобы вручную отправить сообщение за пределы запланированного интервала:

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

Выборка

Вы можете включить выборку на стороне клиента, чтобы ограничить количество обращений, отправляемых в Google Analytics. Если ваше приложение имеет большое количество пользователей или иным образом отправляет большой объем данных в Google Analytics, включение выборки поможет обеспечить бесперебойную отчетность.

Например, чтобы включить выборку на стороне клиента с частотой 50 % с помощью EasyTracker и XML, используйте следующий параметр в файле Analytics.xml:

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

Вы также можете включить выборку на стороне клиента программно:

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

Отказ на уровне приложения

Вы можете включить флаг отказа на уровне приложения, который отключит Google Analytics во всем приложении. После установки флаг будет сохраняться на протяжении всего срока службы приложения или до тех пор, пока он не будет сброшен.

Чтобы получить настройку отказа на уровне приложения, используйте:

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

Чтобы установить флаг отказа на уровне приложения, используйте:

myInstance.setAppOptOut(appPreferences.userOptOut);

Тестирование и отладка

Google Analytics SDK для Android предоставляет режим отладки, который выводит в ваши журналы полезную информацию о том, какие данные отправляются в Google Analytics.

Чтобы включить режим отладки с помощью EasyTracker, добавьте следующее в файл ресурсов analytics.xml :

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

Чтобы включить режим отладки программно, используйте:

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

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

Вывод будет выведен в logcat с использованием тега GAV2 .