技術ブログ

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

/ 初心者向け

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

GASでGoogle Analyticsデータを自動取得!レポート作成を効率化しよう

Google Analytics(GA)は、ウェブサイトのトラフィックやユーザー行動を把握するための強力なツールです。しかし、日々のレポート作成やデータ集計に時間を費やしていませんか?

そんな悩みを解決するのが、Google Apps Script(GAS)です。GASを使えば、Google Analyticsのデータを自動的に取得し、スプレッドシートに記録したり、メールで送信したりすることが可能です。この記事では、GAS初心者の方でも理解できるように、Google Analyticsデータを自動取得する基本的な方法を解説します。

なぜGASでGoogle Analyticsデータを取得するのか?

GASでGAデータを取得するメリットは多岐にわたります。

  • 作業の自動化: 手作業でのデータダウンロードとコピペ作業から解放されます。決まった時間に自動でデータが取得されるので、常に最新の情報を把握できます。
  • レポート作成の効率化:GASで取得したデータをスプレッドシートに集約すれば、グラフ化や分析が格段に容易になります。カスタムレポートを簡単に作成できるでしょう。
  • アラート機能の実装: 特定の指標(例:直帰率の急増)が閾値を超えた場合に通知するような、簡易的なアラートシステムを構築することも可能です。
  • 他のGoogleサービスとの連携: 取得したデータをGoogleスプレッドシートだけでなく、Gmail、Googleドキュメントなど、他のGoogleサービスと連携させることで、より高度なワークフローを構築できます。

GASでGAデータを取得する準備

GASでGAデータにアクセスするには、いくつか準備が必要です。

1. Googleアカウント: GASを使用するためには、Googleアカウントが必要です。

2. Google Analyticsアカウント: GAのデータにアクセスするため、GAアカウントとトラッキングコードが設置されたウェブサイトが必要です。

3. Google Apps Scriptプロジェクトの作成: Googleドライブから「新規」→「その他」→「Google Apps Script」を選択して、新しいプロジェクトを作成します。

GASからGoogle Analytics APIへアクセスする

GASからGoogle Analytics APIにアクセスするには、Analyticsという組み込みサービスを利用します。これにより、GAのデータをプログラムで操作できるようになります。

1. サービスのアクティベート

GASプロジェクトのエディタで、左側のメニューにある「+」ボタン(サービスを追加)をクリックし、「Google Analytics」を選択して追加します。これで、GASスクリプトからGAのデータにアクセスできるようになります。

2. データの取得(基本例)

以下は、特定期間のGAデータを取得し、スプレッドシートに出力する簡単なコード例です。

function getAnalyticsData() {
  // 取得したいGoogle AnalyticsのView IDを指定します。
  // (UA-XXXXX-Yの形式であれば、Yの部分がView IDです)
  var VIEW_ID = 'YOUR_VIEW_ID'; 
  
  // 取得したい日付範囲を指定します。
  // 例:今日から過去7日間
  var startDate = new Date();
  startDate.setDate(startDate.getDate() - 7);
  var endDate = new Date();
  
  // Google Analytics APIのレポートを取得します。
  var response = Analytics.Data.Ga.get(
    'ga:' + VIEW_ID,
    formatDate(startDate), // 開始日 (YYYY-MM-DD)
    formatDate(endDate),   // 終了日 (YYYY-MM-DD)
    'ga:sessions,ga:pageviews,ga:users', // 取得したいメトリクス
    {
      'dimensions': 'ga:date,ga:sourceMedium', // ディメンション(集計軸)
      'sort': '-ga:sessions' // セッション数が多い順にソート
    }
  );
  
  // 取得したデータをスプレッドシートに出力します。
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  
  // ヘッダー行を追加
  sheet.appendRow(['日付', 'ソース/メディア', 'セッション', 'ページビュー', 'ユーザー']);
  
  // 取得したデータを1行ずつ追加
  if (response.rows) {
    response.rows.forEach(function(row) {
      sheet.appendRow([
        row[0], // 日付
        row[1], // ソース/メディア
        parseInt(row[2]), // セッション
        parseInt(row[3]), // ページビュー
        parseInt(row[4])  // ユーザー
      ]);
    });
  } else {
    sheet.appendRow(['データがありません']);
  }
  
  Logger.log('Google Analyticsデータを取得しました。');
}

// 日付をYYYY-MM-DD形式にフォーマットするヘルパー関数
function formatDate(date) {
  var year = date.getFullYear();
  var month = ('0' + (date.getMonth() + 1)).slice(-2);
  var day = ('0' + date.getDate()).slice(-2);
  return year + '-' + month + '-' + day;
}

コードの解説

  • VIEW_ID: ご自身のGoogle AnalyticsのビューIDを指定してください。
  • startDate, endDate: 取得したい期間を指定します。formatDate関数でYYYY-MM-DD形式に変換しています。
  • Analytics.Data.Ga.get(): GAのデータを取得するための主要な関数です。
  • 第一引数: GAのビューID。
  • 第二引数、第三引数: 取得期間。
  • 第四引数: 取得したいメトリクス(例:ga:sessions(セッション数)、ga:pageviews(ページビュー数)、ga:users(ユーザー数))。
  • 第五引数: オプション。
  • dimensions: データを集計する軸(例:ga:date(日付)、ga:sourceMedium(参照元/メディア))。
  • sort: データの並べ替え。
  • SpreadsheetApp.getActiveSpreadsheet(): 現在アクティブなスプレッドシートを取得します。
  • sheet.appendRow(): スプレッドシートの末尾に新しい行を追加します。

コードの実行と自動化

GASエディタで getAnalyticsData 関数を選択し、実行ボタン(▶️)をクリックすることで、スクリプトを実行できます。初回実行時には、Googleアカウントへのアクセス許可を求められますので、承認してください。

さらに、このスクリプトを定期的に自動実行させたい場合は、GASエディタの左側にある時計のアイコン(トリガー)をクリックします。

  • 「トリガーを追加」ボタンをクリック。
  • 実行する関数に getAnalyticsData を選択。
  • イベントのソースに「時間主導型」を選択。
  • 時間の間隔(例:「毎日」「毎週」など)と時間を設定します。

これで、指定した時間に自動でGAデータが取得され、スプレッドシートに記録されるようになります。日々のレポート作成が格段に楽になるはずです。

まとめ

Google Apps Scriptを使えば、Google Analyticsのデータを自動で取得し、日々の業務を効率化できます。今回ご紹介した基本的なコードを元に、ぜひご自身の目的に合わせたデータ取得・活用方法を検討してみてください。GASとGAの連携は、データ分析の可能性を大きく広げてくれます。ぜひ、この機会にGASを使った自動化に挑戦してみましょう!

GAS自動化の導入相談

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

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