несоответствие количества сеансов в GA и Flurry analytics в приложении для Android

#android #google-analytics #analytics #flurry

#Android #google-analytics #аналитика #flurry

Вопрос:

Я разрабатываю приложение, в котором есть 10 действий. Я интегрирую Google и Flurry analytics в свое приложение. Для GA я поддерживаю глобальный объект отслеживания, который запускается в activity запуска и останавливается при закрытии приложения. Для Flurry я запускаю сеанс в onCreate каждого действия и останавливаю сеанс в onStop каждого действия.

Теперь, когда я использую свое приложение много раз, и когда я просматриваю статистику как в GA, так и во Flurry профилях, я вижу, что GA показывает слишком высокое количество посещений, тогда как Flurry показывает очень низкое количество посещений.

Я предполагаю, что Flurry не запускает новый сеанс, если сеанс остановлен приложением, и мы перезапускаем приложение в течение 10 секунд. Это причина такой разницы между подсчетами или, возможно, что-то не так с кодом.

Ответ №1:

Прежде всего, каков режим запуска вашего приложения? http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

Если вы разрешаете несколько экземпляров, то возможно, что пользователи могут запускать одно и то же действие запуска несколько раз в течение одного сеанса, что Google может рассматривать как дополнительные сеансы.

Во-вторых, вызов onStop () не гарантируется. onPause на самом деле является последним состоянием, которое гарантированно произойдет: http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle Это, вероятно, не имеет к этому никакого отношения, потому что подсчет сеансов выполняется вне открытого вызова, но в любом случае это интересно отметить.

Интересным тестом было бы запустить событие «приложение запущено» как во Flurry, так и в GA при первом запуске приложения. Тогда у вас будет точка данных, которая намного менее размыта, чем сеансы, чтобы сравнить их и посмотреть, какая из них является избыточной, а какая — нет.

Комментарии:

1. Спасибо, Генри, я установил режим запуска всех действий на «singleTask». Таким образом, в стеке в любое время будет только одно действие. Я написал код так, что всякий раз, когда пользователь нажимает на кнопку возврата устройства, текущее действие будет завершено, и, таким образом, приложение также будет завершено. При нажатии кнопки возврата устройства я останавливаю объект отслеживания. Есть мысли?

2. Я отслеживаю событие при запуске приложения. Когда я сравниваю это количество событий за определенный день, я вижу, что Google Analytics показывает счетчик, просто удвоенный по сравнению со счетчиком Flurry для этого события. Пожалуйста, помогите мне выяснить, что я делаю неправильно или есть разница между работой Flurry и Google Analytics.

3. Я отслеживаю событие при запуске приложения. Когда я сравниваю это количество событий за определенный день, я вижу, что Google Analytics показывает счетчик, просто удвоенный по сравнению со счетчиком Flurry для этого события. Пожалуйста, помогите мне выяснить, что я делаю неправильно или есть разница между работой Flurry и Google Analytics.

Ответ №2:

Переместите свои onStartSession вызовы Flurry в onStart .

onCreate вызывается только один раз, тогда как каждый раз, когда действие выходит на передний план, оно выполняется onStart . Flurry обрабатывает действия аналогично стеку. onStartSession помещает действие в стек и onEndSession отключает его. Когда по истечении определенного времени ожидания таковых не остается, SDK эффективно завершает сеанс.

После выполнения ваших onStartSession вызовов onCreate вы получаете действительный сеанс с созданием каждого действия, но если вы когда-либо вернетесь к этому действию, ваш сеанс завершится. Переход onStartSession на onStart исправляет это.