技術ブログ

GASでGoogle Analyticsデータを自動取得!初心者向け徹底解説

/ 初心者向け

GASでGoogle Analyticsデータを自動取得!初心者向け徹底解説

GASでGoogle Analyticsデータを自動取得!手間いらずでレポート作成

Webサイトやアプリの成果を測る上で欠かせないGoogle Analytics。しかし、日々データを手作業で集計・レポート作成するのは、時間も手間もかかりますよね。そこで今回は、Google Apps Script(GAS)を活用して、Google Analyticsのデータを自動で取得する方法を、初心者の方にも分かりやすく解説します。

GASを使えば、日々のアクセス数、コンバージョン率、流入元などの重要な指標を自動でスプレッドシートに転記したり、メールで通知したりすることが可能です。これにより、レポート作成の自動化はもちろん、より戦略的な分析に時間を割くことができるようになります。

GASとは?

Google Apps Script(GAS)は、Google Workspace(Gmail, Google Drive, Google Spreadsheet, Google Analyticsなど)を連携・自動化するためのJavaScriptベースのスクリプト言語です。特別な環境構築は不要で、ブラウザ上でコードを書いて実行できます。

Google Analytics APIとは?

GASからGoogle Analyticsのデータにアクセスするには、Google Analytics APIを利用します。GASには、Google Analytics APIを簡単に呼び出すためのライブラリが用意されており、数行のコードでデータを取得できます。

GASでGoogle Analyticsデータを取得する基本的な流れ

1. Google AnalyticsのプロパティIDとビューIDの確認

  • Google Analyticsの管理画面から、対象となるプロパティとビューのIDを控えておきます。これらはスクリプトでデータを指定する際に必要になります。

2. GASエディタを開く

  • Google Spreadsheetを開き、「拡張機能」>「Apps Script」を選択すると、GASエディタが開きます。

3. スクリプトの作成

  • GASエディタに、Google Analyticsからデータを取得するためのJavaScriptコードを記述します。

4. スクリプトの実行と権限の承認

  • スクリプトを実行すると、Google Analyticsへのアクセス権限を求められるので、承認します。

5. データの取得と活用

  • 取得したデータをスプレッドシートに書き込んだり、メールで送信したりします。

サンプルコード:日次アクティブユーザー数を取得する

ここでは、例として「日次アクティブユーザー数」をGoogle Spreadsheetに取得する簡単なスクリプトをご紹介します。

function getDailyActiveUsers() {
  var viewId = 'YOUR_VIEW_ID'; // ここにあなたのビューIDを入力
  var startDate = formatDate(new Date(new Date().setDate(new Date().getDate() - 1)), 'yyyy-MM-dd'); // 昨日
  var endDate = startDate; // 昨日

  var query = {
    'ids': 'ga:' + viewId,
    'start-date': startDate,
    'end-date': endDate,
    'metrics': 'ga:1dayUsers',
    'dimensions': 'ga:date'
  };

  var data = Analytics.Data.Ga.get(query);

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var headers = ['日付', '日次アクティブユーザー数'];
  sheet.appendRow(headers);

  if (data.getRows()) {
    var rows = data.getRows();
    for (var i = 0; i < rows.length; i++) {
      var date = rows[i][0];
      var activeUsers = rows[i][1];
      sheet.appendRow([date, activeUsers]);
    }
  } else {
    sheet.appendRow(['データなし']);
  }
}

function formatDate(date, format) {
  format = format.replace('yyyy', date.getFullYear());
  format = format.replace('MM', ('0' + (date.getMonth() + 1)).slice(-2));
  format = format.replace('dd', ('0' + date.getDate()).slice(-2));
  return format;
}

コードの解説:

  • YOUR_VIEW_ID の部分を、ご自身のGoogle AnalyticsのビューIDに置き換えてください。
  • startDateendDate で取得したい期間を指定しています。この例では前日を指定しています。
  • metrics で取得したい指標(ここでは ga:1dayUsers:日次アクティブユーザー数)を指定します。
  • dimensions でデータを集計する軸(ここでは ga:date:日付ごと)を指定します。
  • Analytics.Data.Ga.get(query) でAPIを呼び出し、データを取得しています。
  • 取得したデータは SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().appendRow() でアクティブなシートの末尾に追加しています。

スクリプトの実行と自動化

1. GASエディタで上記コードを貼り付け、YOUR_VIEW_ID をご自身のビューIDに書き換えます。

2. 関数名 getDailyActiveUsers を選択し、再生ボタン(▶)をクリックして実行します。

3. 初回実行時には、Google Analyticsへのアクセス権限を求められます。「権限を承認」をクリックし、指示に従って承認してください。

4. 実行後、GASを起動したGoogle Spreadsheetにデータが追加されていることを確認してください。

トリガー設定による自動実行

このスクリプトを毎日決まった時間に実行したい場合は、「トリガー」機能を使います。

1. GASエディタの左側にある時計アイコン(トリガー)をクリックします。

2. 「トリガーを追加」ボタンをクリックします。

3. 以下の設定を行います:

  • 実行する関数を選択: getDailyActiveUsers
  • 実行するデプロイを選択: Head
  • イベントのソースを選択: 時間駆動
  • 時刻ベースのトリガーの種類を選択: 日タイマー
  • 時間帯を選択: 実行したい時間帯(例: 午前8時~9時)

4. 「保存」をクリックします。

これで、毎日指定した時間にスクリプトが自動実行され、Google Analyticsのデータがスプレッドシートに自動で記録されるようになります。

まとめ

Google Apps Scriptを活用することで、Google Analyticsのデータ収集・レポート作成作業を劇的に効率化できます。今回ご紹介した基本を応用すれば、さらに様々な指標を、ご自身の目的に合わせた形式で自動取得できるようになります。ぜひ、GASを使ったデータ自動化に挑戦してみてください!

GAS自動化の導入相談

請求書PDF作成、Gmail自動送信、Slack通知、スプレッドシート連携などを業務に合わせて実装できます。

請求書自動生成ツールを見る / SNS自動投稿ツールを見る