Google Analytics es una herramienta de medición analítica que nos permite crear y administrar informes personalizados. Pudiendo seleccionar las dimensiones, métricas, diseños y exportaciones.
Pero, ¿qué pasaría si ese reporte supera las 5000 filas que nos permite extraer Google Analytics?
Podríamos optar por el uso de Big Query, una visualización en Data Studio (siempre y cuando no supere las 750.000 filas) o utilizando lenguajes de programación complementando a las herramientas analíticas. Por ello, el objetivo de este artículo es dar a conocer una alternativa de extracción o recuperación de reportes de Google Analytics con R. En él se explica una de las muchas posibilidades para extraer datos-reportes con R de Google Analytics.
En este caso se realizará a través de una llamada directa al API de Google Analytics, que nos permitirá exportar los datos. Podremos recuperar datos y comunicarlos a través de RStudio, siendo este el que nos va a proporcionar el entorno informático estadístico R.
Veamos cómo hacerlo:
- Lo primero que debemos realizar antes de lanzar el Query, es obtener los valores para lanzar la conexión. Para ello, debemos entrar en Developer Console de Google donde crearemos un proyecto, el cual nos permitirá obtener las credenciales necesarias para crear el Token que conectará Google Analytics con R.
Ya creado el proyecto, tendremos el acceso a un Cliente ID y al Cliente Secrect que son los datos necesarios para crear el Token desde R.
- Con los valores necesarios para hacer la conexión entre Google Analytics y R, ahora veremos cómo escribir la llamada en código.
#cargar
require(RGoogleAnalytics)
#credenciales para asignar la cuenta de Google Analytics seleccionada
client.id <- "" #<--poner el cliente ID que comentábamos en el paso 1
client.secret <- "" #<--poner el cliente secrect que encontramos mencionado en el paso 1
#crear la llamada del Token, la conexión
token <- Auth(client.id,client.secret)
save(token,file="./token_file")
load("token_file")
ValidateToken(token)
- Una vez que ya tenemos la conexión, vamos a centrarnos en los datos que queremos extraer. Para ello, lo primero que debemos hacer es construir el Query mediante las funciones “Init” y “QueryBuilder” que posteriormente se ejecutará con la función “GetReportData”, como veréis a continuación:
#Query
query <- Init(start.date = fecha,
end.date = fecha,
dimensions = "",
metrics = "",
sort = "-",
max.results = 10000,
table.id = "ga:xxxxxxxxx")
#ejecución del Query
ga.data <- GetReportData(QueryBuilder(query), token, paginate_query = T, delay = 0,split_daywise = F)
nombre <- paste0('XXXXXXX_',fecha)
#escribir en un archivo csv llamado My Data Export
write.csv(ga.data, paste0("./CSV_exports/",nombre,".csv"), row.names = TRUE)}
En este caso hemos utilizado la extracción del reporte a través del formato “csv”.
También podemos seleccionar específicamente la ubicación del archivo que estamos descargando.
#escribir en un archivo csv llamado My Data Export
write.csv (ga.Data, “C:myFolder/My Data Export.csv”)}
Como comentábamos al principio, tanto en Google Analytics como en Data Studio, tienen unas limitaciones de filas a la hora de extraer los reportes. Con R estamos utilizando dentro de la función “GetReportData” un parámetro “paginate_query” que nos permite ir haciendo llamadas de 10000 filas en 10000 filas. Posteriormente, hace la combinación de cada llamada y recibimos todos los datos del periodo, dimensiones y métricas que necesitamos analizar en una tabla.
Encontramos como límite que solo podremos realizar un máximo de 7 dimensiones y 10 métricas por Query realizado Pero estas limitaciones no nos han de molestar ya que con Data Mining podemos encontrar una solución.
Es importante recordar que siempre podemos encontrar nuevas formas de darle la vuelta a los problemas, especialmente en el mundo de la tecnología y analítica. Por ello, es de igual importancia mantenerse al día ya que cambia cada 6 meses con nuevas herramientas y técnicas que se pueden usar para estrechar los límites. Estar al pendiente y seguir aprendiendo lo último en tecnología.
*Fuente imagen destacada: Pexels