• Home
  • BigQuery
  • [BigQuery] BigQuery查詢GA4事件參數的2個常見技巧
[BigQuery] BigQuery查詢GA4事件參數的2個常見技巧
By Bryce profile image Bryce
4 min read

[BigQuery] BigQuery查詢GA4事件參數的2個常見技巧

前言

在您把GA4與BigQuery作好連結後並進入BigQuery中查看資料,會發現它儲存的資料格式並非全部都是一列當中包含所有資料,而是在部份的欄位中又被切分為多行,而在每行裡的欄位又有值。

以BigQuery中所存放的GA4事件資料為例

在上面的照片裡,我看可以看到第四個欄位的名稱是「event_params.key」這種在單一列中含有多筆資料的方式我們稱為STRUCT(結構化),過往我們在導入GA4時都會強調它是以事件(Event)為核心來記錄所有資料;以上圖為例,是記錄了一位使用者發生了event_name為page_view的事件,而在此事件中會含有多個參數,包含hour、category、author_id、author、page_location…等,意即此資料在資料列中只有單純一個事件,但卻含有多個事件參數,因此就非常合適使用BigQuery的STRUCT(結構化)資料型態來作儲存。

UNNEST

過往在使用SQL語法查詢一般資料列時都會用像是下面這樣的用法:
SELECT FROM `ga4property.analytics_244536022.events_20230926`
但此查詢方法是適合一般的一列式資料,而當碰到BigQuery中此種特定的 STRUCT(結構化) 欄位時便無法使用,因此如果需要查詢 STRUCT(結構化) 就要用到UNNEST的方式。

什麼是UNNEST?

在BigQuery中,UNNEST 是一個用於展開(解壓縮)嵌套數據結構的操作符。它通常用於處理 ARRAY 和 STRUCT 類型的數據列。以下是 UNNEST 在 BigQuery 中的主要作用:

  1. 展開 ARRAY:當在BigQuery表中有包含 ARRAY 數據類型的列時,可以使用 UNNEST 來將這些數據列中的元素展開為多行。這樣做可以使你更容易進行數據分析和查詢。
SELECT id, value
FROM your_table,
UNNEST(array_column) AS value

這將把 array_column 中的每個元素展開為一行,並生成新的行,每行包含 id 和 value。

  1. 展開 STRUCT:當在BigQuery表中包含 STRUCT(結構化)數據類型的列,可以使用 UNNEST 來展開這些 STRUCT 中的字段。
SELECT id, name
FROM your_table,
UNNEST(struct_column) AS s

這將把 struct_column 中的每個字段展開為一行,生成新的行,每行包含 id 和 name。

event_params.value的類型與介紹

會使用UNNEST把需要的參數挑選出來,再來就是把參數的「值」呈現;在event_params.value這個系列的欄位會有四種型態:

  • event_params.value.string_value
    這個字段包含字符串(string)類型的值。通常,它用於表示文本數據,例如事件的名稱、用戶的名稱等。如果你想要擷取 GA4 事件的文本型參數值,你可以使用這個字段。

  • event_params.value.int_value
    這個字段包含整數(integer)類型的值。它用於表示整數數據,例如計數、數量等。如果你想要擷取 GA4 事件的整數型參數值,你可以使用這個字段。

  • event_params.value.float_value
    這個字段包含浮點數(float)類型的值。它用於表示具有小數部分的數值,例如商品的價格、計量等。如果你想要擷取 GA4 事件的浮點型參數值,你可以使用這個字段。

  • event_params.value.double_value
    這個字段也包含浮點數(float)類型的值,但它的精度通常更高,可以表示非常大或非常小的數字。雙精度浮點數用於需要高精度計算的情況,例如科學計算。在 GA4 事件中,這個字段的使用情況比較少見,通常在特定的情況下才會使用。

來作個實際上的操作,例如想要取得ga_session_id,因為這個參數的值它本身是一個「整數」,因此需要使用「event_params.value.int_value」來設定參數的值:

SELECT value.int_value FROM unnest(event_params) AS value WHERE key = 'ga_session_id'

如果需要選出瀏覽頁面的Page Path (page_location),它是一個字串型的網址,此時就可以使用「event_params.value.string_value」此參教

SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location'

以上,是我們在BigQuery查詢GA4事件參數時會運用到的2個小技巧。

By Bryce profile image Bryce
Updated on
BigQuery GA4 網站分析商務實戰