Expresiones Regulares con Google Analytics

04. abril 2018 Google Analytics, GTM 0
Expresiones Regulares con Google Analytics
Expresiones Regulares con Google Analytics
Calificar

Muy bien. Si has llegado acá buscando información de las expresiones regulares, es porque seguro ya tienes bastantes bases de un analista Web, lo cual me da mucho gusto y es por ello que escribo este post porque de seguro has estado batallando al crear filtros, segmentos, tags o bien configurar un reporte de dentro de tu herramienta de análisis web. Así que que toma y espero te ayude bastante.

¿Que son las expresiones regulares?

Las expresiones regulares son secuencias de comandos que permiten establecer patrones de búsqueda y dentro de Google Analytics nos sirve para establecer filtro de vistas, crear objetivos, configurar segmentos, crear audiencias, o bien hasta establecer grupos de contenido y agrupación de canales.

Mi definición de expresiones regulares

Es como un comodín que me permite hacer match con diferentes elemento( urls, región, sesiones, número de usuarios dispositivos, nombre, dimensión n, etc).

Veamos un ejemplo de una expresión regular común:

Imaginemos que deseamos establecer un objetivo dentro de Google Analytics cuando un usuario finalice una conversión pero la url es dinámica y puede cumplirse en diferentes directorios.

  • /google-analytics/graciasform.html?value=100
  • /organic-search/graciasform.html?value=10
  • /organic-search/graciasform.html?value=70
  • /organic-search/graciasform.html?value=66
  • /afiliates-course/graciasform.html?value=50

Muy bien, puedes decir que esto lo podríamos lograr con 3 objetivos distintos para cada url, pero que pasa sí lo que busco es  englobar todo en uno mismo para efectos mas prácticos de análisis y además necesito crear segmentos de acuerdo al curso y al valor numérico que se arroja al final de la url para aquellos usuarios cuyo valor es mayor a 60. … ¿ya esta mas complicado verdad?

Mis resultados de expresion regular 

  • Para el Objetivo = \/[aA-zZ].+?\/graciasform\.html\?value=([1-9](.+)?)
  • Para los segmentos mayores a 60 = \/[aA-zZ].+?\/graciasform\.html\?value=([6-9][0-9]{1,}|[6-9]{2,}|[0-9][0-9]{2,})

¿Complicado?.  Un poco tal vez pero solo es al inicio porque ya conforme practicas se hace mas sencillo, ya que la clave esta en identificar para que sirve cada carácter. Pero no te preocupes veamos primero los principales caracteres de expresiones regulares para Google Analytics y posteriormente te explicare como resolví esto.

Resultado al validar la expresión regular con regex101.com en donde solo coincide con los valores que son mayores a 60

expresión regular Google Analytics

Listo, antes de explicar esta expresión regular será importante que veamos los principales caracteres para expresiones regulares dentro de Google Analytics, así que toma nota!!!!!

Comodines en expresiones regulares:

El punto (.)

Este caracter permite cualquier coincidencia individual, ya sea numero, letra o símbolo.
Ejemplos de expresion para el punto
1. Concide con 10,1A,1a,1&
1.1 Concide con 101,1A1,1a1,1&1

Signo de interrogación. (?)

Este caracter nos permite establecer una coincidencia con un caracter anterior o con niguno de los anteriores
Ejemplos de expresion para el signo de interrogación
20?. Concide con 2,0,20,22 pero no coincide con 30 o 03

Signo de mas. (+)

Este caracter permite coincidir con uno o varios caracteres anteriores
Ejemplos de expresion para el signo de mas

10+ Coincide con 10,100,1000 pero no con 1, 20,300,400,500 etc

Signo de mas asterisco. (*)

Este caracter es simliar al signo de mas (+) pero la diferencia es que permité coincidir con cero o varios caracteres anteriores

Ejemplos de expresion para el signo de asterisco

1,10, 100, 1000

Signo pipe (|)

En algunas ocasiones, resulta importante buscar una coincidencia para que estén 2 elementos distintos presentes dentro de nuestra consulta, esto se establece separándolos por un pipe (|) ya que se entiende como una u otra

search|paid coincide con search ó paid
10|1 coincide con 10 ó 1

Delimintadores en expresiones regulares:

Caracter Sombrero (^)

No estoy seguro si así se llame pero así es como lo identifico yo y se utiliza principalmente para comenzar un elemento o bien negación de algún elemento en una lista

Ejemplo de carácter de expresión regular para el sombrero (^)

  • ^10 coincide con 10, 100, 10x
  • ^10 no coincide con 110, 110x

Ejemplo de exclusión de lista

  • transacci[^o]n coincide con transacción pero no con transaccion

Caracter signo de pesos $

Este caracter indica fin de una cadena y un ejemplo del signo de pesos en expresión regular  puede ser:

  • 10$ coincide con 110, 1010
  • 10$ no coincide con 100, 10x

GRUPOS  en expresiones regulares:

Paréntesis ()

Los paréntesis nos permite agrupar elementos así como expresiones.

Ejemplo de expresion regular para paréntesis.

(t|c|b)arro concide con carro, tarro, barro. o bien puede ser similar a (carro|barro|tarro). son 2 formas de coincidir la consulta

Corchetes []

Coincide los caracteres entre corchetes en cualquier orden y también lo podemos utilizar para excluir un elemento o lista de elementos como vimos en el ejemplo del sombrero

Supongamos que deseamos establecer una expresión regular para extraer el nombre de Roberto Carlos que comiencen los nombres con mayusculas o minúsculas.
Expresion regular =  [Rr]oberto [cC]arlos  y coincidirá con los siguientes nombres.

  • roberto Carlos
  • Roberto carlos
  • Roberto Carlos
  • roberto carlos

Coincidencias {n,m}

Las coincidencias son muy utilizadas por si deseas coincidir algún mínimo de elementos dentro de la cadena de consulta. Muy frecuentemente las ocupo para cantidades con diferentes numero de dígitos en donde el primer valor es el numero mínimo y el 2o valor es el máximo.

Ejemplo de expresión regular de coincidencia [0-9]{2,} 

[0-9]{2,}  = > coincide con cualquier caracter del 0 al 9 mínimo 2 veces . Como por ejemplo 20,30,100,200

Nota: Si solo viene el valor inicial se interpreta como infinito

Signo de guión (-)

Este caracter de expresión regular crea un intervalo entre corchetes que coincidan en cualquier punto de la cadena

Ejemplo  para una lista de números y letras

  • [0-9] cualquier numero de 0 a 9 coincidira
  • [aA-zZ] coincidirá con cualquier letra mayúscula o minúsculas

Signo Barra Invertida (\)

Este caracter funciona como escape a un elemento que sea de expresión regular. Un ejemplo  es si queremos que un punto (.) sea punto en lugar de caracter de expresión regular. Solo debemos colocar una barra invertida antes del punto (.)

Es utilizamos mucho para filtros de IP dentro de Google Analytics. Ejemplo para mi Ip Personal

expresion regular IP

 

Expresion Regular  187\.190\.164\.150

Coincide con 187.190.164.150

 

 

Muy bien, una vez comprendido los principales caracteres que se utilizan para expresiones regulares dentro de Google Analytics, permiteme explicarte a detalle como es que realice la expresion regular para el caso del objetivo y segmentos con valor mayor a 60

Expresión regular para el Objetivo de Url

expresion regular goal url

 

 

 

 

 

 

Muy bien como puedes notar todas las urls hacen match con mi expresión regular dentro de la herramienta regex101.com y con ella podrás probar antes de configurar  el Goal dentro de Google Analytics

La practica que sigo al momento de crear expresiones regulares es partir mi expresión en partes e ir validando. (ejemplo con los colores)

\/[aA-zZ].+?\/graciasform\.html\?value=([1-9](.+)?)

  • [aA-zZ] => lista de la a a la z tanto mayusculas como minúsculas
  • .+? 0 o mas veces el caracter anterior
  • \/graciasform\.html\?value= => Se queda igual el texto escapando los valores de expresión regular punto (.) y signo interrogación (?)
  • [1-9] => Lista de 0 a 9
  • .+? una o mas veces el caracter anterior

Expresión regular para segmentos mayores a 60

Esta es un poco mas elaborada pero no por ello complicada, lo único que he hecho es editar el ultimo valor de los valores para extraer los mayores a 60  y con ello utilice el numero de ocurrencias

expresión regular Google Analytics

Expresión regular para ocurrencias.

Mi expresion regular para el valor es la siguiente ([6-9][0-9]{1,}|[6-9]{2,}|[0-9][0-9]{2,}) y será necesario seguir la lógica de partición, dividiendolos por el pipe (|) y entre paréntesis.

  • [6-9] => 1a lista del 6 al 9 
  • [0-9]{1,} => 2a lista del 0 al 9 con un mínimo de 1 ocurrencia para que sea múltiplos de 2 dígitos (60,70, etc) 
  • [6-9]{2,}  => 6 al 9 con mínimo 2 ocurrencias 
  • [0-9][0-9]{2,} => 2 listas del 0 al 9 con mínimo 2 dígitos. (100,200,300 etc)

Recomendaciones finales para expresiones regulares

  • Apóyate de regex101.com o bien otras herramientas antes de configurarlas.
  • Antes de configurar cualquier funcionalidad (Goal. filtro nivel vista, segmento,etc)  en Google Analytics, pruébalo con los filtros dentro de los reportes estándar

Conclusion

Espero este post haya sido de ayuda,  no olvides en dejarme tus comentarios o bien si tienes alguna expresión regular que no te cuadre compártela y con gusto vemos la forma de poder ayudarte y como ultima recomendación.


Deja un comentario