Con la ayuda de este tutorial podrás seguir los pasos para acceder a la versión 4 de la API de informes de Analytics.
1. Habilitar la API
Para empezar a utilizar la versión 4 de la API de informes de Analytics, primero debes usar la herramienta de configuración, que te guiará por los pasos necesarios para crear un proyecto en la consola de APIs de Google, habilitar la API y crear las credenciales.
Nota: Para crear un ID de cliente web o un cliente para la aplicación descargada, debes definir un nombre de producto en la pantalla de consentimiento. Si todavía no lo has hecho, se te pedirá rellenes los datos de la pantalla de consentimiento.Crear credenciales
- Abre la página Credenciales.
- Haz clic en Crear credenciales y selecciona ID de cliente de OAuth.
- En Tipo de aplicación, selecciona Otro.
- En el campo del ID de cliente, indica quickstart y haz clic en Crear.
En la página Credenciales, haz clic en el ID de cliente que acabas de crear y, después, en Descargar JSON. Guarda el archivo como client_secrets.json
, lo necesitarás más adelante en el tutorial.
2. Instalar la biblioteca de cliente
Puedes utilizar un administrador de paquetes o descargar e instalar la biblioteca de cliente Python manualmente:
pip
Usa pip, la herramienta recomendada para instalar paquetes de Python:
sudo pip install --upgrade google-api-python-client
Setuptools
Utiliza la herramienta easy_install incluida en el paquete setuptools:
sudo easy_install --upgrade google-api-python-client
Instalación manual
Descarga la última biblioteca de cliente para Python de la API de Google, desempaqueta el código y ejecuta este comando:
sudo python setup.py install
3. Configurar el código de muestra
Deberás crear un archivo llamado HelloAnalytics.py
, que contendrá el código de muestra indicado.
- Copia o descarga el siguiente código fuente en
HelloAnalytics.py
. - Traslada el archivo
client_secrets.json
descargado anteriormente al mismo directorio en el que se encuentra el código de muestra. - Sustituye el valor de
VIEW_ID
por un ID de vista, que puedes obtener mediante el Explorador de cuentas.
"""Hello Analytics Reporting API V4.""" import argparse from apiclient.discovery import build import httplib2 from oauth2client import client from oauth2client import file from oauth2client import tools SCOPES = ['https://www.googleapis.com/auth/analytics.readonly'] DISCOVERY_URI = ('https://analyticsreporting.googleapis.com/$discovery/rest') CLIENT_SECRETS_PATH = 'client_secrets.json' # Path to client_secrets.json file. VIEW_ID = '<REPLACE_WITH_VIEW_ID>' def initialize_analyticsreporting(): """Initializes the analyticsreporting service object. Returns: analytics an authorized analyticsreporting service object. """ # Parse command-line arguments. parser = argparse.ArgumentParser( formatter_class=argparse.RawDescriptionHelpFormatter, parents=[tools.argparser]) flags = parser.parse_args([]) # Set up a Flow object to be used if we need to authenticate. flow = client.flow_from_clientsecrets( CLIENT_SECRETS_PATH, scope=SCOPES, message=tools.message_if_missing(CLIENT_SECRETS_PATH)) # Prepare credentials, and authorize HTTP object with them. # If the credentials don't exist or are invalid run through the native client # flow. The Storage object will ensure that if successful the good # credentials will get written back to a file. storage = file.Storage('analyticsreporting.dat') credentials = storage.get() if credentials is None or credentials.invalid: credentials = tools.run_flow(flow, storage, flags) http = credentials.authorize(http=httplib2.Http()) # Build the service object. analytics = build('analytics', 'v4', http=http, discoveryServiceUrl=DISCOVERY_URI) return analytics def get_report(analytics): # Use the Analytics Service Object to query the Analytics Reporting API V4. return analytics.reports().batchGet( body={ 'reportRequests': [ { 'viewId': VIEW_ID, 'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}], 'metrics': [{'expression': 'ga:sessions'}] }] } ).execute() def print_response(response): """Parses and prints the Analytics Reporting API V4 response""" for report in response.get('reports', []): columnHeader = report.get('columnHeader', {}) dimensionHeaders = columnHeader.get('dimensions', []) metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', []) rows = report.get('data', {}).get('rows', []) for row in rows: dimensions = row.get('dimensions', []) dateRangeValues = row.get('metrics', []) for header, dimension in zip(dimensionHeaders, dimensions): print header + ': ' + dimension for i, values in enumerate(dateRangeValues): print 'Date range (' + str(i) + ')' for metricHeader, value in zip(metricHeaders, values.get('values')): print metricHeader.get('name') + ': ' + value def main(): analytics = initialize_analyticsreporting() response = get_report(analytics) print_response(response) if __name__ == '__main__': main()
4. Ejecutar el código de muestra
Ejecuta el código de muestra con el siguiente comando:
python HelloAnalytics.py
- La aplicación cargará la página de autorización en un navegador.
- Si todavía no has iniciado sesión en tu cuenta de Google, se te pedirá que lo hagas. Si has iniciado sesión en varias cuentas de Google, se te pedirá que selecciones una para usarla con la autorización.
Cuando finalices estos pasos, el código de muestra enviará el número de sesiones de los últimos siete días correspondiente a la vista indicada.
Solucionar problemas
AttributeError: 'Module_six_moves_urllib_parse' object has no attribute 'urlparse' (El objeto 'Module_six_moves_urllib_parse' no tiene el atributo 'urlparse')
Este error puede ocurrir en Mac OSX, ya que la instalación predeterminada del módulo "six" (una dependencia de esta biblioteca) se carga antes de la que instala pip. Para solucionar el problema, agrega la ubicación de instalación de pip a la variable del entorno del sistema PYTHONPATH
:
Determina la ubicación de instalación de pip con el siguiente comando:
pip show six | grep "Location:" | cut -d " " -f2
Añade la siguiente línea de código a tu archivo
~/.bashrc
y sustituye<pip_install_path>
por el valor determinado en el punto anterior:export PYTHONPATH=$PYTHONPATH:<pip_install_path>
Vuelve a cargar el archivo
~/.bashrc
en cualquier ventana de terminal abierta mediante el siguiente comando:source ~/.bashrc