En este instructivo, se muestra cómo configurar la medición de Google Analytics para una aplicación de una sola página (SPA) con Google Tag Manager. Aprenderás a configurar tu propiedad de Google Analytics, habilitar las variables necesarias de GTM y crear etiquetas que se activen con los cambios en el historial.
Antes de comenzar
En este instructivo, se supone que ya tienes lo siguiente:
- Una cuenta y una propiedad de Google Analytics
- Un contenedor de Google Tag Manager instalado en tu SPA
- El rol de editor (o superior) tanto para Google Analytics como para Google Tag Manager
Paso 1: Prepara el flujo de datos de GA4
Para hacer un seguimiento manual de los eventos page_view en una SPA, primero debes inhabilitar las vistas de página automáticas basadas en el historial en GA4 para evitar el doble recuento.
- Abre Google Analytics.
- En Administrador, en Recopilación y modificación de datos, haz clic en Flujos de datos.
- Selecciona tu flujo de datos web.
- En Medición optimizada, haz clic en el ícono de configuración
.
- En Vistas de página > Mostrar configuración avanzada, borra Cambios en la página basados en eventos del historial de navegación.
- Haz clic en Guardar.
Paso 2: Habilita las variables integradas de Historial en Tag Manager
Para usar activadores o variables basados en el historial en GTM, primero debes habilitar las variables integradas de Historial.
- Abre Google Tag Manager.
- En tu espacio de trabajo, navega a Variables.
- En Variables integradas, haz clic en Configurar.
- En la sección Historial, habilita las siguientes variables:
History New URL FragmentHistory Old URL FragmentHistory New StateHistory Old StateHistory Source
- Cierra el panel de configuración.
Paso 3: Crea el activador de cambio de historial
A continuación, crea un activador que se active cada vez que se produzca un evento de cambio de historial (como pushState o replaceState) en tu SPA.
- En tu espacio de trabajo de Tag Manager, navega al menú Activadores.
- Haz clic en Nuevo.
- En Configuración del activador, elige el activador Cambio de historial.
- (Opcional) Si solo deseas hacer un seguimiento de ciertos cambios en la pantalla, actualiza el activador para que se active en Algunos cambios en el historial.
- Asigna un nombre al activador (p.ej., "Cambio de historial") y haz clic en Guardar.
Paso 4: Crea la etiqueta de Google
Ahora, crea una etiqueta de Google que actualice el parámetro page_location cada vez que se produzca un cambio en el historial.
- En el menú Etiquetas, haz clic en Nueva.
- En Configuración de la etiqueta, elige la etiqueta de Google.
- Ingresa tu ID de etiqueta (el mismo ID que se usó para tu etiqueta de Google inicial).
En Configuration settings, agrega los siguientes parámetros:
page_location:{{Page URL}}page_title:{{Page Title}}update:true
Asigna un nombre a la etiqueta (por ejemplo, "Etiqueta de Google: Actualización de SPA") y haz clic en Guardar.
Paso 5: Envía el evento virtual page_view
Por último, crea una etiqueta de evento de GA4 para enviar el evento page_view real para cada carga de página virtual.
- Haz clic en Nuevo en el menú Etiquetas.
- En Configuración de la etiqueta, elige Google Analytics: Evento de GA4.
- Ingresa tu ID de medición.
- Establece el Nombre del evento como
page_view. - En Configuración avanzada > Secuencia de etiquetas, selecciona Activa una etiqueta antes de que se active el evento de GA4: Vista de página virtual y, luego, selecciona la etiqueta Etiqueta de Google - Actualización de SPA que creaste en el paso 4.
- En Activación, selecciona el activador Cambio de historial que creaste en el paso 3.
- Asigna un nombre a la etiqueta (por ejemplo, "Evento de GA4: Vista de página virtual") y haz clic en Guardar.
Paso 6: Verificar tu configuración
Para asegurarte de que tus vistas de página virtuales se registren correctamente, haz lo siguiente:
- En Tag Manager, haz clic en Vista previa para ingresar al modo de vista previa.
- Navega por tu SPA.
- En DebugView de Google Analytics, verifica que aparezca un nuevo evento
page_viewpara cada cambio de pantalla. - Verifica que los valores de
page_locationcoincidan con tus expectativas.