進階學習:透過 Looker Studio 同時顯示 YoY 與 MoM 報表

Looker Studio Sep 28, 2023
快速導覽

前言

繼前一篇文章「如何透過 Looker Studio 製作GA4年增率 (YoY, Year on Year) 報表?」發佈後,有收到一些讀者們的迴響。同時也有讀者問到說,如果同時想在報表中也看到月增率 (MoM, Month on Month) 的話該怎麼做呢?

因此延續這個問題,一樣手把手帶領大家,以 Google Looker Studio 這個工具為例,教大家如何在同一張長條圖上建立年與月的同期相比視覺化報表。


事前準備

本範例會沿用上一篇文章的報表與資料來源繼續再加入 MoM 的數據,因此若您尚未建立,或是不知道該如何製作 YoY 報表的話,可以先參考上一篇文章完成 YoY 的報表。這邊先幫各位統整前一篇文章的資訊 (小提醒:範例資料的數據有更新,因此若想要沿用練習的讀者們,記得先手動更新 202304 之後的數據!)

1. 範例數據的資料來源 (本範例數據儲存在 Google Sheet,有需要可以參考:範例資料)

Year-Month

Pageviews

Sessions

Purchase

Revenue

202201

62,396

51,447

444

$397,905

202202

55,379

45,721

872

$981,849

202203

72,562

59,955

952

$808,027

202204

73,373

69,461

384

$494,754

202205

50,078

39,805

567

$455,724

202206

65,899

50,899

199

$293,573

202207

72,609

68,601

533

$990,643

202208

48,758

16,739

187

$507,412

202209

83,434

69,850

873

$439,586

202210

63,686

51,493

135

$432,846

202211

95,996

90,123

356

$635,452

202212

93,419

89,423

251

$27,683

202301

91,892

88,104

995

$198,070

202302

64,819

64,320

853

$968,189

202303

52,486

40,428

665

$707,751

202304

40,078

29,805

367

$655,724

202305

85,996

80,123

902

$758,027

202306

59,899

50,899

389

$593,573

202307

19,743

17,008

271

$36,943

2. 製作完成後的 YoY 報表如下:


分析情境

在現有的 YoY 圖表中,也想要同時呈現截至目前為止,網站的瀏覽量和前一個月份相比增加或是下滑的百分比?

根據上述的分析情境,我們彙整兩個需求重點:

  1. 主要分析的指標是網站的瀏覽量 (Pageviews)
  2. 在現有的年增率 (YoY) 中,也想要看當月份與上個月份 (MoM) 瀏覽量的成長率

其中,本範例用來計算 MoM 指標的算式為:

(當月份瀏覽量總和 一 上個月份瀏覽量總和) / 前一月份瀏覽量總和 * 100%

在開始操作 Looker Studio 之前,一樣提醒讀者們先觀察一下這組範例數據有一個特徵:

年 (Year) 與月份 (Month) 合併在 Year-Month 這個欄位

而這個部分在後面的 Looker Studio 操作時會影響到我們的設定,所以這邊只需要先記得日期的欄位狀況會影響到報表的操作即可,後面我們再來解釋原因。


預期圖表目標

希望透過一個圖表,藉由長條圖顯示 YoY 與 MoM 的瀏覽量差異變化 (如下圖)


關鍵困難點

由於我們要在同一張圖表中繪製出 YoY 與 MoM 的資訊,這代表著這資料來源必須是同一份資料來源 (因為在 Looker Studio 中,每一張圖表只能選擇一個資料來源)。

因此報表的困難點,在於如何在相同的混合資料 (blends) 來源中建立出 YoY 報表所需要的去年與今年的關聯性之外,還要同時再加上前一個月份的數據與當月份的數據對齊後進行運算,進而計算出差異的百分比。因此筆者認為「建立同時滿足 YoY 與 MoM 的混合資料」,是這個圖表的重點。

上一篇文章提到,製作 YoY 資料集的重點,是必須讓圖表知道說,我們想要將數據以月份為主要維度,將不同年份的資料分別整併在各個月份中。當時利用下圖來幫助大家理解這個概念:

而製作 MoM 資料集的重點,是必須要讓前一個月份的數據帶入到當月份來進行比對運算。我們可藉由下圖來輔助各位理解這是個什麼樣的概念:




左邊是「當月資料集」,右邊則是「上個月資料集」。若我們以 202302 這個月份為例,它對應到的上個月資料集是 202301;以 202303 這個月份為例,它對應到的上個月資料集是 202302。

以此類推,所以若當月月份為 2023 X月份 的時候,則對應到的上個月資料集則會是 2023 X月份 + 1 個月

也就是說,如果當我想要將前一個月份的數據與當月份的數據對齊的作法,就是把當月份的資料集 (以 A 代稱),日期資料「全部日期都加上 1 個月」後,就變成了「上個月資料集」(以 B 代稱)。最後再將 A 與 B 透過日期來建立混合資料 (blends),就可以達成前一個月份的數據與當月份的數據對齊的作法!

最後再納入原本 YoY 資料集的關聯架構,所以 YoY + MoM 的混合資料 (blends) 概念就如下圖:


實作

1. 首先先開啟上一次完成的 YoY 報表,選擇上方工具列的「資源 (Resource) \ 管理已新增的資料來源 (Manage added data sources)」,我們先來回顧上一次製作完成的 YoY 報表中,有哪些資料欄位以及接下來在製作 MoM 報表時還缺少哪些欄位:

1-1. 選擇上方工具列的「資源 (Resource) \ 管理已新增的資料來源 (Manage added data sources)」

1-2. 我們主要要查看的是範例資料的資料欄位狀況,因此以此範例我們要查看的是「Sample Data - Year-Month Report」這個資料來源。點擊右方的編輯 (EDIT) :

1-3. 若讀者也是使用範例資料來練習的話,可以看到目前的資料來源應該會跟下圖一樣,其中 「custom_date」與「custom_month」是在製作 YoY 報表時新增的兩個額外欄位,主要是為了解決 YoY 報表所需要的兩個主要維度,一個是「日期」,另一個是「月份」的問題。


1-4. 所以目前這些欄位,在製作 MoM 報表時還缺少了什麼呢?在「關鍵困難點」時有提到,我們必須要讓前一個月份的數據帶入到當月份來進行比對運算,當時我們是透過下面這張圖來解釋這件事:

而這張圖其實解釋了一件事,就是「當月份」資料,其實也剛好是下一個月份的「上個月」資料。以 202301 的資料為例,它剛好也是 202302 的上個月資料。現有的資料欄位,我們已經有一個欄位表示當月的月份 (custom_month),因此我們還需要創建一個欄位,來記錄這個當月份會是「哪個月份的」上個月資料。

1-5. 接續剛剛 1-3 的操作,我們需要建立一個新的欄位,透過公式來將當月的月份 (custom_month) r加上 1 個月:進來後選擇右上角的「新增欄位 (ADD A FIELD)」

1-6. 這裡是本篇文章的重點之一!在公式 (Formula) 的部分,貼上以下公式(註1, 2, 3*),並給予這個欄位一個識別的名稱,以此範例來說取名為「custom_next_month」。

公式:MONTH(DATETIME_ADD(PARSE_DATE("%Y%m", Year-Month), INTERVAL 1 MONTH), 'BASIC')


若您所使用的資料來源本身就已經是日期格式,則公式請調整為:

公式:MONTH(DATETIME_ADD(日期欄位名稱, INTERVAL 1 MONTH), 'BASIC')


註1:PARSE_DATE() 這個公式主要是將文字轉換為指定的日期格式型態,詳細說明內容可參考官方文件:PARSE_DATE

註2:DATETIME_ADD() 這個公式主要是將日期增加一個指定的時間區段,詳細說明內容可參考官方文件:DATETIME_ADD

註3:MONTH() 這個公式主要是從日期取出月份資訊,詳細說明內容可參考官方文件:MONTH

1-7. 接著確認我們建立好的這個欄位,其類型是否為月份 (Month),若不是則需要調整為月份的格式類型。

2. 資料都準備完成後,接下來我們要處理的,就是將數據以「月份為主要維度」將不同年份的資料分別整併在各個月份中 (YoY 資料關聯架構),同時還要額外將加入前一月份的數據帶入到當月份中的這個關聯性 (MoM 資料關聯架構)。這部分我們會使用到 Looker Studio 的混合資料 (blends) 來完成。

操作方式為:

2-1. 從上方的工具列選擇「資源 (Resource) \ 管理組合 (Manage blends)」,然後選擇上一次建立的混合資料來進行調整,以此範例為「Blended Data YOY New」,點擊右方的編輯 (EDIT) :

2-2. 觀察這個混合資料,由於上一篇文章我們已經建立好 YoY 的關聯架構,因此您的混合資料應該會和下圖一樣總共有三個資料表分別透過月份 (Month) 的欄位建立關聯性。因此我們需要做的,就是在現有的關聯架構下,加入 MoM 所需要的關聯。

2-3. 接下來我們開始製作 MoM 的關聯。點擊右側的「彙整其他表格 (Join another table)」,並選擇範例資料集,以此範例為「Sample Data - Year-Month Report」。

2-4. 選擇維度 (Dimensions) 項目,系統會評估整個混合資料的狀況,預設幫我們加入一個建議的維度來與其他資料表建立關聯。這邊我們需要的維度是範例資料表中被多加 1 個月的月份欄位 (此例為 custom_next_month),就是在步驟 1-6 的時候,有透過公式新增的欄位。

2-5. 加入完成後,下一步我們要做的動作,就是要讓系統知道今年的各月份中,對應到的「上個月份」是誰。因此我們點擊兩張表的中間「設定彙整 (Configure join)」

2-6. 我們要選擇的條件是「左外部彙整 (Left Outer)」,而串接兩張資料表的主要欄位 (Key) 是月份,因此左手邊的地方要選擇今年資料表中的月份欄位 (此例為 custom_month),右手邊的地方要選擇被多加 1 個月的月份欄位 (此例為 custom_next_month)。

2-7. 建立完成後,畫面應該會如下圖

3. 接著我們先來彙整上個月資料表的數據,將需要的識別資訊、指標 (Metrics) 與時間範圍設定好:

3-1. 為了方便我們識別,將上方 Table Name 的地方我們輸入「last month」表示這邊的數據都是屬於 上個月份的數據

3-2. 因為我們要分析的是網站的瀏覽量 (Pageviews),因此我們將 pageviews 的欄位拉到指標 (Metrics) 這裡面

3-3. 一樣為了方便識別,我們更改一下這個指標名稱,滑到前面的 SUM 字眼,會發現圖示變成一枝筆,然後點擊它,在上面的地方輸入「last month pageviews」,以便我們後續作識別

3-4. 接下來就是要定義這個資料是上個月的數據,它的方法是下方的日期範圍 (Data range) 這個欄位,需要放入一個可以識別「年份」的欄位,這時候我們可以選擇在上一篇 YoY 報表文章建立的「custom_date 」拖拉到 日期範圍 (Data range) 裡。

3-5. 當放進來之後,會發現下面有「自動 (Auto)」與「自訂 (Custom)」兩種模式可以選擇。自動 (Auto) 的意思是不指定日期,會依據報表上面的日期控制項來調整資料選取區間,而自訂 (Custom) 則可以讓我們自行指定這個資料表的資料範圍。因為我們目前將這張資料表定義為上個月的資料,因此我們就先選擇「自訂 (Custom)」。然後下一個動作,我們必須要定義一下時間區間。點擊下面的下拉三角形符號,接著再點擊右上角的「自動日期範圍 (Auto date range)」,將區間改成「進階 (Advanced) 」。

3-6. 這裡是本篇文章的重點之二!因為我們的 MoM 報表,要顯示的是在今年的每個月份數據,與上個月份的數據變化百分比。因此我們要涵蓋的數據範圍應該是從當月份開始,往前推算 11 個月的數據範圍資料都是我需要涵蓋的範圍。這裡有兩個數學上的認知重點:

(1) 「從當月份開始,往前推算 11 個月」,所以這裡面總共會有 12 個月,也就是一整年的範圍資料

(2) 為何只能涵蓋 12 月的資料,難道超過 12 個月或是小於 12 個月都不行嗎?沒錯,一定只能涵蓋 12 個月份,最終圖表呈現的 MoM 曲線才會是正確的。

如果超過 12 個月會發生的問題是,因為我們是以每個月為一個單位,所以只要是相同的月份,數據都會被加總起來。假設我現在涵蓋的資料是 202112~202212 這 13 個月的資料的話,可以發現 12 月總共有 2 個,這時候這 2 個 12 月的 Pageviews 數據就都會被加總起來,當我們在 MoM 報表中要顯示2023 年 1 月的前一個月 (即 12 月) 數據時,就會同時包含 202112 以及 202212 的數據,這樣數據就會被高估。

如果小於 12 個月會發生的問題是,假設現在的時間點是 2023 年 12 月,如果我只涵蓋 11 個月的範圍的話,那麼圖表中的 2023 年 1 和 2 月的 MoM 數據就會是 0 (註4*)。

註4:可能會有讀者無法理解涵蓋 11 個月的範圍到底是有哪些月份。以相同計算邏輯來解釋的話就是:假設現在的時間點是 2023 年 12 月,涵蓋 11 個月的範圍計算的方式會是「從當月份開始,往前推算 10 個月」,所以當月(1) + 往前推 10 個月 (10) = 11 個月,因此就會是包含 202302~202312。所以在報表中 202301 與 202302 的 MoM 數據都會是 0,因為它們兩個的前一個月分別是 202212 與 202301,都不在我們涵蓋的範圍內。

3-7. 在瞭解上面的概念後,我們就實際來進行設定。接續剛剛步驟 3-5 ,當我們選擇 Advanced 後,就會出現下方的畫面。我們需要將開始日期 (Start Date) 這邊調整為「今天 (Today), 減少 (Minus), 11, 月 (Months)」,而結束日期 (End Date) 這邊則調整為「今天 (Today), 減少 (Minus), 0, 天 (Days)」,這邊的意思就等同於前面所說的「從當月份開始,往前推算 11 個月」。完成後點擊右下角的「套用 (APPLY)」。

3-8. 到這邊為止,我們就完成了同時包含 YoY 以及 MoM 的資料關聯集,因此就可以點擊右下角儲存 (SAVE)



4. 資料都準備完成後,我們就可以將 MoM 加入到原本的圖表中了。請先點擊畫面上前一次建立的 YoY 圖表:

4-1. 在指標 (Metrics) 的部分新增一個指標,點一下「+」號後,選擇下面的「建立欄位 (CREATE FIELD)」

4-2. 回顧一下我們在一開始的「分析情境」中提到的,本範例所定義的 MoM 計算公式為:

(當月份瀏覽量總和 一 上個月份瀏覽量總和) / 前一月份瀏覽量總和 * 100%

因此我們這邊需要加入的公式就必須依據這個公式來設定,請在公式 (Formula) 的部分,貼上以下公式,並給予這個欄位一個識別的名稱,以此範例來說取名為「MoM%」,並將類型 (Type) 調整為「數值 (Number) > 百分比 (Percent)」。

公式:IFNULL((IFNULL(SUM(this year pageviews), 0)-IFNULL(SUM(next month pageviews),0)) / IFNULL(SUM(next month pageviews),0),0)


5. 設定完成後還需要調整一些圖表的樣式,才能讓 MoM% 的指標可以有效的被呈現。我們可以從右手邊的屬性資料中選擇「樣式 (Style)」頁籤

在數性資料中可以找到數列 (Series) #3 的地方,將它調整成折線圖 (Line) ,並勾選下方的「顯示點 (Show Points)」、「顯示資料標籤 (Show data labels)」、「密集數字 (Compact numbers)」,軸 (Axis) 調整為「軸靠右 (Right)」。詳細設定截圖如下:

再往下滑一點,找到右側 Y 軸 (Right Y-Axis) 的區段,勾選「顯示軸標題 (Show axis title)」,同時調整一下軸最小值 (Axis Min) 的數值,將它調整為 -1,詳細設定截圖如下:



6. 調整完成如下圖 (註5*)

終於,我們成功在同一張圖表中製作出 YoY 與 MoM 的瀏覽量差異變化!

註5:小提醒!若讀者是沿用上一篇文章製作完成的檔案,且沒有更新 202304 之後的數據的話,從 4 月份開始的 MoM 曲線圖可能會與上圖不太一樣喔!

重點整理與結語

一樣快速幫大家統整一下製作此報表需要具備的幾項要點

  1. 製作此類型的報表,會需要使用到「日期」、「月份」兩個欄位。因此若來源資料並沒有包含此兩個欄位或是有缺少的話,需從原始資料進行補充,或是可以透過 Looker Studio 從匯入資料中透過公式來產生對應的欄位
  2. 需要額外建立一個「上個月」的欄位,用途是為了讓我們可以將前一個月份的數據帶入到當月份來進行比對運算
  3. 建立混合資料時,上個月資料集所涵蓋的資料範圍,一定只能剛剛好涵蓋到 12 個月份,多或少都會造成最終圖表顯示不正確。

一樣在報表上面呈現的樣式,礙於篇幅的關係這邊就沒有再跟大家細部說明。有興趣的朋友可以透過屬性欄位的「樣式 (Style)」頁籤內去進行一些測試與調整喔!


Tags