В этом документе описывается, как управлять отправкой данных в Google Analytics с помощью Google Analytics SDK для Android v2.
Обзор
В Google Analytics SDK для Android собранные данные, такие как просмотры экрана или события, хранятся локально в очереди перед отправкой на серверы Google Analytics. Процесс отправки этих фрагментов данных (называемых здесь «обращениями») из SDK в Google Analytics называется диспетчеризацией.
Диспетчеризация уникальна для мобильных библиотек коллекций и предназначена для решения проблем, связанных с ненадежным доступом к сети и ограниченным временем автономной работы.
Существует два типа отправки:
- Периодическая отправка — автоматически отправляет обращения через повторяющийся интервал, который вы указываете либо программно, либо в файле
analytics.xml
. - Ручная отправка — вручную отправляйте обращения для отправки данных, когда вам это удобно, например, при наличии существующего HTTP-соединения.
Оба типа отправки происходят из основного потока пользовательского интерфейса во второй версии SDK.
В оставшейся части этого документа будет более подробно рассмотрен каждый тип отправки и способы их реализации в вашем приложении.
Периодическая отправка
Когда ваше приложение собирает данные Google Analytics, эти данные добавляются в очередь и периодически отправляются в Google Analytics. Периодическая отправка может происходить либо когда ваше приложение работает на переднем плане, либо в фоновом режиме.
Период отправки по умолчанию составляет 30 минут. Вы можете указать свой собственный интервал в секундах, используя параметр ga_dispatchPeriod
в analytics.xml
или вызвав setDispatchPeriod(int dispatchPeriodInSeconds)
как в этом примере:
В файле analytics.xml
:
<integer name="ga_dispatchPeriod">60</integer>
Программно:
GAServiceManager.getInstance().setDispatchPeriod(60);
Установка отрицательного значения отключит периодическую отправку, и вам придется использовать отправку вручную, если вы хотите отправлять какие-либо данные в Google Analytics. С другой стороны, установка значения 0
будет отправлять каждое обращение немедленно, если доступно сетевое соединение.
После того как все обращения будут отправлены, периодическая отправка перейдет в режим энергосбережения и будет отключена до тех пор, пока не будет выполнен следующий вызов отправки.
Если пользователь теряет доступ к сети или выходит из вашего приложения, когда еще есть обращения, ожидающие отправки, эти обращения сохраняются в локальном хранилище. Они будут отправлены при следующем запуске вашего приложения и вызове отправки.
Ручная отправка
Помимо периодической отправки, могут быть случаи, когда вам захочется отправлять обращения вручную. Например, вы можете объединить свои отправки с другими HTTP-запросами, выполняемыми вашим приложением, чтобы уменьшить накладные расходы.
Обращения можно отправлять вручную с помощью экземпляра GAServiceManager
:
GAServiceManager.getInstance().dispatch();