บริการข้อมูล Analytics

บริการ Analytics Data ช่วยให้คุณใช้ Google Analytics Data API v1 ใน Google Apps Script ได้ API นี้ช่วยให้ผู้ใช้ Google Analytics เข้าถึงข้อมูลการรายงานของ Google Analytics แบบเป็นโปรแกรมได้

นี่เป็นบริการขั้นสูงที่ต้อง เปิดใช้ก่อนใช้งาน

ข้อมูลอ้างอิง

ดูข้อมูลโดยละเอียดเกี่ยวกับบริการนี้ได้ที่ เอกสารอ้างอิงของ 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);
  }
}