Trucos de analítica: ¿Como trackear fragmentos de URL en las webs SPA (Single-Page Application)?

Cada vez son más las páginas web en las que se muestra el contenido de manera dinámica sin necesidad de recargar la página. Denominadas Single-Page Application (SPA), en este tipo de páginas se utilizan los fragmentos de URL, que no son más que un conjunto de caracteres que se muestran después del símbolo de almohadilla en la URL, y tienen la función de enlaces de anclaje para permanecer en una misma página web.

Este particular comportamiento no se detecta de manera automática en Google Analytics, ya que esos fragmentos no se rastrean y las URLs que nos llegan a GA pierden esa información que nos dan los fragmentos de URL, perdiendo así la trazabilidad del usuario en la navegación de la propia página.

Es importante recordar que cuando cambia el fragmento de la URL no se produce una recarga de la página, pero sí que se envía un evento del historial del navegador, y eso es lo que debemos utilizar nosotros en nuestra configuración de Google Tag Manager para poder disparar la analítica de página correctamente. Esto nos será posible gracias a que GTM dispone de un trigger de cambio de historial que se activa cuando se envía un evento por cambio de fragmento en la URL.

Vamos a seguir los siguientes pasos para realizar el tracking de páginas con cambios de fragmentos de URL:

 

1.Habilitar variables: primero de todo, debemos asegurarnos de tener las siguientes variables disponibles para nuestra configuración:

La variable New History Fragment se encarga de guardar el valor del fragmento de URL cuando éste cambia. Con la segunda variable nos será posible especificar que no vamos a disparar un tag en todos los eventos de historial, sólo en el que se produce un cambio en el fragmento.

Lo siguiente que haremos será crear una variable Javascript personalizada con la que crearemos una URI correctamente que enviaremos a Google Analytics como ruta de página del fragmento de la URL. Creamos pues la variable {{fragment path}}, que utilizará el siguiente código:

function() {

   return. {{Event}} === ‘gtm.historyChange’ && {{New History Fragment}} ? {{Page Path}} + ‘#’ + {{New History Fragment}} : undefined;s

}

Lo que hace esta función es primero comprobar si el evento invocado por la variable ha sido un cambio en el historial. Si es así, y el fragmento de la URL no está vacío, lo siguiente que hace es devolver el valor actual de la ruta de navegación y concatena el nuevo fragmento de la URL al texto, separando los valores con #. En el caso de que el evento no fuera un cambio de historial, la variable devuelve un undefined para asegurar que enviamos correctamente la ruta de navegación con el hit de página.

 

2.Trigger: creamos un nuevo activador con la siguiente configuración:

Utilizamos esta configuración para evitar que este trigger se active en otras instancias donde se pueda activar el trigger de cambio de historial.

 

3.Tag: Por último, añadimos el trigger que hemos creado a nuestro tag de página vista que ya teníamos disparándose en todas las páginas, pero ahora haremos que se dispare cuando no se produce una recarga de la página. Necesitaremos también ir a la sección más ajustes de nuestro tag para añadir un campo que sea page cogiendo su valor de la variable fragment path, de esta manera se podrá pintar el valor de la ruta de navegación cuando se active nuestro trigger al no haber una carga de página.

Y con esto doy por finalizado el artículo de hoy. Espero que os haya sido de utilidad y os animéis a probarlo

Artículos relacionados

Newsletter

Tenemos una recopilación de noticias que seguro te puede interesar sobre Analítica, Martech, Cookies, etc.

    Te puedes dar de baja en cualquier momento.
    Para más detalles puedes consultar nuestra Política de Privacidad.