Отправка

Этот документ посвящен отправке данных в Google Analytics с помощью SDK Google Analytics для Android версии 4.

Обзор

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

Данные должны быть отправлены и получены до 4:00 следующего дня по местному часовому поясу, установленному в представлении. Информация, поступившая позже, не будет занесена в отчеты. Например, если обращение было поставлено в очередь в 23:59, то оно должно быть доставлено в течение 4 часов, то есть до 4:00. Если же обращение было добавлено в очередь в полночь, то на его доставку у вас есть 28 часов (оно должно поступить до 3:59 следующего дня).

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

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

Вот как можно задать периодичность отправки программно:

// Set the dispatch period in seconds.
GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(30);

Задать периодичность отправки в 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>