Как добавить Google Analytics в свое приложение

Из этой статьи вы узнаете, как добавить Google Analytics в приложение 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>

Плагин сервисов Google для Gradle извлекает сведения о настройке из файла google-services.json. Добавьте плагин в свой проект, обновив build.gradle на верхнем уровне и файлы build.gradle на уровне приложения следующим образом:

  1. Добавьте зависимость в файл build.gradle на уровне проекта:
    classpath 'com.google.gms:google-services:3.0.0'
  2. Добавьте плагин в файл build.gradle на уровне приложения:
    apply plugin: 'com.google.gms.google-services'

Теперь вам нужно добавить зависимость для сервисов Google Play. Разместите в файле build.gradle для приложения следующий код:

compile 'com.google.android.gms:play-services-analytics:10.0.1'

Скачайте файл конфигурации

Нажмите на кнопку ниже, чтобы получить файл конфигурации для проекта.

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

Скачать файл конфигурации

Добавьте в проект файл конфигурации

Скопируйте скачанный файл google-services.json в каталог app/ или mobile/ проекта Android Studio. Откройте панель терминала Android Studio, выполнив действия, описанные ниже.

Mac/Linux
$ mv path-to-download/google-services.json app/
Windows
$ move path-to-download/google-services.json app/

Добавьте отслеживание экранов

На этом этапе вы отправляете именованный просмотр экрана в Google Analytics, когда пользователь открывает или переключает экран в приложении. Код должен выполнять следующие действия:

  • обеспечивать общедоступный счетчик в подклассе 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 Analytics. Все действия, зарегистрированные общедоступным счетчиком, отправляют самое новое название экрана, пока оно не будет изменено или удалено (заменено на null).

Отправьте событие

Задайте значения поля экрана в счетчике, а затем отправьте обращение. В примере ниже для отправки события Event используется HitBuilders.EventBuilder.

mTracker.send(new HitBuilders.EventBuilder()
    .setCategory("Action")
    .setAction("Share")
    .build());

Дополнительная информация