go get google.golang.org/genproto/googleapis/analytics/data/v1beta
REST
Configure your environment variables by entering the following.
ReplacePROJECT_IDwith the ID of your Google Cloud project
andPROPERTY_IDwith the ID of your Google Analytics property.
importcom.google.analytics.data.v1beta.BetaAnalyticsDataClient;importcom.google.analytics.data.v1beta.DateRange;importcom.google.analytics.data.v1beta.Dimension;importcom.google.analytics.data.v1beta.Metric;importcom.google.analytics.data.v1beta.Row;importcom.google.analytics.data.v1beta.RunReportRequest;importcom.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>*/publicclassQuickstartSample{publicstaticvoidmain(String...args)throwsException{/*** TODO(developer): Replace this variable with your Google Analytics 4 property ID before* running the sample.*/StringpropertyId="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.staticvoidsampleRunReport(StringpropertyId)throwsException{// Using a default constructor instructs the client to use the credentials// specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.try(BetaAnalyticsDataClientanalyticsData=BetaAnalyticsDataClient.create()){RunReportRequestrequest=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.RunReportResponseresponse=analyticsData.runReport(request);System.out.println("Report result:");// Iterate through every row of the API response.for(Rowrow:response.getRowsList()){System.out.printf("%s, %s%n",row.getDimensionValues(0).getValue(),row.getMetricValues(0).getValue());}}}}
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;}
fromgoogle.analytics.data_v1betaimportBetaAnalyticsDataClientfromgoogle.analytics.data_v1beta.typesimport(DateRange,Dimension,Metric,RunReportRequest,)defsample_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:")forrowinresponse.rows:print(row.dimension_values[0].value,row.metric_values[0].value)
/*** 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.constanalyticsDataClient=newBetaAnalyticsDataClient();// Runs a simple report.asyncfunctionrunReport(){const[response]=awaitanalyticsDataClient.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();
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-27 UTC."],[],[],null,[]]