Guide du développeur pour les rapports non échantillonnés

L'API de gestion de Google Analytics vous permet de créer des rapports non échantillonnés par programmation.

Introduction

Les rapports non échantillonnés sont des rapports Google Analytics qui ont été générés à partir de données non échantillonnées. Les rapports non échantillonnés ne sont actuellement disponibles que pour les utilisateurs de Google Analytics 360.

Grâce à cette API, vous pouvez:

  • Récupérez les informations de configuration de tous vos rapports non échantillonnés existants. Créez des rapports non échantillonnés uniques.
  • Vérifiez l'état du traitement des rapports non échantillonnés.
  • obtenir un lien vers le fichier de données d'un rapport non échantillonné une fois le traitement terminé ;
  • Supprimez les rapports non échantillonnés.

Récupérer des données pour des rapports non échantillonnés

Lorsque vous créez un rapport non échantillonné, il peut s'écouler un certain temps avant qu'il ne soit disponible au téléchargement. Le champ status d'un rapport non échantillonné indique si le traitement de ce rapport est terminé. Une fois que l'état est marqué comme COMPLETED, vous pouvez utiliser le champ downloadType et le champ des détails de téléchargement correspondant pour récupérer le fichier contenant les données du rapport. Exemple :

N'utilisez pas de sondage continu à taux élevé pour vérifier l'état de ces rapports, car vous risquez d'épuiser rapidement votre quota quotidien. La vérification de l'état des rapports non échantillonnés doit s'effectuer avec un certain délai entre les demandes.

Utiliser Google Drive / API Google Cloud Storage

Selon l'emplacement de diffusion de vos fichiers (Google Drive ou Google Cloud Storage), vous obtiendrez un lien correspondant au fichier en question. Vous pouvez utiliser l'API Drive ou l'API Cloud Storage pour télécharger le fichier à l'aide de ce lien. Pour savoir comment récupérer le fichier, consultez la documentation de l'API Google Drive ou de l'API Google Cloud Storage.

Par exemple, si votre rapport non échantillonné est stocké dans Google Drive, vous pouvez envoyer une requête HTTP GET autorisée à l'URL de la ressource du fichier et inclure le paramètre de requête alt=media.

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

XXXXXX correspond au rapport non échantillonné driveDownloadDetails.documentId

Authentification

Si vous prévoyez d'utiliser le rapport non échantillonné avec les API Drive ou Cloud Storage pour télécharger des fichiers, vous devez inclure le champ d'application d'authentification correspondant pour cette API (en plus du champ d'application d'authentification de l'API Analytics) lorsque vous demandez un jeton OAuth 2.0. Vous pourrez ainsi utiliser le même jeton d'authentification pour les deux API.

Suppression de rapports non échantillonnés

Vous pouvez supprimer des rapports non échantillonnés planifiés ou terminés. Toutefois, si vous appelez delete pendant une courte période lors de la génération du rapport, une erreur se produira. La suppression d'un rapport non échantillonné entraîne uniquement la suppression de la ressource de votre vue (profil) GA. Les données exportées dans Google Drive ou Google Cloud Storage sont conservées.

Restrictions

Les restrictions suivantes s'appliquent à la création de rapports non échantillonnés:

  • Vous ne pouvez pas spécifier plus de quatre dimensions.
  • Certains types de données de rapport ne sont pas acceptés, tels que les données Google Ads.
  • Les requêtes considérées comme trop chères ne sont pas acceptées.
  • Si vous avez créé trop de rapports non échantillonnés et que vous atteignez la limite, vous pouvez supprimer en toute sécurité les ressources de rapport non échantillonnées, en laissant intactes les données de rapport générées dans Google Drive ou Google Cloud.

Si votre requête est jugée trop onéreuse, l'opération de création renvoie une erreur avec un message approprié. Dans ce cas, vous pouvez:

  • Demandez moins de dimensions.
  • Divisez la requête en plusieurs requêtes associées à des périodes plus courtes et assemblez les rapports ainsi obtenus.

Cas d'utilisation

Rapports non échantillonnés et API principale Reporting

Si vous utilisez l'API Core Reporting afin d'extraire des données de rapport et qu'elle contient des données échantillonnées, vous pouvez créer un rapport non échantillonné pour la même requête. Pour ce faire, procédez comme suit:

  1. Envoyer une requête API Core Reporting.
  2. Dans la réponse, vérifiez la propriété "containsSampledData" pour voir si les données sont échantillonnées.
  3. Si cette propriété est définie sur "true", vous pouvez utiliser les champs "query" et "profileInfo" de la même réponse pour créer une demande de rapport non échantillonné.

Exemple de champ de requête de la réponse de l'API Core Reporting:

"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
}

Exemple de champ profileInfo de la réponse de l'API Core Reporting:

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

L'exemple suivant montre comment créer un rapport non échantillonné à partir d'une réponse de l'API Core Reporting:

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();
}

Assemblage des données non échantillonnées pour plusieurs jours

Vous pouvez combiner ou assembler des rapports pour plusieurs jours afin d'obtenir des données non échantillonnées sur une plage de dates spécifique. Cette option est utile lorsqu'une demande de données non échantillonnées est trop volumineuse. Dans ce cas, vous pouvez diviser la demande en plusieurs demandes portant sur une période plus courte, puis combiner les résultats.

Règles pour les quotas

Consultez la page Limites et quotas de l'API Configuration et Reporting pour obtenir la liste complète des limites et quotas qui s'appliquent lorsque vous créez des rapports non échantillonnés.