{"id":83,"date":"2016-05-18T08:42:15","date_gmt":"2016-05-18T07:42:15","guid":{"rendered":"http:\/\/cayetanosm.es\/blog\/?p=83"},"modified":"2016-05-18T08:42:15","modified_gmt":"2016-05-18T07:42:15","slug":"conexion-a-api-de-google-analytics-desde-python","status":"publish","type":"post","link":"https:\/\/cayetanosm.es\/blog\/?p=83","title":{"rendered":"Conexi\u00f3n a API de Google Analytics desde Python"},"content":{"rendered":"<p>Gracias a la versatilidad del lenguaje de programaci\u00f3n Python, mediante una librer\u00eda, podemos conectarnos a la API de Google Analytics para por ejemplo descargar los datos.<\/p>\n<p>La ventaja es poder programar un script que descarge los datos y bien nos lo guarde en una hoja de c\u00e1lculo, o insertar a una base de datos, etc,&#8230; (es la ventaja de la versatilidad de dicho lenguaje de programaci\u00f3n)<\/p>\n<p>Disponemos de una librer\u00eda oficial por parte de Google y otra creada por Debrouwere.<\/p>\n<p>Instalaci\u00f3n librer\u00eda Debrouwere<\/p>\n<p>El primer paso es instalar la librer\u00eda \u00abgoogle-analytics\u00bb en Python:<\/p>\n<pre class=\"lang:python decode:true\">pip install googleanalytics<\/pre>\n<p>En nuestro programa importamos la librer\u00eda:<\/p>\n<pre class=\"lang:python decode:true \">import googleanalytics as ga<\/pre>\n<p>Para empezar a trabajar, primero necesitamos autorizar\u00a0el proyecto para usar la cuenta de Analytics, para lo cual podemos ejecutar el siguiente comando desde la consola de Python:<\/p>\n<pre class=\"lang:python decode:true \">import googleanalytics as ga\r\nga.authenticate(identity='myproject', interactive=True, save=True)<\/pre>\n<p>Con esto empezar\u00e1 una sesi\u00f3n \u00abinteractiva\u00bb (mediante navegador web) para iniciar sesi\u00f3n y autorizar el uso.<\/p>\n<p><a href=\"https:\/\/cayetanosm.es\/blog\/wp-content\/uploads\/2016\/03\/autorizacion-popup.jpg\" rel=\"attachment wp-att-106\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-106\" src=\"https:\/\/cayetanosm.es\/blog\/wp-content\/uploads\/2016\/03\/autorizacion-popup-300x192.jpg\" alt=\"autorizacion-popup\" width=\"300\" height=\"192\" srcset=\"https:\/\/cayetanosm.es\/blog\/wp-content\/uploads\/2016\/03\/autorizacion-popup-300x192.jpg 300w, https:\/\/cayetanosm.es\/blog\/wp-content\/uploads\/2016\/03\/autorizacion-popup.jpg 488w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Una vez autorizado nos aparecer\u00e1 en nuestra consola de Python:<\/p>\n<pre class=\"lang:python decode:true \">Authentication flow completed. You may close the browser tab<\/pre>\n<p>Ahora tocar\u00e1 autentificar el script con la cuenta de Analytics. Para ello siguiendo el consejo copiaremos el siguiente c\u00f3digo. Ten en cuenta que tienes 2 opciones:<\/p>\n<pre class=\"lang:python decode:true\">import googleanalytics as ga\r\n# if you authorized via the command-line or added the `save=True` keyword\r\n# argument you can log in by specifying just your identity\r\naccounts = ga.authenticate(identity='myproject')\r\n# alternatively, specify everything by hand\r\n# (note: putting secrets right inside your code is not the\r\n# safest thing to do)\r\naccounts = ga.authenticate(\r\n    client_id='....apps.googleusercontent.com',\r\n    client_secret='...',\r\n    refresh_token='...',\r\n    )\r\n<\/pre>\n<p>Otra opci\u00f3n (y para mi la recomendada) es utilizar el fichero \u00abjson\u00bb que nos podemos descargar desde la consola de \u00abCredenciales\u00bb de nuestro proyecto en \u00abGoogle\u00bb. Para ello tenemos que usar el siguiente c\u00f3digo en nuestro programa de Python:<\/p>\n<pre class=\"lang:python decode:true \">import os\r\nimport json\r\nimport googleanalytics as ga\r\nif os.path.exists('credentials.json'):\r\n    credentials = json.load(open('credentials.json'))\r\nelse:\r\n    # authorize your code to access the Google Analytics API\r\n    # (this will be interactive, as you'll need to confirm\r\n    # in a browser window)\r\n    credentials = ga.authorize()\r\n    # turn the credentials object into a plain dictionary\r\n    credentials = credentials.serialize()\r\n    json.dump(credentials, open('credentials.json', 'w'))\r\n\r\nga.authenticate(**credentials)\r\n<\/pre>\n<p>Ahora toca seleccionar la cuenta y perfil con el que queremos trabajar, para ello con el siguiente c\u00f3digo seleccionamos el perfil de Analytics. Para saber la cuenta\/propiedad\/perfil, podemos entrar en la web de Analytics y verlas:<\/p>\n<pre class=\"lang:python decode:true\">import googleanalytics as ga\r\nprofile = ga.authenticate(\r\n    identity='myproyect',\r\n    interactive = True,\r\n    save = True,\r\n    account='debrouwere.org',\r\n    webproperty='http:\/\/debrouwere.org',\r\n    profile='debrouwere.org'\r\n    )\r\n<\/pre>\n<p>Por \u00faltimo para ver que todo ha funcionado, una funci\u00f3n r\u00e1pida para sacar el valor total (suma) de las p\u00e1ginas vistas de ayer:<\/p>\n<pre class=\"lang:python decode:true\">pageviews = profile.core.query.metrics('pageviews').range('yesterday').value\r\nprint(pageviews)\r\n<\/pre>\n<p>El c\u00f3digo resultante de nuestro programa quedar\u00eda as\u00ed:<\/p>\n<pre class=\"lang:python decode:true \">import os\r\nimport json\r\nimport googleanalytics as ga\r\n\r\nif __name__ == '__main__':\r\n    profile = ga.authenticate(\r\n        identity='miproyect',\r\n        interactive = True,\r\n        save = True,\r\n        account='Mi Cuenta',\r\n        webproperty='Mi Propiedad',\r\n        profile='Mi Perfil'\r\n    )\r\n\r\n    pageviews = profile.core.query.metrics('pageviews').range('yesterday').value\r\n    print(pageviews)\r\n    report = profile.core.query.metrics('pageviews').range('2015-10-01', '2015-10-31').get()\r\n    print (report['pageviews'])<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Bibliograf\u00eda:<\/p>\n<ul>\n<li>https:\/\/developers.google.com\/analytics\/devguides\/config\/mgmt\/v3\/quickstart\/installed-py?hl=es#enable<\/li>\n<li>https:\/\/github.com\/debrouwere\/google-analytics<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Gracias a la versatilidad del lenguaje de programaci\u00f3n Python, mediante una librer\u00eda, 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\u00e1lculo, o insertar a una base de datos, etc,&#8230;\u2026 <span class=\"read-more\"><a href=\"https:\/\/cayetanosm.es\/blog\/?p=83\">Leer m\u00e1s &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[8,6],"tags":[3,33,31],"class_list":["post-83","post","type-post","status-publish","format-standard","hentry","category-analitica","category-programacion","tag-analytics","tag-api","tag-python"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/cayetanosm.es\/blog\/index.php?rest_route=\/wp\/v2\/posts\/83","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cayetanosm.es\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cayetanosm.es\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cayetanosm.es\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cayetanosm.es\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=83"}],"version-history":[{"count":8,"href":"https:\/\/cayetanosm.es\/blog\/index.php?rest_route=\/wp\/v2\/posts\/83\/revisions"}],"predecessor-version":[{"id":109,"href":"https:\/\/cayetanosm.es\/blog\/index.php?rest_route=\/wp\/v2\/posts\/83\/revisions\/109"}],"wp:attachment":[{"href":"https:\/\/cayetanosm.es\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=83"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cayetanosm.es\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=83"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cayetanosm.es\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=83"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}