如何用 GTM 設定「文章目錄」點擊追蹤事件?

無論是哪種類型的網站,只要提供文章供使用者閱讀,通常都會在文章的開頭放上一個內容目錄,這樣做的目的是為了讓使用者能夠迅速定位到他們感興趣的段落,當使用者點擊這些目錄連結時,螢幕畫面會自動滾動至相應的段落位置,從而提供更加方便快捷的閱讀體驗。

假設老闆想了解使用者進入網站後點擊了哪些目錄主題,以此來判斷他們對哪些內容更感興趣,我們可以怎麼做?

首先,仔細觀察點擊後網頁的行為,會發現大部分的目錄在被點擊後,網頁本身都不會重新載入,但會在網址尾端會多了一個 # 片段

例如:www.abc.com/#fragment

如果你曾經閱讀過我們的文章:「如何用 GTM 追蹤一頁式網站?」,那麼這裡的內容可能會讓你覺得似曾相識,因為這種目錄點擊的網頁運作原理,其實就跟一頁是網站是一樣的,不同之處在於,在那篇文章中,我們專注於追蹤使用者的網頁瀏覽行為(page view),而在這裡,我們的重點則是追蹤使用者對目錄連結的點擊行為。

(該文章中還解釋了如何判斷一個網頁是否為一頁式網站,以及如何追蹤頁面瀏覽,對此有興趣的朋友可以先閱讀那篇文章,然後再回來繼續本文。)



用 CSS 選取器設定觸發條件

在這次的設定中,我們將利用「CSS 選取器」功能來協助我們。首先,我們需要識別並定位目錄中的 <a></a> 元素,以確認其在網頁結構中的準確位置。

目錄連結上「點擊右鍵」 > 選擇「檢查」> 找到該連結所在位置

進一步檢視後,我們發現所有的目錄連結都被包含在一個具有 class 屬性值為 “wp-block-yoast-seo-table-of-contents yoast-table-of-contents” 的 <div> 元素內。換句話說,所有的 <a></a> 標籤都是這個 <div> 元素的子元素。

(如果對於這部分還不是很熟悉的朋友,可以參考文章:如何使用 GTM 的「CSS 選取器」?會有更深入的解釋與範例可以參考。)

確認該 <div> 的 Class 是否沒有重複

在檢查工具中,雙擊該 class 名稱並複製 > 於下方檢查工具使用「搜尋」功能(cmd+f 或是 ctrl+f)> 貼上該 class 名稱 > 確認結果是否為「 1 」,沒有重複

如果沒有其它 <div> 元素使用相同 class 名稱,代表我們可以透過「CSS 選取器」來選取所有位於 <div class="wp-block-yoast-seo-table-of-contents yoast-table-of-contents"> 底下的 <a></a> 元素。

在這個例子中,雖然 <div> 的 class 屬性有兩個名稱,但在後續的設定中,我們將只使用其中的一個,即 “yoast-table-of-contents”,以簡化「CSS 選取器」的表達式,避免讓它看起來過於冗長。

設定觸發條件

GTM 左側面板選擇「觸發條件」 > 右上角「新增」 > 觸發條件類型選擇「僅連結

於設定介面中,選擇「部分連結點擊」 > 左側選擇變數「Click Element」> 中間選擇「符合 CSS 選取器」 > 右邊欄位輸入 div.yoast-table-of-contents a

我們於右邊欄位所輸入的這段,用中文解釋的話,意指只要使用者點擊了所有在 <div class="yoast-table-of-contents"> 底下的 <a></a> 元素,都會符合觸發條件(關於 CSS 選取器的語法解釋,可以參考這邊


設定「自動事件變數」取得完整連結

在這類文章目錄中,<a></a> 元素的 href 屬性通常不會是完整的網址,而是一個以 # 開頭的片段。如果你仔細觀察之前提供的檢查工具截圖,就會發現這些 href 屬性與我們平常看到的有所不同。舉例來說,這些 href 屬性可能類似 “#section1” 或 “#section2” 這樣的格式,如下圖所示。

這類格式的 href 屬性是用來連結到頁面上某特定部分的錨點,而不是連結到整個頁面的不同網址。

當我們設定了點擊追蹤事件之後,自然會想知道使用者點擊的文字以及他們點擊的連結,為此,我們會把這些資訊作為參數,一起傳送到 GA4。使用 GTM 內建變數「Click Text」來抓取點擊的文字通常沒有問題,但如果我們用內建變數「Click URL」來抓取點擊的連結,我們只能獲得像 #what-is-dom 這樣的片段,而不是完整的連結

此時就是「自動變數事件」登場的時候了,我們必須用它來抓取使用者在點擊產生時的元素屬性值,也就是 href 的值,最後在代碼的事件參數「值」欄位中將 {{page_url}}{{自動事件變數}} 合併,就會得到一條完整帶有 # 片段的網址,例如:https://www.abc.com/#fragment,而這種方法確保我們能夠追蹤到使用者實際點擊的完整 URL。

(接下來要做的設定,其實跟內建變數 Click URL 是一樣的,但我們習慣針對這種特殊情況分開管理,使用內建變數 Click URL 時就是顯示完整網址,針對這種特殊的 href 值,則另外做一個變數給它。

但如果只抓取 # 這類型的網址就可以幫助你判斷是哪條連結,也可以不做「自動事件變數」,直接使用 Click URL ,端看你的 GTM 管理方式。)

GTM 介面左側面板選擇「變數」> 下方使用者自定是變數區塊選擇「新增」> 變數類型選擇「自動事件變數

變數類型選擇「元素屬性」 > 屬性名稱填入 href > 命名後儲存

完成變數的設定之後,記得到 GTM 預覽模式確認該變數是否有在使用者點擊目錄連結時被正確抓取,如果想了解更多關於自動事件變數的介紹以及設定細節,可以參考文章:GTM 變數介紹:自動事件變數


設定點擊追蹤代碼,並置入參數

GTM 介面左側面板選擇「代碼」 > 右上角「新增」 > 「Google Analytic(分析)」> 「Google Analytic(分析):GA4 事件

輸入「事件名稱」> 事件參數與值分別輸入 link_url 搭配 {{Page URL}}{{AEV – Table’s a href}} 以及 link_text 搭配 {{Click Text}} > 命名後儲存

link_url 以及 link_text 為 GA4 預設的參數,對應的是 GA4 中的維度「連結網址」以及「連結 URL 」,我們選擇直接沿用,就不用再到 GA4 中自訂維度了。

為了讓 link_url 的「值」獲得帶有 # 片段的完整網址,我們需要結合兩個變數:一個是內建變數「Page URL」,另一個則是我們剛剛建立的「自動事件變數。這樣一來,我們就能夠獲得完整且包含 # 片段的網址了。

你可能會疑惑,為什麼不直接使用「Page URL」呢?原因在於我們追蹤的是點擊連結,而不是當前頁面的網址,如果僅使用「Page URL」,你只會獲得當前頁面的網址,如: https://www.abc.com,而無法獲得帶有 # 片段的完整網址,因此,結合使用這兩個變數對於準確追蹤點擊事件至關重要。

設定完畢之後,與剛剛設定的觸發條件綁定,就可以照慣例進入 GTM 預覽模式測試了。


預覽模式與 Debugview 測試

當我們點擊文章目錄連結時,應該要在 GTM 預覽模式的左側介面看到 Link Click 資料層事件,點擊後會在右側面板看到 GA4 事件代碼被觸發,如下圖:

同樣也必須來到 GA4 Debug View 檢查資料是否正確送入。

上述的兩個地方確認都沒有問題之後,就可以發布 GTM 代碼,並且等待 24-48 小時,我們就可以建立一張屬於目錄點擊行為的專屬探索報表,透過每篇文章目錄點擊事件的成效表現,了解到使用者對什麼議題比較有興趣了。


建立 GA4 探索報表

GA4 左側面板選擇「探索」 > 「任意形式」 > 維度選擇:「事件名稱」、「連結網址」以及「連結文字」 ,放入「」中 > 指標選擇「事件計數」,放入「」中

對於 GA4 操作介面尚不熟悉的朋友,可以參考這篇文章,有對於 GA4 前台的簡單介紹,幫助你認識一些基礎報表:GA4 初學者指南:認識 GA4 前台介面以及基礎報表!


總結一下

在這篇文章中,我們結合了「CSS 選取器」以及「自動事件變數」搭配「GA4 事件」代碼完成了文章目錄連結點擊的追蹤,協助我們更近一步了解使用者有興趣的項目,從而為行銷素材的規劃提供了寶貴的參考。

在獲取完整連結的過程中,儘管內建的 Click URL 變數也能達到相同的效果,但為了便於管理並減少後續接手人員的混淆,我們選擇創建一個專門的「自動事件變數」來捕捉點擊的連結。

希望這篇文章能對你的網站追蹤工作有所幫助。如果你有更佳的追蹤方法或建議,也歡迎留言與我們分享。


延伸閱讀

如果你很喜歡這篇文章並且覺得內容有幫助,又剛有些多餘時間,歡迎看看其它文章,繼續探索(這坑?這地獄?這片樂土?)

同時,如果對於內容有疑問或是建議,也歡迎你留言告訴我們:)