Cada vez existen más herramientas para poder montar dashboards de forma rápida y sencilla pero… ¿Cómo podemos unificar datos que provienen de diferentes fuentes?
En este post vamos a montar un sencillo cuadro de mando combinando información relevante para el negocio desde orígenes distintos.
Definiendo nuestros objetivos
Planteemos primero a qué nos queremos dedicar: Somos Datola Merchandising y comercializamos camisetas originales online (yo en realidad quería vender riñoneras, pero no hay muchos datos en la red sobre ventas de riñoneras ☹).
Para la toma de decisiones a nivel estratégico nos han pedido un dashboard que recoja 3 cosas:
- La información sobre tráfico y transacciones en nuestro ecommerce, que ya tenemos en Google Analytics.
- La cotización diaria de la empresa en bolsa y el precio medio de las camisetas de la competencia.
- Los resultados de búsqueda de camisetas de los usuarios en el buscador de Google.
Para ello, vamos a quedarnos en el entorno de Google. Usaremos BigQuery como base para unificar los datos y transformar la información y Data Studio como herramienta de visualización.
Volcando los datos de Google Analytics a Data Studio
El primer punto es sencillo. Podemos conectar directamente Google Analytics a Data Studio o si ya tenemos los datos de GA volcados a BigQuery, conectar directamente BQ a Data Studio:

Con esto ya tendremos toda la información recogida por la analítica de la web lista para dibujarse en el Data Studio.

Scraping de datos públicos
Para poder obtener la cotización, o cualquier otro dato público en cualquier tabla de internet, podemos hacer un scraping básico con una hoja de Google Sheets.

Sólo tenemos que indicar la página de la que queremos obtener la información en la función «IMPORTHTML»
Podemos recuperar el precio al que tiene sus camisetas originales la competencia usando «IMPORTXML»

El primer argumento de la función es la página de la que queremos scrapear el precio. El segundo argumento es la consulta xpath donde está el dato.
Volcando datos de Google Sheets a Big Query
Bien, tenemos los datos en Google Sheets y podríamos caer en la tentación de llevarlos directamente a Data Studio. Está bien si el dato no necesita transformación y no lo vamos a usar con otros datos, pero si no es así, lo interesante es pasar por BigQuery para limpiarlo, transformarlo y definir kpis mezclándolo con otras métricas.
Tal vez ahora no hagamos operaciones muy complejas y sólo queramos presentar la información de diferentes fuentes, pero en un futuro puede interesarnos operar con esos datos cruzados y diseñar nuevos indicadores para la marcha del negocio (hay mucha información que picar para liderar el competitivo mercado de las camisetas con mensajes chistosos).
Creamos por tanto una tabla en BigQuery a partir de la información que tenemos en Google Sheets:


¡Estupendo! Podemos jugar un poco con los datos. Por ejemplo, si queremos calcular el precio medio de las camisetas de nuestros competidores sólo tenemos que escribir unas líneas en SQL.
SELECT
safe_divide(SUM(columnaPrecio), COUNT(columnaPrecio)) as PrecioMedio
FROM 'mi-proyecto-XYZ.Datola.competencia'
Volvemos a conectar Data Studio y BigQuery (esta vez con las nuevas tablas de cotización bursátil y precios de la competencia) y ya podemos pintar.

Obtener datos de Google Trends con RStudio
Por último, vamos a extraer información de Google Trends. Para ello existen servicios free y de pago, pero en este caso vamos a optar por hacer una consulta con RStudio. En esta página nos explican cómo hacerlo con unas pocas líneas
Como nuestro negocio son las camisetas, la consulta quedaría más o menos así:
#instalamos librerías
#install.packages("gtrendsR")
#install.packages("googlesheets4")
#install.packages("googleAuthR")
#install.packages("taskscheduleR")
#cargamos librerías
library(gtrendsR)
library(dplyr)
library(googlesheets4)
library(googleAuthR)
library(taskscheduleR)
#hacemos la consulta a Google Trends
camiseta <- gtrends(c("camiseta"), time = "now 7-d", geo = c("ES"))
#estructuramos los datos en una tabla
camisetaRelated <- camiseta$related_queries
Se genera un dataset que ya podemos guardar en Google Sheets:
#nos autentificamos pasándole en token
gs4_auth("token.json")
#guardamos el dataset en google sheets
dt = write_sheet(camisetaRelated, ss="<url_de_la_hoja>", sheet = "camiseta")
Para que RStudio pueda escribir en las hojas de cálculos seguramente necesites generar un token para autentificarte. Te dejo un link donde se explica cómo conseguirlo y el enlace al código que yo he usado:
Volveremos a conectar Sheets con BigQuery creando una nueva tabla y BigQuery con DataStudio igual que hicimos en el primer paso. Conseguimos así unificar los datos de nuestra tercera fuente.
Unificar datos y visualizarlos en Data Studio
En BigQuery tenemos ya todos los datos unificados, podemos transformarlos, cruzarlos y darles la forma que queramos, siempre será más eficiente hacerlo aquí que en la herramienta de visualización.
Sólo queda disfrutar diseñando el dashboard.

Parece que debemos aplazar el lanzamiento de la línea de riñoneras y enfocarnos en las camisetas deportivas durante estos días…