コンテンツに進む

GA4のデータをGoogle Apps Scriptでスプレッドシートに出力する

GA4のデータをほかのデータと統合して分析したりすることがあるかと思います。

その際、GA4の管理画面からCSVファイルなどで書き出すこともできますが、Google Apps Scriptを使うと簡単にGA4のデータをスプレッドシートに出力できます。

GA4のデータをGoogle Apps Scriptでスプレッドシートに出力する方法を解説します。

必要なツール/アカウント

GA4のデータをGoogle Apps Scriptでスプレッドシートに自動で出力するには以下のツールとアカウントが必要になります。

1〜3はGA4を利用しているアカウントであればそのGoogleアカウントで利用できるので問題ありませんが、4のGoogle Analytics Data APIはGoogle Cloud Platformの契約が必要になります。

  1. GA4
    1. プロパティID
  2. Googleスプレッドシート
    1. スプレッドシートID
  3. Google Apps Script
  4. Google Analytics Data API(Google Cloud Platform)

上記の4についてはこちらの2つの記事を参考にしてください。

Google Cloud Platform(GCP)の利用を開始する──アカウントを作る
https://reposub.jp/blogs/bigquery/google_cloud_platform_account

Google Analytics Data APIの利用を開始する手順を解説
https://reposub.jp/blogs/ga4/google_analytics_data_api_enable

設定方法

Google Apps Scriptを開いて「新しいプロジェクト」を作成します。

Google Apps Script
https://script.google.com/home/start

プロジェクトに名前を付けておきましょう。

「サービス」をクリックします。

一覧が表示されるので「Google Analytics Data API」を選択して「追加」をクリックします。

最初から記載されていた内容を削除して、下のスクリプトをコピー&ペーストします。

「日付」「セッション数」を出力するシンプルな構成です。

function runGaReport() {
const propertyId = 'GA4_PROPERY_ID';
const wb = SpreadsheetApp.openById('SPREADSHEET_ID');
const ws = wb.getSheetByName('シート1');

function createMetric(name) {
return { name };
}

function createDimension(name) {
return { name };
}

const metrics = ['sessions'].map(createMetric);
const dimensions = ['date'].map(createDimension);

const dateRange = { startDate: '2024-01-01', endDate: 'yesterday' };

const filterExpression = {
filter: {
fieldName: 'sessionMedium',
stringFilter: { value: 'organic', matchType: 'EXACT' }
}
};

const dimensionFilter = {
andGroup: { expressions: [filterExpression] }
};

const request = {
dimensions: dimensions,
metrics: metrics,
dateRanges: [dateRange],
dimensionFilter: dimensionFilter
};

try {
const report = AnalyticsData.Properties.runReport(request, `properties/${propertyId}`);
if (!report.rows) {
console.log('No rows returned.');
return;
}

ws.clear();
const headers = [...report.dimensionHeaders.map(header => header.name), ...report.metricHeaders.map(header => header.name)];
ws.appendRow(headers);

const rows = report.rows.map(row => {
const dimensionValues = row.dimensionValues.map(value => /^\d{8}$/.test(value.value) ?
`${value.value.substring(0, 4)}/${value.value.substring(4, 6)}/${value.value.substring(6, 8)}` : value.value);
const metricValues = row.metricValues.map(value => value.value);
return [...dimensionValues, ...metricValues];
});

ws.getRange(2, 1, rows.length, headers.length).setValues(rows);
console.log('Report Updated!');
} catch (e) {
console.log(`Failed with error: ${e.error}`);
}
}

コードの2行目、3行目をご自身のアカウントのものに書き換えます。

  • const propertyId = 'GA4_PROPERY_ID';
  • const wb = SpreadsheetApp.openById('SPREADSHEET_ID');

GA4_PROPERY_IDはGA4の管理画面の「プロパティの詳細」画面の右上にあります。

 

SPREADSHEET_IDはGoogleスプレッドシートのURL欄の/d/〜〜〜/editの間になります。

https://docs.google.com/spreadsheets/d/ここがIDになります/edit#gid=0

なおスプレッドシートのシート名はデフォルトの「シート1」のままにしておいてください。

書き換えできたら保存して「実行」をクリックします。

GA4にアクセスするための権限の確認フローが始まるので、画面を確認しながら勧めてください。

接続するGA4を管理しているアカウントを選択します。

内容を確認して「許可」をクリック。

アカウントの権限が確認できるとスクリプトが実行されます。

完了すると画面下の実行ログに結果が表示されます。

Googleスプレッドシートを確認してみましょう。

このようにデータが取得できています。

このようにGoogle Apps ScriptでGA4のデータをGoogle Analytics Data APIを利用してGoogleスプレッドシートに抽出することができました!

この状態でGA4のデータが取得できるとほかのデータとの統合など、分析の幅が広がりますね。

以上、GA4のデータをGoogle Apps Scriptでスプレッドシートに自動で出力する方法の解説でした。

記事に戻る