La nueva variable de Google Tag Manager llamada regEx Table o Tabla con Expresiones Regulares, es para mí una de las opciones más esperadas y deseadas en GTM. Al menos en cuanto a lo que yo habría pedido que desarrollaran jeje. Siempre que enseñaba esta variable en clase decía: «la pega… que esto solo funciona en comparaciones de igualdad, si tenemos una serie de valores exactos para el input, con lo que a veces es inviable usarlo…» (sin comparaciones tipo contiene, ni empieza por, ni nada…). Sin embargo, esta es la limitación que se nos acaba con la nueva lookup regEx table, ya que con expresiones regulares se puede hacer todo, o casi!! Os dejo aquí una chuleta de expresiones regulares o regEx cheatsheet que hice hace ya y ojalá os sea útil.
El motivo de que sea tan práctica a mi ver este nuevo tipo de variable, es que nos va a ayudar a reducir el uso o dependencia de JavaScript, a la vez que para optimizar nuestro uso de la herramienta y profesionalizar nuestro trabajo final. El motivo: que además de para un uso típico de tabla de consulta… os adelanto que también sirve para buscar y reemplazar dinámico, es decir: para limpiar datos :D:D y mandarlos más «bonitos» y legibles a Google Analytics, por ej. Fijémonos así en esta opción avanzada del dólar ($). Es idéntica a la de los filtros avanzados de Google Analytics. Podemos usar (paréntesis) para capturar partes de una expresión regular.
Por ejemplo:
Si ponemos esto en input:
\/([a-z0-9-]+)\/[a-z0-9-]+\/([0-9-]+)
y esto en output:
Sección: $1 ; Pedido: $2
Y ahora probamos con este Path:
/electronica/pedido-finalizado/12343
Lo que capturaremos será el nombre del primer directorio (en este ejemplo ficticio de arriba la categoría: electronica) y después el ID del pedido (12343). Es decir, nos devolverá:
Sección: electronica; Pedido: 12343
¿Qué significa esto? que ya no necesitamos aprender a hacer reemplazo / extracción JavaScript, o no para casos sencillos. Podemos mandar datos «endulzados» y más claros a nuestras herramientas de medición analítica y publicitaria con saber algo de regEx, algo bastante necesario para trabajar ágilmente con Google Analytics y su API.
A mí la tabla de consulta de Tag Manager, la normal, siempre me ha encantado :P. Con ella podemos condicionar el valor de una variable al de otra, crear un if, condicional o dependencia, como lo que se hace en programación… Y tengo múltiples posts al respecto, aquí los dejo por si queréis profundizar:
- Tablas de consulta o Lookup Tables en Google Tag Manager
- Trucos para tablas de consulta de Google Tag Manager
- 4 variables clave en Google Tag Manager
- Google Tag Manager para AdWords y DoubleClick Floodlights
Otro ejemplo simple sobre el dólar y su función:
Y ahora vayamos a la cuestión central de este post:
Cómo funciona la variable de regEx Table: ejemplos y explicación
Al igual que en la tabla de consulta normal, la tabla de regular expressions necesita como mínimo un «input» o entrada y un «output» o salida, o un valor por defecto. Ahora vemos cómo rellenarlos. Veamos un ejemplo chorra para entender input y output:
En input variable, ponemos aquella variable sobre la que queremos trabajar, la queremos utilizar como punto de partida y en torno a la cual queremos hacer que sea dependiente el valor final de la tabla. En este caso:
Según el Page Path vamos a hacer que la variable tome un valor final u otro. Como no pusimos ninguna tabla en Regex Table / Lookup Table (según el caso), básicamente lo que estamos haciendo se podría hacer con una variable constante, I know. Solo creamos una nueva variable que sea igual a Path/Ruta de página + Query/Parámetros. A la variable que creamos así podríamos llamarla {{Path with Query}} por ej. Pero me interesa que se vea aquí que en input ponemos la variable de base y en output/default value el valor resultante.
Lo que hacemos arriba, es como si le decimos a GTM esta instrucción: «coge todos los Page Path y modifícalos añadiendo una interrogación seguida detrás y la query al final«. Así, si queremos, podemos mandar a Analytics u otra herramienta nuestro path «enriquecido». Fijaos que el mismo ejemplo sería perfectamente válido, si lo adaptamos un poco, para crear Path con Fragment, algo que puede ser interesante en webs basadas en AJAX que hagan un buen uso de las anclas (#).
En este otro post podéis ver mejor las variables de componentes de URL resumidas, por si queréis saber por qué anidé así {{Page Path}} y {{Page Query}}, y a qué viene la ? :)
Resumiendo hasta aquí: contamos con una variable de entrada que queremos modificar o crear condiciones en torno a ella. Y también tenemos un valor por defecto de salida que podemos dar si queremos para todos los casos por igual (o mejor para el «resto» de casos por defecto, los que no cumplan ciertos patrones, como veremos a continuación).
Tabla de consulta o Tabla RegEx
Ahora pasamos a ver la siguiente parte relevante. La tabla con comparaciones, donde está «la miga». Y vamos a seguir con el paralelismo entre Regex y Lookup table:
Ahí, en ambos casos, podemos añadir Filas / Rows. Con la diferencia de que en la RegEx Table podemos hacer comparaciones complejas de tipo expresión regular. En la Lookup Table solo comparaciones de igualdad. Y ahora vemos al fin la gran ganancia al tener Tabla RegEx.
Ejemplo de Tabla de Expresiones Regulares para Content Groups a medida
Aquí va una Tabla RegEx para generar grupos de contenido en un sitio en WordPress que está alojado en un directorio:
INTERPRETACIÓN: partimos como dije de que estoy en un sitio instalado en un directorio /00/ :)
- La home es /00/
- El blog es /00/ más la fecha del día o del archivo mensual, por simplificar. Y también es Blog lo que lleve tras /00/ las palabras: category, tag, author
- La sección Contacto agrupa lo que empieza por /00/ más contacto, gracias o formulario
- La sección Ejemplos es la que empieza por /00/ejemplo-
- …
Al poder usar expresiones regulares puedo crear unos grupos de contenido bastante curiosos :))
Cómo hacer comparaciones de tipo «contiene» en tablas regEx
OJO que debemos DESmarcar la opción: «Full Matches Only»* (coincidencias completas de búsqueda) para poder así buscar coincidencias parciales. Por ej. por hacer lo de arriba en un modo mucho más sencillo podríamos buscar {{Page Path}} que contengan «contacto», «ejemplo», «pedido»,etc. haciendo un uso más simple y sin conocer mucho de Expresiones Regulares.
*NOTA: si desmarcamos «Full Matches Only» ojo que deberemos desmarcar también lo de Capturar grupos y Reemplazar. Si no, el comportamiento al devolver el valor final de la variable pudiera ser inesperado.
Sea como sea:
Es fundamental leer bien las ayudas del propio Tag manager dentro de la variable, y conocer las opciones que vienen marcadas por defecto:
De arriba a abajo, por defecto viene esta variable viene definida así:
- Debe coincidir completamente el texto encontrado con el patrón de la regEx (como si usáramos ^ y $ para delimitar inicio y fin de la búsqueda).
- No se distinguen mayúsculas y minúsculas.
- Tenemos activa por defecto la funcionalidad del $ y los paréntesis para capturar y reemplazar* grupos dentro de la regEx, respectivamente.
Si queremos que funcionen la tabla de otro modo (por ej. como un contiene) debemos marcar o desmarcar en Avanzado.
*NOTA: si desmarcamos «Full Matches Only» ojo que deberemos desmarcar también lo de Capturar grupos y Reemplazar. Si no, el comportamiento al devolver el valor final de la variable pudiera ser inesperado.
O si prefieres una formación in company, en tu empresa, sobre:
- Tag Manager y Píxeles de Conversión
- Google Analytics básico o avanzado
- Data Studio
- Supermetrics Functions
- SEO
- Google Ads