Android: можно ли использовать Google Analytics внутри службы?

У меня есть приложение, которое большую часть времени работает в фоновом режиме, как Сервис. В Интернете много примеров и руководств по использованию API Google Analytics с библиотекой EasyTracker для отслеживания нескольких действий, но нет ни одного объяснения, как использовать API Google Analytics в службе. Возможно ли это?

Ответ 1

Хорошие новости! Ты можешь. и это довольно легко.

Вам понадобится контекст приложения, позвонив ему mCtx Когда у вас есть это, вам нужен экземпляр GoogleAnalytics, вы можете получить его, позвонив

GoogleAnalytics mGaInstance = GoogleAnalytics.getInstance(mCtx);

теперь вам нужно установить любые параметры, которые вы хотите (что вы бы нормально вложили в analytics.xml при использовании EasyTracker).

теперь вам нужен экземпляр Tracker:

Tracker mTracker = mGaInstance.getTracker("UA-XXXX-Y"); // your ID here

и что в основном это.. теперь вы можете отправлять события с помощью этого трекера

mTracker.sendEvent(....);

и т.д..

Надеюсь, это поможет. Это самые основы, но GoogleAnalytics и Tracker заменяют EasyTracker.

Подробнее об этом можно прочитать здесь: Расширенная настройка - Android SDK

Просто обратите внимание, что пока вы не увидите отчеты на веб-сайте GA, это может занять до 24 часов.. так что будьте терпеливы:) или используйте mGaInstance.setDebug(true), чтобы увидеть в logcat, что он был отправлен

Ответ 2

Я бы предложил не делать этого, если вы не уверены, что делаете.

Я реализовал события GA в своей службе, но это повредило многие мои статистические данные, такие как продолжительность сеанса, ежедневный процент новых сеансов, ежедневных сеансов и т.д. GA думает, что события вызваны после просмотра экрана, и поэтому он подталкивает событие GA с именем экрана " (не установлено)". Поскольку службы часто встречались в фоновом режиме, это приводило к развращению различных статистических данных. Отображение активных пользователей в режиме реального времени также пошло не так.