Служба аналитических данных

Служба данных Analytics позволяет использовать API данных Google Analytics v1 в скрипте приложений. Этот API предоставляет пользователям Google Analytics программный доступ к данным отчетов Google Analytics 4 (GA4).

Ссылка

Подробную информацию об этом сервисе можно найти в справочной документации Google Analytics Data API v1 .

Как и все расширенные службы в Apps Script, служба AnalyticsData использует те же объекты, методы и параметры, что и общедоступный API. Дополнительные сведения см. в разделе Как определяются сигнатуры методов .

Чтобы сообщить о проблемах и получить другую поддержку, посетите страницу поддержки Google Analytics Data API v1 .

Пример кода

Запустить отчет

Образец запускает отчет для получения количества активных пользователей по городам и сохраняет результаты в новой электронной таблице.

Advanced/analyticsData.gs
/**
 * Runs a report of a Google Analytics 4 property ID. Creates a sheet with the
 * report.
 */

function runReport() {
 
/**
   * TODO(developer): Uncomment this variable and replace with your
   *   Google Analytics 4 property ID before running the sample.
   */

 
const propertyId = 'YOUR-GA4-PROPERTY-ID';

 
try {
   
const metric = AnalyticsData.newMetric();
    metric
.name = 'activeUsers';

   
const dimension = AnalyticsData.newDimension();
    dimension
.name = 'city';

   
const dateRange = AnalyticsData.newDateRange();
    dateRange
.startDate = '2020-03-31';
    dateRange
.endDate = 'today';

   
const request = AnalyticsData.newRunReportRequest();
    request
.dimensions = [dimension];
    request
.metrics = [metric];
    request
.dateRanges = dateRange;

   
const report = AnalyticsData.Properties.runReport(request,
       
'properties/' + propertyId);
   
if (!report.rows) {
      console
.log('No rows returned.');
     
return;
   
}

   
const spreadsheet = SpreadsheetApp.create('Google Analytics Report');
   
const sheet = spreadsheet.getActiveSheet();

   
// Append the headers.
   
const dimensionHeaders = report.dimensionHeaders.map(
       
(dimensionHeader) => {
         
return dimensionHeader.name;
       
});
   
const metricHeaders = report.metricHeaders.map(
       
(metricHeader) => {
         
return metricHeader.name;
       
});
   
const headers = [...dimensionHeaders, ...metricHeaders];

    sheet
.appendRow(headers);

   
// Append the results.
   
const rows = report.rows.map((row) => {
     
const dimensionValues = row.dimensionValues.map(
         
(dimensionValue) => {
           
return dimensionValue.value;
         
});
     
const metricValues = row.metricValues.map(
         
(metricValues) => {
           
return metricValues.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 exception
    console
.log('Failed with error: %s', e.error);
 
}
}