中間テーブル(データマート)である。 逐一クエリを投げて、テーブルを生成するのでなく、1日1回必要なテーブルを作成して、そのテーブルを参照するクエリを投げる方法で分析に関わるオンディマンド料金が安くなり、処理速度も速くなる。だから使わない手はないのである。この実装方法について記す。
1)元のクエリ作成
※このクエリで作成したテーブルに対して後から行をインポート(追加)する。
クエリ例:
※プロジェクトID、データセット、GA4テーブルは適宜入れ替えてください。
※ _TABLE_SUFFIX BETWEEN '20240410' AND '20240414' については、設定する前日までをセットする。 4月15日を例にとると 20240414のようにセット。期間は任意だがコスト的に短い方が良い。
WITH prep_table AS (
SELECT
event_date as date,
user_pseudo_id,
(SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS ga_session_id,
IF(event_name = 'お問い合わせ', 1, 0) AS conversions
FROM
*******.analytics_****.events_*
WHERE
_TABLE_SUFFIX BETWEEN '20240410' AND '20240414'
)
SELECT
date,
COUNT(DISTINCT user_pseudo_id) AS user_count,
COUNT(DISTINCT CONCAT(user_pseudo_id, CAST(ga_session_id AS STRING))) AS session_count,
SUM(conversions) AS conv_otoi
FROM
prep_table
GROUP BY
date;
2)結果を保存

3)クエリ結果確認

4)プロジェクトID、データセット、テーブル名を指定して保存
※ここではテーブル名をbq_ct_test_3 とした。任意で。

5)インポート(追加)クエリ作成
※元クエリで作成された表に行を追加する為のクエリ
INSERT INTO *******.analytics_**** .bq_ct_test_
3
WITH prep_table AS (
SELECT
event_date as date,
user_pseudo_id,
(SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS ga_session_id,
IF(event_name = 'お問い合わせ', 1, 0) AS conversions
FROM
*******.analytics_****.events_*
WHERE
_TABLE_SUFFIX = FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
)
SELECT
date,
COUNT(DISTINCT user_pseudo_id) AS user_count,
COUNT(DISTINCT CONCAT(user_pseudo_id, CAST(ga_session_id AS STRING))) AS session_count,
SUM(conversions) AS conv_otoi
FROM
prep_table
GROUP BY
date;
6)スケジュール設定
スケジュールクリック

アカウントの選択。「BigQuery Data Transfer Service」に移動。
ここが重要。2024年4月16日午前9時30分(JST)で設定する。これはUTCでは 2024年4月16日午前0時30分を意味する。 この設定で日本時間 2024年4月16日午前9時30分 には 2024年4月15日分のデータがインポート(追加)される。
※BigQuery では、タイムスタンプ型(TIMESTAMP)の値は協定世界時(UTC)で保存されている。

ここでは24時間ごとに追加が繰り返されて更に最終日も設定

7) LookerStudio設定
BigQueryカスタムクエリから、当該プロジェクト名選択。下記のクエリ入力。
SELECT
date,
user_count,
session_count,
conv_otoi
FROM
*******.analytics_**** .bq_ct_test_
3

8)LookerStudioで確認。4月15日以降が追加されていることが確認できた。

以上です。