Из этой статьи вы узнаете, как управлять отправкой данных в Google Analytics при помощи Google Analytics SDK версии 4 для Android.
Обзор
Данные, собранные с помощью 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 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>