Capítulo 13 Google Analytics desde R
Entender a la audiencia que ingresa a nuestra web nos ayuda a tomar mejores decisiones, sea estas decisiones comerciales o de liberación de contenido. Podemos, así, insertar un contador de visitas o utilizar Google Analytics para empezar a colectar mucho más que el total de visitas.
13.1 Problemática
Tenemos una web a la que ya le colocamos el código de Google Analytics para entender estadísticas de visitas a mi web, pero quiero reportes que hoy la web no nos brinda. Necesitamos acceder a la data en crudo para poder crear nuestros propios reportes y acceder a ellos incluso sin tener que ingresar a la web de Google Analytics.
13.2 Acceso a la data
Vamos a asumir para este caso que ya tenemos cuenta en google analytics y ya estamos trackeando datos de nuestra web a través de alguna vista. Para este caso voy a utilizar las estadísticas a la web que actualmente estás leyendo.
Para acceder a la data de Google Analytics usaremos la librería googleAnalyticsR
. Además, para manipular rápidamente fechas desde o hasta usaremos la librería lubridate
.
Luego, nos tenemos que autenticar. Para ello usaremos la función ga_auth()
, la cual nos abrirá una página web para loguearnos con la cuenta en que tenemos acceso a Google Analytics.
Ahora que estamos autenticados podemos traer todas nuestras cuentas utilizando la función ga_account_list()
.
De acá buscaremos la fila de la web que nos interesa y de ahí obtendremos la columna viewID
. El viewID en Google Analytics para esta web es el siguiente:
Finalmente, necesitamos dos variables de la fecha desde cuándo hasta cuándo queremos la data.
O si deseamos podemos solo calcular la información de los últimos dos meses, o dos días, etc.
# Dos meses atrás hasta ahora
desde <- seq(now(), length = 2, by = "-2 months")[2] %>% as_date() %>% as.character()
hasta <- now() %>% as_date() %>% as.character()
desde
#> [1] "2020-04-26"
hasta
#> [1] "2020-06-26"
Así, ya podemos hacer un llamado para obtener los datos que necesitemos utilizando la función google_analytics()
.
historial <- google_analytics(ga_id,
date_range = c(desde, hasta),
metrics = "users",
dimensions = "date")
Con este data frame podríamos filtrarlo o visualizarlo, dependiendo de lo que necesitemos.
13.3 Visualización
Ahora con acceso a la data podemos utilizar las múltiples métricas y dimensiones disponibles. Para este caso vamos a ejemplificar el visualizar la ciudad desde donde visitan esta web en los últimos 90 días, que está relacionado con la información del párrafo de la página principal, el prefacio, de esta web (sin embargo, para ese otro cálculo se realiza para otro periodo de tiempo).
# Últimos 90 días hasta la fecha
desde <- seq(now(), length = 2, by = "-90 days")[2] %>% as_date() %>% as.character()
hasta <- now() %>% as_date() %>% as.character()
# Agregamos la ciudad como dimensión
historial <- google_analytics(ga_id,
date_range = c(desde, hasta),
metrics = "users",
dimensions = c("cityID", "city"))
#> 2020-06-26 14:03:21> Downloaded [219] rows from a total of [219].
Como vemos, la dimensión también permite un vector como input. Crearemos un histograma con las top 5 ciudades que visitaron esta web en los últimos 90 días.
historial %>%
filter(city != "(not set)") %>%
group_by(city) %>%
summarise(total = sum(users)) %>%
mutate(proporcion = total / sum(total)) %>%
top_n(5, wt = proporcion) %>%
mutate(city = reorder(city, proporcion, sum)) %>%
ggplot() +
aes(proporcion, city) +
geom_col() +
labs(
x = "Proporción de visitas",
title = "Proporción de visitas por ciudad",
y = ""
)
Tener en cuenta que en este caso hay un tema de reconocimiento de los IPs que vienen de Lima, Perú, y por eso no salen como primer visitante. Al momento de realizar este análisis salían todos como “(not set)”. Sin embargo, si se hace el mismo análisis por país y no por ciudad sí se reconoce y sale Perú como uno de los top que más visita la web.
13.4 Conclusión
Vemos que es muy fácil el acceder a la data de Google Analytics. Podemos crear nuestros propios reportes directamente desde R para analizar cuantas dimensiones necesitemos sin tener que usar la reportería que nos provee Google Analytics.