Из этой статьи вы узнаете, как добавить Google Аналитику в приложение Android, чтобы отслеживать действия пользователей на определенных экранах. Если у вас его нет, воспользуйтесь нашим тестовым приложением.
Что вам потребуется: последние версии Android Studio и сервисов Google Play.
Настройте проект
Добавьте в файл AndroidManifest.xml
разрешения INTERNET
и ACCESS_NETWORK_STATE
:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.analytics"> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <application android:name="AnalyticsApplication"> ... </application> </manifest>
Добавьте в файл build.gradle
зависимость на уровне проекта:
dependencies { // ... classpath 'com.google.gms:google-services:3.0.0' }
Добавьте в файл app/build.gradle
следующую зависимость для сервисов Google Play:
dependencies { // ... compile 'com.google.android.gms:play-services-analytics:10.2.4' }
Создайте файл global_tracker.xml
Создайте файл app/src/res/xml/global_tracker.xml
со следующим содержимым:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="ga_trackingId" translatable="false">${YOUR_TRACKING_ID}</string> </resources>
Замените ${YOUR_TRACKING_ID}
своим идентификатором отслеживания.
Добавьте отслеживание экранов
На этом этапе вы отправляете именованный просмотр экрана в Google Аналитику, когда пользователь открывает или переключает экран в приложении. Код должен выполнять следующие действия:
- обеспечивать общедоступный счетчик в подклассе Application;
- переопределять метод обратного вызова для работы в приоритетном режиме;
- указывать название экрана и выполнять отслеживание.
Приложение
Вам необходимо создать подкласс Application
и использовать вспомогательный метод, который будет возвращать счетчик для приложения.
/* * Copyright Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.google.samples.quickstart.analytics; import android.app.Application; import com.google.android.gms.analytics.GoogleAnalytics; import com.google.android.gms.analytics.Tracker; /** * This is a subclass of {@link Application} used to provide shared objects for this app, such as * the {@link Tracker}. */ public class AnalyticsApplication extends Application { private static GoogleAnalytics sAnalytics; private static Tracker sTracker; @Override public void onCreate() { super.onCreate(); sAnalytics = GoogleAnalytics.getInstance(this); } /** * Gets the default {@link Tracker} for this {@link Application}. * @return tracker */ synchronized public Tracker getDefaultTracker() { // To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG if (sTracker == null) { sTracker = sAnalytics.newTracker(R.xml.global_tracker); } return sTracker; } }
Activity или Fragment
Откройте действие (элемент Activity), которое вы хотите отслеживать.
Вы также можете отслеживать Fragment
, если в нем представлен просмотр экрана.
Переопределите метод onCreate
для элемента Activity
или Fragment
, который вы хотите отслеживать, чтобы получить общий экземпляр Tracker
.
// Obtain the shared Tracker instance. AnalyticsApplication application = (AnalyticsApplication) getApplication(); mTracker = application.getDefaultTracker();
Переопределите соответствующий метод, например onResume
для Activity
или onPageSelected
для ViewPager
, чтобы переключения экрана регистрировались.
Log.i(TAG, "Setting screen name: " + name); mTracker.setScreenName("Image~" + name); mTracker.send(new HitBuilders.ScreenViewBuilder().build());
Добавьте код отслеживания для каждого элемента Activity
или Fragment
, который представляет собой экран.
Дайте элементам Activity
и Fragment
имена, чтобы отличать сведения о разных экранах в Google Аналитике. Все действия, зарегистрированные общедоступным счетчиком, отправляют самое новое название экрана, пока оно не будет изменено или удалено (заменено на null
).
Отправьте событие
Задайте значения поля экрана в счетчике, а затем отправьте обращение.
В примере ниже для отправки события используется HitBuilders.EventBuilder
Event
.
mTracker.send(new HitBuilders.EventBuilder() .setCategory("Action") .setAction("Share") .build());
Статьи по теме
- Подробнее о том, как использовать Google Аналитику для анализа действий пользователей, читайте в руководстве по внедрению для мобильных приложений.
- Ознакомьтесь с дополнительными параметрами конфигурации, такими как образцы, тестирование и отладка, а также настройки отключения и т. д.
- Если приложение должно собирать рекламные идентификаторы, включите в нем функции для рекламодателей.