Una conexión de titanes: Google Analytics y R Statistics

En este post vamos a ver cómo hacer la conexión entre dos de las herramientas más potentes que conozco: Google Analytics y R statistics. Pero antes de esto, voy a explicar brevemente qué es R statistics para aquellos que no lo conozcáis (Google Analytics creo que no necesita presentación en este blog).titanes

R Statistics es un entorno de software libre enfocado a la computación estadística y a la creación de gráficos estadísticos. Funciona por librerías y los usuarios pueden crear sus propias librerías para subirlas y que sean descargadas y utilizadas por otros usuarios después de la correspondiente revisión y validación de las mismas. Dicho de otra manera, se trata de un software estadístico libre muy potente que está en constante crecimiento ya que la comunidad va creando funciones, gráficos y demás. Al poseer una comunidad muy activa e inteligente, este método de funcionamiento hace que sea una herramienta inmensa y perfecta para trabajar con Big Data y hacer Data Mining. Para todos los que usamos R statistics desde hace tiempo, esta es la herramienta que nunca puede faltar en nuestros ordenadores, cosa que no resulta nada difícil ya que funciona en múltiples plataformas y es de acceso totalmente libre.

Hechas las presentaciones pertinentes, muchos de vosotros ya estaréis viendo el montón de posibilidades que se nos presentan si conseguimos una conexión cómoda y fluida entre R y Google Analytics. Evidentemente podríamos vivir sin dicha conexión, ya que siempre tenemos la opción de descargar los datos de un informe o del Query Explorer en formato “csv” y luego cargarlos en R. Pero ¿para qué perder tanto tiempo en todo este trajín de datos si podemos lanzar queries directamente a Google Analytics desde R? Veamos cómo hacerlo:

1) Lo primero que debemos hacer es acceder a nuestra Developer Console de Google y crear un proyecto. Esto es lo que nos dará las credenciales para crear el Token que nos permitirá conectar R con Google Analytics.

2) Una vez creado el proyecto, ya tenemos acceso a un Client ID y su Client Secret que son los valores que necesitamos para crear el Token desde R. Estos dos valores se obtienen en el apartado “Credentials” dentro de “APIS & auth” como podéis ver en la siguiente imagen.

Developers Console

3) Ahora que ya tenemos los valores necesarios, podemos hacer la llamada desde R. Como veréis en el siguiente código, antes de la conexión en sí debemos cargar las dos librerías necesarias para dicha conexión.

RGoogleAnalytics 1

4) Una vez lograda la conexión entre Google Analytics y Rstatistics ya podemos empezar la fiesta de las queries para extraer los datos que queramos. En este punto lo primero que debemos hacer es construir la query mediante las funciones “Init” y “QueryBuilder”, para después ejecutarla mediante la función “GetReportData”. A continuación os dejo un pequeño ejemplo para que veáis cual es la forma de utilizar estas funciones.

RGoogleAnalytics 2

Las limitaciones a las que estamos expuestos al realizar queries son  un máximo de 7 dimensiones y 10 métricas por query. Son unas limitaciones que pueden ser molestas en algún determinado momento, pero nada grave que no se pueda esquivar mediante algo de “magia” del Data Miner 😉

Después de la mala noticia comentaros que mediante el parámetro “paginate_query” de la función “GetReportData” podemos hacer que la propia función nos haga inmunes al límite de las 10.000 observaciones (filas) de Google Analytics; ya que hace que la función vaya haciendo llamadas de 10.000 filas en 10.000 filas y posteriormente haga el merge para que nosotros ya recibamos todos los datos en una única tabla lista para el análisis.

5) Y… ya está. Una vez llegados a este punto ya hemos conseguido tener nuestros datos en un data.frame de R listo para ser explotado y aprovechado al máximo por un buen estadístico/data scientist.

 

Espero que esta guía paso a paso sobre como conectar Google Analytics con R Statistics os sirva de mucha ayuda, que los que hayáis conocido R mediante este post os animéis a explorar esta herramienta tan potente e interesante y que vuestros análisis sean muy fructíferos (y que me lo contéis en los comentarios si os apetece, por supuesto).Ü

4 Comments

  1. Suni Vazquez

    Hola Anna,

    un post muy útil y directo al grano :). Me abre un montón de posibilidades.

    Gracias!

  2. Anna Fernández

    Me alegra mucho saber que te ha resultado útil.

    Saludos y a darle duro al Data Mining! 😉

  3. David

    Hola Anna,

    My útil tu artículo.

    ¿Tendrías idea de por qué estoy obteniendo el siguiente error?

    query.list
    > # Create the Query Builder object so that the query parameters are validated
    > ga.query
    > # Extract the data and store it in a data-frame
    > ga.data <- GetReportData(ga.query, token)
    Error in ParseDataFeedJSON(GA.Data) :
    code : 403 Reason : User does not have sufficient permissions for this profile.

    No he tenido problema con el Token, sin embargo, cuando lanzo el GetDataReport recibo ese error, no sé si se debe a al Table ID la cual he obtenido haciendo getProfiles(token)

    Saludos y muchas gracias,
    David

  4. Anna Fernández

    Hola David,

    Gracias por tu comentario, me alegra saber que te ha resultado útil.

    Sobre el error que comentas debe ser porque no tienes permisos para el table id que estás llamando. Lo que debes hacer es poner como table id el identificador de alguna de tus vistas para poder extraer correctamente los datos. Ten en cuenta que si no tienes permisos a la vista en cuestión, no vas a pode extraer datos de la misma (sino todo el mundo podría obtener datos de otros y no es plan) 😉

    Espero haberte ayudado. Saludos!

Leave Comment

Your email address will not be published. Required fields are marked *