跳到主要內容

用 Google Tag Manager 讓 Google Analytics 記錄含有 hash 錨點的網址

Google Tag Manager 記錄錨點網址至 Google Analytics

Google Analytics(GA) 預設是不記錄 hash 錨點網址的,因為錨點預設動作只是在單個頁面中快速跳到相對應位置而已,實際上頁面的內容沒有變動。所以需要記錄錨點網址時,應該是在有 AJAX 動作的錨點網址才會有意義,即透過 Javascript 抓取網址 hash 段,來觸發變更網頁內容的方式。如果還是要記錄一般錨點的點擊數據,那你應該要使用事件 event 的方式來收集。

為了補上缺少的 hash 網址段,要使用 JavaScript 的「window.location.hash」取得錨點段,同時前方要再補足網址路徑段「window.location.pathname」跟參數段「window.location.search」再使用 GA 函式送出

▽ 舊版 analytics.js
ga('send', 'pageview', window.location.pathname + window.location.search + window.location.hash);
▽ 新版 gtag.js
gtag('config', '你的追蹤ID', { 'page_path': window.location.pathname + window.location.search + window.location.hash });

如果是使用 Google Tag Manager(GTM) 送出含有 hash 段網址給 GA 時,則要先到選單的《變數》開啟內建變數的「History Source」來偵測 popstate 歷史記錄狀態來觸發

GTM 設定內建變數 History Source

接著再到選單的《觸發條件》新增一個「記錄變更」的觸發條件,讓 「History Source」等於「popstate」即可,這裡沒用「hashchange」是因為 gtm.historyChange 不會用 hashchange 進行事件觸發,改用 popstate 才會正常。

GTM 設定 popstate 觸發條件

保存後將這個觸發條件加入到 GA 代碼中,當使用者是進入含有 hash 網址開啟網頁時會使用「popstate 事件」觸發。接下來要使用 JavaScript 抓取含有 hash 段的網址傳送至 GA 代碼中,先到選單的《變數》新增一個「自訂 JavaScript」的變數,並輸入以下內容後保存。

function() {
  return window.location.pathname + window.location.search + window.location.hash;
}

回到 GA 代碼中加入一個「page」欄位名稱,並把剛剛新增的 JavaScript 變數代入值欄位中就完成啦!最後不要忘記使用 GTM 的預覽功能,檢查有沒有正常觸發、送出的變數有沒有正確再來發佈。

GTM 設定 GA 的 page 欄位傳送新網址

留言

這個網誌中的熱門文章

LINE Bank 夢想帳戶利息試算工具

Line Bank 推出的 夢想帳戶 是屬於零存整付的階梯式利率,基本的定期存款牌告利率為 0.725% ~ 1.245% 之間,再按照你的存款目標每月存入,如果當前存款金額達到目標總金額的 26% ~ 50% 會加碼 0.1%,51% ~ 75% 加碼 0.2%,76% ~ 100% 加碼 0.2%,合併計算後期的利率最高達為 2.12%,優惠期限目前公告到 2024/12/31 止。但因為是階梯式利率,實際上拿回的利息不會那麼多。雖然官網有提供試算的範例,但每個人的存款目標與期數都不一樣,因此我製作了一個線上試算利息與實際利率的工具,方便大家試算...

分享 Google 日曆的中華民國 113 ~ 114 年 (2024 ~ 2025 休假行事曆也包含勞動節)

以下是 Google 日曆按照行政院人事行政總處公告的中華民國 114 年 (2025) 政府行政機關辦公日曆表製成的,並且再加入 5/1 勞動節。 請使用此 鏈接開啟 Google 日曆 點擊右下角的《+Google Calendar》匯入,另有 iCAL 格式 提供其他應用程式匯入。

Adobe 的影音系列軟體改中文語系

Adobe 影音系列的軟體,如 Premier Pro、After Effects... 都沒有繁體中文語系,但還是有簡體中文語系可以使用的,需透過修改控制台 (Console) 設定,或是修改 application.xml 檔案來達成...