ADVERTISEMENT

【Googleスプレッドシート】Google Analytics 4のデータを取得!GA4データAPIの設定

【Googleスプレッドシート】Google Analytics 4のデータを取得!GA4データAPIの設定
🛡️ 超解決

Google Analytics 4(GA4)のデータをスプレッドシートに取り込む方法に悩んでいませんか。手動エクスポートでは更新が面倒で、リアルタイム性に欠けます。この記事ではGA4データAPIを活用し、スプレッドシートに直接データを取得する設定手順を解説します。APIの有効化からApps Scriptの実装まで、誰でも再現できる方法を紹介します。

【要点】GA4データAPIをスプレッドシートに設定するための手順

  • Google Cloud ConsoleでAPIを有効化: Google Analytics Data APIを有効にし、サービスアカウントを作成してJSONキーをダウンロードします。
  • GA4プロパティで権限を付与: サービスアカウントのメールアドレスをGA4プロパティにビューワー権限で追加します。
  • Apps Scriptでカスタム関数を作成: スプレッドシートの拡張機能からスクリプトエディタを開き、GA4データを取得する関数を実装します。

ADVERTISEMENT

GA4データAPIがスプレッドシートと連携する仕組み

GA4データAPI(Google Analytics Data API v1)は、GA4のレポートデータをプログラムで取得するためのインターフェースです。スプレッドシートからは、Apps ScriptというJavaScriptベースのスクリプト環境を介してこのAPIを呼び出します。認証にはサービスアカウントを使用し、OAuth2.0の代わりに鍵ベースの認証を利用します。サービスアカウントのメールアドレスをGA4プロパティのユーザーとして追加することで、スクリプトがGA4データにアクセスできるようになります。これにより、手動ダウンロードやCSVエクスポートをせずに、シート上で最新の分析データを扱えます。

GA4データAPIをスプレッドシートに設定する具体的な手順

Google Cloud Consoleでの準備

  1. プロジェクトを作成する
    [Google Cloud Console](https://console.cloud.google.com/)にアクセスし、新しいプロジェクトを作成します。プロジェクト名は任意で構いません。
  2. APIを有効にする
    左メニューの「APIとサービス」→「ライブラリ」を選択し、「Google Analytics Data API」を検索して有効にします。このAPIがGA4データ取得の中核です。
  3. サービスアカウントを作成する
    「IAMと管理」→「サービスアカウント」で新しいサービスアカウントを作成します。名前とIDを設定し、役割は「閲覧者」程度で問題ありません。作成後、サービスアカウントのメールアドレスを控えておきます。
  4. JSONキーをダウンロードする
    サービスアカウントの詳細画面で「キー」タブから「鍵を追加」→「新しい鍵を作成」を選択し、JSON形式でキーをダウンロードします。このファイルは後のスクリプトで使用します。

GA4プロパティでの権限設定

  1. GA4プロパティにサービスアカウントを追加する
    Google Analyticsの管理画面を開き、対象プロパティの「プロパティ設定」→「ユーザー管理」に移動します。右上の「+」ボタンから「ユーザーを追加」を選択します。
  2. 権限を割り当てる
    先ほど控えたサービスアカウントのメールアドレスを入力し、権限として「閲覧者」を選択します。「追加」ボタンで確定します。これでサービスアカウントがGA4データを読み取れるようになります。

Apps Scriptでスクリプトを作成する

  1. スクリプトエディタを開く
    スプレッドシートを開き、メニューの「拡張機能」→「Apps Script」を選択します。新しいタブでスクリプトエディタが開きます。
  2. スクリプトファイルにコードを記述する
    デフォルトのCode.gsファイルに以下のコードをコピーして貼り付けます。ただし、YOUR_JSON_KEYの部分はダウンロードしたJSONキーの内容に置き換えてください。また、GA4_PROPERTY_IDにはGA4プロパティID(例: 123456789)を指定します。
function getGa4Data() {
  const propertyId = 'GA4_PROPERTY_ID';
  const serviceAccountKey = {
    /* ここにJSONキーの内容をオブジェクトとして貼り付け */
  };
  
  const request = {
    dateRanges: [{ startDate: '7daysAgo', endDate: 'today' }],
    metrics: [{ name: 'sessions' }],
    dimensions: [{ name: 'source' }]
  };
  
  const report = AnalyticsData.Data.accounts.properties.runReport({ property: `properties/${propertyId}`, body: request });
  
  const sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(1, 1).setValue('ソース');
  sheet.getRange(1, 2).setValue('セッション数');
  
  report.rows.forEach(function(row, index) {
    sheet.getRange(index + 2, 1).setValue(row.dimensionValues[0].value);
    sheet.getRange(index + 2, 2).setValue(row.metricValues[0].value);
  });
}
  1. サービスアカウントの認証を追加する
    スクリプトエディタで「ライブラリ」を開き、「AnalyticsData」というサービスを追加します。IDは「`https://www.googleapis.com/auth/analytics.readonly`」です。これでAPI呼び出しが可能になります。
  2. 関数をテスト実行する
    エディタ上部の「実行」ボタンをクリックし、getGa4Data関数を選択して実行します。初回は権限承認画面が表示されるので、自分のGoogleアカウントで許可します。スプレッドシートにデータが出力されれば成功です。

GA4データAPI設定で起きやすいトラブルと対処法

APIが有効になっていないエラーが表示される

スクリプト実行時に「Google Analytics Data API has not been used in project」というエラーが出る場合、Cloud ConsoleでAPIを有効にしていないことが原因です。先ほどの手順でAPIライブラリから有効にしたか確認してください。また、有効化後数分かかる場合があるので、少し時間を置いてから再実行します。

権限不足でデータが取得できない

サービスアカウントをGA4プロパティに追加していない、または権限が不適切だと403エラーが発生します。GA4の管理画面でユーザー一覧にサービスアカウントのメールアドレスが表示されているか確認してください。権限は「閲覧者」以上が必要です。また、プロパティIDが間違っていないかもチェックします。

スクリプトの実行がタイムアウトする

大量のデータを一度に取得しようとすると、Apps Scriptの実行時間制限(6分)を超えることがあります。その場合は、日付範囲を短くするか、metricsやdimensionsの数を減らして調整します。また、スクリプトのトリガーを設定して定期的に分割して実行する方法も検討します。

ADVERTISEMENT

GA4データAPIと従来のデータエクスポートの違い

項目 手動エクスポート GA4データAPI利用
更新の手間 毎回手動でCSVをダウンロードして貼り付ける必要あり スクリプトを実行するだけで自動更新可能
リアルタイム性 エクスポート時点のデータで、タイムラグが大きい トリガー設定で定期的に最新データを取得できる
カスタマイズ性 あらかじめ定義されたレポート形式のみ 任意の指標やディメンションを自由に組み合わせ可能

API利用の方が柔軟性と効率性に優れています。ただし初期設定に多少の手間がかかるため、定期的なレポート作成にはAPIを、一回限りの確認には手動エクスポートを使い分けるとよいでしょう。

まとめ

この記事ではGA4データAPIをスプレッドシートに設定する手順を解説しました。Google Cloud ConsoleでのAPI有効化からApps Scriptによるデータ取得までの流れを確認できたはずです。APIを活用すれば、手動エクスポートの手間から解放され、常に最新の分析データをシート上で管理できます。次に実際に、セッション数だけでなくコンバージョン数やユーザー属性など、必要な指標を追加してカスタマイズしてみてください。また、トリガー機能を使えば毎日自動更新も可能です。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。