【GAS】Google Analytics GA4のデータを取得する

2022年5月31日

Google Analytics(グーグルアナリティクス)UAがあと1年で使えなくなってしまうこと鑑みてGA4のデータを取得するGASを作成しました。

準備

Google Analytics Data APIを追加する

コードを書く

事前にGA4アカウントのIDを確認しておいてください。

function runReport() {

  const propertyId = '<GA4アカウントのID>';

  try {
    // 列の項目を設定 (例:アクティブユーザーとイベント数)
    const metric = AnalyticsData.newMetric();
    metric.name = 'activeUsers';

    const metric1 = AnalyticsData.newMetric();
    metric1.name = 'eventCount';

    // 行の項目 (例:日付とイベント名)
    const dimension = AnalyticsData.newDimension();
    dimension.name = 'date';

    const dimension1 = AnalyticsData.newDimension();
    dimension1.name = 'eventName';

    // 取得期間
    const dateRange = AnalyticsData.newDateRange();
    dateRange.startDate = '7daysAgo';
    dateRange.endDate = 'yesterday';

    const request = AnalyticsData.newRunReportRequest();
    request.dimensions = [dimension,dimension1];
    request.metrics = [metric,metric1];
    request.dateRanges = dateRange;

    const report = AnalyticsData.Properties.runReport(request,
        'properties/' + propertyId);
    if (!report.rows) {
      Logger.log('No rows returned.');
      return;
    }


    // Append the headers.
    const dimensionHeaders = report.dimensionHeaders.map(
        (dimensionHeader) => {
          return dimensionHeader.name;
        });
    const metricHeaders = report.metricHeaders.map(
        (metricHeader) => {
          return metricHeader.name;
        });
    const headers = [...dimensionHeaders, ...metricHeaders];


    // Append the results.
    let rows = report.rows.map((row) => {
      const dimensionValues = row.dimensionValues.map(
          (dimensionValue) => {
            return dimensionValue.value;
          });
      const metricValues = row.metricValues.map(
          (metricValues) => {
            return metricValues.value;
          });
      return [...dimensionValues, ...metricValues];
    });

    rows.unshift(headers)
    return rows;
    
  } catch (e) {
    // TODO (Developer) - Handle exception
    Logger.log('Failed with error: %s', e.error);
  }
}

function getDate(){
  let ss=SpreadsheetApp.getActiveSpreadsheet()
  sh=ss.getSheetByName("シート1")
  let rows=runReport()
  sh.getRange(1,1,rows.length,rows[0].length).setValues(rows)

}

https://developers.google.com/apps-script/advanced/analyticsdata

よく使いそうなMetrics(項目)やDimensions(指標)

期間

today今日
yesterday昨日
7daysAgo7日前
28daysAgo28日前
2020-09-01 日付指定

Metrics(項目)

activeUsersアクティブユーザー
eventCountイベント数
conversionsコンバージョンイベントの数
newUsers新しい利用者
userEngagementDurationWebサイトまたはアプリがユーザーのデバイスのフォアグラウンドにあった合計時間(秒単位)

Dimensions(指標)

city
country
dateYYYYMMDDとしてフォーマットされたイベントの日付
dateHourYYYYMMDDHHとしてフォーマットされた日付と時間の合計値
day月の日、01から31までの2桁の数字
dayOfWeek曜日。日曜日を週の最初の日として、[0,6]の範囲の値を返します
fullPageUrlフルページのURL
googleAdsAccountNameGoogle広告のアカウント名
landingPageランディングページ
operatingSystemオペレーティング·システム
pageReferrerホスト名とパスを含む完全な参照URL。
この参照URLは、ユーザーの以前のURLであり、このWebサイトのドメインまたは他のドメインにすることができます。
イベントパラメータ「page_referrer」が入力されます。

https://developers.google.com/analytics/devguides/reporting/data/v1?hl=ja

https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema

GAS,広告運用

Posted by Next-k