Función CASE Data Studio

La función CASE y el Regex en Data Studio

Cuando realizamos análisis o montamos una visualización de datos en Google Data Studio, en muchas ocasiones nos vamos a encontrar con dificultades que nos impidan analizar la información que realmente necesitamos.

En ocasiones, no habrá agrupaciones de contenido generadas en Google Analytics, o necesitaremos renombrar un grupo de dimensiones con una serie de valores concretos, o agrupar segmentos de métricas… y no siempre valen los filtros. Para eso, Data Studio nos ofrece la función CASE, con la que se abre un nuevo mundo totalmente personalizable de visualización de los datos y, para mí, hace que esta herramienta sea el doble de potente.

Para ayudar a la función CASE que ahora explicaré, existen las funciones de texto, que nos permiten establecer condiciones basadas en diferentes características. Y dentro de estas funciones de texto, tenemos mi favorita, que es REGEXP_MATCH, con la que podremos hacer verdaderas movidas como algunos de los ejemplos que vais a ver más adelante.

Pero antes de nada…

¿Dónde utilizo la función CASE?

Antes de entrar en materia, existen diferentes formas de implementar la función CASE en Google Data Studio. La primera de ellas y la que recomiendo es la de crear campos personalizados en nuestra fuente de datos directamente:

Creación de campo personalizado desde fuente de datos

La segunda forma, que os sacará de algún apuro y es bastante útil cuando trabajamos con Datos combinados, es crear un campo «al vuelo»:

Creación de campo personalizado «al vuelo»

De cualquier forma, debéis saber que el primero se quedará guardado en la fuente de datos para su posterior uso, mientras que el segundo no, solo podremos usarlo en el gráfico donde lo hemos creado y, si queremos reutilizarlo, deberemos volver a crearlo en otro gráfico.

Destripando la función CASE de Data Studio

La función CASE, al igual que en SQL, es una función que se utiliza para crear condiciones que, según se cumplan, devolverán un valor u otro. Esto nos da muchísimas posibilidades, sin embargo, lo primero que deberemos tener en cuenta es que no aceptará operaciones matemáticas en la propia construcción de la condición, por lo que si lo vemos necesario, deberemos crear un campo personalizado previamente en nuestra fuente de datos.

Volviendo a la propia función, tiene una forma como la siguiente:

CASE 
    WHEN País IN ("EE. UU.","Canadá","México") THEN "Norteamérica" 
    WHEN País IN ("Inglaterra","Francia") THEN "Europa" 
    ELSE "Otro" 
END

Como podéis ver, tiene una apertura con CASE y un final con END y, en medio, es donde sucede toda la magia. La estructura siempre va a ser igual, una vez abierta la función, continuaremos tal que así:

WHEN <dimensión/métrica> <condición> THEN <resultado>

Ahora bien, como vamos a ver a continuación, la condición puede abarcar desde operadores de comparación, operadores lógicos y las propias funciones de texto que explicaré más adelante. Lo que tenemos que tener muy claro es que TODAS las condiciones devuelven valores booleanos, es decir, TRUE o FALSE y, que además, las condiciones se procesan de manera secuencial, es decir, si se diera el caso de que se cumplen dos de las condiciones, se asignará el resultado de la primera que se compruebe (la que esté más arriba).

Función CASE con operadores de comparación

Cuando hablamos de operadores de comparación, nos referimos a comparaciones del tipo igual a, mayor que o menor que. Esto nos permitirá trabajar principalmente con condiciones en las que tanto el campo de la izquierda como el de la derecha de los operadores deben ser del mismo tipo.

OperadorFuncionalidad
=Igual a
!=Diferente a
>Mayor que
>=Mayor o igual que
<Menor que
<=Menor o igual que

Por supuesto, vamos a ver ahora algún ejemplo para que quede más claro, en este caso, utilizando la fuente de Google Analytics y como métrica:

CASE 
    WHEN Sesiones > 100 THEN 0 
    WHEN Sesiones <= 150 THEN 1
    ELSE 99
END

Como dimensión:

CASE 
    WHEN Medio = "cpc" THEN "Esto es Google Ads" 
    WHEN Medio != "organic" THEN "Esto SEO no es"
    ELSE "Uff, pues pueden ser muchas cosas" 
END

El resultado tras el THEN, también podría ser un campo calculado o incluso otra dimensión o métrica de la fuente de datos utilizada, por ejemplo. De igual modo, el ELSE nos dará un resultado general siempre que no se cumpla ninguna de las condiciones superiores.

Función CASE con operadores lógicos

Los operadores lógicos sirven para establecer varias condiciones en un único WHEN, es decir, que para mostrar un resultado THEN se debe cumplir una condición u otra, o una condición y otra al mismo tiempo.

OperadorFuncionalidad
ANDcondición 1 Y condición 2
ORcondición 1 O condición 2

Vamos con el ejemplo:

CASE 
    WHEN (Sesiones > 100) AND (Sesiones < 120) THEN 0 
    WHEN (Sesiones < 150) OR (Sesiones > 120) THEN 1
    ELSE 99
END

Por poner otro ejemplo de la vida real, yo me he visto en situaciones en las que he tenido que cocinar un dato debido a un error de medición, entonces debía mostrar que dicho campo mostrase un número concreto para un mes determinado, y para el resto de meses que mostrase un campo calculado general. En este caso, el ELSE sería el campo calculado general y la condición el mes en cuestión para el que mostraba el dato cocinado.

Función CASE con IS NULL

Este caso no tiene demasiada explicación, pero es ideal cuando nos falta información de alguna dimensión o métrica. Saber si un campo está vacío nos permite, por ejemplo, atribuirle un valor predeterminado o una nomenclatura común. Imaginad:

CASE 
    WHEN Página IS NULL THEN "¿Qué ha pasado?"
    ELSE Página
END

En el día a día esto sucede mucho cuando trabajamos con integraciones de Google Sheets o bases de datos en Google Data Studio, que suceda en Google Analytics es más complicado.

Función CASE con IN y NOT IN

Para mí, los más útiles de los condicionales fuera de las funciones de texto. Básicamente se trata de una condición en la que comprobamos si una dimensión coincide con alguno de los contenidos dentro de un array. Para tenerlo más claro:

CASE 
    WHEN País IN ("EE. UU.","Canadá","México") THEN "Norteamérica" 
    WHEN País NOT IN ("Inglaterra","Francia") THEN "Europa" 
    ELSE "Otro" 
END

Con el propio ejemplo de Google se ve a la perfección. Esas condiciones WHEN devolverían TRUE y mostrarían «Norteamérica» si la dimensión País tuviese asignado alguno de los valores que hay dentro de los paréntesis. El NOT IN es a la inversa, devuelve TRUE si no contiene ninguno de esos valores.

Las condiciones IN y NOT IN son las mejores para crear agrupaciones de contenido básico en Data Studio, siempre y cuando no contenga demasiados elementos, sino, toca tirar de la mejor, REGEXP_MATCH, que explicaré justo en el siguiente punto

Cómo usar Regex en la función CASE

Y llegados a este momento, olvidaos de todo lo anterior, porque con las REGEX podemos hacer absolutamente todo y más. Una condición REGEXP_MATCH establece que un campo debe coincidir con una expresión regular para devolver el resultado tras el THEN y, si habéis leído el artículo sobre expresiones regulares básicas, seguramente os hagáis una idea de todas las posibilidades que existen.

La función REGEXP_MATCH se compone de la siguiente manera:

REGEXP_MATCH(Campo, "Expresión regular que establece la condición") THEN "Resultado"

A continuación vamos a ver ejemplos de cómo utilizar esta condición:

CASE 
    WHEN REGEXP_MATCH(Producto, "(.*vino.*|.*cerveza.*)") THEN "Bebidas alcohólicas" 
    WHEN REGEXP_MATCH(Producto, ".*refresco.*|.*zumo.*") THEN "Bebidas sin alcohol" 
    WHEN REGEXP_MATCH(Producto, ".*1[0-9]{2}$") THEN "Producto de proveedor 1xx"
    ELSE "Otro tipo de producto" 
END

En el ejemplo anterior simplemente estamos agrupando el campo Producto de Google Analytics según elementos que contenga su título. Creamos agrupaciones de producto según su nombre.

CASE 
    WHEN REGEXP_MATCH(Página, "^/cat/(bebidas|comida)/.*/$") THEN "Comida y bebida" 
    WHEN REGEXP_MATCH(Página, ".*(vasos?|platos?).*") THEN "Vajilla"
    ELSE "Otro tipo de producto" 
END

En este ejemplo estamos creando agrupaciones de contenido según la url a través de la dimensión Página de Google Analytics. Imagina también este mismo ejemplo con Página de destino, para conocer el interés que provocan los artículos de una tienda online o la categoría de esos artículos a los usuarios que aterrizan en ellos y qué acaban comprando…

Al final, con la función REGEXP_MATCH puedes crear las agrupaciones que necesites y analizar su rendimiento. En el día a día, yo suelo utilizar el CASE con REGEX justamente para esto, pues es una buena herramienta para conocer KPIs propios de SEO según se comporte el usuario en páginas de determinados tipos.

Y aunque todavía me queda por explicaros las funciones de texto, que hay unas cuantas y nos ayudan a detallar nuestros CASE, lo dejo para otro artículo. Espero que el contenido os haya servido y que llenéis vuestros paneles de Data Studio con esta función, que mola mucho. ¡Nos leemos!

Miguel

Ecommerce Data Analyst
¿Compartes?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *