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 pantallas con nombre. Si aún no tienes una aplicación y solo quieres ver cómo funciona Analytics, revisa 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 a app/build.gradle la siguiente dependencia de los Servicios de Google Play:

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

Cómo crear 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.

Agregar seguimiento de pantalla

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

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

Aplicación

Debes subclasificar Application y proporcionar un método auxiliar 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 realizar el seguimiento de una Fragment, pero asegúrate de que represente correctamente una vista de pantalla.

Anula el método onCreate del 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 cambie 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 vistas de pantalla para tu app en Analytics. Toda la actividad registrada en el rastreador 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, establece los valores de campo 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