Hello Analytics Reporting API v4; guía de inicio rápido de Python para cuentas de servicio

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

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.

Crea credenciales

  1. Abre la página Cuentas de servicio. Si se te solicita, selecciona un proyecto.
  2. Haz clic en Crear cuenta de servicio y, luego, ingresa un nombre y una descripción para la cuenta de servicio. Puedes usar el ID predeterminado de la cuenta de servicio o elegir uno que sea único y diferente. Cuando hayas terminado, haz clic en Crear.
  3. No es obligatoria la sección de Permisos de cuenta de servicio (opcional) que aparece a continuación. Haz clic en Continuar.
  4. En la pantalla Otorga a usuarios acceso a esta cuenta de servicio, desplázate hacia abajo hasta encontrar la sección Crear clave. Haz clic en Crear clave.
  5. En el panel lateral que aparece, selecciona el formato para tu clave: se recomienda el código JSON.
  6. Haga clic en Crear. Ya se generó y descargó el nuevo par de claves pública y privada en tu equipo, que será la única copia. Para obtener más información a fin de almacenarla de forma segura, consulta Cómo administrar claves para cuentas de servicio.
  7. Haz clic en Cerrar, en el diálogo Se guardó la clave privada en tu computadora, y luego haz clic en Listo para regresar a la tabla de tus cuentas de servicio.

Cómo agregar una cuenta de servicio a la cuenta de Google Analytics

La cuenta de servicio recién creada tendrá una dirección de correo electrónico similar a esta:

quickstart@PROJECT-ID.iam.gserviceaccount.com

Utilice esta dirección de correo electrónico para agregar un usuario a la vista de Google Analytics a la que desea acceder a través de la API. Para este instructivo, solo se necesitan los permisos de lectura y análisis.

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 KEY_FILE_LOCATION por la ruta de acceso adecuada al client_secrets.json descargado.
  4. Reemplaza el valor de VIEW_ID. Puedes usar el Explorador de cuentas para encontrar un ID de vista.
"""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 la muestra

Ejecuta la muestra con el siguiente comando:

python HelloAnalytics.py

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