Agrega Analytics a tu app para Android

En esta guía, se muestra cómo agregar Analytics a tu app para Android a fin de medir la actividad del usuario en las pantallas con nombre. Si aún no tienes una aplicación y solo quieres ver cómo funciona Analytics, consulta nuestra aplicación de ejemplo.

Obligatorio: Las versiones más recientes de lo siguiente:

Configura tu proyecto

Actualiza el archivo AndroidManifest.xml de tu proyecto para incluir los permisos INTERNET y 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>

Agrega la siguiente dependencia a tu build.gradle a nivel de proyecto:

dependencies {
  // ...
  classpath 'com.google.gms:google-services:3.0.0'
}

Agrega la siguiente dependencia de los Servicios de Google Play a app/build.gradle:

dependencies {
  // ...
  compile 'com.google.android.gms:play-services-analytics:10.2.4'
}

Crea global_tracker.xml

Crea el archivo app/src/res/xml/global_tracker.xml con el siguiente contenido:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="ga_trackingId" translatable="false">${YOUR_TRACKING_ID}</string>
</resources>

Reemplaza ${YOUR_TRACKING_ID} por tu ID de seguimiento.

Agrega seguimiento de pantalla

Aquí, enviarás una vista de pantalla con nombre a Analytics cada vez que el usuario abra o cambie pantallas en tu app. Tu código debe hacer lo siguiente:

  • Proporciona el seguimiento compartido a través de una subclase Application.
  • Anula el método de devolución de llamada para la actividad en primer plano.
  • Proporciona un nombre para la pantalla y ejecuta el seguimiento.

Application

Debes crear la subclase Application y proporcionar un método de ayuda que muestre el rastreador de tu aplicación.</>

/*
 * 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;
  }
}

Actividad o fragmento

Abre la actividad de la que deseas hacer un seguimiento. También puedes hacer el seguimiento de un Fragment, pero asegúrate de que represente correctamente una vista de pantalla.

Anula el método onCreate de Activity o Fragment de los que deseas realizar un seguimiento para obtener la instancia Tracker compartida:

// Obtain the shared Tracker instance.
AnalyticsApplication application = (AnalyticsApplication) getApplication();
mTracker = application.getDefaultTracker();

Anula el método apropiado, como onResume para un Activity o onPageSelected para un ViewPager para registrar cuando cambia la pantalla.

Log.i(TAG, "Setting screen name: " + name);
mTracker.setScreenName("Image~" + name);
mTracker.send(new HitBuilders.ScreenViewBuilder().build());

Agrega el código de seguimiento a cada Activity o Fragment que represente una pantalla. Asegúrate de establecer un nombre dentro de cada Activity o Fragment si deseas diferenciar entre las vistas de pantalla de tu app en Analytics. Toda la actividad registrada en el monitor compartido envía el nombre de pantalla más reciente hasta que se reemplaza o se borra (se establece en null).

Envía un evento

Para enviar un evento, configura los valores de los campos de la pantalla en el rastreador y, luego, envía el hit. En el siguiente ejemplo, se usa HitBuilders.EventBuilder para enviar un Event:

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

Próximos pasos