В этом документе описывается, как управлять отправкой данных в 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>