Не так давно был анонсирован новый SDK Google Analytics (далее GA) под мобильные платформы под версией 2. Сейчас он находится в состоянии бета-версии. Но любой может попросить Google дать доступ к инструментарию.
Мы в своём проекте уже попробовали новую версию, адаптированную под мобильные приложения. И я спешу поделиться впечатлениями и рассказать об использовании SDK на примере приложения под Android.
Три варианта развития событий:
Делаем всё тоже, что и в предыдущем пункте, кроме первого шага.
Всё, тот же ключ, что вы использовали ранее подойдет и сейчас.
Теперь полученный ключ смело можно вставить в наше приложение.
Добавляем библиотеку libGoogleAnalyticsV2.jar в папку libs вашего проекта
Создаём пустой xml-файл в res/values/analytics.xml
ga_appVersion — можно удалить, если версия указана в манифесте. Но у меня приложение для разных маркетов, и чтобы отслеживать активности пользователей разных маркетов я переопределяю версии как 1.1 Play и 1.1 Samsung
ga_reportUncaughtExceptions — в принципе, для трекинга ошибок в проекте используется BugSense, но можно отслеживать их и в аналитике
ga_debug — включим, чтобы прочитать в логе правильно ли заработала аналитика после настроек
ga_autoActivityTracking — почему-то без этого трекинг активити не работал, несмотря на то, что в проекте они трекаются принудительно
Теперь настроим наши активити.
Для удобства всех их унаследуем от TrackingActivity. В нем напишем следующий код:
в res/values/bools.xml для удобства есть поле отключающее аналитику, например, при отладке
Вот и всё — это минимальный набор настроек. Ну и конечно в Manifest.xml должно быть разрешение:
Также возможно понадобится исследовать пользовательские предпочтения. Можно отследить любые события, для этого достаточно выполнить:
где catogory, action и label — строки, описывающие событие. Например, вызовем
И у нас создастся событие категории Clicks, с именем действия MainActivityClicks и лейблом onSaveCarLocationClick.
Для отслеживания времени использования приложением и времени выполнения каких-то операций можно вызвать
где category, name и label — строки, а loadTime — время в миллисекундах
Для получения loadTime перед началом операции вызываем System.getCurrentTimeInMillis и после выполнения вызываем еще раз. Разность этих значений и передаем в качестве loadTime.
Если у вас большая интернет или иная PR-компания, и вы хотите знать источники, с которых пользователи переходят на Google Play страницу вашего приложения — вы можете отслеживать это, передавая не прямой линк на Google Play, а специально сгенерированные на сайте аналитики в самом низу. Тут же кстати можно почитать подробнее о реализации этого отслеживания. Оно требует настройки специального BroadcastReceiver для взаимодействия с Google Play.
Самое вкусное начинается, когда приложение попадает в руки пользователей. Теперь у нас есть статистика, и мы можем посмотреть её в аналитике.
Заходим на страницу аналитики. И переходим в профиль.
Первым делом посмотрим в реальном времени на то, кто пользуется приложением именно сейчас.
Переходим на вкладку Home -> Realtime -> Overview
Здесь особый интерес представляет число пользователей и названия экранов, которые у них открыты.
Теперь зайдем во вкладку Standart Reporting -> App Overview, в ней приведены сводные данные многих из данных, собираемых analytics.
Выберем Standart Reporting -> Acquisitions -> New users
Здесь отлично видна статистика по новым пользователям за выбранный вверху справа период. Можно увидеть, сколько пользователей, каких версий и из каких стран впервые запустили приложение.
Вкладка Standart Reporting -> Users -> Overview
Кнопка слева над графиком позволяет отображать различные метрики. Как то: открытые экраны, сессии использования приложения, пользователи. Все это отображается на графике по дням.
Откроем Standart Reporting -> Users -> Devices and Network -> Devices
Здесь отображена статистика по устройствам, на которых пользователи запускали приложение.
В Standart Reporting -> Engagement -> Events представлены данные, которые помогают понять нам, какие именно экраны популярны у пользователей и сколько времени на них пользователи проводят.
Если в приложении ведется отслеживание пользовательских действий, то их статистику можно посмотреть во вкладке Standart Reporting -> Engagement -> Events
Здесь можно увидеть количество всех пользовательских действий с делением по категориям, таким, которые мы задали в коде.
Ну а на графике отлично видно, как часто события происходили в разные дни.
Безусловно, это лишь поверхностный обзор возможностей Google Analytics. Жду комментариев от опытных аналитиков, с советами по использованию этого мощного инструмента.
Мы в своём проекте уже попробовали новую версию, адаптированную под мобильные приложения. И я спешу поделиться впечатлениями и рассказать об использовании SDK на примере приложения под Android.
Настройка аккаунта
Три варианта развития событий:
Нет ни аккаунта GA, ни аккаунта с трекингом приложения
- Первым делом создаем новый аккаунт в GA www.google.com/analytics/web/#management/Accounts, предварительно зарегистрировавшись (это просто, я описывать с вашего позволения всё по шагам не буду).
- Жмем вверху над таблицей "+ New Account".
- Заполняем все поля, жмем «get tracking id».
- И вот заветный ключ перед нами.
Есть аккаунт GA, но нет аккаунта с трекингом приложения
Делаем всё тоже, что и в предыдущем пункте, кроме первого шага.
Есть аккаунт GA, и с него уже ведется трекинг приложения
- Справа на верхней оранжевой полоске жмем «Admin».
- Выбираем вкладку «Profiles».
- Нажимаем кнопку «New Profile».
- Выбираем «App», даем имя.
Всё, тот же ключ, что вы использовали ранее подойдет и сейчас.
Теперь полученный ключ смело можно вставить в наше приложение.
Первичная настройка в приложении
Добавляем библиотеку libGoogleAnalyticsV2.jar в папку libs вашего проекта
Создаём пустой xml-файл в res/values/analytics.xml
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<string name="ga_trackingId">ваш ключ вида UA-111111-1</string>
<string name="ga_appVersion">1.1.0 Google Play</string>
<bool name="ga_reportUncaughtExceptions">true</bool>
<bool name="ga_debug">true</bool>
<bool name="ga_autoActivityTracking">true</bool>
</resources>
ga_appVersion — можно удалить, если версия указана в манифесте. Но у меня приложение для разных маркетов, и чтобы отслеживать активности пользователей разных маркетов я переопределяю версии как 1.1 Play и 1.1 Samsung
ga_reportUncaughtExceptions — в принципе, для трекинга ошибок в проекте используется BugSense, но можно отслеживать их и в аналитике
ga_debug — включим, чтобы прочитать в логе правильно ли заработала аналитика после настроек
ga_autoActivityTracking — почему-то без этого трекинг активити не работал, несмотря на то, что в проекте они трекаются принудительно
Теперь настроим наши активити.
Для удобства всех их унаследуем от TrackingActivity. В нем напишем следующий код:
public class TrackedActivity extends Activity{
protected void onCreate(Bundle savedInstanceState, String tag) {
super.onCreate(savedInstanceState);
EasyTracker.getInstance().setContext(this);
//если в наследниках в onCreate мы не будем обращаться к EasyTracker, то можно строчку закомментировать
}
@Override
protected void onStart() {
if(getResources().getBoolean(R.bool.analytics_enabled)) {
EasyTracker.getInstance().activityStart(this);
}
super.onStart();
}
@Override
protected void onStop() {
super.onStop();
EasyTracker.getInstance().activityStop(this);
}
}
в res/values/bools.xml для удобства есть поле отключающее аналитику, например, при отладке
Вот и всё — это минимальный набор настроек. Ну и конечно в Manifest.xml должно быть разрешение:
<uses-permission android:name="android.permission.INTERNET" />
Расширенная настройка в приложении
Также возможно понадобится исследовать пользовательские предпочтения. Можно отследить любые события, для этого достаточно выполнить:
EasyTracker.getTracker().trackEvent(category, action, label, null);
где catogory, action и label — строки, описывающие событие. Например, вызовем
trackEvent("Clicks", "MainActivityClicks", "onSaveCarLocationClick", null);
И у нас создастся событие категории Clicks, с именем действия MainActivityClicks и лейблом onSaveCarLocationClick.
Для отслеживания времени использования приложением и времени выполнения каких-то операций можно вызвать
EasyTracker.getTracker().trackTiming(category, loadTime, name, label);
где category, name и label — строки, а loadTime — время в миллисекундах
Для получения loadTime перед началом операции вызываем System.getCurrentTimeInMillis и после выполнения вызываем еще раз. Разность этих значений и передаем в качестве loadTime.
Если у вас большая интернет или иная PR-компания, и вы хотите знать источники, с которых пользователи переходят на Google Play страницу вашего приложения — вы можете отслеживать это, передавая не прямой линк на Google Play, а специально сгенерированные на сайте аналитики в самом низу. Тут же кстати можно почитать подробнее о реализации этого отслеживания. Оно требует настройки специального BroadcastReceiver для взаимодействия с Google Play.
Наслаждение результатами
Самое вкусное начинается, когда приложение попадает в руки пользователей. Теперь у нас есть статистика, и мы можем посмотреть её в аналитике.
Заходим на страницу аналитики. И переходим в профиль.
Первым делом посмотрим в реальном времени на то, кто пользуется приложением именно сейчас.
Переходим на вкладку Home -> Realtime -> Overview
Здесь особый интерес представляет число пользователей и названия экранов, которые у них открыты.
Теперь зайдем во вкладку Standart Reporting -> App Overview, в ней приведены сводные данные многих из данных, собираемых analytics.
Выберем Standart Reporting -> Acquisitions -> New users
Здесь отлично видна статистика по новым пользователям за выбранный вверху справа период. Можно увидеть, сколько пользователей, каких версий и из каких стран впервые запустили приложение.
Вкладка Standart Reporting -> Users -> Overview
Кнопка слева над графиком позволяет отображать различные метрики. Как то: открытые экраны, сессии использования приложения, пользователи. Все это отображается на графике по дням.
Откроем Standart Reporting -> Users -> Devices and Network -> Devices
Здесь отображена статистика по устройствам, на которых пользователи запускали приложение.
В Standart Reporting -> Engagement -> Events представлены данные, которые помогают понять нам, какие именно экраны популярны у пользователей и сколько времени на них пользователи проводят.
Если в приложении ведется отслеживание пользовательских действий, то их статистику можно посмотреть во вкладке Standart Reporting -> Engagement -> Events
Здесь можно увидеть количество всех пользовательских действий с делением по категориям, таким, которые мы задали в коде.
Ну а на графике отлично видно, как часто события происходили в разные дни.
Безусловно, это лишь поверхностный обзор возможностей Google Analytics. Жду комментариев от опытных аналитиков, с советами по использованию этого мощного инструмента.