понедельник, 4 июля 2011 г.

Сбор статистики в приложении на Android

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

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

Самый простой путь - воспользоваться готовой системой сбора аналитической информации. Таких систем сейчас более чем достаточно (1, 2). Например:У каждой системы есть свои изюминки: real-time обновление статистики (Localitics), суперточность с отслеживанием уникальных ID каждого пользователя (Bango), наличие средств для проведения опроса пользователей (Apsalar), наличие средств для регулярной отправки уведомлений пользователям (BuzzBox) и т.д. Естественно, есть и море отличий: в интерфейсе, в средствах анализа, в наличии дополнительных API, в стоимости, в наборе поддерживаемых платформ и т.п.

Принцип работы у всех систем примерно одинаков. Регистрируемся на сайте системы, получаем SDK и уникальный ключ. В приложение подключаем стороннюю библиотеку (единственный jar-файл из SDK). Добавляем код вызова функций, регистрирующих события в приложении. Релизим приложение. Ждем некоторое время, пока пользователи поработают в программе. Заходим на сайт системы и смотрим разнообразные аналитические отчеты.

Вот, например, как ведется сбор данных в Apsalar:
import com.apsalar.sdk.Apsalar;

public void onCreate(Bundle savedInstanceState) {
...
Apsalar.startSession(this, "myapikey", "mypassword");
..
}

/** уровень level пройден за countSeconds */
public void onLevelPassed(int level, int countSeconds) {
...
  Apsalar.event("passed", "level", level, "duration", countSeconds);
...
}
API, как видите, тривиальное, так что технически добавить код для фиксации событий в приложении совсем не сложно. Количество событий и количество атрибутов у каждого события не ограничено, поэтому детализация собираемой информации может быть весьма высокой.

Конечно, подобные системы сбора информации - это, прежде всего, инструмент аналитика, желающего увеличить доход от продажи приложения. И накапливаемая статистика событий в приложении - всего лишь первичный материал для анализа. Тот же Apsalar позволяет, например, проводить Funnel Analysis, Engagment Analysis, Trending Analysis, Path Analysis, Event Analysis, Operational Analysis.

Взять к примеру Funnel Analysis (воронку продаж). Если в вашем приложении пользователь должен сделать несколько шагов к совершению покупки (последовательно открыть несколько страниц, нажать несколько кнопок), то Funnel Analysis позволит увидеть, сколько пользователей (и каких именно) отсеивается на каждом шаге. Любопытно, что существуют системы монетизации, активно использующие подобную информацию.

Резюме. Готовых систем сбора аналитической информации для Android приложений сейчас множество, выбор широк. Многие из них бесплатные и, одновременно, обладают достойным функционалом. Подключаются подобные системы тривиально, весят "копейки" (10-30 kb), а пользу разработчику могут принести немалую. Единственное но: не у всех пользователей неограниченный трафик. Так что пользователи должны иметь возможность сбор статистики отключать.

Update: Полезная статья на хабре Flurry Analytics. Как держать руку на пульсе приложения

Блог компании Apsalar.
Еще пара сервисов: Appoxee, AppFiguers. По поводу Appoxee см. так же how to create post app download engagement.

2 комментария:

  1. Доброго времени суток.
    Меня занимает вопрос в области сбора статистики и datamining'а, кратко изложенный в этом бложике (http://statmining.org/hypothesis/). Хочется узнать мнения по ряду вопросов:
    1. Нужно/не нужно.
    2. Есть ли продукты решающие подобные задачи (альтернативы).
    3. Тема не достаточно раскрыта.

    ОтветитьУдалить
  2. Есть еще BugSense, для фри-проектов дают премиум.

    ОтветитьУдалить