Conexión a API de Google Analytics desde Python

por | 18 mayo, 2016

Gracias a la versatilidad del lenguaje de programación Python, mediante una librería, podemos conectarnos a la API de Google Analytics para por ejemplo descargar los datos.

La ventaja es poder programar un script que descarge los datos y bien nos lo guarde en una hoja de cálculo, o insertar a una base de datos, etc,… (es la ventaja de la versatilidad de dicho lenguaje de programación)

Disponemos de una librería oficial por parte de Google y otra creada por Debrouwere.

Instalación librería Debrouwere

El primer paso es instalar la librería «google-analytics» en Python:

pip install googleanalytics

En nuestro programa importamos la librería:

import googleanalytics as ga

Para empezar a trabajar, primero necesitamos autorizar el proyecto para usar la cuenta de Analytics, para lo cual podemos ejecutar el siguiente comando desde la consola de Python:

import googleanalytics as ga
ga.authenticate(identity='myproject', interactive=True, save=True)

Con esto empezará una sesión «interactiva» (mediante navegador web) para iniciar sesión y autorizar el uso.

autorizacion-popup

Una vez autorizado nos aparecerá en nuestra consola de Python:

Authentication flow completed. You may close the browser tab

Ahora tocará autentificar el script con la cuenta de Analytics. Para ello siguiendo el consejo copiaremos el siguiente código. Ten en cuenta que tienes 2 opciones:

import googleanalytics as ga
# if you authorized via the command-line or added the `save=True` keyword
# argument you can log in by specifying just your identity
accounts = ga.authenticate(identity='myproject')
# alternatively, specify everything by hand
# (note: putting secrets right inside your code is not the
# safest thing to do)
accounts = ga.authenticate(
    client_id='....apps.googleusercontent.com',
    client_secret='...',
    refresh_token='...',
    )

Otra opción (y para mi la recomendada) es utilizar el fichero «json» que nos podemos descargar desde la consola de «Credenciales» de nuestro proyecto en «Google». Para ello tenemos que usar el siguiente código en nuestro programa de Python:

import os
import json
import googleanalytics as ga
if os.path.exists('credentials.json'):
    credentials = json.load(open('credentials.json'))
else:
    # authorize your code to access the Google Analytics API
    # (this will be interactive, as you'll need to confirm
    # in a browser window)
    credentials = ga.authorize()
    # turn the credentials object into a plain dictionary
    credentials = credentials.serialize()
    json.dump(credentials, open('credentials.json', 'w'))

ga.authenticate(**credentials)

Ahora toca seleccionar la cuenta y perfil con el que queremos trabajar, para ello con el siguiente código seleccionamos el perfil de Analytics. Para saber la cuenta/propiedad/perfil, podemos entrar en la web de Analytics y verlas:

import googleanalytics as ga
profile = ga.authenticate(
    identity='myproyect',
    interactive = True,
    save = True,
    account='debrouwere.org',
    webproperty='http://debrouwere.org',
    profile='debrouwere.org'
    )

Por último para ver que todo ha funcionado, una función rápida para sacar el valor total (suma) de las páginas vistas de ayer:

pageviews = profile.core.query.metrics('pageviews').range('yesterday').value
print(pageviews)

El código resultante de nuestro programa quedaría así:

import os
import json
import googleanalytics as ga

if __name__ == '__main__':
    profile = ga.authenticate(
        identity='miproyect',
        interactive = True,
        save = True,
        account='Mi Cuenta',
        webproperty='Mi Propiedad',
        profile='Mi Perfil'
    )

    pageviews = profile.core.query.metrics('pageviews').range('yesterday').value
    print(pageviews)
    report = profile.core.query.metrics('pageviews').range('2015-10-01', '2015-10-31').get()
    print (report['pageviews'])

 

 

Bibliografía:

  • https://developers.google.com/analytics/devguides/config/mgmt/v3/quickstart/installed-py?hl=es#enable
  • https://github.com/debrouwere/google-analytics

Deja una respuesta

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