Pull to refresh

Flurry Analytics. Как держать руку на пульсе приложения

Reading time 3 min
Views 39K
Около года назад, после первого знакомства с Flurry у меня прямо вырвалось — она же рвет Google Analytics как Тузик грелку тряпку какую-то материю. И обещался написать об этом повесть. Еще до знакомства с Flurry, для своего первого приложения пришлось использовать именно гугловую аналитику, стабильную но в бета-версии. С того момента все повзрослели но я так и остался с Flurry. Пост о том, какой от нее прок и как ее готовить. А готовить ее как два пальца яйца о сковородку.

Что пульсирует

Flurry позволяет отслеживать различные аспекты работы мобильного приложения на пользовательских девайсах. Подобно взрослым Google Analytics или Яндекс.Метрика для сайтов.










Можно выбрать регион и посмотреть более детальную статистику по странам.


Все исключения, которые привели к краху приложения.

И вот все эти данные становятся доступны сразу после минимальной модификации приложения. Для анализа можно выбрать какую-то версию и, само собой, диапазон дат. Статистика используемых версий приложения также очень нагладна.



Смешать но не взбалтывать

Перво-наперво нужно зарегистрироваться и создать профиль приложения. И только под это конкретное приложение будет возможность скачать jar-файл библиотеки. Видимо, библиотека генерируется с учетом выданного там же ключика приложения. Дальше, как обычно, добавляем этот jar-ник к списку используемых библиотек проекта. Осталось разобраться только с правкой манифеста и кодом.

В AndroidManifest.xml потребуется добавить строчку
<uses-permission android:name="android.permission.INTERNET"/>

В этом случае географическая статистика будет доступна только на уровне стран. Если нужна более детальная информация то придется попросить еще пару разрешений. Но это уже не очень гуманно по отношению к пользователю.
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Осталось только добавить пару строчек в код. Это будут точки отсчета начала и окончания сессии. Рекомендуется их поставить в onStart и onStop каждой активити. Переход между активити не будет засчитан как новая сессия. И вообще, если между сессиями меньше 10 секунд, то это считается как одна сессия.
public void onStart()
{
   super.onStart();
   FlurryAgent.onStartSession(this"Your unique application key");
   // your code
}
 
public void onStop()
{
   super.onStop();
   FlurryAgent.onEndSession(this);
   // your code
}

Этой скромной подготовки будет достаточно, чтобы наблюдать данные, приведенные выше на скриншотах.

Citius, Altius, Fortius!

Flurry имеет еще один сладкий кусочек — отслеживание предопределенных событий на уровне приложения. Как часто происходит синхронизация? Какого типа заметки наиболее популярные? Был ли коннект к серверу во время сессии? Подобные события можно отслеживать с помощью функции
FlurryAgent.logEvent(String eventId, Map<String, String> parameters)


Результат может выглядеть как-то так

Здесь видно только один параметр app события Activates supported pc apps и распределение всех переданных значений. Если параметров будет передано несколько, то его можно будет выбрать в выпадающем списке слева.


Как часто это событие возникает во время сессии.

Пройдемте к коду. Он очень простой. Это хелпер прямо из приложения, который “кормит” пару графиков выше.
public static void trackSupportedApp(String appName) {
        if (appName == null || appName.length() == 0) return;
 
        Map<String, String> map = new HashMap<String, String>();
        map.put("app", appName);
        FlurryAgent.logEvent("Activates supported pc apps", map);
    }


За бортом повести оказались возможности ручного отслеживания ошибок, использования HTTPS и onPageView(), детализация сессии по имени пользователя, его возрасту и полу. На странице загрузки SDK о всем этом можно почитать более подробно. Я же это пока не использую.

Сервис полностью бесплатный. В качестве подопытного кролика котэ выступал совсем еще маленький piCat.
Tags:
Hubs:
+31
Comments 8
Comments Comments 8

Articles