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

В этом документе описывается, как управлять отправкой данных в Google Analytics с помощью Google Analytics SDK v4 для Android.

Обзор

Данные, собранные с помощью Google Analytics SDK v4 для Android, хранятся локально, а затем отправляются в отдельный поток в Google Analytics.

Данные должны быть отправлены и получены до 4 часов утра следующего дня в местном часовом поясе каждого представления. Любые данные, полученные позже этого срока, не появятся в отчетах. Например, если обращение поставлено в очередь локально в 23:59, оно должно быть отправлено в течение 4 часов, до 3:59, чтобы оно появилось в отчетах. С другой стороны, чтобы обращение появилось в отчетах, обращение, поставленное в очередь в 12:00, должно быть отправлено в течение 28 часов, т. е. в 3:59 утра следующего дня.

Периодическая отправка

По умолчанию данные отправляются из Google Analytics SDK 4 для Android каждые 30 минут.

Чтобы установить период отправки программно:

// Set the dispatch period to 90 seconds.
GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(90);

Чтобы установить период отправки в файле конфигурации XML:

<integer name="ga_dispatchPeriod">30</integer>

Установка нулевого или отрицательного значения отключит периодическую отправку, и вам придется использовать отправку вручную, если вы хотите отправлять какие-либо данные в Google Analytics.

// Disable periodic dispatch by setting dispatch period to a value less than 1.
GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(0);

Если пользователь теряет доступ к сети или выходит из вашего приложения, когда еще есть обращения, ожидающие отправки, эти обращения сохраняются в локальном хранилище. Они будут отправлены при следующем запуске вашего приложения и вызове отправки.

Ручная диспетчеризация

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

GoogleAnalytics.getInstance(this).dispatchLocalHits();

Фоновая диспетчеризация

Чтобы включить фоновую диспетчеризацию для приложений, работающих на устройствах, отличных от Google Play, в файле конфигурации ApplicationManifest.xml :

  • Получите разрешение WAKE_LOCK .
  • Зарегистрируйте AnalyticsReceiver .
  • Зарегистрируйте AnalyticsService .

Например:

<manifest>
  <!-- ... -->

  <!-- Get permission for reliable local dispatching on non-Google Play devices. -->
  <uses-permission android:name="android.permission.WAKE_LOCK" />

  <application name="com.example.MyApp">
    <!-- Register AnalyticsReceiver and AnalyticsService to support background
         dispatching on non-Google Play devices. -->
    <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver"
      android:enabled="true">
      <intent-filter>
        <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
      </intent-filter>
    </receiver>
    <service android:name="com.google.android.gms.analytics.AnalyticsService"
      android:enabled="true"
      android:exported="false"/>

    <!-- ... -->
  </application>
</manifest>