In questa guida introduttiva, crei e invii richieste list
all'API di dati di Google Analytics v1, quindi visualizzi le risposte per configurare e verificare il tuo accesso all'API.
Puoi completare questa guida rapida utilizzando un SDK o l'API REST nel tuo ambiente locale o un'istanza VM Google Cloud.
Ecco un riepilogo dei passaggi:
- Configura un progetto Google Cloud e abilita la versione 1 dell'API di dati di Google Analytics.
- Sulla tua macchina locale o sull'istanza VM Cloud:
- Installa, inizializza e autenticati con Google Cloud.
- Installa l'SDK per la tua lingua (facoltativo).
- Configura l'autenticazione.
- Configura l'accesso a Google Analytics.
- Configura un SDK.
- Esegui una chiamata API.
Configura un progetto Google Cloud
Fai clic sul seguente pulsante Attiva l'API di dati di Google Analytics v1 per selezionare o creare un nuovo progetto Google Cloud e attivare automaticamente l'API di dati di Google Analytics v1.
Attivare la versione 1 dell'API di dati di Google AnalyticsConfigurare Google Cloud
Sulla tua macchina locale o su un'istanza VM Cloud, configura e autenticati con Google Cloud.
-
Installa e inizializza Google Cloud.
-
Per assicurarti che i componenti di
gcloud
siano aggiornati, esegui il seguente comando.gcloud components update
Per evitare di fornire il tuo ID progetto a Google Cloud, puoi utilizzare il comando gcloud config set
per impostare un progetto e una regione predefiniti.
Configura autenticazione
Questa guida rapida utilizza le Credenziali predefinite dell'applicazione per trovare automaticamente le credenziali in base all'ambiente dell'applicazione, quindi non devi modificare il codice client per l'autenticazione.
La versione 1 dell'API di dati di Google Analytics supporta gli account utente e gli account di servizio:
- Gli account utente rappresentano uno sviluppatore, un amministratore o un'altra persona che interagisce con le API e i servizi Google.
- Gli account di servizio non rappresentano un utente specifico. Forniscono un modo per gestire l'autenticazione e l'autorizzazione quando non è coinvolto un utente, ad esempio quando un'applicazione deve accedere alle risorse Google Cloud.
Per scoprire di più sull'autenticazione e sulla configurazione delle credenziali dell'account per la tua applicazione, consulta Metodi di autenticazione di Google.
Account utente
Genera un file Credenziali predefinite dell'applicazione (ADC) locale eseguendo il seguente comando. Questo comando avvia un flusso web in cui fornisci le tue credenziali utente.
gcloud auth application-default login --scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly"
Ricorda di specificare gli ambiti richiesti dalla versione 1 dell'API di dati di Google Analytics nel comando. Per ulteriori informazioni, vedi Configurare le credenziali predefinite dell'applicazione.
Account di servizio
Ecco i passaggi per eseguire l'autenticazione con un account di servizio utilizzando un'istanza VM Cloud:
- Crea un account di servizio.
- Collega il service account all'istanza VM Cloud eseguendo il seguente comando gcloud CLI:
gcloud compute instances stop YOUR-VM-INSTANCE-ID
gcloud compute instances set-service-account YOUR-VM-INSTANCE-ID \
--service-account YOUR-SERVICE-ACCOUNT-EMAIL-ALIAS \
--scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly"
Ricorda di specificare gli ambiti richiesti dalla versione 1 dell'API di dati di Google Analytics nel comando. Per ulteriori informazioni, vedi Configurare le credenziali predefinite dell'applicazione.
Configurare l'accesso a Google Analytics
Concedi l'accesso a Google Analytics all'indirizzo email associato al tuo account utente o di servizio.
Configura l'SDK per il tuo linguaggio di programmazione
Sulla tua macchina locale, installa l'SDK per il tuo linguaggio di programmazione.
Java
PHP
Python
Node.js
.NET
Ruby
Vai
go get google.golang.org/genproto/googleapis/analytics/data/v1beta
REST
Configura le variabili di ambiente inserendo quanto segue.
Sostituisci PROJECT_ID
con l'ID del tuo progetto Google Cloud
e PROPERTY_ID
con l'ID della tua proprietà Google Analytics.
export PROJECT_ID=PROJECT_ID
export PROPERTY_ID=PROPERTY_ID
Esegui una chiamata API
Esegui il seguente codice per effettuare la prima chiamata:
Java
import com.google.analytics.data.v1beta.BetaAnalyticsDataClient; import com.google.analytics.data.v1beta.DateRange; import com.google.analytics.data.v1beta.Dimension; import com.google.analytics.data.v1beta.Metric; import com.google.analytics.data.v1beta.Row; import com.google.analytics.data.v1beta.RunReportRequest; import com.google.analytics.data.v1beta.RunReportResponse; /** * Google Analytics Data API sample quickstart application. * * <p>This application demonstrates the usage of the Analytics Data API using service account * credentials. * * <p>Before you start the application, please review the comments starting with "TODO(developer)" * and update the code to use correct values. * * <p>To run this sample using Maven: * * <pre>{@code * cd google-analytics-data * mvn compile exec:java -Dexec.mainClass="com.google.analytics.data.samples.QuickstartSample" * }</pre> */ public class QuickstartSample { public static void main(String... args) throws Exception { /** * TODO(developer): Replace this variable with your Google Analytics 4 property ID before * running the sample. */ String propertyId = "YOUR-GA4-PROPERTY-ID"; sampleRunReport(propertyId); } // This is an example snippet that calls the Google Analytics Data API and runs a simple report // on the provided GA4 property id. static void sampleRunReport(String propertyId) throws Exception { // Using a default constructor instructs the client to use the credentials // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable. try (BetaAnalyticsDataClient analyticsData = BetaAnalyticsDataClient.create()) { RunReportRequest request = RunReportRequest.newBuilder() .setProperty("properties/" + propertyId) .addDimensions(Dimension.newBuilder().setName("city")) .addMetrics(Metric.newBuilder().setName("activeUsers")) .addDateRanges(DateRange.newBuilder().setStartDate("2020-03-31").setEndDate("today")) .build(); // Make the request. RunReportResponse response = analyticsData.runReport(request); System.out.println("Report result:"); // Iterate through every row of the API response. for (Row row : response.getRowsList()) { System.out.printf( "%s, %s%n", row.getDimensionValues(0).getValue(), row.getMetricValues(0).getValue()); } } } }
PHP
require 'vendor/autoload.php'; use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient; use Google\Analytics\Data\V1beta\DateRange; use Google\Analytics\Data\V1beta\Dimension; use Google\Analytics\Data\V1beta\Metric; use Google\Analytics\Data\V1beta\RunReportRequest; /** * TODO(developer): Replace this variable with your Google Analytics 4 * property ID before running the sample. */ $property_id = 'YOUR-GA4-PROPERTY-ID'; // Using a default constructor instructs the client to use the credentials // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable. $client = new BetaAnalyticsDataClient(); // Make an API call. $request = (new RunReportRequest()) ->setProperty('properties/' . $property_id) ->setDateRanges([ new DateRange([ 'start_date' => '2020-03-31', 'end_date' => 'today', ]), ]) ->setDimensions([new Dimension([ 'name' => 'city', ]), ]) ->setMetrics([new Metric([ 'name' => 'activeUsers', ]) ]); $response = $client->runReport($request); // Print results of an API call. print 'Report result: ' . PHP_EOL; foreach ($response->getRows() as $row) { print $row->getDimensionValues()[0]->getValue() . ' ' . $row->getMetricValues()[0]->getValue() . PHP_EOL; }
Python
from google.analytics.data_v1beta import BetaAnalyticsDataClient from google.analytics.data_v1beta.types import ( DateRange, Dimension, Metric, RunReportRequest, ) def sample_run_report(property_id="YOUR-GA4-PROPERTY-ID"): """Runs a simple report on a Google Analytics 4 property.""" # TODO(developer): Uncomment this variable and replace with your # Google Analytics 4 property ID before running the sample. # property_id = "YOUR-GA4-PROPERTY-ID" # Using a default constructor instructs the client to use the credentials # specified in GOOGLE_APPLICATION_CREDENTIALS environment variable. client = BetaAnalyticsDataClient() request = RunReportRequest( property=f"properties/{property_id}", dimensions=[Dimension(name="city")], metrics=[Metric(name="activeUsers")], date_ranges=[DateRange(start_date="2020-03-31", end_date="today")], ) response = client.run_report(request) print("Report result:") for row in response.rows: print(row.dimension_values[0].value, row.metric_values[0].value)
Node.js
/** * TODO(developer): Uncomment this variable and replace with your * Google Analytics 4 property ID before running the sample. */ // propertyId = 'YOUR-GA4-PROPERTY-ID'; // Imports the Google Analytics Data API client library. const {BetaAnalyticsDataClient} = require('@google-analytics/data'); // Using a default constructor instructs the client to use the credentials // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable. const analyticsDataClient = new BetaAnalyticsDataClient(); // Runs a simple report. async function runReport() { const [response] = await analyticsDataClient.runReport({ property: `properties/${propertyId}`, dateRanges: [ { startDate: '2020-03-31', endDate: 'today', }, ], dimensions: [ { name: 'city', }, ], metrics: [ { name: 'activeUsers', }, ], }); console.log('Report result:'); response.rows.forEach((row) => { console.log(row.dimensionValues[0], row.metricValues[0]); }); } runReport();
.NET
using Google.Analytics.Data.V1Beta; using System; namespace AnalyticsSamples { class QuickStart { static void SampleRunReport(string propertyId="YOUR-GA4-PROPERTY-ID") { /** * TODO(developer): Uncomment this variable and replace with your * Google Analytics 4 property ID before running the sample. */ // propertyId = "YOUR-GA4-PROPERTY-ID"; // Using a default constructor instructs the client to use the credentials // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable. BetaAnalyticsDataClient client = BetaAnalyticsDataClient.Create(); // Initialize request argument(s) RunReportRequest request = new RunReportRequest { Property = "properties/" + propertyId, Dimensions = { new Dimension{ Name="city"}, }, Metrics = { new Metric{ Name="activeUsers"}, }, DateRanges = { new DateRange{ StartDate="2020-03-31", EndDate="today"}, }, }; // Make the request RunReportResponse response = client.RunReport(request); Console.WriteLine("Report result:"); foreach(Row row in response.Rows) { Console.WriteLine("{0}, {1}", row.DimensionValues[0].Value, row.MetricValues[0].Value); } } static int Main(string[] args) { if (args.Length > 0) { SampleRunReport(args[0]); } else { SampleRunReport(); } return 0; } } }
REST
Per inviare questa richiesta, esegui il comando curl dalla riga di comando o includi la chiamata REST nella tua applicazione.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "x-goog-user-project: ${PROJECT_ID}" \ -H "Content-Type: application/json" \ -d ' { "dateRanges": [ { "startDate": "2025-01-01", "endDate": "2025-02-01" } ], "dimensions": [ { "name": "country" } ], "metrics": [ { "name": "activeUsers" } ] }' https://analyticsdata.googleapis.com/v1beta/properties/${PROPERTY_ID}:runReport
La risposta conterrà un report con gli utenti attivi suddivisi per paese, ad esempio:
{
"dimensionHeaders": [
{
"name": "country"
}
],
"metricHeaders": [
{
"name": "activeUsers",
"type": "TYPE_INTEGER"
}
],
"rows": [
{
"dimensionValues": [
{
"value": "United States"
}
],
"metricValues": [
{
"value": "3242"
}
]
},
{
"dimensionValues": [
{
"value": "(not set)"
}
],
"metricValues": [
{
"value": "3015"
}
]
},
{
"dimensionValues": [
{
"value": "India"
}
],
"metricValues": [
{
"value": "805"
}
]
}
],
"rowCount": 3,
"metadata": {
"currencyCode": "USD",
"timeZone": "America/Los_Angeles"
},
"kind": "analyticsData#runReport"
}