שירות הנתונים של Analytics

שירות Analytics Data מאפשר לך להשתמש ב-Google Analytics Data API v1 ב-Apps Script. ממשק 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);
  }
}