技術ブログ

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

/ 初心者向け

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

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

「Google Analyticsのデータ、毎回手動でダウンロードするのが面倒…」

そんな悩みを抱えているあなたに朗報です!Google Apps Script (GAS) を使えば、Google Analyticsのデータを自動で取得し、スプレッドシートなどに連携させることができます。この記事では、GAS初心者の方でも安心して取り組めるように、基本的な設定から具体的なコード例までを分かりやすく解説します。

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

Google Analyticsは、ウェブサイトのアクセス状況を把握するための強力なツールですが、データを定期的に確認・分析するためには、手動でレポートをダウンロードしたり、スプレッドシートに転記したりする作業が発生しがちです。これは時間と労力がかかるだけでなく、ヒューマンエラーのリスクも伴います。

GASを活用することで、これらの手作業を自動化し、以下のようなメリットを享受できます。

  • 時間と労力の削減: 定期的なデータ取得・集計作業から解放されます。
  • データの一元管理: 取得したデータをスプレッドシートなどに集約し、分析しやすくします。
  • リアルタイムな状況把握: 最新のデータを常に確認できるようになります。
  • カスタムレポートの作成: 必要なデータだけを抽出・加工した独自のレポートを作成できます。

GASでGoogle Analyticsデータを取得するための準備

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

1. Googleアカウントの準備

Google AnalyticsとGASは、どちらもGoogleアカウントに紐づいています。普段お使いのGoogleアカウントで問題ありません。

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

GASからアクセスしたいGoogle Analyticsのプロパティ(ウェブサイト)が、該当するGoogleアカウントで管理されていることを確認してください。GA4(Google Analytics 4)とユニバーサルアナリティクス(UA)で、APIの仕様や設定方法が若干異なりますが、基本の流れは同じです。

3. スプレッドシートの準備(任意)

取得したデータを保存・活用するために、Googleスプレッドシートを用意しておくと便利です。新しいスプレッドシートを作成しておきましょう。

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

GASでGoogle Analyticsデータを取得する基本的な流れは以下の通りです。

1. GASエディタを開く: GoogleスプレッドシートからGASエディタを開くのが簡単です。

2. Google Analytics APIへの接続: GASからGoogle Analytics APIを利用するための設定を行います。

3. レポート取得のためのコード記述: 取得したいデータの条件(期間、ディメンション、指標など)を指定するコードを書きます。

4. コードの実行とデータ取得: コードを実行し、データを取得します。

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

実際にGASでGoogle Analyticsデータを取得してみよう!

ここでは、GA4のデータ(例: ページビュー数、セッション数)をスプレッドシートに取得する基本的なコード例を紹介します。

1. GASエディタを開く

対象のスプレッドシートを開き、「拡張機能」>「Apps Script」を選択します。

2. Google Analytics APIへの接続(OAuth同意画面)

初めてGASからGoogle Analytics APIを利用する場合、APIへのアクセス許可を求める「OAuth同意画面」が表示されます。

  • Analytics Data API v1beta などの必要なAPIにチェックを入れて、「許可」をクリックしてください。

3. コードの記述

GASエディタが表示されたら、既存のコードを削除し、以下のコードを貼り付けてください。

function getAnalyticsData() {
  // 取得したいGA4のプロパティIDを設定します。
  // "xxxxxxxxx" の部分をあなたのプロパティIDに置き換えてください。
  const propertyId = "xxxxxxxxx";

  // 取得したい期間を設定します(例: 昨日)
  const startDate = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy-MM-dd");
  const endDate = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy-MM-dd");

  // APIリクエストのボディを作成します。
  const requestBody = {
    dateRanges: [
      {
        startDate: startDate,
        endDate: endDate,
      }
    ],
    metrics: [
      { name: "sessions" }, // セッション数
      { name: "screenPageViews" } // ページビュー数
    ],
    dimensions: [
      { name: "pagePath" } // ページパス
    ]
  };

  // Google Analytics Data API v1beta を使用します。
  const response = AnalyticsData.Properties.runReport({
    property: `properties/${propertyId}`,
    requestBody: requestBody
  });

  // 取得したデータをスプレッドシートに書き込む処理
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const header = ["Date", "Page Path", "Sessions", "Page Views"];
  const rows = [];

  // ヘッダー行を書き込む
  sheet.getRange(1, 1, 1, header.length).setValues([header]);

  // APIレスポンスからデータを抽出し、スプレッドシート用の形式に変換
  response.rows.forEach(row => {
    const pagePath = row.dimensionValues.find(dv => dv.value).value;
    const sessions = row.metricValues.find(mv => mv.name === "sessions").value;
    const pageViews = row.metricValues.find(mv => mv.name === "screenPageViews").value;
    rows.push([startDate, pagePath, sessions, pageViews]);
  });

  // データをスプレッドシートに書き込む
  if (rows.length > 0) {
    sheet.getRange(2, 1, rows.length, rows[0].length).setValues(rows);
    Logger.log(`${rows.length}件のデータを取得し、スプレッドシートに書き込みました。`);
  } else {
    Logger.log("取得できるデータがありませんでした。");
  }
}

コードの解説:

  • propertyId: ここにあなたのGA4プロパティIDを入力します。
  • startDate, endDate: 取得したい期間を指定します。この例では昨日を取得しています。
  • metrics: 取得したい指標(セッション数、ページビュー数など)を指定します。
  • dimensions: データを集計する軸(ページパス、日付など)を指定します。
  • AnalyticsData.Properties.runReport: Google Analytics Data API v1beta を使ってレポートを取得する関数です。
  • sheet.getRange().setValues(): 取得したデータをアクティブなシートに書き込みます。

4. コードの保存と実行

  • GASエディタの上部にあるフロッピーディスクアイコン(保存)をクリックします。
  • 関数のドロップダウンメニューから getAnalyticsData を選択し、再生ボタン(▶)をクリックして実行します。

初めて実行する際には、先述のOAuth同意画面が表示されることがありますので、適切に承認してください。

5. 結果の確認

コードが正常に実行されると、スプレッドシートにGoogle Analyticsのデータが書き込まれているはずです。もしエラーが発生した場合は、ログを確認して原因を特定しましょう。

より高度な活用方法

今回の例は基本的なものですが、GASを使えばさらに様々なことが可能です。

  • 定期実行: トリガーを設定して、毎日・毎週・毎月自動でデータを取得・集計する。
  • 条件分岐: 特定の条件を満たす場合にのみデータを取得・通知する。
  • メール送信: 取得したデータをメールで担当者に自動送信する。
  • グラフ化: 取得したデータを元に、グラフを自動生成する。
  • 他のサービスとの連携: Slackに通知を送ったり、Looker Studio(旧Googleデータポータル)のデータソースとして活用したりする。

まとめ

Google Apps Script (GAS) を活用することで、Google Analyticsのデータを自動で取得し、業務効率を大幅に向上させることができます。本記事で紹介した基本的なコードを参考に、ぜひご自身の環境で試してみてください。最初は難しく感じるかもしれませんが、実際に手を動かすことで理解が深まります。GASを使いこなし、データに基づいた意思決定を加速させていきましょう!

GAS自動化の導入相談

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

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