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

‫Apps Script באמצעות Analytics Data API v1.

שירות הנתונים של Analytics מאפשר לכם להשתמש ב-Google Analytics Data API v1 ב-Google 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);
  }
}