Informes sin muestrear: guía para programadores

La API de administración de Google Analytics permite crear informes sin muestrear de forma programática.

Introducción

Los informes sin muestrear son informes de Google Analytics que se han generado con datos sin muestrear. Los informes sin muestrear actualmente solo están disponibles para los usuarios de Google Analytics Premium.

Con esta API puedes:

  • Recuperar la información sobre la configuración de todos los informes sin muestrear actuales. Crear informes sin muestrear puntuales.
  • Comprobar el estado de procesamiento de los informes sin muestrear.
  • Obtener un enlace al archivo de datos de un informe sin muestrear una vez que se ha completado el procesamiento.
  • Suprimir informes sin muestrear.

Recuperar datos para informes sin muestrear

Al crear un informe sin muestrear, puede transcurrir algo de tiempo antes de que el informe se pueda descargar. El campo status de un informe sin muestrear indica si se ha completado el procesamiento de ese informe. Cuando el estado es FINALIZADO, puedes usar el objeto downloadType y el campo de detalles de descarga correspondiente para recuperar el archivo que contiene los datos del informe. Por ejemplo:

No utilices un sondeo continuo de frecuencia alta para comprobar el estado de estos informes, ya que es probable que agotes la cuota diaria con bastante rapidez. Debes espaciar las solicitudes al consultar el estado de los informes sin muestrear.

Usar la API de Google Drive y Google Cloud Storage

Según donde se entregue el archivo (Google Drive o Google Cloud Storage), recibirás el enlace correspondiente. Puedes usar la API de Drive o la de Cloud Storage para descargar el archivo mediante este enlace. Para obtener más información sobre cómo recuperar este archivo, consulta la documentación de la API de Google Drive o la API de Google Cloud Storage.

Por ejemplo, si tu informe sin muestrear se almacena en Google Drive, puedes enviar una solicitud HTTP GET autorizada a la URL del recurso del archivo e incluir el parámetro de consulta alt=media.

GET /drive/v2/files/XXXXXX?alt=media
Host: www.googleapis.com
Content-length: 0
Authorization: Bearer ya29.AHESVbXTUv5mHMo3RYfmS1YJonjzzdTOFZwvyOAUVhrs

Donde XXXXXX es el informe sin muestrear driveDownloadDetails.documentId.

Autenticación

Si tienes previsto utilizar el informe sin muestrear en combinación con las API de Drive o de Cloud Storage para las descargas de archivos, debes incluir el alcance de autenticación correspondiente de dicha API (además del alcance de autenticación de la API de Analytics) al solicitar un token de OAuth 2.0. De este modo podrás usar el mismo token de autenticación en ambas API.

Eliminar informes sin muestrear

Puedes eliminar informes sin muestrear programados o completados. Sin embargo, si llamas a delete durante el corto espacio de tiempo que dura la generación del informe, se producirá un error. Eliminar informes sin muestrear únicamente quita el recurso de tu vista (perfil) de Google Analytics; los datos exportados en Google Drive o Google Cloud Storage se conservarán.

Restricciones

Se aplican las siguientes restricciones a la creación de los informes sin muestrear.

  • Solo puedes especificar un máximo de 4 dimensiones.
  • No se admiten algunos tipos de datos de informe, por ejemplo, los de AdWords.
  • No se admiten las consultas que se considere que pueden suponer demasiada carga.
  • Si has creado demasiados informes sin muestrear y llegas al límite, puedes eliminar los recursos de los informes sin muestrear sin alterar los datos del informe generado que se encuentra en Google Drive o en Google Cloud.

Si se determina que tu solicitud genera demasiada carga, la operación de creación devolverá un error con el mensaje correspondiente. Si esto sucede, puedes:

  • Solicitar menos dimensiones.
  • Dividir la consulta en varias consultas con periodos de menor duración y combinar los informes resultantes.

Casos prácticos

Informes sin muestrear y API de informes centrales

Si utilizas la API de informes centrales para recuperar datos de informes y contienen datos muestreados, puedes crear un informe sin muestrear para la misma consulta:

  1. Crea una solicitud de API de informes centrales.
  2. En la respuesta, comprueba si la propiedad "containsSampledData" incluye datos muestreados.
  3. Si esta propiedad se establece en "true", puedes usar los campos "query" y "profileInfo" de la misma respuesta para crear una solicitud de un informe sin muestrear.

Campo "query" de ejemplo de la respuesta de la API de informes centrales:

"query": {
  "start-date": "2011-01-01",
  "end-date": "2011-01-31",
  "ids": "ga:1234",
  "dimensions": "ga:browser",
  "metrics": [
  "ga:visits"
  ],
  "filters": "ga:country==US",
  "start-index": 1,
  "max-results": 1000
}

Campo profileInfo de ejemplo de la respuesta de la API de informes centrales:

"profileInfo": {
  "profileId": "1234",
  "accountId": "12345",
  "webPropertyId": "UA-12345-1",
  "internalWebPropertyId": "11254",
  "profileName": "Name of the profile",
  "tableId": "ga:1234"
}

A continuación se ofrece un ejemplo de cómo crear un informe sin muestrear a partir de una respuesta de la API de informes centrales:

Java

// Make a Core Reporting API call.
GaData reportingApiData = v3.data().ga().get(...).execute();

// Check if the response is sampled.
if (reportingApiData.getContainsSampledData()) {

  // Use the “query” object to construct an unsampled report object.
  Query query = reportingApiData.getQuery();
  UnsampledReport report = new UnsampledReport()
      .setDimensions(query.getDimensions())
      .setMetrics(Joiner.on(',').join(query.getMetrics()))
      .setStartDate(startDate)
      .setEndDate(endDate)
      .setSegment(query.getSegment())
      .setFilters(query.getFilters())
      .setTitle(“My unsampled report”);

  // Use “profileInfo” to create an InsertRequest for creating an
  // unsampled report.
  ProfileInfo profileInfo = reportingApiData.getProfileInfo();
  Insert insertRequest = analytics.management().unsampledReports()
  .insert(profileInfo.getAccountId(),
          profileInfo.getWebPropertyId(),
          profileInfo.getProfileId(),
          report);
  UnsampledReport createdReport = insertRequest.execute();
}

Combinar datos sin muestrear de varios días

Puedes combinar los informes de varios días para obtener datos sin muestrear de un determinado periodo. Esto resulta útil cuando una solicitud de datos sin muestrear es demasiado grande. En estos casos, puedes dividirla en varias solicitudes con un periodo más breve y, después, combinar los resultados.

Política sobre cuotas

Consulta en Límites y cuotas de las API de configuración e informes la lista completa de límites y cuotas que se aplican al crear informes sin muestrear.