SDK de Google Analytics para Android v1 (heredado)

El SDK de Google Analytics para aplicaciones para dispositivos móviles Android facilita la implementación de Google Analytics en aplicaciones basadas en Android. En este documento, se describe cómo integrar el SDK en tus apps.

Descripción general del SDK

Este SDK usa un modelo de seguimiento diseñado para realizar un seguimiento de los usuarios en los sitios web tradicionales y la interacción con los widgets en las páginas web tradicionales. Por este motivo, los términos que se usan a continuación reflejan el modelo de seguimiento de sitios web convencionales y se asignan al seguimiento de aplicaciones para dispositivos móviles. Debes estar familiarizado con el seguimiento de Analytics para comprender cómo funciona este SDK.

Usa el SDK de seguimiento de dispositivos móviles para realizar un seguimiento de las aplicaciones para teléfonos con los siguientes tipos de interacción de Analytics:

Seguimiento de vistas de página
Una página vista es un medio estándar para medir el volumen de tráfico en un sitio web tradicional. Debido a que las aplicaciones para dispositivos móviles no contienen páginas HTML, debes decidir cuándo (y con qué frecuencia) activar una solicitud de vista de página. Además, como las solicitudes de vistas de página están diseñadas para informar sobre estructuras de directorios, debes proporcionar nombres descriptivos a fin de que las solicitudes aprovechen el nombre de ruta de página en los informes de contenido en Analytics. Los nombres que elijas se propagarán en tus informes de Analytics como rutas de acceso de páginas aunque no sean páginas HTML, pero puedes aprovecharlas si las estructuras para proporcionar agrupaciones adicionales en tus llamadas.
Seguimiento de eventos
En Analytics, los eventos están diseñados para hacer un seguimiento de la interacción del usuario con los elementos de las páginas web, de manera diferente a las solicitudes de páginas vistas. Puedes usar la función de seguimiento de eventos de Google Analytics para realizar llamadas adicionales que se informarán en la sección Seguimiento de eventos de la interfaz del informe de Analytics. Los eventos se agrupan mediante categorías y también pueden usar etiquetas por evento, lo que proporciona flexibilidad en la generación de informes. Por ejemplo, una app multimedia podría tener acciones de reproducir/detener/pausar en su categoría video y asignar una etiqueta a cada nombre de video. Luego, en los informes de Google Analytics, se agregaban eventos de todos los eventos etiquetados con la categoría video. Para obtener más información sobre el seguimiento de eventos, consulta la Guía de seguimiento de eventos
Seguimiento de comercio electrónico
Usa la función de seguimiento de comercio electrónico para hacer un seguimiento de las transacciones del carrito de compras y las compras directas desde la aplicación. Para realizar un seguimiento de una transacción, usa la clase Transaction a fin de representar la información de compra general y la clase Item a fin de representar cada producto en el carrito de compras. Una vez recopilados, los datos se pueden ver en la sección de informes de comercio electrónico de la interfaz de Google Analytics. Para obtener más información sobre el seguimiento de comercio electrónico, consulte la Guía de seguimiento de comercio electrónico.
Variables personalizadas
Las variables personalizadas son etiquetas de par nombre-valor que puedes insertar en tu código de seguimiento para definir mejor el seguimiento de Google Analytics. Para obtener más información sobre cómo usar variables personalizadas, consulta la Guía sobre variables personalizadas.

Cómo comenzar

Requisitos

Para integrar las capacidades de seguimiento de Google Analytics con tu aplicación de Android, necesitarás lo siguiente:

Crear

  • Agrega libGoogleAnalytics.jar al directorio /libs de tu proyecto.
  • Agrega los siguientes permisos al archivo de manifiesto AndroidManifest.xml de tu proyecto:
    • <uses-permission android:name="android.permission.INTERNET" />
    • <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

El SDK incluye una aplicación de ejemplo que demuestra cómo debería verse tu proyecto si se configura correctamente. Puedes usarla como plantilla para tus propias aplicaciones integradas en Analytics.

Usa el SDK

Antes de comenzar a usar el SDK, debe crear una cuenta gratuita en www.google.com/analytics y crear una nueva propiedad web con una URL de sitio web falsa pero descriptiva (p.ej., http://mymobileapp.mywebsite.com). Una vez que cree la propiedad, escriba o guarde una copia del ID de propiedad web que se genera para la propiedad recién creada.

Debes indicar a tus usuarios, en la aplicación o en tus condiciones del servicio, que te reservas el derecho a realizar un seguimiento y a notificar la actividad de un usuario dentro de tu aplicación de forma anónima. El uso del SDK de Google Analytics se rige adicionalmente por las Condiciones del servicio de Google Analytics, que debes aceptar al registrarte para obtener una cuenta.

Muestras y prácticas recomendadas

Puedes encontrar códigos de muestra y recomendaciones en code.google.com en el proyecto analytics-api-samples.

Biblioteca de EasyTracker

Hay una biblioteca de EasyTracker disponible. Proporciona seguimiento a nivel de la aplicación y la actividad casi sin esfuerzo de desarrollo. Puede encontrarlo en la sección Descargas del proyecto analytics-api-samples.

Cómo iniciar la herramienta de seguimiento

Llama a GoogleAnalyticsTracker.getInstance() para obtener el singleton de seguimiento. Luego, llama a su método startNewSession y pasa el ID de propiedad web y la actividad de la que se hace un seguimiento. Puedes llamar a este método directamente en el método onCreate de tu actividad si tu aplicación tiene una sola actividad. Por ejemplo:

package com.google.android.apps.analytics.sample;

import com.google.android.apps.analytics.GoogleAnalyticsTracker;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class TestActivity extends Activity {

  GoogleAnalyticsTracker tracker;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    tracker = GoogleAnalyticsTracker.getInstance();

    // Start the tracker in manual dispatch mode...
    tracker.startNewSession("UA-YOUR-ACCOUNT-HERE", this);

    // ...alternatively, the tracker can be started with a dispatch interval (in seconds).
    //tracker.startNewSession("UA-YOUR-ACCOUNT-HERE", 20, this);

    setContentView(R.layout.main);
    Button createEventButton = (Button)findViewById(R.id.NewEventButton);
    createEventButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        tracker.trackEvent(
            "Clicks",  // Category
            "Button",  // Action
            "clicked", // Label
            77);       // Value
      }
    });

    Button createPageButton = (Button)findViewById(R.id.NewPageButton);
    createPageButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Add a Custom Variable to this pageview, with name of "Medium" and value "MobileApp" and
        // scope of session-level.
        tracker.setCustomVar(1, "Navigation Type", "Button click", 2);
        // Track a page view. This is probably the best way to track which parts of your application
        // are being used.
        // E.g.
        // tracker.trackPageView("/help"); to track someone looking at the help screen.
        // tracker.trackPageView("/level2"); to track someone reaching level 2 in a game.
        // tracker.trackPageView("/uploadScreen"); to track someone using an upload screen.
        tracker.trackPageView("/testApplicationHomeScreen");
      }
    });

    Button quitButton = (Button)findViewById(R.id.QuitButton);
    quitButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        finish();
      }
    });

    Button dispatchButton = (Button)findViewById(R.id.DispatchButton);
    dispatchButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Manually start a dispatch, not needed if the tracker was started with a dispatch
        // interval.
        tracker.dispatch();
      }
    });
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    // Stop the tracker when it is no longer needed.
    tracker.stopSession();
  }
}

Si tienes varias actividades en tu aplicación, puedes usar la biblioteca de EasyTracker que se proporciona en la sección Descargas del proyecto analytics-api-samples.

Seguimiento de páginas vistas y eventos

El seguimiento de las páginas vistas y los eventos es sencillo: solo tienes que llamar a trackPageView del objeto de seguimiento cada vez que quieras activar una página vista. Llama a trackEvent para grabar un evento. Para obtener más información sobre las páginas vistas y los eventos, consulta la Descripción general del SDK más arriba.

Cómo usar variables personalizadas

Agregar una variable personalizada también es sencillo: solo usa el método setCustomVar que proporciona el SDK para dispositivos móviles. Te recomendamos planificar con anticipación, lo que indexa cada variable personalizada asignada a fin de no sobrescribir ninguna variable existente. Para obtener más información sobre las variables personalizadas, consulta la Guía sobre variables personalizadas. Ten en cuenta que el método setCustomVar no envía datos de forma directa. En cambio, los datos se envían con el siguiente evento o vista de página rastreada. Debe llamar a setCustomVar antes de realizar un seguimiento de una página vista o un evento. Tenga en cuenta que el alcance predeterminado de las variables personalizadas es el alcance de la página.

Uso del seguimiento de comercio electrónico

Hay 4 métodos que utiliza para habilitar el seguimiento de comercio electrónico en su aplicación:

  • addTransaction
  • addItem
  • trackTransactions
  • clearTransactions

Llamar a addTransaction y addItem agrega la transacción o el elemento a un búfer de comercio electrónico interno, al que se pueden agregar más elementos y transacciones. Solo cuando se llama a trackTransactions, las transacciones y los elementos se envían al despachador y se ponen en cola para enviarse a Google Analytics.

Para borrar el búfer, puedes llamar al método clearTransactions. Nota: No recuerda ninguna transacción enviada previamente al despachador ni las transacciones ya recopiladas por Google Analytics.

El siguiente código de muestra puede ayudarte a comenzar. Suponemos que se llama al método onPurchaseCompleted cuando se confirma o rechaza la compra.

  /**
   * The purchase was processed.  We will track the transaction and its associated line items
   * now, but only if the purchase has been confirmed.
   *
   * @param purchase A PurchaseObject containing all of the transaction information needed to
   *     send the ecommerce hit to Google Analytics.
   */
  public void onPurchaseCompleted(PurchaseObject purchase) {
    tracker.addTransaction(new Transaction.Builder(
        purchase.getTransactionId(),
        purchase.getTotal())
        .setStoreName(purchase.getStoreName())
        .setTotalTax(purchase.getTotalTax())
        .setShippingCost(purchase.getShippingCost())
        .build());
    for (PurchaseLineItem lineItem : purchase.getLineItems()) {
        tracker.addItem(new Item.Builder(
            purchase.getTransactionId(),
            lineItem.getItemSKU(),
            lineItem.getItemCost(),
            lineItem.getQuantity())
            .setItemName(lineItem.getItemName())
            .setItemCategory(lineItem.getItemCategory())
            .build());
    }
    if (purchase.isConfirmed()) {
      tracker.trackTransactions();
    } else {
      // The purchase was denied or failed in some way.  We need to clear out
      // any data we've already put in the Ecommerce buffer.
      tracker.clearTransactions();
    }
  }

Para obtener más información sobre el comercio electrónico, consulte la Guía de seguimiento de comercio electrónico.

Anonimizar IP

Para anonimizar la información de IP del usuario, usa el método setAnonymizeIp. Esto le indica a Google Analytics que anonimice la información que envía el SDK cuando quita el último octeto de la dirección IP antes de su almacenamiento.

Puedes llamar a setAnonymizeIp en cualquier momento.

Configuración de la tasa de muestreo

Puedes establecer la tasa de muestreo con el método setSampleRate. Si su aplicación genera mucho tráfico de Analytics, configurar la tasa de muestreo puede impedir que sus informes se generen con muestreo de datos. El muestreo se realiza de manera coherente entre los usuarios únicos, por lo que hay integridad en las tendencias y los informes cuando la tasa de muestreo está habilitada. El método setSampleRate acepta un parámetro int. Los valores válidos para ese parámetro son cualquier número entero entre 0 y 100, ambos incluidos.

Una tasa de 0 desactiva la generación de hits, mientras que una tasa de 100 envía todos los datos a Google Analytics. Es mejor llamar a setSampleRate antes que a cualquier método de seguimiento.

Puedes obtener más información sobre el muestreo en la Guía de conceptos de muestreo.

Agrupación en lotes

Para ahorrar en conexión y sobrecarga de batería, te recomendamos que agrupes tus solicitudes de seguimiento. Puedes llamar a dispatch en el objeto de seguimiento cada vez que quieras realizar una solicitud por lotes y puedes hacerlo de forma manual o en intervalos específicos.

Problemas conocidos

  • Llamar a los métodos de GoogleAnalyticsTracker en diferentes subprocesos puede provocar errores desconocidos. Asegúrate de realizar todas las llamadas desde la misma conversación.
  • Seguimiento de campañas

    El SDK admite dos tipos de seguimiento de campañas.

    - Seguimiento de campañas de Google Play: Te permite realizar un seguimiento de las referencias de instalación a través de Google Play.
    - Seguimiento general de campañas: Te permite realizar un seguimiento de las campañas que remiten usuarios a tu aplicación.

    Seguimiento de campañas de Google Play

    La versión del SO Android 1.6 admite el uso de un parámetro de URL referrer en los vínculos de descarga de Google Play. El SDK de Google Analytics para Android utiliza este parámetro a fin de propagar automáticamente la información de la campaña en Google Analytics para su aplicación. Esto permite registrar la fuente de instalación de la aplicación y asociarla con futuros eventos y vistas de página, lo que puede ser útil, por ejemplo, para medir la eficacia de un anuncio específico para su aplicación.

    Para que el seguimiento de referencias funcione, debes agregar el siguiente fragmento de código al archivo de manifiesto AndroidManifest.xml de tu proyecto:

    <!-- Used for install referrer tracking -->
    <receiver android:name="com.google.android.apps.analytics.AnalyticsReceiver" android:exported="true">
      <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER" />
      </intent-filter>
    </receiver>
    

    Para configurar el seguimiento de campañas de Google Analytics a través de Google Play, utilice el creador de URL que aparece a continuación para generar un vínculo de referencia. Use el vínculo para remitir a los usuarios a su aplicación. El SDK de Analytics analizará y registrará automáticamente la información de referencia y la propagará en su informe de Analytics.

    Para generar el vínculo de referencia, puedes usar el Creador de URL de campaña de Google Play. Los campos Package Name, Campaign Source, Campaign Medium y Campaign Name son obligatorios. Para obtener una descripción detallada de cada parámetro, consulta la tabla a continuación.

    Seguimiento general de campañas

    Con la versión 1.3 del SDK de Google Analytics para Android, ahora puede realizar un seguimiento de las campañas para otras fuentes que no sean Google Play. Por ejemplo, si deseas saber que tu aplicación se inició desde un vínculo en un anuncio, puedes verificar la información de referencia de la campaña en el intent que la inició y, luego, almacenar esa información de la campaña en Google Analytics.

    Para configurar la información de referencia de la campaña, usa el método setReferrer de la siguiente manera:

      tracker.setReferrer(referrer);
    

    Existen dos restricciones para usar esta función. Primero, debes llamar a startNewSession antes de llamar a setReferrer. Debes hacer esto porque la base de datos SQLite que usa Google Analytics no está configurada antes de llamar a startNewSession, y setReferrer necesita esa base de datos. Si no llamaste a startNewSession, obtendrás un IllegalStateException.

    La segunda restricción es que la string de referencia que se pasa a setReferrer debe seguir un formato específico. Debe tener la forma de un conjunto de parámetros de URL y debe incluir al menos un parámetro gclid o uno de cada uno de estos elementos: utm_campaign, utm_medium y utm_source. En este último caso, también puede tener los parámetros utm_term y utm_content.

    El parámetro gclid es parte de la función de etiquetado automático que vincula automáticamente Google Analytics con Google Ads. Una referencia de campaña de muestra con el etiquetado automático podría verse así:

    referrer = “gclid=gclidValue”;
    

    La string de referencia manual de la campaña podría verse así:

    referrer = “utm_campaign=campaign&utm_source=source&utm_medium=medium&utm_term=term&utm_content=content”;
    

    Si pasas una string de referencia con formato incorrecto a setReferrer, la información de referencia no se cambiará y obtendrás un valor de retorno falso. Un valor de resultado verdadero indica que se actualizó el referente y se agregará a cada hit del futuro.

    Además, ten en cuenta que se iniciará una sesión nueva cuando llames a setReferrer y el resultado será verdadero.

    Parámetro Obligatorio Descripción Ejemplos
    utm_campaign Nombre de la campaña; se usa para el análisis de palabras clave a fin de identificar una promoción de un producto específico o una campaña estratégica utm_campaign=spring_sale
    utm_source Fuente de la campaña: Se utiliza para identificar un motor de búsqueda, un boletín informativo u otra fuente. utm_source=google
    utm_medium Medio de la campaña: Se utiliza para identificar un medio, como el correo electrónico o el costo por clic (CPC). utm_medium=cpc
    utm_term No Término de campaña; se utiliza con la búsqueda pagada para proporcionar las palabras clave de los anuncios utm_term=running+shoes
    utm_content No Contenido de la campaña: Se usa para pruebas A/B y anuncios orientados por contenido para diferenciar los anuncios o vínculos que dirigen a la misma URL utm_content=logolink
    utm_content=textlink