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



Устанавливаем связь с Google Play

  1. Открываем Google Analytics и, на вкладке «Администратор», создаём новый ресурс для приложения. При желании, можно использовать и какой-нибудь из уже существующих ресурсов, но тогда данные будут вперемешку. В каких-то ситуациях это может быть нужным, так что это возможно
  2. Выбираем наш новосозданный ресурс и выбираем пункт «Все продукты»
  3. Ищем в списке раздел «Google Play» и жмём кнопку «Установить связь с Google Play»
  4. Если приложение уже было опубликовано, то просто выберите его из списка и нажмите кнопки «Продолжить» и «Установить связь»


Подключаем Google Analytics в приложение

  1. Импортируем пакеты и создаём объекты для класса аналитики и трэкера
  2. В методе onCreate главной активити инициализируем объекты. При создании Трэкера укажите код отслеживания, назначенный ресурсу. Здесь же можно провести начальную настройку сервисов аналитики, например, если задать название экрана для трэкера, то все последующие события будут приписываться именно этому экрану. Вполне логичным будет задавать различные имена экранов для различных экранов приложения. В моём случае отслеживается только события на главном экране, поэтому я сразу его и задал. Этого кода достаточно, чтобы отслеживать запуски и продолжительность работы приложения.
  3. Объект Tracker позволяет получить практически любую информацию о действиях пользователя (в пределах приложения), но для этого придётся потрудиться. Добавим функцию, отправляющую сообщение о различных событиях. Это реализация интерфейса IGoogleAnalytics, который я придумал для личных нужд. Разумеется, он может быть любым или не быть вообще, важна только реализация этого метода. Т.к. tracker объявлен в главном активити, а посылать сообщения хочется откуда попало, то лучше предусмотреть для этого какой-нибудь интерфейс, типа моего.

    Как понятно из названий объектов, тут создаётся и отсылается какое-то событие. Например, событием может быть клик по элементам интерфейса. Для событий указывается название категории, к которой оно относится, название действия и метка. Так же есть не обязательный числовой параметр, который сейчас мне не понадобился. Как интерпретировать эти три термина? Думаю, строгой нотации тут нет. Смотрите по ситуации. Например, у меня в главном меню есть всего три кнопки для выбора сложности игры и мне интересно, какую сложность предпочитают игроки. Я не стал думать над названием категории и назвал её «UX», как и написано в документации, User eXperience меня вполне устроило. Действие я назвал «New game», т.к. меня интересует не просто клик, а именно запуск новой игры. Более того, событие отправляется не по клику, а именно при создании нового уровня. В качестве метки указал выбранную сложность. Т.е. вызов метода выглядит так:
    sendAnalyticsEvent(«UX», «New Game», «Rookie»);
  4. Публикуем приложение и нервно ждём результатов.


Анализ результатов

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

Скажем честно — не густо. Но так бывает, когда игры пишутся «For Fun» и с нулевым бюджетом. И не надо надо мной хихикать!
С течением времени станет доступна полная статистика. По ней уже можно анализировать, что именно и как часто делают пользователи. Глядя на таблицу становится гораздо понятнее, что такое категория, действие и метка(ярлык):

Повесив события на все важные (и не важные) элементы интерфейса, становится возможным проводить A/B тестирование или же просто получать информацию о том, каким функционалом пользователи пренебрегают, а какой наиболее востребован. В случае с игрой, можно сделать события для каких-то игровых действий, достижений и рекордов. Я получаю эту информацию из сервиса Play Games, поэтому не стал дублировать её в аналитике, но, проявив фантазию, можно получить ещё очень много полезной информации. А проявив ещё больше фантазии, можно придумать, как эту информацию интерпретировать, чтобы улучшить свои программы и игры.
По очевидной причине названия приложений замазаны и ссылки отсутствуют.
Спасибо за внимание.

Комментарии (0)