Проблема
Разработчики часто хотят отслеживать свои приложения с точки зрения функций, используемых пользователями. Как вы можете определить, какая функция больше всего используется пользователями вашего приложения?
Решение
Используйте Google Analytics для отслеживания приложения на основе определенных критериев, аналогично механизму отслеживания веб-сайта Google Analytics.
Обсуждение
Прежде чем мы используем Google Analytics в нашем приложении, нам нужна аналитическая учетная запись, которую вы можете получить бесплатно от компании Google, используя один из двух способов для запуска SDK Google Analytics.
Автоматизированный подход
Только в среде Android Studio можно выполнить шаги, чтобы получить SDK Google Analytics, указанный на странице, который включает в себя создание простого конфигурационного файла Google, содержащего вашу учетную запись Google Analytics. Затем добавьте две зависимости classpath
и дополнительный модуль Gradle в сценариях сборки Gradle. Этот дополнительный модуль прочитает загруженный файл конфигурации и применит информацию к вашему коду.
Практичный подход
Более практичный подход предполагает создание вашей учетной записи непосредственно на странице, а затем добавление двух зависимостей и предоставления аналитической учетной записи SDK. Двумя зависимостями являются com.google.gms:google-services:3.0.0
и com.google.android.gms:play-services-analytics:10.0.1
.
Теперь войдите в свою учетную запись Google Analytics и создайте профиль вебсайта для приложения. URL-адрес веб-сайта может быть фиктивным, но информативным. Я рекомендую использовать для этого обратное имя пакета. Например, если пакет приложения имеет имя com.example.analytics.test
, то URL-адрес веб-сайта для этого приложения может быть http://test.analytics.example.com. После создания профиля веб-сайта для него создается идентификатор веб-ресурса. Сохраните его в безопасном месте, поскольку мы будем использовать этот идентификатор в нашем приложении. Идентификатор, также известный как UA-номер отслеживания кода, однозначно идентифицирует профиль веб-сайта.
Общие этапы
Затем убедитесь, что у вас есть следующие разрешения в файле AndroidManifest.xml
вашего проекта:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Note
По юридическим и лицензионным причинам необходимо сообщить своим пользователям, что вы собираете анонимные пользовательские данные в своем приложении. Вы можете сделать это с помощью инструкции политики, в лицензионном соглашении с конечным пользователем или где-нибудь еще, где пользователи будут видеть эту информацию. Например, См. этот пример.
Теперь мы готовы отслеживать наше приложение. Получите одиночный экземпляр трекера, вызвав метод GoogleAnalytics.getlnstance().NewTracker()
. Обычно требуется отслеживать больше, чем просто активности в приложении. В таком сценарии неплохо иметь этот экземпляр механизма слежения в методе onCreate()
класса Application
(см. пример 1).
Пример 1. Реализация приложения для отслеживания
public class GADemoApp extends Application {
/*
* Define web property ID obtained after creating a profile for the app. If
* using the Gradle plugin, this should be available as R.xml.global_tracker.
*/
private String webId = "UA-NNNNNNNN-Y";
/* Analytics tracker instance */
Tracker tracker;
/* This is the getter for the tracker instance. This is called from
* within the Activity to get a reference to the tracker instance.
*/
public synchronized Tracker getTracker() {
if (tracker == null) {
// Get the singleton Analytics instance, get Tracker from it
GoogleAnalytics instance = GoogleAnalytics.getInstance(this);
// Start tracking the app with your web property ID
tracker = instance.newTracker(webId);
// Any app-specific Application setup code goes here...
}
return tracker;
}
}
Вы можете отслеживать представления страниц и события, связанные с экземпляром классе Activity
, вызывая методы setScreenName()
и send()
из экземпляра трекера (см. пример 2).
Пример 2. Класс MainActivity
со слежением
public class MainActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Слежение за представлением страницы активности
Tracker tracker =
((GADemoApp)getApplication()).getTracker();
tracker.setScreenName("MainActivity");
tracker.send(new HitBuilders.ScreenViewBuilder().build());
/* Можно следить за событиями вроде нажатия кнопки... */
findViewById(R.id.actionButton).setOnClickListener(v -> {
Tracker tracker =
((GADemoApp)getApplication()).getTracker();
tracker.send(new HitBuilders.EventBuilder(
"Action Event", "Button Clicked").build());
});
}
}
Используя этот механизм, вы можете отслеживать все активности и события внутри них. Затем вы можете посетить веб-сайт Google Analytics, чтобы узнать, сколько раз было выполнена каждая активность или создано другое событие.