GA4データをGASで自動集計!スプレッドシートへの簡単導入法

GA4のデータをGASで自動集計してスプレッドシートに出力する方法、どうやってやるんだろう…、少しでも仕事を効率的にしたいのになあ…。
猫男
猫男
catman
catman
catmanに任せろ。GA4データをGASで集計し、スプレッドシートに出力する方法を教えてあげるさ。

GA4データをGASで取得する第一歩

まずは、GA4のデータをGASで取得する前に必要な準備をしよう。

APIキーを取得する方法

GASを用いてGA4のデータを取得するには、まずGoogle Cloud Platformでプロジェクトを作り、APIキーを設定する必要がある。

1. Google Cloud Consoleにアクセスして、新しいプロジェクトを作成しよう。

2. プロジェクトのダッシュボードでAPIとサービスに進み、APIとサービスの認証情報からAPIキーを作成する。

まずAPIキーを取得するんですね。初めてのことだから緊張するけど、やってみます!
猫男
猫男

 

GASでGA4データを集計

APIキーを取得したら、次にGASを使ってGA4のデータを取得する方法を学ぶ番だ。

GASでGA4 APIにアクセスする

GA4 APIにアクセスし、データを取得するための基本スクリプトは以下の通りだ。


function getDataFromGA4() {
  var apiKey = 'YOUR_API_KEY';
  var url = 'https://analyticsdata.googleapis.com/v1beta/properties/PROPERTIES_ID:runReport';
  
  var requestOptions = {
    'method': 'POST',
    'contentType': 'application/json',
    'headers': {
      'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
    },
    'payload': JSON.stringify({
      'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'yesterday'}],
      'dimensions': [{'name': 'city'}],
      'metrics': [{'name': 'sessions'}]
    })
  };
  
  var response = UrlFetchApp.fetch(url + '?key=' + apiKey, requestOptions);
  Logger.log(response.getContentText());
}

このスクリプトはGA4にアクセスし、過去30日間のセッション数を取得するものだ。

ちょっと複雑そう…でも勉強になります!なんとか頑張ってみる。次はスプレッドシートへの連携ですね!
猫男
猫男

 

GA4データをスプレッドシートに出力する

GASを使ってデータをスプレッドシートに出力する方法を見てみよう。

スプレッドシートへの出力方法

GASを用いることで、取得したデータをスプレッドシートに直接出力する操作は簡単だ。


function outputDataToSheet() {
 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = spreadsheet.getActiveSheet();

 // ヘッダーを追加
 sheet.appendRow(['City', 'Sessions']);

 // データを追加
 var data = getDataFromGA4();
 for (var i = 0; i < data.length; i++) {
   sheet.appendRow(data[i]);
 }
}

このスクリプトは、GA4から取得したデータを使用してスプレッドシートに出力する。

 

練習問題

1. GA4のデータを期間「開始日:7daysAgo、終了日:today」で取得し、地域(region)のディメンションをセッション数とともに取得するようにスクリプトを修正してみよう。

 

解答・解説


function getDataFromGA4() {
 var apiKey = 'YOUR_API_KEY';
 var url = 'https://analyticsdata.googleapis.com/v1beta/properties/PROPERTIES_ID:runReport';
 
 var requestOptions = {
   'method': 'POST',
   'contentType': 'application/json',
   'headers': {
     'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
   },
   'payload': JSON.stringify({
     'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
     'dimensions': [{'name': 'region'}],
     'metrics': [{'name': 'sessions'}]
   })
 };
 
 var response = UrlFetchApp.fetch(url + '?key=' + apiKey, requestOptions);
 Logger.log(response.getContentText());
}

このスクリプトは、Date Rangesの部分を‘7daysAgo’から‘today’に変更し、ディメンションにregionを追加することで、指定した期間で地域の情報を取得可能にする。

やった!これでGA4のデータをスプレッドシートに出力する自動化ができそう!ありがとうございます、catman。
猫男
猫男
catman
catman
どんどん習得して、仕事の効率を上げよう!あとは自分の手で試してみることさ。