خدمة بيانات "إحصاءات Google"

تسمح لك خدمة "البيانات في إحصاءات Google" باستخدام الإصدار 1 من Google Analytics Data API في "برمجة التطبيقات". من خلال واجهة برمجة التطبيقات هذه، يمكن لمستخدمي "إحصاءات Google" الوصول آليًا إلى بيانات تقارير "إحصاءات Google 4" (GA4).

مَراجع

للحصول على معلومات تفصيلية عن هذه الخدمة، اطّلِع على المستندات المرجعية للإصدار 1 من Data API في "إحصاءات Google".

مثل جميع الخدمات المتقدمة في "برمجة التطبيقات"، تستخدم خدمة AnalyticsData الكائنات والطرق والمعلمات نفسها مثل واجهة برمجة التطبيقات العامة. لمزيد من المعلومات، راجِع كيفية تحديد توقيعات الطرق.

للإبلاغ عن المشاكل والعثور على وسائل دعم أخرى، اطّلع على صفحة دعم الإصدار 1 من Data API على "إحصاءات Google".

نموذج التعليمات البرمجية

تنفيذ تقرير

يشغّل النموذج تقريرًا لاسترداد عدد المستخدمين النشطين حسب المدينة ويخزّن النتائج في جدول بيانات جديد.

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