Google Analytics(GA4)からレポートを取得(GetGA4Report)
この記事では、Google Analyticsからデータを取得する方法について紹介します。
【できるようになること】
- GetGA4Reportアクションを設定
- Google Analyticsのデータを取得
本アクションはGA4に対応した専用のものとなります。GetGAReport(ユニバーサルアナリティクス)の記事やアクションと混同されないようご注意ください。GetGAReportについてはこちら
GetGA4Reportアクションを設定
下記手順にてワークフローを設定します。
実行前にはGoogle Analyticsのコネクション連携が必要となります。
- フィルタを設定することで取得するデータの値を制限することができます。
“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 整数値 doubleValue double 値 - betweenFilter
2 つの値のフィルタ。結果は 2 つの数値の間にあることを表します。例) { "fromValue": { "int64Value":700 }, "toValue": { "int64Value":800 } }
fromValue
には始まりの値を指定します。中身は numericFilter のvalue
と同様です。toValue
には終わりの値を指定します。中身は numericFilter のvalue
と同様です。
- StringFilter
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ワークフロー実行結果
- 例1ワークフロー設定内容
- 例2ワークフロー実行結果
- 例2ワークフロー設定内容
- 例3ワークフロー実行結果
- 例3ワークフロー設定内容
- 例4ワークフロー実行結果
- 例4ワークフロー設定内容
# 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
# 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からレポートを取得