Guía de inicio rápido de la API de Hello Analytics v4; Python para las aplicaciones instaladas

En este instructivo, se explican los pasos necesarios para acceder a la versión 4 de la API de Analytics Reporting.

1. Habilitar la API

Para comenzar a usar la versión 4 de la API de informes de Analytics, primero debes usar la herramienta de configuración, que te guiará para crear un proyecto en Google API Console, habilitar la API y crear credenciales.

Nota: Para crear un ID de cliente web o un cliente de aplicación instalada, debes establecer un nombre de producto en la pantalla de consentimiento. Si aún no lo hiciste, se te pedirá que configures la pantalla de consentimiento.

Crea credenciales

  • Abre la página Credenciales.
  • Haz clic en Crear credenciales y selecciona ID de cliente de OAuth.
  • Para el Tipo de aplicación, selecciona Otro.
  • Asígnele el nombre quickstart al ID de cliente y haga clic en Create.

En la página Credenciales, haz clic en el ID de cliente recién creado. Luego, haz clic en Descargar JSON y guárdalo como client_secrets.json. Lo necesitarás más adelante en el instructivo.

2. Instala la biblioteca cliente

Usar pip junto con venv es la forma recomendada para instalar paquetes de Python: sudo -s apt-get install python3-venv python3 -m venv analytics-quickstart source analytics-quickstart/bin/activate pip install --upgrade google-api-python-client pip install --upgrade oauth2client

3. Configura la muestra

Tendrás que crear un solo archivo llamado HelloAnalytics.py, que contendrá el código de muestra dado.

  1. Copia o descarga el siguiente código fuente en HelloAnalytics.py.
  2. Mueve el client_secrets.json descargado anteriormente al mismo directorio que el código de muestra.
  3. Reemplaza el valor de VIEW_ID. Puedes usar el Explorador de cuentas para encontrar un ID de vista.
"""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']
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('analyticsreporting', 'v4', http=http)

  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 la muestra

Ejecuta la muestra con el siguiente comando:

python HelloAnalytics.py
  • La aplicación cargará la página de autorización en un navegador.
  • Si aún no accediste a tu cuenta de Google, se te solicitará que lo hagas. Si accedió a varias cuentas de Google, se le pedirá que seleccione una cuenta para usar en la autorización.

Cuando finalice estos pasos, la muestra mostrará la cantidad de sesiones de los últimos siete días para la vista determinada.

Solución de problemas

AttributeError: 'Module_six_moves_urllib_parse' no tiene atributo 'urlparse'

Este error puede ocurrir en Mac OSX donde la instalación predeterminada del módulo &six (una dependencia de esta biblioteca) se carga antes que la que instaló pip. Para solucionar el problema, agrega la ubicación de instalación de pip a la variable de entorno del sistema PYTHONPATH:

  • Determina la ubicación de instalación de pip con el siguiente comando:

    pip show seis | grep "Location:" | cut -d " -f2

  • Agrega la siguiente línea a tu archivo ~/.bashrc y reemplaza &lt;pip_install_path&gt; por el valor determinado anteriormente:

    exportar PYTHONPATH=$PYTHONPATH:<pip_install_path>

  • Vuelve a cargar el archivo ~/.bashrc en cualquier ventana de la terminal abierta con el siguiente comando:

    fuente ~/.bashrc