Guida per gli sviluppatori di report non campionati

L'API di gestione di Google Analytics consente di creare in modo programmatico report non campionati.

Introduzione

I report non campionati sono report di Google Analytics generati utilizzando dati non campionati. I report non campionati sono attualmente disponibili solo per gli utenti di Google Analytics 360.

Con questa API puoi:

  • Recupera le informazioni di configurazione su tutti i tuoi report non campionati esistenti crea report non campionati una tantum.
  • Controlla lo stato di elaborazione dei report non campionati.
  • Genera un link al file di dati per un report non campionato al termine dell'elaborazione.
  • Eliminare i report non campionati.

Recupero di dati per report non campionati

Quando crei un report non campionato, potrebbe essere necessario attendere un po' di tempo prima che il report sia disponibile per il download. Il campo status per un report non campionato indica se l'elaborazione del report è completata. Una volta che lo stato è contrassegnato come COMPLETED, puoi utilizzare il campo downloadType e il campo dei dettagli di download corrispondente per recuperare il file che contiene i dati del report. Ad esempio:

Non utilizzare il polling continuo e a frequenza elevata per controllare lo stato di questi report, in quanto è probabile che esaurisca la quota giornaliera abbastanza rapidamente. Dovresti avere un ritardo tra le richieste al momento del controllo dello stato dei report non campionati.

Utilizzo di Google Drive / API Google Cloud Storage

A seconda di dove vengono caricati i file (Google Drive o Google Cloud Storage), riceverai un link corrispondente. Puoi utilizzare l'API Drive o l'API Cloud Storage per scaricare il file utilizzando questo link. Per maggiori dettagli su come recuperare il file, consulta la documentazione dell'API Google Drive o dell'API Google Cloud Storage.

Ad esempio, se il report non campionato è archiviato su Google Drive, puoi effettuare una richiesta HTTP GET autorizzata all'URL della risorsa del file e includere il parametro di query alt=media.

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

Dove XXXXXX è il report non campionato driveDownloadDetails.documentId

Autenticazione

Se prevedi di utilizzare il report non campionato insieme alle API Drive o Cloud Storage per il download dei file, devi includere l'ambito di autorizzazione corrispondente per quell'API (oltre all'ambito di autenticazione dell'API Analytics) quando richiedi un token OAuth 2.0. In questo modo potrai utilizzare lo stesso token di autenticazione per entrambe le API.

Eliminazione di report non campionati

Puoi eliminare i report non campionati pianificati o completati; tuttavia, la chiamata a delete durante il breve periodo durante la generazione del report comporterà un errore. Se elimini i report non campionati, la risorsa viene rimossa solo dalla vista (profilo GA) e i dati esportati su Google Drive o Google Cloud Storage verranno conservati.

Restrizioni

Alla creazione di report non campionati si applicano le seguenti restrizioni:

  • Puoi specificare fino a quattro dimensioni.
  • Alcuni tipi di dati dei report non sono supportati, ad esempio i dati di Google Ads.
  • Le query ritenute troppo costose non sono supportate.
  • Se hai creato troppi report non campionati e hai raggiunto il limite, puoi eliminare in sicurezza le risorse dei report non campionati, lasciando invariati i dati dei report generati su Google Drive o Google Cloud.

Se la tua richiesta viene ritenuta troppo costosa, l'operazione di creazione restituirà un errore e un messaggio appropriato. In questo caso puoi:

  • Richiedi meno dimensioni.
  • Suddividi la query in più query con intervalli di date più piccoli e unisci i report risultanti.

Casi d'uso

Report non campionati e API Core Reporting

Se utilizzi l'API di reporting principale per recuperare i dati del report e questo contiene dati campionati, puoi creare un report non campionato per la stessa query nel seguente modo:

  1. Effettua una richiesta all'API di reporting principale.
  2. Nella risposta, controlla la proprietà contieneSampledData per verificare se i dati sono campionati.
  3. Se questa proprietà è impostata su true, puoi utilizzare i campi Query e ProfileInfo della stessa risposta per creare una richiesta di report non campionato.

Esempio di campo di query della risposta dell'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
}

Esempio di campo profileInfo della risposta dell'API Core Reporting:

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

Di seguito è riportato un esempio di come creare un report non campionato da una risposta dell'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();
}

Unione di dati non campionati per più giorni

Puoi combinare o unire i report relativi a più giorni per ottenere dati non campionati per un determinato intervallo di date. Questo è utile quando una richiesta di dati non campionati è troppo grande. In questi casi, puoi suddividere la richiesta in più richieste con un intervallo di date più breve e poi combinare i risultati.

Criteri per le quote

Consulta Limiti e quote dell'API Configuration and Reporting per consultare l'elenco completo dei limiti e delle quote che si applicano quando si creano report non campionati.