ASTERIA WarpとGoogleBigQuery_GoogleAnalytics連携(フロー説明)

GoogleアナリティクスとGoogleBigQueryをリンクし、特定のGitHubPagesに対してのイベント情報を取得するフローを作成します。

フローの詳細

event情報取得フロー(メインフロー)

SubFlow_event情報(サブフロー)

このフローにより、イベント情報を取得します。

event情報取得フロー(メインフロー)

GoogleBigQueryGetコンポーネント

SQLビルダーを開き、対象のeventsテーブルからイベント情報、デバイス情報、地域情報を取得

「基本」設定

・コネクション名:GBQConn 対象のコネクション名を選択

SQL文:SQLビルダーにより、反映される

・ループを開始:はい

・その他のプロパティはデフォルトのままでOkです。

SQL文について、device.operationg_systemgeo.city等のように階層構造のデータを取得するには””ダブルクオーテーションで囲む必要がある

events_20250206テーブルのevents情報をループで取得

 このテーブルではGitHubPagesに対しての2025/02/06に発生するevent情報が含まれている

GoogleBigQueryGetコンポーネント設定

Mapperコンポーネント

・直前コンポーネントで取得したデータをフロー変数、SubFlowコンポーネントへマッピングする

event_paramsJSONオブジェクトの配列になっている

SubFlowコンポーネント

・「SubFlow_event情報」フローを呼び出す

・ストリーム型をTextに設定する

Mapperコンポーネント

SubFlowからの「戻り値」(page_locationの値)をマッピングする

・各フロー変数を直後のコンポーネントのストリームフィールドへマッピングする

LoopEndコンポーネント

・ループ開始コンポーネントに「GoogleBigQueryGet」を設定する

・出力形態に「ストリームをまとめ」を設定

FilePutコンポーネント

LoopEndからまとめて出力されたevent情報を出力する

***************************

SubFlow_event情報(サブフロー)

このSubFlowevent_paramsに格納された、階層構造化の配列JSONオブジェクトの中から、”page_location”値を取得する目的です。

event_paramsの階層構造、格納される値を以下画像をご参考ください。

event_paramsに格納される値
JSONオブジェクト構造

Startコンポーネント

SubFlowコンポーネントから出力された「event_params」情報を取得

・ストリーム型を「Text」に設定する

JSONDecodeコンポーネント

・入力されたJSON文字列をXMLに変換する

・「基本」設定のJSON種別に「配列」を選択する

・配列を設定すると「JSONDecodeコンポーネント」がループの起点となる

 ※GoogleBigQueryから取得したevent_paramsJSONオブジェクトの配列になっているため

・ストリームの「フィールド」設定は入力された「JSON形式」に対応する階層構造を設定する

Mapperコンポーネント

・フロー変数のevent_param_nameにマッピングする

BranchStartコンポーネント

event_param_nameの値が”page_location”の場合だけ、値を取得

・条件式:$flow.event_param_name='page_location'

XPathNodesetコンポーネント

XMLデータから必要な部分を取得する

XPath式:/v/f[v="page_location"]/following-sibling::f[1]/v[not(@isNull)]

Breakコンポーネント

pate_locationの値が取得した後、SubFlowを終了し、メインフローへ戻る

・出力指定に「ブルー時の出力」を設定する

***********************

実行結果

https://example.github.io/abc_ex/ページの2025年02月06日のevent情報が取得できる