In dieser Kurzanleitung erstellen und senden Sie list
Anfragen an die Google Analytics Data API v1 und sehen sich dann die Antworten an, um Ihren API-Zugriff einzurichten und zu bestätigen.
Sie können diese Kurzanleitung mit einem SDK oder der REST API in Ihrer lokalen Umgebung oder einer Google Cloud-VM-Instanz ausführen.
Hier eine Zusammenfassung der Schritte:
- ein Google Cloud-Projekt einrichten und die Google Analytics Data API v1 aktivieren
- Auf Ihrem lokalen Computer oder in Ihrer Cloud-VM-Instanz:
- Installieren, initialisieren und bei der Google Cloud authentifizieren.
- Installieren Sie das SDK für Ihre Sprache (optional).
- Konfigurieren Sie die Authentifizierung.
- Konfigurieren Sie den Google Analytics-Zugriff.
- Richten Sie ein SDK ein.
- Führen Sie einen API-Aufruf aus.
Google Cloud-Projekt einrichten
Klicken Sie auf die Schaltfläche Google Analytics Data API v1 aktivieren, um ein neues Google Cloud-Projekt auszuwählen oder zu erstellen und die Google Analytics Data API v1 automatisch zu aktivieren.
Google Analytics Data API v1 aktivierenGoogle Cloud einrichten
Richten Sie auf Ihrem lokalen Computer oder einer Cloud-VM-Instanz eine Authentifizierung bei Google Cloud ein.
-
Installieren und initialisieren Sie Google Cloud.
-
Führen Sie den folgenden Befehl aus, um sicherzustellen, dass Ihre
gcloud
-Komponenten auf dem neuesten Stand sind.gcloud components update
Damit Sie Ihre Projekt-ID nicht an Google Cloud weitergeben müssen, können Sie mit dem Befehl gcloud config set
ein Standardprojekt und eine Standardregion festlegen.
Authentifizierung konfigurieren
In dieser Kurzanleitung werden Standardanmeldedaten für Anwendungen verwendet, um Anmeldedaten automatisch basierend auf der Anwendungsumgebung zu finden. Sie müssen den Clientcode also nicht zur Authentifizierung ändern.
Die Google Analytics Data API v1 unterstützt Nutzerkonten und Dienstkonten:
- Nutzerkonten stellen einen Entwickler, Administrator oder eine andere Person dar, die mit Google APIs und Diensten interagiert.
- Dienstkonten stehen nicht für einen bestimmten menschlichen Nutzer. Sie bieten eine Möglichkeit zur Authentifizierung und Autorisierung, wenn ein Mensch nicht direkt beteiligt ist, z. B. wenn eine Anwendung auf Google Cloud-Ressourcen zugreifen muss.
Weitere Informationen zur Authentifizierung und zum Einrichten von Kontoanmeldedaten für Ihre Anwendung finden Sie unter Authentifizierungsmethoden bei Google.
Nutzerkonto
Generieren Sie eine lokale Datei mit Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC), indem Sie den folgenden Befehl ausführen. Mit diesem Befehl wird ein Web-Vorgang gestartet, in dem Sie Ihre Nutzeranmeldedaten angeben.
gcloud auth application-default login --scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly"
Geben Sie im Befehl die Berechtigungen an, die für die Google Analytics Data API v1 erforderlich sind. Weitere Informationen finden Sie unter Standardanmeldedaten für Anwendungen einrichten.
Dienstkonto
So authentifizieren Sie sich mit einem Dienstkonto über eine Cloud-VM-Instanz:
- Erstellen Sie ein Dienstkonto.
- Hängen Sie das Dienstkonto an Ihre Cloud-VM-Instanz an, indem Sie den folgenden gcloud-Befehl ausführen:
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"
Geben Sie im Befehl die Berechtigungen an, die für die Google Analytics Data API v1 erforderlich sind. Weitere Informationen finden Sie unter Standardanmeldedaten für Anwendungen einrichten.
Zugriff auf Google Analytics konfigurieren
SDK für Ihre Programmiersprache einrichten
Installieren Sie das SDK für Ihre Programmiersprache auf Ihrem lokalen Computer.
Java
PHP
Python
Node.js
.NET
Ruby
Ok
go get google.golang.org/genproto/googleapis/analytics/data/v1beta
REST
Konfigurieren Sie die Umgebungsvariablen. Dazu geben Sie Folgendes ein.
Ersetzen Sie PROJECT_ID
durch die ID Ihres Google Cloud-Projekts und PROPERTY_ID
durch die ID Ihrer Google Analytics-Property.
export PROJECT_ID=PROJECT_ID
export PROPERTY_ID=PROPERTY_ID
API aufrufen
Führen Sie den folgenden Code aus, um Ihren ersten Aufruf auszuführen:
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
Führen Sie dazu den Befehl „curl“ über die Befehlszeile aus oder fügen Sie den REST-Aufruf in Ihre Anwendung ein.
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
Die Antwort enthält einen Bericht mit aktiven Nutzern aufgeschlüsselt nach Land, z. B.:
{
"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"
}