GASでGoogle Analyticsデータを自動取得!初心者向け解説
/ 初心者向け
Google AnalyticsデータをGASで自動取得!
Webサイトの成果を把握するために欠かせないGoogle Analytics(GA)。しかし、毎回手動でデータをダウンロードするのは手間がかかりますよね?
そこで今回は、Google Apps Script(GAS)を使ってGoogle Analyticsのデータを自動で取得する方法を、初心者の方にも分かりやすく解説します。
GASを使えば、GAのデータを定期的に自動取得し、スプレッドシートに記録したり、メールで通知したりと、様々な自動化が可能になります。
なぜGASでGAデータを自動取得するのか?
GASでGAデータを自動取得するメリットはたくさんあります。
- 作業時間の短縮: 手動でのデータダウンロードや集計作業から解放されます。
- リアルタイムなデータ把握: 最新のデータを常に確認できるようになります。
- ヒートマップなどの分析ツールの効率化: GAデータと他のツールを連携させることで、より深い分析が可能になります。
- イレギュラーの早期発見: データに異常があった場合に、早期に気づくことができます。
GASでGAデータにアクセスするための準備
GASでGAデータにアクセスするには、いくつか準備が必要です。
1. Google Analytics API の有効化
まず、Google Cloud ConsoleでGoogle Analytics APIを有効にする必要があります。まだ設定していない場合は、以下の手順で行います。
1. Google Cloud Consoleにアクセスします。
2. プロジェクトを選択(または新規作成)します。
3. 「APIとサービス」>「ライブラリ」と進みます。
4. 「Google Analytics API」を検索し、有効化します。
2. サービスアカウントの作成とキーの発行
GASからAPIにアクセスするためには、サービスアカウントを作成し、その認証情報(JSONキー)を取得する必要があります。
1. Google Cloud Consoleで、「APIとサービス」>「認証情報」と進みます。
2. 「認証情報を作成」>「サービスアカウント」を選択します。
3. サービスアカウントの名前などを入力し、作成します。
4. 作成したサービスアカウントの「キー」タブに移動し、「キーを作成」>「JSON」を選択してキーを生成・ダウンロードします。
5. ダウンロードしたJSONファイルは、絶対に他人に共有しないでください。
3. Google Analyticsへのサービスアカウントの追加
作成したサービスアカウントに、Google Analyticsのデータにアクセスする権限を付与する必要があります。これは、Google Analyticsの管理画面から行います。
1. Google Analyticsにログインします。
2. 「管理」>「アカウントのアクセス管理」(または「プロパティのアクセス管理」)を選択します。
3. 右上の「+」ボタンをクリックし、「ユーザーを追加」を選択します。
4. サービスアカウントのメールアドレス(JSONファイルの中に記載されています)を入力し、「編集者」以上の権限を付与します。
GASスクリプトの作成
準備ができたら、いよいよGASスクリプトを作成します。ここでは、GAの「セッション数」と「ユーザー数」を毎日取得し、スプレッドシートに記録する例を紹介します。
1. スプレッドシートの準備
データを受け取るためのスプレッドシートを用意します。シート名を「GAデータ」とし、A列に日付、B列にセッション数、C列にユーザー数を記録するようにします。
2. GASスクリプトの作成
Googleドライブから新しいスプレッドシートを作成し、「拡張機能」>「Apps Script」を選択してスクリプトエディタを開きます。
以下のコードを貼り付けてください。
function getAnalyticsData() {
// 設定項目
const UA_ID = 'UA-XXXXXXXXX-Y'; // あなたのGoogle AnalyticsのUA IDに置き換えてください
const SHEET_NAME = 'GAデータ'; // データ記録用シート名
const SPREADSHEET_ID = SpreadsheetApp.getActiveSpreadsheet().getId(); // 現在アクティブなスプレッドシートのID
const SERVICE_ACCOUNT_KEY = {
// ダウンロードしたJSONキーの内容をここに貼り付けてください
// 例:
// "type": "service_account",
// "project_id": "your-project-id",
// ...
};
// 今日の日付を取得
const today = new Date();
const formattedDate = Utilities.formatDate(today, 'Asia/Tokyo', 'yyyy-MM-dd');
// Google Analytics API v3 を使用(v4はより高度な設定が必要になるため、今回はv3でシンプルに)
const analytics = Analytics.Management.getManagement().Accounts.list();
// プロファイルID(ビューID)を取得
let profileId = null;
for (let i = 0; i < analytics.items.length; i++) {
const webProperties = Analytics.Management.Webproperties.list(analytics.items[i].id);
for (let j = 0; j < webProperties.items.length; j++) {
const profiles = Analytics.Management.Profiles.list(analytics.items[i].id, webProperties.items[j].id);
for (let k = 0; k < profiles.items.length; k++) {
if (webProperties.items[j].id === UA_ID.split('-')[1]) { // UA ID と Web property ID を照合(簡易的)
profileId = profiles.items[k].id;
break;
}
}
if (profileId) break;
}
if (profileId) break;
}
if (!profileId) {
Logger.log('プロファイルIDが見つかりませんでした。UA IDを確認してください。');
return;
}
// データを取得
const startDate = formattedDate;
const endDate = formattedDate;
const results = Analytics.Data.Ga.get(
'ga:' + profileId,
startDate,
endDate,
'ga:sessions,ga:users',
{
'dimensions': 'ga:date',
'sort': 'ga:date'
}
);
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
if (results.getRows()) {
const rows = results.getRows();
for (let i = 0; i < rows.length; i++) {
const date = rows[i][0];
const sessions = rows[i][1];
const users = rows[i][2];
sheet.appendRow([date, sessions, users]);
Logger.log(`日付: ${date}, セッション: ${sessions}, ユーザー: ${users} を記録しました。`);
}
} else {
Logger.log('データが取得できませんでした。');
}
}
※注意点:
UA_IDはご自身のGoogle AnalyticsのUA ID(例:UA-XXXXXXXXX-Y)に置き換えてください。SERVICE_ACCOUNT_KEYには、ダウンロードしたJSONキーの内容をそのまま貼り付けます。JSONキーは機密情報のため、GASのスクリプトプロパティなどに格納することも推奨されますが、ここでは直接記述する例を示しています。profileIdの取得部分は、UA IDとWeb Property IDの照合を簡易的に行っています。より正確に取得したい場合は、APIリファレンスなどを参照してください。
3. トリガーの設定
このスクリプトを毎日自動実行するために、トリガーを設定します。
1. スクリプトエディタの左側にある時計アイコン(トリガー)をクリックします。
2. 「トリガーを追加」ボタンをクリックします。
3. 「実行する関数を選択」で getAnalyticsData を選択します。
4. 「実行するデプロイを選択」で Head を選択します。
5. 「イベントのソースを選択」で「時間主導型」を選択します。
6. 「時間間隔を選択」で「毎日」などを選択し、実行したい時間帯を設定します。
7. 「保存」をクリックします。
これで、毎日設定した時間にスクリプトが自動実行され、Google Analyticsのデータがスプレッドシートに記録されるようになります!
さらに活用するために
取得したGAデータは、スプレッドシート上でグラフを作成したり、他のデータと組み合わせて分析したりと、様々な活用が可能です。
- 定期的なレポート作成: 毎週、毎月などのレポートを自動化できます。
- 異常検知の自動化: セッション数などが急激に減少した場合に、メールで通知するなどの設定ができます。
- カスタムレポートの作成: GAの標準レポートにはない独自の切り口でデータを分析できます。
まとめ
今回は、GASを使ってGoogle Analyticsのデータを自動取得する方法を解説しました。API連携やサービスアカウントの設定など、最初は少し戸惑うかもしれませんが、一度設定してしまえば日々の作業を大幅に効率化できます。
ぜひ、この機会にGASでのGAデータ自動取得に挑戦してみてください!
GAS自動化の導入相談
請求書PDF作成、Gmail自動送信、Slack通知、スプレッドシート連携などを業務に合わせて実装できます。