Analytics Data Service

  • The Analytics Data service allows Google Analytics users to programmatically access Google Analytics 4 (GA4) report data through the Google Analytics Data API v1 in Apps Script.

  • This is an advanced service that requires enabling before use in Apps Script.

  • The AnalyticsData service utilizes the same objects, methods, and parameters as the public API.

  • Detailed information and support for this service can be found in the Google Analytics Data API v1 reference documentation and support page.

The Analytics Data service allows you to use theGoogle Analytics Data API v1in Apps Script. This API gives Google Analytics users programmatic access toGoogle Analytics 4 (GA4) report data.

Note: This is an advanced service that must beenabled before use.

Reference

For detailed information on this service, see theGoogle Analytics Data API v1 reference documentation.

Like all advanced services in Apps Script, the AnalyticsData service uses thesame objects, methods, and parameters as the public API. For more information,seeHow method signatures are determined.

To report issues and find other support, see theGoogle Analytics Data API v1 support page.

Sample code

Run a report

The sample runs a report to retrieve the active users count by cityand stores the results in a new spreadsheet.

advanced/analyticsData.gs
/** * Runs a report of a Google Analytics 4 property ID. Creates a sheet with the * report. */functionrunReport(){/**   * TODO(developer): Uncomment this variable and replace with your   *   Google Analytics 4 property ID before running the sample.   */constpropertyId='YOUR-GA4-PROPERTY-ID';try{constmetric=AnalyticsData.newMetric();metric.name='activeUsers';constdimension=AnalyticsData.newDimension();dimension.name='city';constdateRange=AnalyticsData.newDateRange();dateRange.startDate='2020-03-31';dateRange.endDate='today';constrequest=AnalyticsData.newRunReportRequest();request.dimensions=[dimension];request.metrics=[metric];request.dateRanges=dateRange;constreport=AnalyticsData.Properties.runReport(request,'properties/'+propertyId);if(!report.rows){console.log('No rows returned.');return;}constspreadsheet=SpreadsheetApp.create('Google Analytics Report');constsheet=spreadsheet.getActiveSheet();// Append the headers.constdimensionHeaders=report.dimensionHeaders.map((dimensionHeader)=>{returndimensionHeader.name;});constmetricHeaders=report.metricHeaders.map((metricHeader)=>{returnmetricHeader.name;});constheaders=[...dimensionHeaders,...metricHeaders];sheet.appendRow(headers);// Append the results.constrows=report.rows.map((row)=>{constdimensionValues=row.dimensionValues.map((dimensionValue)=>{returndimensionValue.value;});constmetricValues=row.metricValues.map((metricValues)=>{returnmetricValues.value;});return[...dimensionValues,...metricValues];});sheet.getRange(2,1,report.rows.length,headers.length).setValues(rows);console.log('Report spreadsheet created: %s',spreadsheet.getUrl());}catch(e){// TODO (Developer) - Handle exceptionconsole.log('Failed with error: %s',e.error);}}

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-10-13 UTC.