Chuyển sang API Dữ liệu Google Analytics phiên bản 1

Tài liệu này cung cấp hướng dẫn về cách di chuyển mã hiện có từ API Báo cáo Google Analytics phiên bản 4 sang Google Analytics Data API phiên bản 1, đồng thời cung cấp thông tin tổng quan ngắn gọn về những điểm khác biệt chính giữa 2 API này.

Tại sao tôi cần di chuyển

Nếu ứng dụng của bạn cần truy cập vào dữ liệu trong tài sản Google Analytics 4, thì bạn cần cập nhật mã để sử dụng Data API phiên bản 1, vì API Báo cáo phiên bản 4 chỉ có thể truy cập vào các tài sản được tạo bằng Universal Analytics.

Điều kiện tiên quyết

Vui lòng làm quen với các khái niệm cơ bản về Data API phiên bản 1 bằng cách sử dụng hướng dẫn bắt đầu nhanh.

Bắt đầu

Để bắt đầu, bạn sẽ chuẩn bị một tài sản Google Analytics 4, bật Data API phiên bản 1, sau đó thiết lập một thư viện ứng dụng API phù hợp với nền tảng của bạn.

Chuẩn bị tài sản Google Analytics 4

Trước khi bắt đầu di chuyển mã để hỗ trợ Data API phiên bản 1, bạn cần di chuyển trang web để sử dụng tài sản Google Analytics 4. Bạn không thể bổ sung dữ liệu trong quá khứ của tài sản Universal Analytics để bổ sung dữ liệu cũ cho tài sản Google Analytics 4.

Bật API

Nhấp vào nút này để tự động bật Data API v1 trong dự án Google Cloud mà bạn đã chọn.

Bật Google Analytics Data API phiên bản 1

Sử dụng thư viện ứng dụng

Cài đặt thư viện ứng dụng

Nếu sử dụng thư viện ứng dụng, bạn cần cài đặt thư viện ứng dụng Data API phiên bản 1 cho ngôn ngữ lập trình của mình.

Khởi chạy thư viện ứng dụng

Thư viện ứng dụng Data API phiên bản 1 được thiết kế để giúp bạn bắt đầu nhanh chóng. Theo mặc định, các thư viện ứng dụng sẽ cố gắng tự động tìm thông tin đăng nhập tài khoản dịch vụ của bạn.

Một cách dễ dàng để cung cấp thông tin đăng nhập tài khoản dịch vụ là đặt biến môi trường GOOGLE_APPLICATION_CREDENTIALS, ứng dụng API sẽ sử dụng giá trị của biến này để tìm tệp JSON chứa khoá tài khoản dịch vụ.

Ví dụ: bạn có thể đặt thông tin xác thực tài khoản dịch vụ bằng cách chạy lệnh sau và sử dụng đường dẫn đến tệp JSON của tài khoản dịch vụ:

export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

Dưới đây là các đoạn mã thường dùng để khởi chạy thư viện ứng dụng Data API v1.

Java

    // Using a default constructor instructs the client to use the credentials
    // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
    try (BetaAnalyticsDataClient analyticsData = BetaAnalyticsDataClient.create()) {

Python

    # Using a default constructor instructs the client to use the credentials
    # specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
    client = BetaAnalyticsDataClient()

.NET

            // Using a default constructor instructs the client to use the credentials
            // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
            BetaAnalyticsDataClient client = BetaAnalyticsDataClient.Create();

1.199

// Using a default constructor instructs the client to use the credentials
// specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
$client = new BetaAnalyticsDataClient();

Node.js

  // Imports the Google Analytics Data API client library.
  const {BetaAnalyticsDataClient} = require('@google-analytics/data');

  // Using a default constructor instructs the client to use the credentials
  // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
  const analyticsDataClient = new BetaAnalyticsDataClient();

Thay vì sử dụng biến môi trường, bạn cũng có thể truyền thông tin xác thực tới một thực thể ứng dụng API một cách rõ ràng trong quá trình khởi chạy. Dưới đây là các đoạn mã dùng để khởi chạy thư viện ứng dụng Data API v1 bằng cách truyền thông tin đăng nhập một cách rõ ràng trong mã.

Java

    // Explicitly use service account credentials by specifying
    // the private key file.
    GoogleCredentials credentials =
        GoogleCredentials.fromStream(new FileInputStream(credentialsJsonPath));

    BetaAnalyticsDataSettings betaAnalyticsDataSettings =
        BetaAnalyticsDataSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credentials))
            .build();

    try (BetaAnalyticsDataClient analyticsData =
        BetaAnalyticsDataClient.create(betaAnalyticsDataSettings)) {

Python

    # TODO(developer): Uncomment this variable and replace with a valid path to
    #  the credentials.json file for your service account downloaded from the
    #  Cloud Console.
    # credentials_json_path = "/path/to/credentials.json"

    # Explicitly use service account credentials by specifying
    # the private key file.
    client = BetaAnalyticsDataClient.from_service_account_json(credentials_json_path)

.NET

            /**
             * TODO(developer): Uncomment this variable and replace with a valid path to
             *  the credentials.json file for your service account downloaded from the
             *  Cloud Console.
             *  Otherwise, default service account credentials will be derived from
             *  the GOOGLE_APPLICATION_CREDENTIALS environment variable.
             */
            // credentialsJsonPath = "/path/to/credentials.json";

            // Explicitly use service account credentials by specifying
            // the private key file.
            BetaAnalyticsDataClient client = new BetaAnalyticsDataClientBuilder
            {
              CredentialsPath = credentialsJsonPath
            }.Build();

1.199

/**
 * @param string $credentialsJsonPath Valid path to the credentials.json file for your service
 *                                    account downloaded from the Cloud Console.
 *                                    Example: "/path/to/credentials.json"
 */
function client_from_json_credentials(string $credentialsJsonPath)
{
    // Explicitly use service account credentials by specifying
    // the private key file.
    $client = new BetaAnalyticsDataClient([
        'credentials' => $credentialsJsonPath
    ]);

    return $client;
}

Node.js

  /** TODO(developer): Uncomment this variable and replace with a valid path to
   *  the credentials.json file for your service account downloaded from the
   *  Cloud Console.
   */
  // credentialsJsonPath = '/path/to/credentials.json';

  // Imports the Google Analytics Data API client library.
  const {BetaAnalyticsDataClient} = require('@google-analytics/data');

  // Explicitly use service account credentials by specifying
  // the private key file.
  const analyticsDataClient = new BetaAnalyticsDataClient({
    keyFilename: credentialsJsonPath,
  });

Không sử dụng thư viện ứng dụng

Nếu đang sử dụng API Báo cáo phiên bản 4 mà không có thư viện ứng dụng và muốn tiếp tục sử dụng với Data API phiên bản 1, thì bạn vẫn có thể sử dụng thông tin đăng nhập của mình.

Bạn cần sử dụng tài liệu khám phá và điểm cuối HTTP mới do Data API cung cấp:

Nếu mã của bạn đang tận dụng tài liệu Khám phá, bạn cần cập nhật mã đó lên tài liệu khám phá do Data API phiên bản 1 cung cấp:

Sau khi cập nhật điểm cuối, bạn cần làm quen với cấu trúc yêu cầu và các khái niệm mới của Data API để cập nhật truy vấn JSON của mình.

Báo cáo chính

Các phương thức báo cáo hiện có

API Báo cáo phiên bản 4 đã cung cấp một phương thức batchGet để truy cập vào chức năng báo cáo chính của API đó. Data API v1 cung cấp một số phương thức báo cáo cốt lõi để bạn lựa chọn:

  • runReport Phương thức này sẽ trả về báo cáo tuỳ chỉnh về dữ liệu sự kiện Google Analytics. API này không hỗ trợ chức năng tổng hợp và là một phương thức ưu tiên cho các truy vấn báo cáo đơn giản.
  • runPivotReport Phương thức này sẽ trả về báo cáo tổng hợp được tuỳ chỉnh về dữ liệu sự kiện của bạn trên Google Analytics. Tương tự như các bảng tổng hợp trong API Báo cáo phiên bản 4, mỗi bảng tổng hợp mô tả các cột và hàng phương diện hiển thị trong phản hồi báo cáo.
  • batchRunReports Đây là một phiên bản lô của phương thức runReport, cho phép tạo nhiều báo cáo bằng cách sử dụng một lệnh gọi API duy nhất.
  • batchRunPivotReports Đây là một phiên bản hàng loạt của phương thức runPivotReport, cho phép tạo nhiều báo cáo bằng một lệnh gọi API duy nhất.

Mục đích của việc có một số phương thức báo cáo chủ yếu là để mang lại sự thuận tiện, trong đó một số phương thức hỗ trợ các tính năng phức tạp hơn các phương thức khác (tổng hợp, phân lô), nhưng vẫn có cấu trúc yêu cầu tương tự.

Thay đổi giản đồ API

Khả năng báo cáo của cả API Báo cáo và Data API chủ yếu được xác định theo giản đồ, tức là các phương diện và chỉ số được hỗ trợ trong các truy vấn báo cáo. Có sự khác biệt đáng kể trong giản đồ API giữa 2 API, do sự khác biệt về khái niệm giữa Universal Analytics và Google Analytics 4.

  • Hãy làm quen với danh sách phương diện và chỉ số hiện tại mà Data API hỗ trợ. Hiện tại, tất cả phương diện và chỉ số đều tương thích với nhau. Vì vậy, bạn không cần phải sử dụng Trình khám phá phương diện và chỉ số để xác định các cách kết hợp tương thích. Hành vi này sẽ thay đổi trong tương lai.
  • Bạn có thể truy cập vào các phương diện tuỳ chỉnh trong Google Analytics 4 bằng cú pháp phương diện tuỳ chỉnh cho Data API phiên bản 1. Bạn nên sử dụng thay cho vùng phương diện ga:dimensionXX của API Báo cáo phiên bản 4.
  • Bạn có thể truy cập vào các chỉ số tuỳ chỉnh trong Google Analytics 4 bằng cú pháp chỉ số tuỳ chỉnh của Data API phiên bản 1. Bạn nên sử dụng cú pháp này thay cho vùng chỉ số ga:metricXX của API Báo cáo phiên bản 4.
  • Một số phương diện và chỉ số trong Universal Analytics tương đương trực tiếp với Google Analytics 4. Xem biểu đồ tương đương của giản đồ API UA/GA4 để biết thêm thông tin.
  • Tên phương diện và chỉ số không còn có tiền tố ga: trong Google Analytics 4 nữa.
  • Một số chức năng có trong Universal Analytics chưa có trong GA4 (ví dụ: tích hợp Campaign Manager, DV360, Search Ads 360). Sau khi chức năng này được triển khai trong Google Analytics 4, Data API sẽ hỗ trợ chức năng này, đồng thời, các phương diện và chỉ số mới sẽ được thêm vào giản đồ API.

Pháp nhân

Google Analytics 4 không có khái niệm về chế độ xem (hồ sơ) trong Universal Analytics. Do đó, không có tham số viewId nào trong các yêu cầu báo cáo Data API v1. Thay vào đó, bạn phải chỉ định mã tài sản Google Analytics 4 dạng số trong đường dẫn URL yêu cầu khi gọi phương thức Data API phiên bản 1. Hành vi này khác với API Báo cáo phiên bản 4, dựa trên mã chế độ xem (hồ sơ) để xác định thực thể báo cáo.

Data API phiên bản 1

Đối với Data API phiên bản 1, bạn phải chỉ định mã tài sản Google Analytics 4 dạng số trong đường dẫn URL.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport

API báo cáo phiên bản 4

API Báo cáo phiên bản 4 yêu cầu phải chỉ định mã chế độ xem (hồ sơ) Universal Analytics trong phần nội dung của truy vấn báo cáo.

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",

    ....

Nếu đang sử dụng một trong những thư viện ứng dụng Data API, bạn không cần phải thao tác trên đường dẫn URL yêu cầu theo cách thủ công. Hầu hết các ứng dụng API đều cung cấp tham số property dự kiến sẽ có một chuỗi ở dạng properties/GA4_PROPERTY_ID. Xem Hướng dẫn bắt đầu nhanh để biết các ví dụ về cách sử dụng thư viện ứng dụng.

Phạm vi ngày

Cả API Báo cáo phiên bản 4 và Data API v1 đều hỗ trợ nhiều phạm vi ngày được chỉ định bằng trường dateRanges trong yêu cầu báo cáo. Cả hai API đều có cùng định dạng nhập ngày, chấp nhận các giá trị ngày tuyệt đối dưới dạng YYYY-MM-DD hoặc ngày tương đối như yesderday, today, 7daysAgo, v.v.

Các yêu cầu API dữ liệu phiên bản 1 được giới hạn trong 4 phạm vi ngày, trong khi API Báo cáo phiên bản 4 cho phép có 2 phạm vi ngày trong một yêu cầu báo cáo.

Mỗi dateRange trong Data API v1 có thể có một trường name không bắt buộc dùng để tham chiếu phạm vi ngày tương ứng trong một phản hồi. Nếu bạn không cung cấp name, tên phạm vi ngày sẽ được tạo tự động.

Khi bạn chỉ định nhiều phạm vi ngày trong một yêu cầu Data API phiên bản 1, hệ thống sẽ tự động thêm phương diện dateRange mới vào nội dung phản hồi và tên phạm vi ngày sẽ được dùng làm giá trị phương diện. Xin lưu ý rằng hành vi này khác với API Báo cáo phiên bản 4 (trả về dữ liệu cho một phạm vi ngày dưới dạng nhóm giá trị chỉ số trong mỗi hàng).

Yêu cầu API dữ liệu phiên bản 1

Trường name không bắt buộc được sử dụng cho mỗi giá trị dateRange trong một yêu cầu. Tên phạm vi ngày này sẽ được dùng làm giá trị của phương diện dateRange trong nội dung phản hồi.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "metrics": [
    {
      "name": "sessions"
    }
  ],
  "dimensions": [
    {
      "name": "country"
    }
  ],
  "dateRanges": [
    {
      "startDate": "2020-01-01",
      "endDate": "2020-01-31",
      "name": "year_ago"
    },
    {
      "startDate": "2021-01-01",
      "endDate": "2021-01-31",
      "name": "current_year"
    }
  ]
}

Phản hồi của API dữ liệu phiên bản 1

Một phương diện dateRange bổ sung sẽ tự động được đưa vào câu trả lời. Giá trị kích thước dateRange chứa tên của một phạm vi ngày, lấy từ trường dateRange.name hoặc được tự động tăng cấp.

....

"dimensionHeaders": [
  {
    "name": "country"
  },
  {
    "name": "dateRange"
  }
],

....

"rows": [

....

  {
    "dimensionValues": [
      {
        "value": "Japan"
      },
      {
        "value": "year_ago"
      }
    ],
    "metricValues": [
      {
        "value": "253286"
      }
    ]
  },
  {
    "dimensionValues": [
      {
        "value": "Japan"
      },
      {
        "value": "current_year"
      }
    ],
    "metricValues": [
      {
        "value": "272582"
      }
    ]
  },

....

Yêu cầu API báo cáo phiên bản 4

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",
      "dateRanges": [
        {
          "startDate": "2020-01-01",
          "endDate": "2020-01-31",
        },
        {
          "startDate": "2021-01-01",
          "endDate": "2021-01-31",
        }
      ],
      "metrics": [
        {
          "expression": "ga:sessions"
        }
      ],
      "dimensions": [
        {
          "name": "ga:country"
        }
      ]
    }
  ]
}

Phản hồi của API báo cáo phiên bản 4

Trong API Báo cáo phiên bản 4, các giá trị cho mỗi phạm vi ngày được nhóm vào trường metrics:

{
  "dimensions": [
    "Japan"
  ],
  "metrics": [
    {
      "values": [
        "253286"
      ]
    },
    {
      "values": [
        "272582"
      ]
    }
  ]
},

Sắp xếp

Bạn có thể kiểm soát hành vi sắp xếp của các truy vấn báo cáo trong Data API phiên bản 1 bằng trường orderBys, tương tự như trường orderBys của API Báo cáo phiên bản 4.

Quy cách OrderBy đã thay đổi trong Data API phiên bản 1. Mỗi OrderBy có thể chứa một trong các nội dung sau:

  • DimensionOrderBy, sắp xếp kết quả theo giá trị của một phương diện.
  • MetricOrderBy: sắp xếp kết quả theo giá trị của một chỉ số.
  • PivotOrderBy, dùng trong các truy vấn tổng hợp và sắp xếp kết quả theo giá trị của một chỉ số trong một nhóm cột tổng hợp.

Các loại sắp xếp DELTA, SMART, HISTOGRAM_BUCKET mà API Báo cáo phiên bản 4 hỗ trợ không được triển khai trong Data API v1.

Loại thứ tự OrderType.NUMERIC của Data API phiên bản 1 tương đương với giá trị OrderType.DIMENSION_AS_INTEGER của API Báo cáo phiên bản 4.

Yêu cầu API dữ liệu phiên bản 1

Ví dụ này cho thấy một truy vấn mẫu báo cáo số phiên theo quốc gia, sắp xếp các hàng theo chỉ số sessions theo thứ tự giảm dần.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "metrics": [
    {
      "name": "sessions"
    }
  ],
  "dimensions": [
    {
      "name": "country"
    }
  ],
  "dateRanges": [
    {
      "startDate": "yesterday",
      "endDate": "today"
    }
  ],
  "orderBys": [
    {
      "metric": {
        "metricName": "sessions"
      },
      "desc": true
    }
  ]
}

Phản hồi của API dữ liệu phiên bản 1

{
  "dimensionHeaders": [
    {
      "name": "country"
    }
  ],
  "metricHeaders": [
    {
      "name": "sessions",
      "type": "TYPE_INTEGER"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": "United States"
        }
      ],
      "metricValues": [
        {
          "value": "510449"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Japan"
        }
      ],
      "metricValues": [
        {
          "value": "283430"
        }
      ]
    },

....

  ],
  "totalSize": 212,
  "metadata": {}
}

Yêu cầu API báo cáo phiên bản 4

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",
      "dateRanges": [
        {
          "startDate": "yesterday",
          "endDate": "today"
        }
      ],
      "metrics": [
        {
          "expression": "ga:sessions"
        }
      ],
      "dimensions": [
        {
          "name": "ga:country"
        }
      ],
      "orderBys": [
        {
          "fieldName": "ga:sessions",
          "sortOrder": "DESCENDING"
        }
      ]
    }
  ]
}

Phản hồi của API báo cáo phiên bản 4

{
"reports": [
  {

....

    "data": {
      "rows": [
        {
          "dimensions": [
            "United States"
          ],
          "metrics": [
            {
              "values": [
                "510449"
              ]
            }
          ]
        },
        {
          "dimensions": [
            "Japan"
          ],
          "metrics": [
            {
              "values": [
                "283430"
              ]
            }
          ]
        },

....

    }
  ]
}

Lọc

Bạn có thể sử dụng các mệnh đề dimensionFilter (Bộ lọc thứ nguyên) và metricFilter của Data API phiên bản 1 để yêu cầu API chỉ trả về dữ liệu cho các giá trị thứ nguyên hoặc chỉ số cụ thể. Phương thức này tương tự như dimensionFilterClausesmetricFilterClauses của API Báo cáo phiên bản 4.

Data API v1 không hỗ trợ các chuỗi biểu thức lọc như mệnh đề filtersExpression của API Reporting API v4. Các biểu thức này phải được viết lại bằng mệnh đề dimensionFiltermetricFilter.

Yêu cầu API dữ liệu phiên bản 1

Yêu cầu mẫu này trả về danh sách số phiên cho một số đường dẫn trang nhất định mà người dùng đã truy cập.

Mệnh đề dimensionFilter (bộ lọc thứ nguyên) chỉ dùng để trả về các hàng có giá trị thứ nguyên pagePath bắt đầu bằng /webstore/ và chứa chuỗi action=a12345.

Mệnh đề metricFilter yêu cầu phương thức runReport chỉ trả về các hàng có giá trị chỉ số sessions lớn hơn 1.000.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "metrics": [
    {
      "name": "sessions"
    }
  ],
  "dimensions": [
    {
      "name": "pagePath"
    }
  ],
  "dimensionFilter": {
    "andGroup": {
      "expressions": [
        {
          "filter": {
            "stringFilter": {
              "value": "/webstore/",
              "matchType": "BEGINS_WITH"
            },
            "fieldName": "pagePath"
          }
        },
        {
          "filter": {
            "stringFilter": {
              "matchType": "CONTAINS",
              "value": "action=a12345"
            },
            "fieldName": "pagePath"
          }
        }
      ]
    }
  },
  "metricFilter": {
    "filter": {
      "numericFilter": {
        "value": {
          "int64Value": 1000
        },
        "operation": "GREATER_THAN"
      },
      "fieldName": "sessions"
    }
  },
  "dateRanges": [
    {
      "startDate": "yesterday",
      "endDate": "today"
    }
  ]
}

Yêu cầu API báo cáo phiên bản 4

Yêu cầu mẫu này tương tự như ví dụ về Data API phiên bản 1. Phương thức này trả về danh sách số phiên cho một số đường dẫn trang nhất định mà người dùng đã truy cập.

Trường dimensionFilterClauses được dùng để chỉ trả về các hàng có giá trị kích thước pagePath bắt đầu bằng /webstore/ và chứa chuỗi action=a12345.

Trường metricFilterClauses được dùng để chỉ trả về những hàng có giá trị chỉ số ga:sessions lớn hơn 1.000.

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",
      "metrics": [
        {
          "expression": "ga:sessions"
        }
      ],
      "dimensions": [
        {
          "name": "ga:pagePath"
        }
      ],
      "metricFilterClauses": [
        {
          "filters": [
            {
              "metricName": "ga:sessions",
              "operator": "GREATER_THAN",
              "comparisonValue": "1000"
            }
          ]
        }
      ],
      "dimensionFilterClauses": [
        {
          "filters": [
            {
              "dimensionName": "ga:pagePath",
              "operator": "BEGINS_WITH",
              "expressions": [
                "/webstore/"
              ]
            },
            {
              "dimensionName": "ga:pagePath",
              "operator": "PARTIAL",
              "expressions": [
                "action=a12345"
              ]
            }
          ],
          "operator": "AND"
        }
      ],
      "dateRanges": [
        {
          "startDate": "yesterday",
          "endDate": "today"
        }
      ]
    }
  ]
}

Phân trang

Data API v1 sử dụng các trường limit (giới hạn) và offset (phần bù trừ) để phân trang thông qua kết quả phản hồi trên nhiều trang, trong khi Reporting API v4 sử dụng pageTokenpageSize.

Đối với các yêu cầu tổng hợp của Data API phiên bản 1, bạn nên sử dụng các trường limitoffset của đối tượng Pivot để triển khai tính năng phân trang cho từng bảng tổng hợp. Trường limit hiện là bắt buộc cho mọi đối tượng Pivot.

Theo mặc định, Data API phiên bản 1 sẽ trả về tối đa 10.000 hàng dữ liệu sự kiện đầu tiên, trong khi giá trị mặc định cho API Báo cáo phiên bản 4 là 1.000 hàng.

Tổng số hàng khớp với truy vấn được trả về bằng trường rowCount trong phản hồi của Data API v1, tương tự như API Báo cáo v4.

Yêu cầu API dữ liệu phiên bản 1

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dateRanges": [

....

  ],
  "metrics": [

....

  ],
  "dimensions": [

....

  ],
  "limit": 5,
  "offset": 15
}

Phản hồi của API dữ liệu phiên bản 1

{
  "dimensionHeaders": [

....

  ],
  "metricHeaders": [

....

  ],
  "rows": [

....

  ],
  "rowCount": 228,
}

Yêu cầu API báo cáo phiên bản 4

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",
      "dateRanges": [

....

      ],
      "metrics": [

....

      ],
      "dimensions": [

....

      ],
      "pageSize": 5,
      "pageToken": "5"

    }
  ]
}

Phản hồi của API báo cáo phiên bản 4

{
  "reports": [
    {

....

      "data": {
        "rows": [

....

        ],

....

        "rowCount": 225,
      },
      "nextPageToken": "15"
    }
  ]
}

Tổng hợp các chỉ số

Data API phiên bản 1 chỉ tính toán các giá trị tổng hợp khi trường metricAggregations được chỉ định trong một yêu cầu. Ngược lại, API Báo cáo phiên bản 4 sẽ trả về tổng, giá trị tối thiểu và tối đa cho từng chỉ số theo mặc định, trừ phi các trường hideTotalshideValueRanges được đặt thành true.`

Yêu cầu API dữ liệu phiên bản 1

Hệ thống sẽ chỉ tính toán dữ liệu tổng hợp nếu trường metricAggregations được chỉ định trong một yêu cầu.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "metricAggregations": [
    "TOTAL",
    "MAXIMUM",
    "MINIMUM"
  ],
  "metrics": [
    {
      "name": "sessions"
    }
  ],
  "dimensions": [
    {
      "name": "country"
    }
  ],
  "dateRanges": [
    {
      "startDate": "yesterday",
      "endDate": "today"
    }
  ]
}

Phản hồi của API dữ liệu phiên bản 1

Các hàng chỉ số tổng hợp sẽ được trả về trong các trường totals, minimummaximum của phản hồi. Đối với các hàng chỉ số tổng hợp, trường dimensionValues chứa giá trị đặc biệt là RESERVED_TOTAL, RESERVED_MAX hoặc RESERVED_MIN.

{
  "dimensionHeaders": [

  ....

  ],
  "metricHeaders": [

  ....

  ],
  "rows": [

  ....

  ],
  "totals": [
    {
      "dimensionValues": [
        {
          "value": "RESERVED_TOTAL"
        },
        {
          "value": "RESERVED_TOTAL"
        }
      ],
      "metricValues": [
        {
          "value": "6026053"
        }
      ]
    }
  ],
  "maximums": [
    {
      "dimensionValues": [
        {
          "value": "RESERVED_MAX"
        },
        {
          "value": "RESERVED_MAX"
        }
      ],
      "metricValues": [
        {
          "value": "493655"
        }
      ]
    }
  ],
  "minimums": [
    {
      "dimensionValues": [
        {
          "value": "RESERVED_MIN"
        },
        {
          "value": "RESERVED_MIN"
        }
      ],
      "metricValues": [
        {
          "value": "1"
        }
      ]
    }
  ],

....

}

Yêu cầu API báo cáo phiên bản 4

Một yêu cầu mẫu để trả về số phiên theo quốc gia.

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",
      "dateRanges": [
        {
          "startDate": "yesterday",
          "endDate": "today"
        }
      ],
      "metrics": [
        {
          "expression": "ga:sessions"
        }
      ],
      "dimensions": [
        {
          "name": "ga:country"
        }
      ],
    }
  ]
}

Phản hồi của API báo cáo phiên bản 4

Theo mặc định, các trường totals, minimumsmaximums sẽ xuất hiện trong phản hồi của API Báo cáo phiên bản 4.

{
  "reports": [
    {
      "columnHeader": {

         ....

      },
      "data": {
        "rows": [

         ....

        ],

       ....

        "totals": [
          {
            "values": [
              "4493363"
            ]
          }
        ],
        "minimums": [
          {
            "values": [
              "1"
            ]
          }
        ],
        "maximums": [
          {
            "values": [
              "684005"
            ]
          }
        ]

      }
    }
  ]
}

Tổng hợp

Data API v1 hỗ trợ chức năng tổng hợp trong các phương thức báo cáo runPivotReportbatchRunPivotReports.

API Báo cáo phiên bản 4 cho phép đưa thông tin tổng hợp vào các truy vấn báo cáo bằng cách sử dụng phương thức batchGet.

Các tổng hợp được triển khai khác nhau trong API Dữ liệu phiên bản 1 so với API Báo cáo phiên bản 4 theo cách mỗi hàng phản hồi đại diện cho một ô duy nhất của bảng, trong khi trong API Báo cáo phiên bản 4, một hàng phản hồi duy nhất đại diện cho một dòng bảng hoàn chỉnh.

Data API phiên bản 1

Dưới đây là một mảnh của phản hồi Data API phiên bản 1 cho truy vấn runPivotReport. Mỗi ô của báo cáo tổng hợp được trả về riêng lẻ:

    "rows": [
      {
        "dimensionValues": [
          {
            "value": "Albania"
          },
          {
            "value": "Edge"
          }
        ],
        "metricValues": [
          {
            "value": "1701"
          }
        ]
      },

API báo cáo phiên bản 4

Dưới đây là một mảnh của phản hồi API Báo cáo phiên bản 4 cho truy vấn batchGet. Một hàng phản hồi đại diện cho một dòng hoàn chỉnh trong bảng chứa tất cả giá trị chỉ số cho bảng tổng hợp trong pivotValueRegions:

      "data": {
        "rows": [
          {
            "dimensions": [
              "Albania"
            ],
            "metrics": [
              {
                "values": [
                  "42394"
                ],
                "pivotValueRegions": [
                  {
                    "values": [
                      "24658",
                      "17208",
                      "132"
                    ]
                  }
                ]
              }
            ]
          },

Trong Data API phiên bản 1, mọi phương diện của truy vấn runPivotReport hoặc batchRunPivotReports phải được xác định trong một đối tượng tổng hợp. Một thứ nguyên sẽ không hiển thị trong báo cáo nếu không được dùng trong bất kỳ bảng tổng hợp nào của truy vấn tổng hợp.

Các cột tổng hợp của API Dữ liệu phiên bản 1 được chỉ định bằng cách sử dụng trường fieldNames thay vì trường dimensions của API Báo cáo phiên bản 4.

Bạn phải sử dụng bộ lọc phương diện trong phạm vi yêu cầu nếu muốn lọc phương diện trong yêu cầu báo cáo Data API phiên bản 1. API này khác với API Báo cáo phiên bản 4, chấp nhận quy cách dimensionFilterClauses trong đối tượng tổng hợp.

Trường offset của Data API v1 có chức năng tương tự như trường startGroup của API Báo cáo phiên bản 4.

Trường giới hạn của Data API phiên bản 1 tương tự như maxGroupCount của API Báo cáo phiên bản 4 và nên được dùng để giới hạn số lượng giá trị riêng biệt của báo cáo.

Data API v1 hỗ trợ nhiều bảng tổng hợp miễn là tích của tham số limit cho mỗi bảng tổng hợp không vượt quá 100.000. API Báo cáo phiên bản 4 chỉ hỗ trợ một phương diện tổng hợp.

Theo mặc định, Data API phiên bản 1 sắp xếp các phương diện trong một bảng tổng hợp theo chỉ số đầu tiên trong báo cáo. Hành vi này khác với API Báo cáo phiên bản 4, trong đó thứ tự trung tâm được xác định theo thứ tự giảm dần của "tổng" các chỉ số được yêu cầu. Để chỉ định thứ tự sắp xếp trong Data API phiên bản 1, hãy sử dụng trường orderBys của thông số kỹ thuật Pivot.

Yêu cầu API dữ liệu phiên bản 1

Truy vấn tổng hợp Data API v1 này sẽ tạo báo cáo về số phiên theo quốc gia, được tổng hợp theo phương diện browser. Hãy lưu ý cách truy vấn này sử dụng các trường orderBys, limit, offset để tái tạo hành vi của truy vấn API Báo cáo phiên bản 4 tương tự nhằm duy trì chế độ cài đặt thứ tự và phân trang.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runPivotReport

{
  "dateRanges": [
    {
      "startDate": "2021-01-01",
      "endDate": "2021-01-30"
    }
  ],
  "pivots": [
    {
      "fieldNames": [
        "country"
      ],
      "limit": 250,
      "orderBys": [
        {
          "dimension": {
            "dimensionName": "country"
          }
        }
      ]
    },
    {
      "fieldNames": [
        "browser"
      ],
      "offset": 3,
      "limit": 3,
      "orderBys": [
        {
          "metric": {
            "metricName": "sessions"
          },
          "desc": true
        }
      ]
    }
  ],
  "metrics": [
    {
      "name": "sessions"
    }
  ],
  "dimensions": [
    {
      "name": "country"
    },
    {
      "name": "browser"
    }
  ]
}

Phản hồi của API dữ liệu phiên bản 1

{
  "pivotHeaders": [
    {
      "pivotDimensionHeaders": [
        {
          "dimensionValues": [
            {
              "value": "(not set)"
            }
          ]
        },
        {
          "dimensionValues": [
            {
              "value": "Albania"
            }
          ]
        },
        {
          "dimensionValues": [
            {
              "value": "Algeria"
            }
          ]
        }
      ],
      "rowCount": 234
    },
    {
      "pivotDimensionHeaders": [
        {
          "dimensionValues": [
            {
              "value": "Safari"
            }
          ]
        },
        {
          "dimensionValues": [
            {
              "value": "Edge"
            }
          ]
        },
        {
          "dimensionValues": [
            {
              "value": "Opera"
            }
          ]
        }
      ],
      "rowCount": 124
    }
  ],
  "dimensionHeaders": [
    {
      "name": "country"
    },
    {
      "name": "browser"
    }
  ],
  "metricHeaders": [
    {
      "name": "sessions",
      "type": "TYPE_INTEGER"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": "(not set)"
        },
        {
          "value": "Safari"
        }
      ],
      "metricValues": [
        {
          "value": "2531"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "(not set)"
        },
        {
          "value": "Edge"
        }
      ],
      "metricValues": [
        {
          "value": "1701"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "(not set)"
        },
        {
          "value": "Opera"
        }
      ],
      "metricValues": [
        {
          "value": "1564"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Albania"
        },
        {
          "value": "Safari"
        }
      ],
      "metricValues": [
        {
          "value": "2531"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Albania"
        },
        {
          "value": "Edge"
        }
      ],
      "metricValues": [
        {
          "value": "1701"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Albania"
        },
        {
          "value": "Opera"
        }
      ],
      "metricValues": [
        {
          "value": "1564"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Algeria"
        },
        {
          "value": "Safari"
        }
      ],
      "metricValues": [
        {
          "value": "237"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Algeria"
        },
        {
          "value": "Edge"
        }
      ],
      "metricValues": [
        {
          "value": "44"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Algeria"
        },
        {
          "value": "Opera"
        }
      ],
      "metricValues": [
        {
          "value": "22"
        }
      ]
    },

....

  ],

....

}

Yêu cầu API báo cáo phiên bản 4

Truy vấn tổng hợp của API Báo cáo phiên bản 4 này sẽ tạo báo cáo về số phiên theo quốc gia, được tổng hợp theo phương diện ga:browser.

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",
      "dateRanges": [
        {
          "startDate": "2021-01-01",
          "endDate": "2021-01-30"
        }
      ],
      "metrics": [
        {
          "expression": "ga:sessions"
        }
      ],
      "dimensions": [
        {
          "name": "ga:country"
        }
      ],
      "pivots": [
        {
          "dimensions": [
            {
              "name": "ga:browser"
            }
          ],
          "startGroup": 3,
          "maxGroupCount": 3,
          "metrics": [
            {
              "expression": "ga:sessions"
            }
          ]
        }
      ]
    }
  ]
}

Phản hồi của API báo cáo phiên bản 4

{
  "reports": [
    {
      "columnHeader": {
        "dimensions": [
          "ga:country"
        ],
        "metricHeader": {
          "metricHeaderEntries": [
            {
              "name": "ga:sessions",
              "type": "INTEGER"
            }
          ],
          "pivotHeaders": [
            {
              "pivotHeaderEntries": [
                {
                  "dimensionNames": [
                    "ga:browser"
                  ],
                  "dimensionValues": [
                    "Edge"
                  ],
                  "metric": {
                    "name": "ga:sessions",
                    "type": "INTEGER"
                  }
                },
                {
                  "dimensionNames": [
                    "ga:browser"
                  ],
                  "dimensionValues": [
                    "Opera"
                  ],
                  "metric": {
                    "name": "ga:sessions",
                    "type": "INTEGER"
                  }
                },
                {
                  "dimensionNames": [
                    "ga:browser"
                  ],
                  "dimensionValues": [
                    "Samsung Internet"
                  ],
                  "metric": {
                    "name": "ga:sessions",
                    "type": "INTEGER"
                  }
                }
              ],
              "totalPivotGroupsCount": 19
            }
          ]
        }
      },
      "data": {
        "rows": [
          {
            "dimensions": [
              "(not set)"
            ],
            "metrics": [
              {
                "values": [
                  "781283"
                ],
                "pivotValueRegions": [
                  {
                    "values": [
                      "6923",
                      "1385",
                      "66"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "dimensions": [
              "Albania"
            ],
            "metrics": [
              {
                "values": [
                  "42394"
                ],
                "pivotValueRegions": [
                  {
                    "values": [
                      "24658",
                      "17208",
                      "132"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "dimensions": [
              "Algeria"
            ],
            "metrics": [
              {
                "values": [
                  "23208"
                ],
                "pivotValueRegions": [
                  {
                    "values": [
                      "19252",
                      "66",
                      "1582"
                    ]
                  }
                ]
              }
            ]
          },

  ....

        ],

  ....

      }
    }
  ]
}

Nhóm thuần tập

Data API phiên bản 1 sử dụng đặc tả CohortSpec để định cấu hình báo cáo nhóm thuần tập. Điều này tương tự như đặc tả CohortGroup của API Báo cáo phiên bản 4.

Tất cả các chỉ số có sẵn trong Data API v1 hiện tương thích với các truy vấn nhóm thuần tập, trong khi API Báo cáo phiên bản 4 chỉ cho phép sử dụng một tập hợp con các chỉ số đặc biệt trong truy vấn nhóm thuần tập.

Trong yêu cầu nhóm thuần tập Data API phiên bản 1, bạn bắt buộc phải chỉ số cohortActiveUsers.

Cả API dữ liệu phiên bản 1 và API báo cáo phiên bản 4 đều cho phép tối đa 12 nhóm thuần tập trong một yêu cầu duy nhất.

Chỉ số giá trị vòng đời (LTV) hiện không được hỗ trợ trong Data API phiên bản 1.

Tương đương với các chỉ số của nhóm thuần tập

Bạn có thể thay thế hầu hết các chỉ số của nhóm thuần tập được xác định trong API Báo cáo phiên bản 4 bằng một biểu thức để đạt được kết quả tương đương trong Data API v1, theo biểu đồ bên dưới.

Tên chỉ số của API báo cáo phiên bản 4 Tên hoặc biểu thức chỉ số Data API phiên bản 1
ga:cohortActiveUsers cohortActiveUsers
ga:cohortTotalUsers cohortTotalUsers
ga:cohortRetentionRate "expression": "cohortActiveUsers/cohortTotalUsers"
ga:cohortRevenuePerUser "expression": "tổng doanh thu/nhóm người dùng hoạt động"
ga:cohortVisitDurationPerUser "expression": "userEngagementDuration/cohortActiveUsers"
ga:cohortAppviewsPerUser "expression": "screenPageViews/cohortActiveUsers"
ga:cohortPageviewsPerUser "expression": "screenPageViews/cohortActiveUsers"
ga:cohortSessionsPerUser "expression": "sessions/cohortActiveUsers"
ga:cohortGoalCompletionsPerUser "expression": "eventCount/cohortActiveUsers", ngoài một bộ lọc phương diện theo eventName tương ứng với sự kiện hoàn thành mục tiêu mong muốn.

Yêu cầu API dữ liệu phiên bản 1

Một truy vấn mẫu định cấu hình một nhóm người dùng có phiên đầu tiên đã diễn ra vào một tuần của ngày 3/1/2021. Số lượng người dùng đang hoạt động và tỷ lệ giữ chân người dùng được tính cho nhóm thuần tập trong 5 tuần, bằng cách sử dụng độ chi tiết TUẦN.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "cohortSpec": {
    "cohorts": [
      {
        "dimension": "firstSessionDate",
        "name": "cohort",
        "dateRange": {
          "startDate": "2021-01-03",
          "endDate": "2021-01-09"
        }
      }
    ],
    "cohortsRange": {
      "startOffset": 0,
      "endOffset": 4,
      "granularity": "WEEKLY"
    }
  },
  "metrics": [
    {
      "name": "cohortActiveUsers"
    },
    {
      "expression": "cohortActiveUsers/cohortTotalUsers",
      "name": "cohortRetentionRate"
    }
  ],
  "dimensions": [
    {
      "name": "cohort"
    },
    {
      "name": "cohortNthWeek"
    }
  ]
}

Phản hồi của API dữ liệu phiên bản 1

{
  "dimensionHeaders": [
    {
      "name": "cohort"
    },
    {
      "name": "cohortNthWeek"
    }
  ],
  "metricHeaders": [
    {
      "name": "cohortActiveUsers",
      "type": "TYPE_INTEGER"
    },
    {
      "name": "cohortRetentionRate",
      "type": "TYPE_FLOAT"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": "cohort"
        },
        {
          "value": "0000"
        }
      ],
      "metricValues": [
        {
          "value": "4268816"
        },
        {
          "value": "0.999913800857494"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "cohort"
        },
        {
          "value": "0001"
        }
      ],
      "metricValues": [
        {
          "value": "241580"
        },
        {
          "value": "0.056586926213534013"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "cohort"
        },
        {
          "value": "0002"
        }
      ],
      "metricValues": [
        {
          "value": "159390"
        },
        {
          "value": "0.037335003597877253"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "cohort"
        },
        {
          "value": "0003"
        }
      ],
      "metricValues": [
        {
          "value": "131512"
        },
        {
          "value": "0.030804950079453122"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "cohort"
        },
        {
          "value": "0004"
        }
      ],
      "metricValues": [
        {
          "value": "96793"
        },
        {
          "value": "0.022672482610259947"
        }
      ]
    }
  ],
  "totalSize": 5,
  "metadata": {}
}

Yêu cầu API báo cáo phiên bản 4

Một truy vấn mẫu định cấu hình một nhóm người dùng có phiên đầu tiên đã diễn ra vào một tuần của ngày 3/1/2021. Số người dùng đang hoạt động và tỷ lệ giữ chân người dùng được tính toán cho nhóm thuần tập trong 5 tuần, bằng cách sử dụng độ chi tiết WEEKLY.

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",
      "dimensions": [
        {
          "name": "ga:cohort"
        },
        {
          "name": "ga:cohortNthWeek"
        }
      ],
      "metrics": [
        {
          "expression": "ga:cohortActiveUsers"
        },
        {
          "expression": "ga:cohortRetentionRate"
        }
      ],
      "cohortGroup": {
        "cohorts": [
          {
            "name": "cohort",
            "type": "FIRST_VISIT_DATE",
            "dateRange": {
              "startDate": "2021-01-03",
              "endDate": "2021-01-09"
            }
          }
        ]
      }
    }
  ]
}

Phản hồi của API báo cáo phiên bản 4

{
  "reports": [
    {
      "columnHeader": {
        "dimensions": [
          "ga:cohort",
          "ga:cohortNthWeek"
        ],
        "metricHeader": {
          "metricHeaderEntries": [
            {
              "name": "ga:cohortActiveUsers",
              "type": "INTEGER"
            },
            {
              "name": "ga:cohortRetentionRate",
              "type": "PERCENT"
            }
          ]
        }
      },
      "data": {
        "rows": [
          {
            "dimensions": [
              "cohort",
              "0000"
            ],
            "metrics": [
              {
                "values": [
                  "40793",
                  "100.0"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "cohort",
              "0001"
            ],
            "metrics": [
              {
                "values": [
                  "3883",
                  "9.518789988478416"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "cohort",
              "0002"
            ],
            "metrics": [
              {
                "values": [
                  "2165",
                  "5.307283112298679"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "cohort",
              "0003"
            ],
            "metrics": [
              {
                "values": [
                  "1703",
                  "4.174735861544873"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "cohort",
              "0004"
            ],
            "metrics": [
              {
                "values": [
                  "1484",
                  "3.637879047875861"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "cohort",
              "0005"
            ],
            "metrics": [
              {
                "values": [
                  "1103",
                  "2.7038952761503197"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "cohort",
              "0006"
            ],
            "metrics": [
              {
                "values": [
                  "933",
                  "2.28715711028853"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "cohort",
              "0007"
            ],
            "metrics": [
              {
                "values": [
                  "336",
                  "0.8236707278209496"
                ]
              }
            ]
          }
        ],
        "totals": [
          {
            "values": [
              "52400",
              "16.056676390557204"
            ]
          }
        ],
        "rowCount": 8,
        "minimums": [
          {
            "values": [
              "336",
              "0.8236707278209496"
            ]
          }
        ],
        "maximums": [
          {
            "values": [
              "40793",
              "100.0"
            ]
          }
        ],
        "isDataGolden": true
      }
    }
  ]
}

Lấy mẫu

Data API phiên bản 1 tự động sử dụng tính năng lấy mẫu dữ liệu khi dự đoán rằng các giới hạn về số lượng giá trị riêng biệt sẽ làm giảm chất lượng dữ liệu. Nếu kết quả cho một phạm vi ngày được lấy mẫu, metadata của RunReportResponse sẽ chứa SamplingMetadata tương ứng, tương tự như trường samplingLevel có trong API Báo cáo phiên bản 4.

Độ mới của dữ liệu

Data API không cung cấp trường isDataGolden tương đương của API Báo cáo phiên bản 4. Trường này được dùng để cho biết liệu tất cả lượt truy cập của một báo cáo đã được xử lý xong hay chưa. Cùng một báo cáo vẫn có thể trả về các kết quả khác nhau khi được truy vấn vào một ngày sau đó do quá trình xử lý bổ sung.

Phân đoạn (Không được hỗ trợ)

Phân đoạn hiện không được hỗ trợ trong Data API phiên bản 1.

Báo cáo theo thời gian thực

Sử dụng phương thức properties.runRealtimeReport của API Dữ liệu phiên bản 1 để tạo báo cáo theo thời gian thực cho tài sản Google Analytics 4. Chức năng báo cáo theo thời gian thực cho các tài sản Universal Analytics được cung cấp bằng phương thức data.realtime.get của API Google Analytics phiên bản 3.

Giản đồ báo cáo theo thời gian thực của Data API khác với giản đồ báo cáo theo thời gian thực của API Analytics phiên bản 3, do sự khác biệt về khái niệm giữa Universal Analytics và Google Analytics 4.

Yêu cầu API dữ liệu phiên bản 1

Trong ví dụ sau, để duy trì hành vi sắp xếp mặc định của API Google Analytics phiên bản 3, một phần tử orderBy không bắt buộc đã được thêm vào truy vấn API Dữ liệu phiên bản 1.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runRealtimeReport
{
  "dimensions": [{ "name": "country" }],
  "metrics": [{ "name": "activeUsers" }],
  "orderBys": [
     {
       "dimension": {
         "dimensionName": "country"
         }
     }
   ]
}

Phản hồi của API dữ liệu phiên bản 1

{
  "dimensionHeaders": [
    {
      "name": "country"
    }
  ],
  "metricHeaders": [
    {
      "name": "activeUsers",
      "type": "TYPE_INTEGER"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": ""
        }
      ],
      "metricValues": [
        {
          "value": "199"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Afghanistan"
        }
      ],
      "metricValues": [
        {
          "value": "4"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Albania"
        }
      ],
      "metricValues": [
        {
          "value": "136"
        }
      ]
    },

    ....

  ],
  "rowCount": 172
}

Yêu cầu API Google Analytics phiên bản 3

GET https://analytics.googleapis.com/analytics/v3/data/realtime?ids=ga:UA_VIEW_ID&metrics=rt:activeUsers&dimensions=rt:country

Phản hồi của Google Analytics API phiên bản 3

{
  "kind": "analytics#realtimeData",
  "id": "https://www.googleapis.com/analytics/v3/data/realtime?ids=ga:UA_VIEW_ID&dimensions=rt:country&metrics=rt:activeUsers",
  "query": {
    "ids": "ga:UA_VIEW_ID",
    "dimensions": "rt:country",
    "metrics": [
      "rt:activeUsers"
    ],
    "max-results": 10
  },
  "totalResults": 178,
  "profileInfo": {
    "profileId": "XXXXXX",
    "accountId": "XXXXXX",
    "webPropertyId": "UA-XXXXXX",
    "profileName": "View Name",
  },
  "columnHeaders": [
    {
      "name": "rt:country",
      "columnType": "DIMENSION",
      "dataType": "STRING"
    },
    {
      "name": "rt:activeUsers",
      "columnType": "METRIC",
      "dataType": "INTEGER"
    }
  ],
  "totalsForAllResults": {
    "rt:activeUsers": "80351"
  },
  "rows": [
    [
      "(not set)",
      "97"
    ],
    [
      "Afghanistan",
      "2"
    ],
    [
      "Albania",
      "78"
    ],

  ....

  ]
}

(Không được hỗ trợ) Báo cáo hoạt động của người dùng

Data API phiên bản 1 hiện không hỗ trợ chức năng báo cáo hoạt động của từng người dùng, tương tự như phương thức userActivity.search của API Báo cáo phiên bản 4.

Các thay đổi về hạn mức API

Danh mục hạn mức chính và hạn mức theo thời gian thực

Đối với mục đích của hạn mức, Data API có hai danh mục yêu cầu: Cốt lõi và Thời gian thực. Các yêu cầu API đối với phương thức báo cáo cốt lõi (runReport, getMetadata, runPivotReport, batchRunReports, batchRunPivotReports) sẽ tính hạn mức cốt lõi. Các yêu cầu API đến phương thức runRealtimeReport sẽ tính phí Hạn mức theo thời gian thực.

Hạn mức mã thông báo

Ngoài hạn mức của dự án, mỗi yêu cầu cũng sử dụng hạn mức mã thông báo của thuộc tính. Hạn mức này được tính phí tuỳ thuộc vào mức độ phức tạp của truy vấn. Vui lòng xem tài liệu về hạn mức API dữ liệu phiên bản 1 để biết nội dung mô tả chi tiết về hạn mức và giới hạn API.

Bạn có thể biết trạng thái hiện tại của tất cả các hạn mức cho một Tài sản Analytics bằng cách đặt returnPropertyQuota thành true trong một yêu cầu báo cáo chính hoặc theo thời gian thực. Trạng thái hạn mức sẽ được trả về trong PropertyQuota.

(Không được hỗ trợ) Hạn mức dựa trên tài nguyên

Vì tất cả các báo cáo chính trong Google Analytics 4 đều dựa trên dữ liệu chưa được lấy mẫu, nên Hạn mức dựa trên tài nguyên được ra mắt trong API Báo cáo phiên bản 4 không còn áp dụng và không có trường useResourceQuotas có trong yêu cầu báo cáo Data API phiên bản 1.

(Không được hỗ trợ) Hạn mức yêu cầu trên mỗi lượt xem (hồ sơ) mỗi ngày

Vì không có chế độ xem nào trong Google Analytics 4, nên hạn mức requests per view (profile) per day không có trong Data API phiên bản 1 và được thay thế bằng hạn mức mã thông báo.