👏
GAS×Google Analytics Data APIでGA4のデータをスプレッドシートに出力してみた
Google Analytics Data APIとは
Google アナリティクス 4(GA4)のレポートデータにアクセスすることが可能だそうだ。
2023 年 7 月 1 日以降を持って旧GAの計測が終了する(この記事執筆時点では既に終了している)ため、次のプラットフォームであるGA4のデータをGoogle Analytics Data APIとGASを用いてスプレッドシートに簡単なGA4のデータを出力してみた備忘録。
手順
スプレッドシートの準備
「拡張機能」→「Apps Script」を開く。
「サービス」から「Google Analytics Data API」を追加する。
スクリプトの記述
簡単なスクリプトサンプル
function writeDataToSheet() {
// Google Analytics 4のプロパティIDを入力
var propertyId = "";
// Google SheetsのスプレッドシートIDとシート名をそれぞれ入力
var spreadsheetId = "";
var sheetName = "";
var url = "https://analyticsdata.googleapis.com/v1beta/properties/" + propertyId + ":runReport";
var headers = {
"Authorization": "Bearer " + ScriptApp.getOAuthToken(),
"Content-Type": "application/json"
};
// データ期間を設定
var startDate = "2023-04-11";
var endDate = "today";
var body = JSON.stringify({
// データ期間を設定
"dateRanges": [{
"startDate": "2023-04-11",
"endDate": "today"
}],
// サンプルはデフォルトチャネルグループのディメンションを設定
"dimensions":[
{
"name":"sessionDefaultChannelGroup"
}
],
// サンプルはセッション、購入数、総売上を設定
"metrics": [
{
"name": "sessions"
},
{
"name":"ecommercePurchases"
},
{
"name":"totalRevenue"
}
]
});
var options = {
"method": "POST",
"headers": headers,
"payload": body
};
// Google Analytics Data API (GA4)からデータを取得
var response = UrlFetchApp.fetch(url, options);
var data = JSON.parse(response.getContentText());
var rows = data.rows;
var sheetData = [];
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
var rowData = [];
rowData.push(row.dimensionValues[0].value);
rowData.push(row.metricValues[0].value);
rowData.push(row.metricValues[1].value);
rowData.push(row.metricValues[2].value);
sheetData.push(rowData);
}
// Google Sheetsにデータを書き込む
var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
var sheet = spreadsheet.getSheetByName(sheetName);
sheet.getRange(sheet.getLastRow() + 1, 1, sheetData.length, sheetData[0].length).setValues(sheetData);
}
こんな感じで各チャネルごとにセッション、購入数、総売上の指標が入ってくる。(数値は加工して変更したもの)
API上のディメンションと指標は下記サイトで確認できる。
Discussion