/Cách lấy dữ liệu từ GA4 qua Google Analytics Data API v1

Cách lấy dữ liệu từ GA4 qua Google Analytics Data API v1

Gần đây Google Analytics đã chuyển đổi qua sử dụng GA4 thay thế cho GA cũ. Vì vậy các API kết nối tới GA cũ sẽ được chuyển đổi qua API mới.

Dưới đây là các bước hướng dẫn cài đặt để lấy được dữ liệu trên GA4 thông qua Google Analytics Data API

Step 1: Chuẩn bị

Bạn phải chắc chắn đã chuyển đổi qua sử dụng GA4 cho website của mình. Chi tiết hướng dẫn tại đây

Step 2: Enable Google Analytics Data API v1

Bước này sẽ thực hiện enable API service trên tài khoản Google Cloud console

Google Analytics Data API Service
Google Analytics Data API Service

Hoặc có thể truy cập link sau click button “Enable the Google Analytics Data API v1” để enable

Step 3: Cấu hình Client Authentication

Tham khải tài liệu https://github.com/googleapis/google-cloud-php/blob/main/AUTHENTICATION.md

Step 4: Cài đặt thư viện client

Mình sẽ hướng dẫn với ngôn ngữ PHP, các ngôn ngữ khác có thể tham khảo tại đây

Cài đặt PHP analytics data qua composer

composer require google/analytics-data

Step 5: Kết nối API và lấy dữ liệu

  • Khởi tạo kết nối tới GA4
putenv("GOOGLE_APPLICATION_CREDENTIALS="../analytics.json"); // file json authentication từ step 3

$client = new BetaAnalyticsDataClient();
  • Lấy data

Ví dụ dưới đây sẽ lấy dữ liệu truy cập trong 30 ngày gần nhất

$preDate = date('Y-m-d', strtotime('-30 days'));
$dateRanges = [
new DateRange([
'start_date' => $preDate,
'end_date' => 'today',
])
];
$dimensions = [
new Dimension([
'name' => 'date',
])
];
$metrics = [
new Metric([
'name' => 'totalUsers'
])
];
$orderBys = [
new OrderBy([
'dimension' => new DimensionOrderBy([
'dimension_name' => 'date',
])
])
];
$response = $client->runReport([
'property' => 'properties/{$GA3_ACCOUNT_CODE}',
'dateRanges' => $dateRanges,
'dimensions' => $dimensions,
'metrics' => $metrics,
'orderBys' => $orderBys,
]);
$aryVisitors = [];
$aryDate = [];
foreach ($response->getRows() as $row) {
foreach ($row->getMetricValues() as $metricValue) {
$aryVisitors[] = $metricValue->getValue();
}
foreach ($row->getDimensionValues() as $dimensionValue) {
$aryDate[] = $dimensionValue->getValue();
}
}