GA4上對單頁應用(SPA)做追蹤——dataLayer.push方法

Google Analytics Haran 5天前 43次瀏覽 0條留言

更新時間:2025年6月26號

什麼是單頁應用程序

單頁應用(英語:single-page application,縮寫SPA)是一種網路應用程式或網站的模型,它通過動態重寫當前頁面來與使用者互動,而非傳統的從伺服器重新載入整個新頁面。

使用者在訪問頁面的時候,URL雖然會有變化,但頁面是沒有重新加載的,這種方法避免了頁面之間切換打斷使用者體驗,使應用程式更像一個桌面應用程式。

在傳統網站中,每次頁面載入都會觸發GA4的page_view事件,而在SPA中,由於頁面不刷新,GA4需要額外的配置來正確記錄「虛擬頁面瀏覽」和其他使用者互動。

 

GA4追蹤單頁應用的挑戰

SPA中,GA4面臨的常見追蹤問題包括:

  • 頁面瀏覽未被記錄:由於頁面不重新加載,GA4的預設page_view事件可能只在首次加載時觸發,後續的頁面內容變更不會自動記錄。
  • URL和頁面標題不準確SPA可能透過pushState更新URL,但GA4預設使用document.location.pathname,可能無法捕獲完整的URL或正確的頁面標題。
  • 工作階段與引薦來源問題(Rogue referrer):如果不正確配置,SPA可能導致工作階段資料斷裂或引薦來源資料錯誤,影響使用者旅程分析。
  • 事件重複或遺漏:自動追蹤(如加強型評估)可能導致頁面瀏覽事件重複計數,或在某些情況下未能觸發。

 

如何判斷你的網站是不是單頁應用

你可以在GTM 的預覽模式裡從A頁面點擊訪問B頁面,在這個過程裡看Tag Assistant有沒有重新加載頁面,如果重新加載,那麼就不是單頁應用,如果沒有重新加載,出現很多的History,就是單頁應用

預覽之前,先需要開起這個觸發條件,在GTM中點擊「觸發條件」——「新增」——「請選擇觸發條件類型以開始設定…」——「記錄變更」,命名為History Change,然後做如下設定:

然後點擊「預覽」,隨意點擊一個頁面,然後看Tag Assistant:

點擊後,Tag Assistant出現「記錄」,那就是單頁應用

需要注意,現在有些網站,部分頁面是單頁應用,部分是普通網頁,所以你需要多點擊幾個頁面看看。

用dataLayer.push對SPA做跟踪

對於複雜的SPA或不依賴History API的應用,開發者協助透過dataLayer.push方法推送自訂事件是最可靠的追蹤方式。

開發者可以在SPA的路由變更或內容更新時,主動推送page_view事件到資料層,GTM再根據這些事件觸發GA4標籤。

實現步驟

Step 1:dataLayer.push發送資料

頁面發送的資料結構如下,每個頁面都需要這樣發送,這一步是需要開發人員去實作:

<script>
 window.dataLayer = window.dataLayer || [];
 window.dataLayer.push({
 'event': 'Pageview',
 'pageUrl': 'https://www.example.com/something/contact-us',
 'pagePath': '/something/contact-us',
 'pageTitle': 'Contact us' 
 });
</script>

Step 2:設定資料層變數

GTM中點擊「變數」—「新增」—「選擇一個變數條件類型以開始設定」——「資料層變數」,命名為dlv—pagePath,做如下設定:

用同樣的方法設定dlv—pageTitle和dlv-pageUrl。

 

Step 3:設定觸發條件

GTM中點擊「觸發條件」—「新增」—「選擇一個觸發條件類型以開始設定」——「自訂事件」,命名為Custom Event—Pageview,做如下設定:

Step 4:設定代碼

GTM中點選「代碼」—「新增」—「選擇一個代碼類型以開始設定」——「Google Anlaytics」——「Google代碼」,命名為GA4 Basic Tracking,做如下設定:

 

 

 

 

優點

  • 靈活性更高,資料追蹤準確。

 

缺點

  • 需要大量開發工作

 

適用場景

所有SPA均適用,推薦使用此方法去追蹤SPA。


如果您在操作上仍有任何疑問,歡迎留言交流,或加入:Google Analytics 4交流社團發問
Like (0)
發佈我的留言
取消留言
表情 贴图 加粗 删除线 居中 斜体

Hi,*为發佈留言必須填寫。

  • 顯示名稱*
  • 電子郵件地址*
  • 個人網站網址