Usługa danych Analytics

Usługa danych Analytics umożliwia korzystanie w Apps Script z interfejsu Google Analytics Data API w wersji 1. Zapewnia on użytkownikom Google Analytics automatyczny dostęp do danych raportów Google Analytics 4 (GA4).

Dokumentacja

Szczegółowe informacje o tej usłudze znajdziesz w dokumentacji referencyjnej interfejsu Google Analytics Data API w wersji 1.

Podobnie jak wszystkie usługi zaawansowane w Apps Script, usługa AnalyticsData korzysta z tych samych obiektów, metod i parametrów co publiczny interfejs API. Więcej informacji znajdziesz w artykule o sposobie określania podpisów metod.

Aby zgłosić problemy i uzyskać pomoc, odwiedź stronę pomocy interfejsu Google Analytics Data API w wersji 1.

Przykładowy kod

Generowanie raportu

W przykładzie wygenerujemy raport, aby pobrać liczbę aktywnych użytkowników według miasta, a wyniki zostaną zapisane w nowym arkuszu kalkulacyjnym.

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);
  }
}