GA4データをGASで自動集計!スプレッドシートへの簡単導入法
GA4データをGASで取得する第一歩
まずは、GA4のデータをGASで取得する前に必要な準備をしよう。
APIキーを取得する方法
GASを用いてGA4のデータを取得するには、まずGoogle Cloud Platformでプロジェクトを作り、APIキーを設定する必要がある。
1. Google Cloud Consoleにアクセスして、新しいプロジェクトを作成しよう。
2. プロジェクトのダッシュボードでAPIとサービスに進み、APIとサービスの認証情報からAPIキーを作成する。
GASでGA4データを集計
APIキーを取得したら、次にGASを使ってGA4のデータを取得する方法を学ぶ番だ。
GASでGA4 APIにアクセスする
GA4 APIにアクセスし、データを取得するための基本スクリプトは以下の通りだ。
function getDataFromGA4() {
var apiKey = 'YOUR_API_KEY';
var url = 'https://analyticsdata.googleapis.com/v1beta/properties/PROPERTIES_ID:runReport';
var requestOptions = {
'method': 'POST',
'contentType': 'application/json',
'headers': {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
},
'payload': JSON.stringify({
'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'yesterday'}],
'dimensions': [{'name': 'city'}],
'metrics': [{'name': 'sessions'}]
})
};
var response = UrlFetchApp.fetch(url + '?key=' + apiKey, requestOptions);
Logger.log(response.getContentText());
}
このスクリプトはGA4にアクセスし、過去30日間のセッション数を取得するものだ。
GA4データをスプレッドシートに出力する
GASを使ってデータをスプレッドシートに出力する方法を見てみよう。
スプレッドシートへの出力方法
GASを用いることで、取得したデータをスプレッドシートに直接出力する操作は簡単だ。
function outputDataToSheet() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
// ヘッダーを追加
sheet.appendRow(['City', 'Sessions']);
// データを追加
var data = getDataFromGA4();
for (var i = 0; i < data.length; i++) {
sheet.appendRow(data[i]);
}
}
このスクリプトは、GA4から取得したデータを使用してスプレッドシートに出力する。
練習問題
1. GA4のデータを期間「開始日:7daysAgo、終了日:today」で取得し、地域(region)のディメンションをセッション数とともに取得するようにスクリプトを修正してみよう。
解答・解説
function getDataFromGA4() {
var apiKey = 'YOUR_API_KEY';
var url = 'https://analyticsdata.googleapis.com/v1beta/properties/PROPERTIES_ID:runReport';
var requestOptions = {
'method': 'POST',
'contentType': 'application/json',
'headers': {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
},
'payload': JSON.stringify({
'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
'dimensions': [{'name': 'region'}],
'metrics': [{'name': 'sessions'}]
})
};
var response = UrlFetchApp.fetch(url + '?key=' + apiKey, requestOptions);
Logger.log(response.getContentText());
}
このスクリプトは、Date Rangesの部分を‘7daysAgo’から‘today’に変更し、ディメンションにregionを追加することで、指定した期間で地域の情報を取得可能にする。