Este documento proporciona instrucciones para implementar Google Tag Manager en aplicaciones Android. Explica cómo crear un contenedor en GTM y configurar variables, reglas y tags. También describe cómo enviar datos como nombres de pantallas, eventos y dimensiones personalizadas a través de DataLayer y configurar el seguimiento correspondiente en GTM. Finalmente, detalla los pasos para integrar el script de GTM en la aplicación Android.
2. Mabel Rodriguez - @enielbam 2
Este manual tiene la finalidad de guiarte en la implementación de Google Tag Manager en
aplicaciones desarrolladas en Android.
Antes de empezar debes evaluar si tu aplicación es tan compleja y cambia
constantemente o si en realidad no es un desarrollo de gran magnitud, esta pregunta es
muy importante ya que si bien es cierto Google Tag manager te ayuda a administrar todos
tus tags se debe tener en cuenta lo complejo de su implementación, si es un desarrollo
pequeño en realidad lo mejor es utilizar directamente los tags de Google Analytics.
I. Crear un contenedoren Google Tag manager
1. Para este caso ya tenemos una cuenta en GTM, por lo tanto solo debemos crear un
contenedor para nuestra app:
2. En este puntose debe asignarun nombre al contenedor,que puede ser el nombre de
nuestraapp,es muyimportante seleccionarparaque tipo de desarrollo se utilizará el
contenedor,de noseleccionar “Android” en este paso, se deberá crear un contendor
nuevo ya que esta opción no se puede cambiar una vez creado el contenedor.
3. Mabel Rodriguez - @enielbam 3
3. Finalmente ya podemos trabajar en los tags:
II. Data layer
Para enviar valores de navegación de nuestra app, usaremos Datalayers, el concepto es el
mismo de un sitio web: es un vector con valores asignados a determinadas variables.
Por ejemplo, en los siguientes puntos enviaremos todos los datos mediante eventos
automáticos (no confundir con eventos de Google Analytics), para luego recuperar estos
valores desde el administrador de Google tag manager.
La estructura de un evento GTMes:
Datalater.pushEvent
dataLayer.pushEvent("nombreEvento", DataLayer.mapOf("nombreVariable", valorVariable));
Donde:
Variable Detalle
nombreEvento
Nombre de eventoque se recuperará enGoogle TagManager (noes un eventode
Google Analytics)
nombreVariable Nombre de la variable definida.
valorVariable Valor asociado a la variable
1. Screens
Al abrir cada pantalla de la aplicación incluyendo la pantalla de login si se tuviera, se
debe incluir el siguiente script:
Screem Tracker
DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
dataLayer.pushEvent("openScreen", DataLayer.mapOf("screenName", screenName));
4. Mabel Rodriguez - @enielbam 4
Donde:
Variable Detalle
Context Valor por defecto this
screenName Nombre de la pantallaactual
2. Eventos
Para el seguimientode eventosse debe implementar el script una vez completada la
acción deseada:
Event Tracker
DataLayer dataLayer = TagManager.getInstance(Context).getDataLayer();
dataLayer.pushEvent("virtualEvent", DataLayer.mapOf("eventCategory", Categoría, "eventAction",
Acción, "eventLabel", Label));
Donde:
Variable Detalle
Context Valor por defecto this
Categoría Categoría asociada al evento
Acción Acción asociada al evento
Etiqueta Etiqueta asociada al evento
Algunosejemplosde eventospodríanser:
Llamar
Agendar
Actualizardatos
Seleccionaralgo
Filtros
Búsqueda
Pasode nivel,etc.
Se debe tenerencuenta que no es recomendable medir absolutamente todo, antes
se debe definir que es lo que necesito medir y como me puede ayudar esa
información al monitoreo de mis KPIs.
3. Dimensiones personalizadas
Para el envío de dimensiones el script será el siguiente:
5. Mabel Rodriguez - @enielbam 5
Dimensions Tracker
DataLayer dataLayer = TagManager.getInstance(Context).getDataLayer();
dataLayer.pushEvent("customDimensions", DataLayer.mapOf("Dimension1", Valor1, "Dimension2",
valor2));
4. Bloqueo y excepciones
La mediciónde losbloqueosy excepcionesnosayudaráamedirel númeroy el tipo de
bloqueos detectados y no detectados en la aplicación. Se recomienda leer las
referenciasde Google Analytics(ExcepcionesenAndroid GA) para mayor información
sobre la información a enviar.
La información relacionada a las excepciones se enviará mediante eventos para su
configuración desde Google tag Manager.
El scriptasociadoesel siguiente,se debeenviarcadavezque se detecte un bloqueo o
excepción:
Event Tracker
DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
dataLayer.pushEvent("getException", DataLayer.mapOf("exDescription", description, "isFatal",
isFatal));
Donde:
Variable Detalle
Context Valor por defecto this
description
Descripciónde la excepción (hasta 100 caracteres). Admite null. No se debe enviar
nunca el mensaje de la excepción(e.getMessage()), ya que puede contener
informaciónde identificación personal.
isFatal
true | false
Indica si la excepciónera grave. true indica que sí.
Medición de excepciones no detectadas
Las excepciones no detectadas representan instancias en las que la aplicación ha
detectado condiciones inesperadas durante la ejecución, a menudo críticas, que
bloquean la aplicación. Las excepciones no detectadas se pueden enviar a Google
Analyticsautomáticamente estableciendounvalor de ga_reportUncaughtExceptions
o usando la clase ExceptionReporter.
6. Mabel Rodriguez - @enielbam 6
Configuración automática
Para enviarde formaautomáticatodas lasexcepcionesnodetectadasenlaaplicación
mediante el valorde ga_reportUncaughtExceptions,se debeagregarlasiguientelínea
al archivo XML de configuración:
Event Tracker
<bool name="ga_reportUncaughtExceptions">true</bool>
III. Google Tag Manager
Una vez que se han implementado los scripts en nuestra app, ya se pueden hacer las
configuraciones necesarias en Google Tag Manager.
1. Primerose debenrecuperarlosvaloresde las variables que se han incluido dentro de los
datalayer,paraestocrearemostantas variablescomoseanecesario,porejemplosi vemos
el ejemplo del Tag de Screen views, tenemos:
Screem Tracker
DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
dataLayer.pushEvent("openScreen", DataLayer.mapOf("screenName", screenName));
Aquí vemosque manejamos la variable “screenName” asociada al evento “openScreen”.
2. Para recuperar el nombre de la pantalla, creamos una variable tipo Data Layer:
7. Mabel Rodriguez - @enielbam 7
3. En el siguiente puntodebemos asignarunnombre anuestravariable (UA - screenName) y
en el campo Data Layer Variable Name, se debe colocar el mismo nombre de la variable
que se está enviando mediante el Data Layer (screenName):
4. Luegodebemoscrearel trigger o regla mediante la cual se ejecutará nuestro tag, en este
caso hemos enviado los datos mediante un Push event, entonces nuestra regla será:
8. Mabel Rodriguez - @enielbam 8
Esto significa que el tag (aún no creado) se ejecutara sólo cuando se ejecute un evento
llamado openScreen
5. Comoya tenemoslasvariablesytriggerscreados,procedemosacrear el Tag, eneste caso
será unapp view de GoogleAnalytics:
9. Mabel Rodriguez - @enielbam 9
6. El nombre de este eventoserá: UA – Screen. En el segundo paso se debe ingresar el ID de
Google Analytics, y escoger el tipo de track App View:
7. Ahora para enviar a Google Analytics el nombre de la pantalla se debe configurar el
parámetro Field: ScreeenName y asignarle el valor de la variable que acabamos de
recuperar:
10. Mabel Rodriguez - @enielbam 10
8. Finalmentedebemosasignarla regla de ejecución de este Tag, elegimos Custom Trigger:
11. Mabel Rodriguez - @enielbam 11
9. Se abrirá una ventana con todas los triggers que hemos configurado previamente, y
seleccionamos el trigger EV – openScreen, que creamos en el paso 4 y guardamos el tag:
El proceso para el envio de eventos, transacciones, dimensiones u otro tag es similar al
descrito anteriormente, solo se debe seleccionar el tipo de track y enviar los valores
necesarios.
12. Mabel Rodriguez - @enielbam 12
IV. Script Google Tag Manager:
1. Despuesde haberconfigurado todos los tags en Google Tag Manager, se debe publicar la
versión actual:
2. En un segundopasose debe exportarel contendorque acabamosde crear, esto se realiza
desde la pestaña Admin:
13. Mabel Rodriguez - @enielbam 13
3. Por defectoel nombre del contenedoresel IDde la cuentade GTM seguidode laversión
que hemosseleccionado:
4. Se debe teneren cuentaque el nombre del archivosolodebe quedarel IDdel contenedor,
sin la versión:
5. Para la integración del contenedor con nuestra app, primero se debe configurar Google
Play Services SDK (más información en el link).
6. Como segundo paso se debe agregar los siguientes permisos en el archivo
AndroidManifest.xml
14. Mabel Rodriguez - @enielbam 14
AndroidManifest.xml
<!-- For TagManager SDK -->
<uses-permissionandroid:name="android.permission.INTERNET" />
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE" />
7. Luego configurar el contenedor por defecto: se debe agregar el archivo binario (que
exportamos enel administradorde GTM – punto2) enel repositorio del proyecto, dentro
del subfolder <project-root>/res/raw.
8. InicializarGoogle TagManager, para esto se recomienda revisar la configuración según la
versión de Android.
a. Androidv4 https://developers.google.com/tag-manager/android/v4/
b. Donde:CONTAINER_ID= GTM–WP9BX9