[GA4][GTM] SPA 單頁式網站 頁面瀏覽追蹤大全
前言
為了優化使用者體驗、減少切換頁面時的載入時間,越來越多網站架構與設計開始導入【單頁式網頁應用程式 SPA(Single-Page Application)】。
在進入文章之前,先來釐清一個常被搞混的觀念:「單頁式網站」與「一頁式網站(One-Page Website)」。
一頁式網站通常「真的只有一頁」;而 SPA 單頁式網站,雖然使用者在瀏覽時會看到網址變動、內容切換,但實際上瀏覽器根本「沒有重新整理或換頁」。這種看似換頁、實則沒換的方式,如果直接沿用常規的埋設方式,GA4 數據會出問題。
本篇文章就來聊聊,面對 SPA 架構的網站,該如何正確進行 GA4 追蹤?
1. 如何分辨【SPA 單頁式網站】?

2. 如何在 SPA 單頁式網站 追蹤頁面瀏覽 (GA4 page_view 事件) ?
2-1. 在換頁的當下,推送 dataLayer page_view 事件
由於在 SPA 單頁式網站 在換頁過程中,不會進行 Loading,也就是說 SPA 單頁式網站 無法透過常見的方式進行設定 。
因此,以 SPA 單頁式網站來說,有兩種方式可以追蹤並推送 GA4 page_view 事件,如下表格所示
如果以維護營運 SPA 單頁式網站的立場,加上 GA4 想要收集 page_title 的資訊,比較建議使用 dataLayer 方式推送 page_view 事件和其必要參數,有點像是手動推送 page_view 事件。
而這個步驟需要網站前端工程師的協助,設定dataLayer。
2-2. GTM 相關設定
假設工程師已經完成 2-1 步驟,並埋設完 GTM。
接下來就可以進行 2-2 GTM 設定 和 2-3 GA4資源設定
2-2-1. 新增 page_title、page_location、page_referrer 等變數
在 dataLayer page_view 事件內事件參數,需要按照以下步驟設定【變數】。
【變數】→【新增】→ 選擇【資料層變數】 → 填寫方式如下

2-2-2. 新增 page_view 事件觸發條件
【觸發條件】→【新增】→ 選擇【自訂事件】 → 填寫方式如下

2-2-3. Google 代碼設定
【代碼】→【新增】→ 選擇【Google 代碼】 → 填入 GA4 代碼 ID → 【配置參數】設定 send_page_view 的值為 false → 【配置參數】設定 page_title、page_location、page_referrer 參數,其值為 2-2-1 所設定的變數 → 【觸發條件】選擇 2-2-2 所設定的
否則 page_view 事件會重複推送,造成頁面瀏覽量暴增!!

2-2-4. 增加 GA4 page_view 事件代碼
【代碼】→【新增】→ 選擇【GA4 事件代碼】 → 填入 GA4 代碼 ID →【事件參數】設定 page_title、page_location、page_referrer 等參數,其值為 2-2-1 所設定的變數 → 【觸發條件】選擇 2-2-2 所設定的

2-3. GA4 資源設定
【管理】→【資料串流】→ 選擇【網站資料串流】 → 【事件】 →【加強型評估】設定 → 【網頁瀏覽】的顯示進階設定 → 不勾選【頁面根據瀏覽器記錄事件而變更】 → 儲存

如果是用 dataLayer 推送 page_view 事件,需要"取消"勾選【頁面根據瀏覽器記錄事件而變更】,否則 GA4 page_view 事件也是會重複送出。

完成以上設定,就可以針對 SPA 單頁式網站的頁面瀏覽進行追蹤囉 !!!
而在頁面上的互動事件(譬如:點擊),也可以使用 dataLayer 的方式推送事件,
後續記得要再到 GTM 進行設定就可以了。