API de informes Hello Analytics, versión 4: inicio rápido en Python para las cuentas de servicio

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.

Crear credenciales

  1. Abre la página Cuentas de servicio. Si se te solicita, selecciona un proyecto.
  2. Haz clic en Create service account (Crear cuenta de servicio).
  3. En la ventana Crear cuenta de servicio, escribe el nombre de la cuenta de servicio y selecciona Suministrar una nueva clave privada. A continuación, haz clic en Guardar.

Se genera el par de claves pública/privada y se descarga en el equipo, lo que sirve de copia única de esta clave. Eres responsable de almacenarla de forma segura.

Añadir una cuenta de servicio a la cuenta de Google Analytics

La dirección de correo electrónico de la cuenta de servicio que acabas de crear será parecida a esta:

quickstart@PROJECT-ID.iam.gserviceaccount.com

Úsala para añadir un usuario a la vista de Google Analytics a la que quieras acceder a través de la API. En este tutorial solo se necesitan permisos de lectura y análisis.

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.

  1. Copia o descarga el siguiente código fuente en HelloAnalytics.py.
  2. Traslada el archivo client_secrets.json descargado anteriormente al mismo directorio en el que se encuentra el código de muestra.
  3. Sustituye los valores de SERVICE_ACCOUNT_EMAIL y KEY_FILE_LOCATION por los valores adecuados de Developer Console.
  4. Sustituye el valor de VIEW_ID por un ID de vista, que puedes obtener mediante el Explorador de cuentas.
"""Hello Analytics Reporting API V4."""

from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials

SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
KEY_FILE_LOCATION = '<REPLACE_WITH_JSON_FILE>'
VIEW_ID = '<REPLACE_WITH_VIEW_ID>'

def initialize_analyticsreporting():
  """Initializes an Analytics Reporting API V4 service object.

  Returns:
    An authorized Analytics Reporting API V4 service object.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      KEY_FILE_LOCATION, SCOPES)

  # Build the service object.
  analytics = build('analyticsreporting', 'v4', credentials=credentials)

  return analytics

def get_report(analytics):
  """Queries the Analytics Reporting API V4.

  Args:
    analytics: An authorized Analytics Reporting API V4 service object.
  Returns:
    The Analytics Reporting API V4 response.
  """
  return analytics.reports().batchGet(
      body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression': 'ga:sessions'}],
          'dimensions': [{'name': 'ga:country'}]
        }]
      }
  ).execute()

def print_response(response):
  """Parses and prints the Analytics Reporting API V4 response.

  Args:
    response: An 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', [])

    for row in report.get('data', {}).get('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

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 &lt;pip_install_path&gt; 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