要製作視覺化報表除了LookerStudio外,還可以怎麼做? 今天要分享透過PY來做資料視覺化報表的應用,PY本身有許多套件都是用來處理資料分析,例如Matplotlib, Plotly, Steamlit ,而我今天使用的範例是Pygwalker是一款,急速產生視覺化報表,而且修改不需要程式碼,他會直接使用UI介面讓你做拉選,但缺點是當資料量體過大,他會有LAG的現象,不過如果有先做好資料篩選;透過BigQuery把資料精簡化,後續再用這款套件,速度就很流暢,做表也很彈性。
本篇實務內容持續更新,依據不同分析目的製作不同分析報表。歡迎定期關注本篇文章!
章節內容
PYTHON視覺化結果
每月Purchse來源媒介長條圖

with _cte as (
SELECT event_date,
ecommerce.purchase_revenue,
user_pseudo_id,
traffic_source.source,
traffic_source.medium,
event_name,
device.mobile_model_name
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE _table_suffix between '20201001' and '20201231'
)
select event_date,source,medium,purchase_revenue FROM _cte
WHERE event_name = 'purchase'
ORDER BY event_date
UPT – 每筆交易購買的商品數量


每筆交易購買的商品數量是GA4裡面沒有的指標,透過BigQuey的撈取原始資料,並且先在BigQuery計算完報表,再輸出至PYTHON產生「每日銷售額 + 每日每筆交易購買的商品數量」的視覺化報表。
WITH cte AS(
SELECT
event_date,
ecommerce.purchase_revenue AS REV,
ecommerce.unique_items AS Items,
items.item_name AS Item_Name,
ecommerce
FROM
--改為你自己的資料表
`bigquery.analytics.events_*` ,
UNNEST(items) AS items
WHERE _table_suffix > '20240101'
AND event_name = 'purchase'
LIMIT 1000
)
SELECT
event_date,
SUM(REV) AS Revenue,
ROUND(SUM(Items) / COUNT(ecommerce.transaction_id),2) AS UPT ,
SUM(Items) AS sells_item,
COUNT(ecommerce.transaction_id) as Transasion_times,
FROM cte
GROUP BY 1
ORDER BY 1
BigQuery 報表製作流程
生成報表的依序過程
透過BIGQUERY 與 GA4串連 => 透過SQL從BigQuery撈取資料 => 使用Looker Studio進行視覺化報表生成,或Python 引入相關套件進行視覺化報表生成。
本篇文章需要對Bigquery有一定的認知,以及SQL查詢語言的熟悉,如果你還不知道甚麼是Bigquery,可以快速翻閱這篇文章,再回來看這篇的實際應用。
匯入資料


匯入GA4資料來源,如果你目前的BigQuery還沒有資料來源,你可以透過匯入公開資料集,來進行BigQuery的查詢、SQL的練習。這邊匯入資料前面就有講述,因此快速帶過,如果不知道怎麼匯入資料集的,可以返回上一篇BigQuery資料匯入查看。
選取要查閱的報表


因為我使用的是範例資料,所以要先找到接下來要分析的GA4報表,並且打開這張表,看一下目前擁有的資料內容。
確定日期範圍

由於這個資料來自外部,因此我無法確定資料擁有的時間範圍,所以我需要多出這一個步驟。如果你是使用自家的資料,並且知道自己要使用哪些時間範圍的資料,你可以忽略這一個步驟。
--找尋在資料表中不重複日期,以確定日期範圍
SELECT DISTINCT event_date FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE _table_suffix between '20201001' and '20231231'
order by event_date
指定資料欄位

SELECT event_date,
ecommerce.purchase_revenue,
user_pseudo_id,
traffic_source.source,
traffic_source.medium,
event_name,
device.mobile_model_name
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE _table_suffix between '20201001' and '20201231'
依照這次的篩選目標,我需要得知來源媒介,但我多拉了一些裝置、ID以備不時之需,如果你不想要,你也可以把這些不要分析的欄位刪除。
CTE

with _cte as (
SELECT event_date,
ecommerce.purchase_revenue,
user_pseudo_id,
traffic_source.source,
traffic_source.medium,
event_name,
device.mobile_model_name
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE _table_suffix between '20201001' and '20201231'
)
select event_date,source,medium,purchase_revenue FROM _cte
WHERE event_name = 'purchase'
ORDER BY event_date
如果不知道CTE是甚麼,可以查看一下這篇文章,另外如果想要知道其他CTE使用的也可以查看這篇。這一個步驟是篩選明確我要的分析資料,讓我後續可以快速進行報表的製作;方便我查看欄位,同樣也能節省SQL的資料用量,如果你好奇使用BigQuery的查詢價格,可以參考官方文件。

資料都調閱出來後,後續就可以進行視覺化報表的操作,你可以透過Looker Studio 或是Python套件,進行視覺化報表的製作。
開啟Google Colab

一開始打開Colab會有預設幫你寫好的引入套件、套件Function、專案ID;就是讓Colab能讀取你Bigquery裡面的資料。而這邊的程式碼都不需要更改,這是對應你的BigQuery的專案設定,你要先把每一行的程式碼點一下播放按鈕,讓colab進行運行。

點到第三行,也會有看到來自BigQuery的資料DataFrame。不過這還不是我們要的結果。

其他的文字你覺得不方便都可以先移除。
安裝套件

!pip install pygwalker
此語法讓我們先安裝對應要製作視覺化報表的套件,PYTHON有很多種不同套件,都可以進行數據的視覺化製作,這個Pygwalker是相對讓不懂程式語言的人,可以快速製作視覺化報表。
引入套件

#輸入語法
import pygwalker as pyg
pyg.walk(results)
引入上一步驟安裝的套件,並且透過pygwalker 套件中的方法,讀取我們Bigquery的資料。如上圖。
沒問題後他就會開啟一個UI讓我們製作視覺化報表。而資料則引用剛剛在BigQuery查詢好的資料。
依照XY拉動資料

拉動X與Y軸,還有利用source來區分來源的多寡,就能清楚看到完整的每月收益,以及站大多數的來源。到這邊即完成!

滑鼠指標移動過去圖片上,圖片也會顯示對應的資料詳細。
總結
不管後續查詢Biqquery是透過Looker Studio, PYTHON。皆能達到同樣的視覺化目的。使用前者就是專注在做資料的分析,但如果你使用PYTHON,可以再引入其他模組,例如OPENAI,Requests,前者將資料餵給AI請他去分析解讀,後者可以將資料混和進行其他比較,可行的方式有無限多種,而且使用Colab查詢,相較Looker Studio比較不容易卡頓,我個人是比較多推薦PYTHON作分析。
更多文章
Looker Studio
- Looker Studio教學|Looker Studio 公式|電商指標
- Looker Studio教學|5個Looker Studio 混和資料功能
- Looker Studio 教學|指標維度是甚麼
- Looker Studio 教學|數據工程師帶你從0學Looker Studio
- Looker Studio教學|導入臉書廣告數據|Adveronix 免費工具
GA4
- GA4教學| 數據保留多久? 延長GA4數據保留時間?
- GA4教學|Measurment Protocol 實例
- GA4教學|GA4 如果有Not Set該怎麼辦
- GA4教學|GA4閾值門檻|GA4資料不正確
- GA4教學|GA4常見來源判定順序
- GA4教學|如何處理GA4重複事件
- GA4教學|自訂探索報表使用解說介紹|洞察來源unassigned
- GA4教學|GA4報表出現Unassigned如何解決
- GA4教學|排除金物流網域|Referrer必備知識
- GA4教學| 一定要知道的GA4資料設定
GTM
- GTM教學|GTM觸發條件常失敗
- GTM教學|設定 Consent Mode 同意聲明模式
- GTM教學|GTM問題總整理
- GTM教學|設定臉書像素|常見Meta問題總整理
- GTM教學|WordPress表單驗證事件|GA4追蹤教學
- GTM教學|手動設定GCP SERVER伺服器配置
- GTM教學|臉書像素重複事件怎麼解決
- GTM教學|GTM常用變數中文解說
- GTM教學|伺服器追蹤|自訂網域追蹤
- GTM教學|伺服器追蹤教學4|Http解說
- GTM教學|追蹤來自部落格轉換成效
- GTM教學|伺服器追蹤教學3 | Facebook轉換Capi設定
- GTM教學|伺服器追蹤教學2 | GA4事件設定
- GTM教學|伺服器追蹤教學 | 伺服器配置設定
- GTM教學|Tiktok廣告電子商務埋設大全3|廣告代碼埋設
- GTM教學|Tiktok廣告電商埋設2
- GTM教學|廣告電商埋設1|電商必要參數抓取
- GTM教學|電商埋設5|GA4電商埋設
- GTM教學|電子商務埋設大全4|GA4電子商務完整埋設
- GTM教學|GTM電商埋設3|抓取ItemName
- GTM教學|GTM電商埋設2|抓取ItemID
- GTM教學|電商埋設1|抓取Value
- GTM教學|提升廣告成效|Adblocker阻擋原理
- GTM教學|GTAG部署方式三大整理
- GTM教學|Google Ads 強轉換 | 購買金額
- GTM教學|自訂網址追蹤|不是只有「UTM」才能做網址追蹤
- GTM教學|AutoEvent追蹤使用者點選的圖片
- GTM教學|CSS Selector抓取表格的值
- GTM教學|了解網站熱門頁面|GTM追蹤點擊事件
- GTM教學|埋設事件|確認GA4有無收到事件
- GTM教學|自訂網址追蹤|不是只有「UTM」才能做網址追蹤
- GTM教學|3分鐘檢查GA4事件重複錯誤
- GTM教學|GA4電子商務事件埋設範本
- GTM教學|DOM抓取電商中的轉換價值
- GTM教學|新的GTM容器一定要做這設定
- GTM教學|設定GA4事件大全
- GTM教學|推薦GTM範本|全新DataLayer寫入方式
- GTM教學|網站計時器埋設|抓出使用者進站停留時間
- GTM教學|如何辨別是否網站為SPA站
- GTM教學|名單型網站追蹤|Thankyou Page 填寫表單事件
- GTM教學|網站通話追蹤|臉書私訊、加LINE
- GTM教學|自訂網址追蹤|不是只有「UTM」才能做網址追蹤
BigQuery
- BigQuery教學|BigQuery預測GA4數據
- BigQuery教學|視覺化報表怎麼製作
- BigQuery教學|基礎必備語法|免費BigQuery資料導入
- BigQuery教學|串接BIgQuery | BIgQuery費用