技術ブログ

GASでGoogle Analyticsデータを自動取得!毎日の集計作業から解放

/ 初心者向け

GASでGoogle Analyticsデータを自動取得!毎日の集計作業から解放

GASでGoogle Analyticsデータを自動取得!毎日の集計作業から解放

Google Analytics (GA) のデータを毎日のように手作業でスプレッドシートに転記したり、レポートを作成したりしていませんか? そんな面倒な作業は、Google Apps Script (GAS) を使えば自動化できます!

このブログ記事では、GASを使ってGoogle Analyticsのデータを自動で取得し、Google スプレッドシートに集計する方法を、初心者の方にも分かりやすく解説します。この自動化によって、あなたは集計作業に費やす時間を大幅に削減し、本来注力すべきマーケティング戦略の立案や改善に時間を割けるようになります。

なぜGASでGAデータを自動取得するのか?

Google Analyticsは、ウェブサイトのトラフィックやユーザー行動を把握するための強力なツールです。しかし、その豊富なデータを活用するためには、定期的な分析とレポーティングが不可欠です。手作業でのデータ収集は、時間と労力がかかるだけでなく、ヒューマンエラーのリスクも伴います。

GASによる自動化は、これらの課題を解決します。

  • 時間と労力の削減: 定期的なレポート作成やデータ集計の時間をゼロにできます。
  • ヒューマンエラーの防止: 自動化されたスクリプトは、一貫性のある正確なデータを提供します。
  • リアルタイム性の向上: 必要な時に最新のデータを取得できます。
  • 高度な分析への集中: データ収集の手間が省けるため、より高度な分析や施策の検討に時間を費やせます。

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

GASでGoogle Analyticsのデータを取得するには、いくつかの準備が必要です。

1. Googleアカウントの準備

Google AnalyticsとGoogle スプレッドシートを使用するため、Googleアカウントは必須です。

2. Google Analyticsアカウントとプロパティの確認

データを取得したいGoogle Analyticsのビュー(旧称:プロファイル)が設定されていることを確認してください。GA4(Google Analytics 4)とユニバーサルアナリティクス(UA)で取得方法が若干異なりますが、基本的な考え方は同じです。

3. Google スプレッドシートの準備

データを格納するためのGoogle スプレッドシートを作成しておきましょう。シート名や列ヘッダー(例: 日付, セッション数, ページビュー数)もあらかじめ決めておくとスムーズです。

GASスクリプトの作成方法

それでは、実際にGASスクリプトを作成していきましょう。

1. GASエディタを開く

Google スプレッドシートを開き、「拡張機能」>「Apps Script」を選択してGASエディタを開きます。

2. スクリプトの作成(GA4の場合)

GA4からデータを取得するには、Analytics Data API を利用します。GASでは、このAPIを直接呼び出すためのライブラリはありませんが、UrlFetchApp サービスを使用してHTTPリクエストを送信することで実現できます。

注意: GA4のAnalytics Data API v1beta を利用するには、OAuth 2.0認証が必要です。この部分が初学者には少し難易度が高いかもしれません。

より手軽に始めるには、Google が提供する Google Analytics Reporting API (UA向け) を利用するのが一般的でした。

ここでは、よりシンプルで、かつ現在も広く利用されている「Google Analytics Reporting API (UA向け)」を使った例を紹介します。 UAのサポート終了は迫っていますが、概念を理解する上で非常に役立ちます。

function getAnalyticsData() {
  // Google Analytics Reporting API v4 を使用
  // 認証情報やAPIキーの設定は別途必要になる場合があります。
  // ここでは、Analytics Reporting API v4 のライブラリが利用可能であると仮定します。
  // もしライブラリが見つからない場合は、UrlFetchApp で直接APIを叩く必要があります。

  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getActiveSheet();

  // Reporting API v4 の設定
  var api = Analytics.newApi(VIEW_ID); // VIEW_IDはご自身のGAビューIDに置き換えてください

  // 取得したいディメンションとメトリクス
  var startDate = '2023-01-01'; // 取得開始日
  var endDate = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy-MM-dd"); // 今日まで
  var dimensions = 'ga:date,ga:sourceMedium'; // 日付、参照元/メディア
  var metrics = 'ga:sessions,ga:pageviews,ga:users'; // セッション数、ページビュー数、ユーザー数

  // APIリクエストの作成
  var request = api.newAdvancedCollections().newReportData().setDimensions(dimensions).setMetrics(metrics).setStartDate(startDate).setEndDate(endDate);

  // APIの実行
  var response = request.execute();

  // 結果のスプレッドシートへの書き込み
  if (response && response.reports && response.reports.length > 0) {
    var report = response.reports[0];
    var rows = report.data.rows;

    if (rows) {
      var dataToWrite = [];
      // ヘッダー行をスキップする場合は、ここで調整
      for (var i = 0; i < rows.length; i++) {
        var currentRow = rows[i].dimensions;
        var metricsRow = rows[i].metrics;
        dataToWrite.push([
          currentRow[0].value, // 日付
          currentRow[1].value, // 参照元/メディア
          parseInt(metricsRow[0].values[0]), // セッション数
          parseInt(metricsRow[0].values[1]), // ページビュー数
          parseInt(metricsRow[0].values[2])  // ユーザー数
        ]);
      }
      // スプレッドシートの既存データをクリアしてから書き込む場合
      // sheet.clearContents();
      // 追記する場合
      sheet.getRange(sheet.getLastRow() + 1, 1, dataToWrite.length, dataToWrite[0].length).setValues(dataToWrite);
    }
  } else {
    Logger.log('データが取得できませんでした。');
  }
}

スクリプトの解説:

  • getAnalyticsData(): スクリプトのメイン関数です。
  • Analytics.newApi(VIEW_ID): Google Analytics Reporting API v4 のインスタンスを作成します。VIEW_ID はご自身のGoogle AnalyticsのビューIDに置き換えてください。
  • setDimensions(): 取得したいデータの「軸」(例: 日付、参照元)を指定します。
  • setMetrics(): 取得したい「数値」(例: セッション数、ページビュー数)を指定します。
  • setStartDate(), setEndDate(): データの取得期間を指定します。
  • execute(): APIを実行し、結果を取得します。
  • sheet.getRange(...).setValues(): 取得したデータをスプレッドシートに書き込みます。

【重要】VIEW_IDの取得方法:

1. Google Analyticsの管理画面にアクセスします。

2. 「管理」>「ビュー」>「ビュー設定」を選択します。

3. 「ビューID」が表示されていますので、それをコピーしてスクリプトのVIEW_IDに貼り付けてください。

【補足】GA4への移行について:

UAは2023年7月1日にデータ収集を終了しました。現在、GA4が主流です。GA4からデータを取得するには、Analytics Data API を利用する必要があります。GASで Analytics Data API を直接操作するには、OAuth 2.0認証の設定が必須となり、初学者には少しハードルが高いかもしれません。しかし、GASは進化しており、将来的にGA4データ取得をより容易にするライブラリが登場する可能性もあります。まずはUAでの自動取得の概念を理解し、徐々にGA4への対応を進めていきましょう。

3. スクリプトの保存と実行

1. GASエディタの上部にあるフロッピーディスクのアイコンをクリックしてスクリプトを保存します。プロジェクト名(例: GAデータ自動取得)を任意で設定してください。

2. 保存後、実行したい関数(例: getAnalyticsData)を選択し、再生ボタン(▶)をクリックして実行します。

3. 初回実行時には、スクリプトがGoogleアカウントにアクセスするための「承認」を求められます。「権限を確認」→「詳細」→「(プロジェクト名)(安全ではないページ)に移動」→「許可」と進んでください。

スケジュール実行の設定

スクリプトを一度実行するだけでなく、毎日自動で実行されるように設定しましょう。

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

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

3. 設定項目を以下のように設定します。

  • 実行する関数を選択: getAnalyticsData (作成した関数名)
  • 実行するデプロイを選択: Head
  • イベントのソースを選択: 時間主導型
  • 時間の間隔を選択: 毎日 を選択し、実行したい時間(例: 午前6時~7時)を指定します。

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

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

まとめ

Google Apps Script (GAS) を活用することで、Google Analyticsのデータ取得作業を自動化できます。これにより、あなたは貴重な時間を節約し、より戦略的なマーケティング活動に集中できるようになります。

最初は少し難しく感じるかもしれませんが、この記事を参考に、ぜひGASを使った自動化に挑戦してみてください。一度自動化してしまえば、その恩恵は計り知れません!

---

【免責事項】

  • 本記事は2023年時点の情報に基づいています。Google AnalyticsやGASの仕様は変更される可能性があります。
  • UAはデータ収集を終了しており、GA4への移行が推奨されています。GA4からのデータ取得には、Analytics Data APIの利用とOAuth 2.0認証の設定が必要です。本記事のスクリプト例は、UA向けReporting API v4をベースとしています。GA4への対応は別途ご自身での調査・実装が必要となります。
  • スクリプトの実行や設定は、ご自身の責任において行ってください。

GAS自動化の導入相談

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

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