技術ブログ

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

/ 初心者向け

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通知、スプレッドシート連携などを業務に合わせて実装できます。

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