Android v3 (heredado): Etiquetas de Universal Analytics

En esta guía, se describe cómo implementar etiquetas comunes de Universal Analytics con el SDK de Google Tag Manager para Android.

  1. Parámetros de configuración comunes de las etiquetas de Universal Analytics (UA)
    1. Cómo enviar vistas de la app (vistas de pantalla)
    2. Cómo enviar eventos
    3. Envía transacciones de comercio electrónico
      1. Variables de capa de datos de comercio electrónico
    4. Atribución de referencia de instalación

Parámetros de configuración comunes de las etiquetas de Universal Analytics (UA)

La implementación de Universal Analytics en tu aplicación con Google Tag Manager permite realizar cambios sobre la marcha en la implementación de Google Analytics que no requieren que vuelvas a compilar el objeto binario de tu app y lo vuelvas a enviar a los mercados.

En esta guía, se muestra cómo realizar las siguientes tareas con las etiquetas de Universal Analytics y el SDK de Google Tag Manager para Android:

Cómo enviar vistas de la app (vistas de pantalla)

Para enviar una vista de la app (vista de pantalla) a Google Analytics cada vez que se abre una pantalla nueva en una app, sigue estos pasos:

  1. Crea una macro de nombre de pantalla
  2. Crea una regla OpenScreenEvent
  3. Cómo crear una etiqueta de vista de app (vista de pantalla) de UA
  4. Actualiza el código para enviar el evento y el nombre de pantalla a la capa de datos

1. Crea una macro de nombre de pantalla

Cree una nueva macro de nombre de pantalla con los siguientes valores de configuración:

Nombre de la macro : screen name
Tipo de la macro : Data Layer Variable
Nombre de la variable de la capa de datos : screenName

2. Cómo crear una regla OpenScreenEvent

Crea una regla nueva que se usará para activar la nueva etiqueta de vista de la app de UA (vista de pantalla) con los siguientes valores de configuración:

Nombre de la regla : OpenScreenEvent
Condiciones: {{ event }} es igual a openScreen

3. Crea una etiqueta de UA de vista de aplicación (vista de pantalla)

Crea una nueva etiqueta de UA con los siguientes valores de configuración:

Nombre de la etiqueta : Screen Open
ID de seguimiento : Tu ID de propiedad
Tipo de etiqueta : Universal Analytics (beta)
Tipo de segmento : AppView
Configuración básica - Nombre de la app : {{ app name }}
Configuración básica - Versión de la app : {{ app version }}
Configuración básica - Nombre de pantalla : {{ screen name }}}

4. Actualiza el código para enviar el evento y el nombre de pantalla a la capa de datos

Agrega código a la app para enviar un evento openScreen y un valor screenName a la capa de datos, como en este ejemplo:

// Push an 'openScreen' event to the data layer.
import com.google.tagmanager.DataLayer;
import com.google.tagmanager.TagManager;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

  private static final String SCREEN_NAME = "Home Screen";
  private DataLayer mDataLayer;

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

  @Override
  public void onStart() {
    super.onStart();
    mDataLayer = TagManager.getInstance(this).getDataLayer();

    // This call assumes the container has already been opened, otherwise events
    // pushed to the DataLayer will not fire tags in that container.
    mDataLayer.push(DataLayer.mapOf("event", "openScreen",        // Event, Name of Open Screen Event.
                                    "screenName", SCREEN_NAME));  // Name of screen name field, Screen name value.
  }
}

Cómo enviar eventos

Para enviar un evento a Google Analytics cuando un usuario interactúa con los controles de la IU o el contenido en tu app, haz lo siguiente:

  1. Crea macros de eventos(opcional)
  2. Crea una regla de evento
  3. Cómo crear una etiqueta del evento de UA
  4. Actualiza el código para enviar valores de macros de eventos y de eventos a la capa de datos

En los siguientes pasos, se muestra cómo funcionaría en un evento que se activa cuando un usuario inicia la reproducción de un video.

1. Crea macros de evento (opcional)

Si el evento utiliza variables de capa de datos para sus campos de categoría, acción, etiqueta o valor, primero debes configurar esas macros en la interfaz. En este ejemplo, la etiqueta del evento de reproducción de video se basará en una variable de capa de datos que proporciona el nombre del video que se reprodujo.

Para implementar este nombre de video, crearíamos una macro nueva con los siguientes valores de configuración:

Nombre de la macro : video name
Tipo de la macro: Data Layer Variable
Nombre de la variable de la capa de datos : videoName

2. Crear una regla de evento

Crea una regla que haga que la etiqueta del evento se active cuando se envíe a la capa de datos. En el ejemplo de reproducción de video, esa regla nueva tendría los siguientes valores de configuración:

Nombre de la regla : VideoPlayEvent
Condiciones : {{ event }} es igual a videoPlay

Cómo crear una etiqueta del evento de UA

Crea una etiqueta del evento de UA que se activará cuando la regla creada en el paso anterior se evalúe como true. En el ejemplo de reproducción de video, esa etiqueta se vería así:

Nombre de la etiqueta: Video Play Event
ID de seguimiento: Tu ID de propiedad
Tipo de etiqueta: Universal Analytics (beta)
Tipo de segmento: Event
Parámetros de seguimiento de eventos - Categoría: Video
Parámetros de seguimiento de eventos - Acción: Play
Parámetros de seguimiento de eventos - Etiqueta : {{ video name }}
Configuración básica - Nombre de la app: {{ app name }}
Configuración básica - Versión de la app: {{ app version }}
Configuración básica - Versión de la app: {{ app version }}
Nombre de la pantalla: {{ app version }}
Configuración básica: {{ app version }}{{ screen name }}

Actualiza el código para enviar el evento a la capa de datos

Por último, actualiza tu código para enviar a la capa de datos el valor del evento y las variables de capa de datos que requiere la etiqueta cuando el usuario complete la interacción. En el ejemplo de reproducción de video, el código se vería de la siguiente manera:

//  Push a 'videoPlay' event to the data layer.
import com.google.tagmanager.DataLayer;
import com.google.tagmanager.TagManager;

public class VideoPlayer {

  // Called when a user initiates a video playback.
  public void onPlay(Video v) {
    DataLayer dataLayer = TagManager.getInstance(this).getDataLayer();

    // This call assumes the container has already been opened, otherwise events
    // pushed to the DataLayer will not fire tags in that container.
    dataLayer.push(DataLayer.mapOf("event", "videoPlay",        // Event, Name of Open Screen Event.
                                   "videoName", v.getName());   // Additional data layer variables used by the event tag.
    play(v);
  }

  // Rest of implementation;

}

Envía transacciones de comercio electrónico

Para enviar una transacción y cualquier elemento asociado a Google Analytics cuando un usuario complete una compra directa desde la aplicación, haz lo siguiente:

  1. Crea una regla de transacción
  2. Crea una etiqueta de transacción de UA
  3. Cómo actualizar el código para enviar eventos y transacciones o datos de elementos a DataLayer

1. Crear una regla de transacción

A continuación, crea una regla nueva con los siguientes valores de configuración:

Nombre de la regla : TransactionCompleted
Condiciones : {{ event }} es igual a transaction

2. Cómo crear una etiqueta de transacción de UA

Crea una etiqueta de transacción de UA con los siguientes valores:

Nombre de la etiqueta : Transaction Completed
ID de seguimiento : Tu ID de propiedad
Tipo de etiqueta : Universal Analytics (beta)
Tipo de segmento : Transaction
Configuración básica - Nombre de la app : {{ app name }}
Configuración básica - Versión de la app : {{ app version }}
Configuración básica - Nombre de pantalla : {{ screen name }}

3. Cómo actualizar el código para enviar datos de eventos y transacciones o elementos a DataLayer

Por último, actualiza tu código para enviar el evento de transacción, además de los datos asociados de transacciones y artículos, a la capa de datos. Ten en cuenta que debes usar los Nombres de variables de capa de datos admitidos para las transacciones y los datos de elementos:

// Called when a user completes a transaction.
public void onPurchaseCompleted(Purchase p) {

  DataLayer dataLayer = TagManager.getInstance(this).getDataLayer();

  // Put maps of item data into an array that will be pushed to the data layer.
  ArrayList<Map<String, String>> purchasedItems = new ArrayList<Map<String, String>>();
  for (Item i : p.items) {
    HashMap<String, String> currentItem = new HashMap<String, String>();

    currentItem.put("name", i.getProductName());
    currentItem.put("sku", i.getProductSku());
    currentItem.put("category", i.getProductCategory());
    currentItem.put("price", i.getProductPrice());
    currentItem.put("currency", "USD");
    currentItem.put("quantity", i.getProductQty());

    purchasedItems.add(currentItem);
  }

  // This call assumes the container has already been opened, otherwise events
  // pushed to the DataLayer will not fire tags in that container.
  dataLayer.push(DataLayer.mapOf("event", "transaction",               // Event, Name of Transaction Event.
                                 "transactionId", p.getTransId(),      // Additional fields required by the tag.
                                 "transactionTotal", p.getTotal(),
                                 "transactionAffiliation", "In-app Store",
                                 "transactionTax", p.getTax(),
                                 "transactionShipping", p.getShippingCost(),
                                 "transactionCurrency", "USD",
                                 "transactionProducts", purchasedItems));

  // Since the data layer is persistent, you should reset fields to null after
  // you are done pushing the transaction.
  dataLayer.push(DataLayer.mapOf("transactionId", null,
                                 "transactionTotal", null,
                                 "transactionAffiliation", null,
                                 "transactionTax", null,
                                 "transactionShipping", null,
                                 "transactionCurrency", null,
                                 "transactionProducts", null));
}

Variables de capa de datos de comercio electrónico compatibles

Las etiquetas de transacción de UA admiten las siguientes variables de capa de datos:

Variables de transacción

Nombre de la variable Descripción Tipo Obligatorias
transactionId Identificador único de transacción cadena
transactionAffiliation Socio o tienda cadena No
transactionTotal Valor total de la transacción cadena No
transactionTax Importe del impuesto de la transacción cadena No
transactionShipping Costo de envío de la transacción cadena No
transactionCurrency Moneda de la transacción cadena No
transactionProducts Lista de artículos comprados en la transacción un array de mapas que contienen variables de elementos. No

Variables de elementos

Nombre de la variable Descripción Tipo Obligatorias
name Nombre del producto cadena
sku SKU del producto cadena No
category Categoría de producto cadena No
price Precio del producto cadena No
currency El tipo de moneda de price cadena No
quantity Cantidad de artículos cadena No

Atribución de referencia de instalación

Cuando estén disponibles, los datos de referencia de instalación se incluirán automáticamente con cualquier hit de Google Analytics o solicitud de píxeles de remarketing de Google Ads cuando se registren el siguiente servicio y receptor en tu archivo AndroidManifest.xml:

<!-- Used for install referrer tracking -->
<service android:name="com.google.tagmanager.InstallReferrerService" />
<receiver android:name="com.google.tagmanager.InstallReferrerReceiver" android:exported="true">
  <intent-filter>
    <action android:name="com.android.vending.INSTALL_REFERRER" />
  </intent-filter>
</receiver>