Docly Child

Google Analytics(GA4)からレポートを取得(GetGA4Report)

382 views

この記事では、Google Analyticsからデータを取得する方法について紹介します。

【できるようになること】

  • GetGA4Reportアクションを設定
  • Google Analyticsのデータを取得

本アクションはGA4に対応した専用のものとなります。GetGAReport(ユニバーサルアナリティクス)の記事やアクションと混同されないようご注意ください。GetGAReportについてはこちら

 GetGA4Reportアクションを設定

下記手順にてワークフローを設定します。

実行前にはGoogle Analyticsのコネクション連携が必要となります。

  • アクションの一覧からGetGAReportアクションをドラッグ&ドロップします。
  • パラメータの内容は以下のようになっています。各パラメータについての詳細な解説はそれぞれの項目をご覧ください。

 

  • 右横の「プロバイダーIDを選ぶ」からプロバイダーを選択します。

 

  • プロパティIDを以下の手順で確認し、入力します。
    ①Google アナリティクスの画面で、左上にあるアナリティクスのロゴの横にある下矢印をクリックし、プロパティセレクタを開く

    ②左の列にはアカウント、その隣の列にプロパティが表示される
    ③プロパティ名の下にあるプロパティIDを取得し、パラメータに入力する

    このとき、すべて数字で構成されているIDがGoogle Analytics4のもの(例:XXXXXXXXX)です。「UA」で始まり数字で終わるIDは、ユニバーサルアナリティクス(Google Analytics)のもの(例:UA-XXXXXXXXX-1)ですのでご注意ください。

 

  • レポートの開始日と終了日を右横のカレンダーアイコンから設定します。※次のタブで設定方法の詳細説明があります。

 

集計対象の期間(1ヶ月前の月末~2023/06/01)を設定します

  • リクエスト期間の開始日付(startDate)の右端のカレンダーアイコンをクリックします
  • 「相対日時」タブに移動します
  • 「先月月末」をクリックします ※数値=1, 単位=ヶ月, 前後=前,初末オプション=月末とする形でもOKです
  • OKをクリックします
  • リクエスト期間の終了日付(endDate)を設定します
  • 2023-06-01と直接入力するか、カレンダーの日付選択タブから2023-06-01を直接選択します。

 

  • 取得する数値を指標パラメータのGAアイコンから設定します。
    • 主な指標として利用できるAPI名、UI名、説明についてはこちらをご参照ください。

 

  • 取得するデータの範囲をディメンションパラメータのGAアイコンから選択します。
    • 主なディメンションとして利用できるAPI名、UI名、説明についてはこちらをご参照ください。

 

  • フィルタを設定することで取得するデータの値を制限することができます。
    • “metricFilter”は特定の数値メトリクス(例:セッション数、ページビュー数)をフィルタリングするのに使います。一方で、”dimensionFilter”は特定の属性(例:国、都市、ページパスなど)に基づいてデータをフィルタリングします。

  • フィルタの作成方法は以下になります。
    公式ドキュメント「Try this method」の「Request body」から metricFilter または dimensionFilter を選択し、フィルタオブジェクトを作成する

    ②作成したフィルタのmetricFilter または dimensionFilter の内側のオブジェクトをコピーする

    ③GetGA4Report アクションの metricFilter または dimensionFilter パラメータに貼り付ける

  • フィルタの書き方については以下になります。
    • 基本のフィルタ
      キーに filter 、値に条件を設定します
      例)
      {
        "filter": {
          "fieldName": "eventName",
          "stringFilter": {
            "value":"first_visit"
          }
        }
      }

      fieldName には metrics 名または dimension 名を指定します。 stringFilter で指定している箇所は後述のフィルタの種類をご参照ください。

    • 否定系
      notExpression を使用することで、フィルタで指定された条件に一致しないデータを取得できます。
      例)
      {
        "notExpression": {
          "filter": {
            "fieldName": "eventName",
            "stringFilter": {
              "value":"first_visit"
            }
          }
        }
      }
    • AND条件
      andGroup を使用することで、複数のフィルタ条件をすべて満たすデータを取得できます。
      例)
      {
        "andGroup": {
          "expressions": [{
            "filter": {
              "fieldName":"sessionDefaultChannelGroup",
              "stringFilter": {
                "value":"Organic Search"
              }
            }
          },
          {
            "filter": {
              "fieldName":"country",
              "stringFilter": {
                "value":"Japan"
              }
            }
          }]
        }

      expressions は、対象となるフィルタ条件をリスト形式で記述する際に使用します。

    • OR条件
      orGroup を使用することで、フィルタ条件のいずれかが満たされる場合にデータを取得できます。
      例)
      {
        "orGroup": {
          "expressions": [{
            "filter": {
              "fieldName":"eventName",
              "stringFilter": {
                "value":"page_view"
              }
            }
          },
          {
            "filter": {
              "fieldName":"eventName",
              "stringFilter": {
                "value":"first_visit"
              }
            }
          }]
        }
      }

      expressions は、対象となるフィルタ条件をリスト形式で記述する際に使用します。

  • フィルタの種類
    • StringFilter
      文字列関連のフィルタ。
      例)
      {
        "matchType": CONTAINS,
        "value": organic,
        "caseSensitive": false
      }

      matchType では文字列値と値のマッチング方法を指定します。 以下、マッチタイプの種類です。

      MATCH_TYPE_UNSPECIFIED指定なし
      EXACT文字列値と完全一致
      BEGINS_WITH文字列値で始まる
      ENDS_WITH文字列値で終わる
      CONTAINS文字列値に含まれる
      FULL_REGEXP正規表現と文字列値の完全一致
      PARTIAL_REGEXP正規表現と文字列値の部分一致

      value では文字列値を指定します。 caseSensitive では文字列値で大文字と小文字を区別するかどうかを指定します。true の場合、区別されます。

    • inListFilter
      文字列関連のフィルタ。複数の文字列値を指定できます。
      例)
      {
        "values": ["Japan", "China"],
        "caseSensitive": false
      }

      values には複数の文字列値を配列形式で指定します。配列の中身は空でない必要があります。 caseSensitive では文字列値で大文字と小文字を区別するかどうかを指定します。true の場合、区別されます。

    • numericFilter
      数値または日付の値のフィルタ。
      例)
      {
        "operation": "GREATER_THAN_OR_EQUAL",
        "value": {
          "int64Value":700
        }
      }

      operation には、数値を比較する演算子を指定します。 以下、比較演算子の種類です。

      OPERATION_UNSPECIFIED指定なし
      EQUAL等しい
      LESS_THAN値より小さい
      LESS_THAN_OR_EQUAL値以下
      GREATER_THAN値より大きい
      GREATER_THAN_OR_EQUAL値以上

      value には数値または日付を指定します。 int64Value の部分には数値のタイプを指定します。以下、数値のタイプの種類です。

      int64Value整数値
      doubleValuedouble 値
    • betweenFilter
      2 つの値のフィルタ。結果は 2 つの数値の間にあることを表します。

      例)
      {
        "fromValue": {
          "int64Value":700
        },
        "toValue": {
          "int64Value":800
        }
      }

      fromValue には始まりの値を指定します。中身は numericFilter の value と同様です。 toValue には終わりの値を指定します。中身は numericFilter の value と同様です。

 

  • アクション下のvのマークをクリックし、追加項目を表示させます。
  • 取得するデータが多い場合は取得する行数の上限を増やします。デフォルトでは1000になっています。

 

GA4を設定しているページにAUTOROをはじめとしたRPAでアクセスするフローが走っている場合、そのアクセスもレポート上に反映されています。

これをレポート対象から外したい場合、アクセスするブラウザに固有設定を追加し、本アクションのフィルタで除外するように設定します。

 

設定例

OpenBrowserに言語、画面サイズ、ユーザーエージェントを設定
(各項目の設定方法などはこちらをご参照ください)

# ブラウザを開く
+open_browser_1:
  action>: OpenBrowser
  url: ''
  lang: en
  timeZone: 'Asia/Tokyo'
  userAgent: 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko'
  headless: true
  windowSize: '1280 x 720'
  useShadowDomSelector: false
  private: false

例1)Organic を含むチャネルグループの1日ごとのセッションを取得

このデータはそのままだと貼り付けができないため、JSONから配列への変換アクションを使って加工します。

貼り付けイメージ

# GA4のレポートを取得
+get_g_a4_report_1:
  action>: GetGA4Report
  provider: ''
  propertyId: ''
  startDate: ''
  endDate: ''
  metrics: sessions
  dimensions: 'date, sessionDefaultChannelGroup'
  metricFilter: ''
  dimensionFilter:
    filter:
      fieldName: sessionDefaultChannelGroup
      stringFilter:
        matchType: CONTAINS
        value: organic
        caseSensitive: false
  pageSize: 1000
  private: false
  meta:
    display:
      provider:
        type: chip
        label: 'Google Analytics (xxxxxxxxxx@xxxxx)'
        icon: googleanalytics

# JSONを配列に変換_スプレッドシートに貼り付ける形式に変更します
+convert_j_s_o_n_to_array_1:
  action>: ConvertJSONToArray
  json: +get_g_a4_report_1
  header: ["rows.dimensionValues.value","rows.metricValues.value"]
  unwind: []
  stringify: []
  private: false

# 変数に保存
+store_value_1:
  action>: StoreValue
  key: ga4report
  value: +convert_j_s_o_n_to_array_1
  private: false

# 既存のスプレッドシートを取得
+get_spreadsheet_1:
  action>: GetSpreadsheet
  provider: ''
  spreadsheet_id: ''
  private: false
  meta:
    display:
      provider:
        type: chip
        label: 'Google Spreadsheet (xxxxxxxxxx@xxxxx)'
        icon: googlespreadsheet
      spreadsheet_id:
        label: ''
        icon: text
        type: chip

# セルの値を更新_ヘッダーを削除して貼り付けます
+update_cells_1:
  action>: UpdateCells
  spreadsheet: +get_spreadsheet_1
  range: ''
  values: ${ga4report.shift();ga4report;}
  private: false

例2) 日本と中国以外の国の1日ごとの新規ユーザ数を取得

このデータはそのままだと貼り付けができないため、JSONから配列への変換アクションを使って加工します。

貼り付けイメージ

# GA4のレポートを取得
+get_g_a4_report_1:
  action>: GetGA4Report
  provider: ''
  propertyId: ''
  startDate: ''
  endDate: ''
  metrics: newUsers
  dimensions: 'date, country'
  metricFilter: ''
  dimensionFilter:
    notExpression:
      filter:
        fieldName: country
        inListFilter:
          values:
            - Japan
            - China
          caseSensitive: false
  pageSize: 1000
  private: false
  meta:
    display:
      provider:
        type: chip
        label: 'Google Analytics (xxxxxxxxxx@xxxxx)'
        icon: googleanalytics

# JSONを配列に変換_スプレッドシートに貼り付ける形式に変更します
+convert_j_s_o_n_to_array_1:
  action>: ConvertJSONToArray
  json: +get_g_a4_report_1
  header: ["rows.dimensionValues.value","rows.metricValues.value"]
  unwind: []
  stringify: []
  private: false

# 変数に保存
+store_value_1:
  action>: StoreValue
  key: ga4report
  value: +convert_j_s_o_n_to_array_1
  private: false

# 既存のスプレッドシートを取得
+get_spreadsheet_1:
  action>: GetSpreadsheet
  provider: ''
  spreadsheet_id: ''
  private: false
  meta:
    display:
      provider:
        type: chip
        label: 'Google Spreadsheet (xxxxxxxxxx@xxxxx)'
        icon: googlespreadsheet
      spreadsheet_id:
        label: ''
        icon: text
        type: chip

# セルの値を更新_ヘッダーを削除して貼り付けます
+update_cells_1:
  action>: UpdateCells
  spreadsheet: +get_spreadsheet_1
  range: ''
  values: ${ga4report.shift();ga4report;}
  private: false

例3) 国が日本かつチャネルグループが Organic Search の新規ユーザー数

このデータはそのままだと貼り付けができないため、JSONから配列への変換アクションを使って加工します。

貼り付けイメージ

# GA4のレポートを取得
+get_g_a4_report_1:
  action>: GetGA4Report
  provider: ''
  propertyId: ''
  startDate: ''
  endDate: ''
  metrics: newUsers
  dimensions: 'country, sessionDefaultChannelGroup'
  metricFilter: ''
  dimensionFilter:
    andGroup:
      expressions:
        - filter:
            fieldName: sessionDefaultChannelGroup
            stringFilter:
              value: 'Organic Search'
        - filter:
            fieldName: country
            stringFilter:
              value: Japan
  pageSize: 1000
  private: false
  meta:
    display:
      provider:
        type: chip
        label: 'Google Analytics (xxxxxxxxxxo@xxxxx)'
        icon: googleanalytics

# JSONを配列に変換_スプレッドシートに貼り付ける形式に変更します
+convert_j_s_o_n_to_array_1:
  action>: ConvertJSONToArray
  json: +get_g_a4_report_1
  header: ["rows.dimensionValues.value","rows.metricValues.value"]
  unwind: []
  stringify: []
  private: false

# 変数に保存
+store_value_1:
  action>: StoreValue
  key: ga4report
  value: +convert_j_s_o_n_to_array_1
  private: false

# 既存のスプレッドシートを取得
+get_spreadsheet_1:
  action>: GetSpreadsheet
  provider: ''
  spreadsheet_id: ''
  private: false
  meta:
    display:
      provider:
        type: chip
        label: 'Google Spreadsheet (xxxxxxxxxx@xxxxx)'
        icon: googlespreadsheet
      spreadsheet_id:
        label: 'GA4設定テスト'
        icon: text
        type: chip

# セルの値を更新_ヘッダーを削除して貼り付けます
+update_cells_1:
  action>: UpdateCells
  spreadsheet: +get_spreadsheet_1
  range: ''
  values: ${ga4report.shift();ga4report;}
  private: false

例4) イベント名が page_view または first_visit の1日ごとのイベント数を取得

このデータはそのままだと貼り付けができないため、JSONから配列への変換アクションを使って加工します。

貼り付けイメージ

# GA4のレポートを取得
+get_g_a4_report_1:
  action>: GetGA4Report
  provider: ''
  propertyId: ''
  startDate: ''
  endDate: ''
  metrics: eventCount
  dimensions: eventName
  metricFilter: ''
  dimensionFilter:
    orGroup:
      expressions:
        - filter:
            fieldName: eventName
            stringFilter:
              value: page_view
        - filter:
            fieldName: eventName
            stringFilter:
              value: first_visit
  pageSize: 1000
  private: false
  meta:
    display:
      provider:
        type: chip
        label: 'Google Analytics (xxxxxxxxxx@xxxxx)'
        icon: googleanalytics

# JSONを配列に変換_スプレッドシートに貼り付ける形式に変更します
+convert_j_s_o_n_to_array_1:
  action>: ConvertJSONToArray
  json: +get_g_a4_report_1
  header: ["rows.dimensionValues.value","rows.metricValues.value"]
  unwind: []
  stringify: []
  private: false

# 変数に保存
+store_value_1:
  action>: StoreValue
  key: ga4report
  value: +convert_j_s_o_n_to_array_1
  private: false

# 既存のスプレッドシートを取得
+get_spreadsheet_1:
  action>: GetSpreadsheet
  provider: ''
  spreadsheet_id: ''
  private: false
  meta:
    display:
      provider:
        type: chip
        label: 'Google Spreadsheet (xxxxxxxxxx@xxxxx)'
        icon: googlespreadsheet
      spreadsheet_id:
        label: ''
        icon: text
        type: chip

# セルの値を更新_ヘッダーを削除して貼り付けます
+update_cells_1:
  action>: UpdateCells
  spreadsheet: +get_spreadsheet_1
  range: ''
  values: ${ga4report.shift();ga4report;}
  private: false

<GetGA4Report>Google Analytics4からレポートを取得

このページは役に立ちましたか?