認識 GTM 網頁觸發條件:同意聲明初始化、初始化以及網頁瀏覽

當你剛開始使用 GTM 時,除了設定點擊連結的追蹤事件外,安裝 GA4 和各大廣告平台的追蹤碼,比如 Meta Pixel 和 Google Ads,也是你首先需要處理的事項之一。但這裡往往會出現一個常見的疑問:我應該在什麼時候在整個網站上觸發這些追蹤代碼呢

當你在 GTM 設定觸發條件時,會發現介面上有多達五種預設的網頁瀏覽觸發條件,包括「網頁瀏覽」、「同意聲明初始化」、「初始化」、「DOM 就緒」和「視窗已載入」。

這些選項看似都可行,但到底應該選擇哪一個,才能最符合你的追蹤設定需求?

在這篇文章裡,我們將一起深入了解這些觸發條件各自代表的意義,以及應該在何種情況下使用它們。

不過,如果你只想快速了解在設定 GA4 代碼時應選擇哪個觸發條件,你可以直接參考文章後段這一部分




在開始之前,有一點我們需要先理解,當我們打開一個網頁時,雖然使用者通常只看到圖片、文字或影片逐漸出現在屏幕上,但實際上,網頁的背後其實正在進行許多的工作,我們是怎麼知道這些工作的呢?

答案就在 GTM 的預覽模式中。

當我們打開 GTM 預覽模式時,可以看到 5 個基本事件在運行,之後才開始加載其他的 GTM 代碼或事件,這 5 個基本事件,從最一開始到最後分別是:同意聲明初始化初始化GTM 容器載入DOM 就緒以及視窗已載入

(進一步補充,這些事件的啟動是通過 GTM 將事件推送到資料層(Data Layer)來實現的,如下方 3 張圖,對於剛接觸的初學者來說,這部分可能有些難以理解,但不用擔心,這不會影響你對觸發條件類型的基本認識。)

這裡只是為了介紹一下背後的運作原理。如果你對資料層(Data Layer)感興趣,想要深入了解它在 GTM 中扮演的角色,歡迎參考相關文章:Data Layer 資料層在 GTM 中的作用是什麼?

當我們創建 GTM 容器的時候,會發現容器本身已經預設了三個基本的觸發條件,分別是:「網頁瀏覽(All Pages)」、「同意聲明初始化(Consent Initialization – All Pages)」以及「初始化(Initialization – All Pages)」。

GTM 代碼介面 > 「新增」代碼 > 選擇觸發條件 > 就會看到預設的觸發條件(下圖)

這三個觸發條件在 GTM 的觸發條件列表中是看不到的,你無法對它們刪除或修改。而且他們是採全頁觸發模式,意味著你無法只在特定頁面上觸發這些條件,但其實跟列表中的「同意聲明初始化」、「初始化」以及「網頁瀏覽」是一樣的意思,只是被預設為全頁觸發,如果你要在特定頁面觸發的話,則須自行新增相關觸發條件來設定。(關於如何設定特定頁面的觸發,你可以查看這個部分)。

至於哪些代碼需要在用戶訪問全站所有頁面時被觸發呢?比如前面提到的 GA4、Meta Pixel 或 Google Ads 的轉換追蹤碼,這些通常都需要綁定在全頁類型(All Pages)的觸發條件上。

以 GA4 來說,Google 官方就建議其觸發條件選擇「初始化 – 所有網頁觸發條件(Initialization – All Pages)

如果你對上文提到的幾個專有名詞感興趣,想要深入了解更多,可以參考以下這些文章:

認識 GTM 三大基本元素 – 代碼、觸發條件以及變數
如何用 GTM 安裝 GA4 評估 ID 以及 Meta(Facebook) Pixel?
如何用 GTM 安裝 Google Ad 廣告轉換追蹤碼?


「網頁瀏覽」觸發條件類型介紹

那如果我們只想在特定頁面上觸發代碼呢

這時就需要透過新增觸發條件,選擇合適的觸發條件類型來實現。在 GTM 中,跟網頁瀏覽相關的觸發條件類型包括:「DOM就緒」、「初始化」、「同意聲明初始化」、「網頁瀏覽」以及「視窗已載入」,這五個都是跟網頁瀏覽相關的觸發條件類型,分別是代表什麼意思以及應該在什麼時候使用?我們繼續看下去。

這個是在網頁載入時最優先啟動的。由於網路隱私保護以及個資管理法規的要求,當網站有收集使用者資訊的行為時(例如我們透過 GTM 裝設的追蹤事件或是 GA4 代碼),必須要先獲得使用者的同意,才可以進行這些追蹤。(不同國家和地區有不同的法律規範)

如果你的追蹤代碼需要在獲得使用者同意後才能啟動,那麼就必須在網頁載入時的最初階段先行啟動同意聲明工具,讓使用者進行選擇,此時你就應該使用這個觸發條件。

舉例來說,如果你的網站透過 GTM 安裝了「同意聲明彈出窗口」,你需要在使用者首次載入網頁時就啟動這個彈出窗口,讓他們選擇是否同意網站進行追蹤和分析行為資料。

只有在使用者同意之後,其他的代碼才能在必要時被啟動,這就是「同意聲明初始化」觸發條件的作用。

延伸閱讀》如何用 GTM 設定「同意聲明模式」?


初始化(Initialization)

這個事件緊隨「同意聲明初始化」之後觸發,但發生在網頁完全載入之前。透過這個觸發條件啟動的代碼會在網頁加載之前先行啟動,等待著「捕捉」我們需要追蹤的資訊或啟動其他事件。因此,如果你希望某些代碼能夠盡快啟動,選擇「初始化」就很適合。

比如,GA4 追蹤代碼通常建議在整個頁面「初始化」階段啟動。其他如廣告追蹤碼等也常使用此觸發條件。以下的圖例顯示了我們在初始化階段啟動 GA4 和廣告追蹤相關的代碼。


網頁瀏覽(Page View)

這個觸發條件很容易理解,正如其名,它是在網頁開始載入後才啟動代碼的觸發條件,它的啟動順序位於「初始化」之後,在 GTM 的預覽模式中,你會看到使用「網頁瀏覽(Page View Trigger)」觸發條件的代碼是在「容器載入(Container Loaded)」階段啟動的。

這個觸發條件主要用於追蹤用戶在網站上的瀏覽活動,例如頁面加載、重新載入或者移動到另一個頁面,像是我們要在網站某一個感謝頁面設置一個轉換追蹤事件時,就很常會用到「網頁瀏覽」觸發條件。

例如:
當使用者提交表單之後,網頁跳轉到感謝使用者提交表單的頁面,頁面上可能會顯示「感謝您的填寫,將會有專人盡快與您聯繫」之類的訊息。

此時的網址通常會是 www.abc.com/thanks-your-submission ,同時也是該網站獨一無二的網址,就會使用這個網址來設定觸發條件並啟動轉換事件代碼(如下圖)。


DOM 就緒(DOM Ready)

當你的代碼需要從網站上抓取特定文字或數字作為「值」時,比如頁面上某個表格的數字或某個欄位的文字,使用「DOM 就緒」觸發條件是非常合適的。

這是為了確保在網頁所有 DOM 準備完成之前,代碼不會提早啟動導致無法抓取到所需的值
(你設定了一個「DOM 元素」變數來抓取網頁上某個位置的資料,例如訂單編號,但如果網頁上的 DOM 還沒渲染完成,這個變數就會抓不到東西,因此需要等「DOM 就緒」,想了解更多關於這部分的解釋,可以參考文章:GTM 變數介紹:DOM 元素(DOM Element)

這個觸發條件可以確保指定的 DOM 元素已經在網頁上完全顯示,我們所需的「值」可以被正確地抓取,然後代碼才會啟動。


視窗已載入(Window Loaded)

也相當好理解,就是等到網頁上所有東西都載入完成之後才觸發,包含本地端 JS、CSS、圖片、文字以及第三方的外掛等,如同部隊出發行軍ㄧ樣,整裝完畢確保自己準備完成了然後說一聲:「好!」,相對應的代碼才會啟動。

當需要追蹤第三方軟體時,我們會使用觸發條件「視窗已載入」,例如當網站有裝設外掛的聊天機器人時,為了有正確的追蹤數據,就必須要使用這個觸發條件,確保整個網頁都已完全載入網頁之後(包含第三方軟體),才啟動追蹤代碼。

除此之外,也可以用來提升特定追蹤事件數據的準確性,有些人會把原本的 GA4 page_view 事件關閉,另外做一個 page view 事件與這個觸發條件綁定,確保使用者是「真的」有看完整個頁面的內容。

但這麼做也有缺點,當你的網站載入速度太慢時,使用者沒耐心等待就離開,此時因為視窗沒有載入完全,綁定這個觸發條件的代碼就不會觸發。



網址變數類型介紹

在掌握了不同類型的觸發條件以及它們的啟動順序之後,下一步我們來探討「位置」這一要素,具體來說,就是決定代碼應該在網站的哪些網頁上被觸發。

以「網頁瀏覽」觸發條件為例,我們可以選擇兩種不同的「位置」類別來設定:一種是「所有的網頁瀏覽」,另一種則是「部分的網頁瀏覽」。

所有的網頁瀏覽:顧名思義就是全站網頁都會觸發代碼。
部分的網頁瀏覽:只有位在特定的頁面時才會觸發代碼。

當我們要根據不同的網址類型設定觸發條件時,GTM 提供了四種網址相關的內建變數(URL Variable)供我們選擇使用。這四種變數分別是:「頁面路徑(Page Path)」、「頁面主機名(Page Hostname)」、「頁面路徑(Page Path)」以及「來源網址(Referrer)」

對於剛開始使用 GTM 的人來說,這些選項可能會讓人混淆,因為它們看起來相似但實際上各有不同。

那麼,我們應該如何選擇合適的網址變數來設定觸發條件呢?

如果你的下拉選單跟上圖不同,請透過「選擇內建變數」新增,將這四個變數打勾即可。

讓我們首先拆解這些網址變數,以便明確了解它們代表網頁網址的哪個部分,這樣在設定條件時就能更清楚地選擇使用 Page URLPage HostnamePage PathReferrer,以符合我們的需求。

先假設今天頁面的網址為:

http://mktgholic.local/maldive-diving-tour?query=33456#wonderland-under-the-sea

Page Hostname(網頁主機名稱)

代表的是主網域名稱,在這邊就是 mktgholic.com,不包含網址後面任何一部分。

Page URL(網頁網址)

代表的是整串完整的網址,以上述的例子來看,就是:http://mktgholic.local/maldive-diving-tour?query=33456,但是不包含「 # 」字號的片段。

Page Path(網頁路徑)

代表的是主網域後面的網址,也就是 /maldive-diving-tour 。基本上主網域後面的都是屬於 Page_path 的部分,但是不包含「」後的查詢字串以及「#」字號的片段。

Referrer(參照連結)

指的是使用者是透過哪個網頁的連結來到當前所在的頁面,也就是在進入目前這個頁面之前所點擊的頁面連結。

假設使用者來到當前頁面之前的頁面是首頁(http://mktgholic.local),那當前頁面的參照網址就會是:http://mktgholic.local。

如果使用者在瀏覽完 http://mktgholic.local/maldive-diving-tour?query=33456 之後前往網站的聯絡我們表單頁面(http://mktgholic.local/contact-us),那表單頁面的「Referrer(參照連結)」就會是:http://mktgholic.local/maldive-diving-tour,不包含後面的查詢字串(query=33456)。

各網址變數在網址中所代表的部分


因此,若我們需要建立一個觸發條件,當網址包含 query=33456 時觸發某段程式碼,我們應該使用「Page URL」變數作為條件,而非「Page Path」變數,這是因為「Page Path」變數不包含網址中的「」後的查詢字串,以及「#」之後的片段。

(基本上呢,選擇「Page URL」變數幾乎可以解決所有頁面的問題,因為整個網址變數除了 #片段 的部分,其它全部都有涵蓋到。)


如何在同一個觸發條件裡使用不同網址?

當你在設定 Google Tag Manager(GTM)時,可能會碰到這樣的情境:

公司為了聖誕節活動建立了 3 個不同的行銷頁面。當使用者訪問其中任何一個頁面時,你希望將一個特定的造訪或是觀看事件傳送到 Google Analytics 4(GA4),例如:”Xmas_Visit”,以便追蹤聖誕節活動的效果。(當然,你也可以在報表中使用篩選條件來查看這三個頁面的表現,具體操作根據需求和情況而定。)

先想一下,你會怎麼做?再繼續看下去

.

.

.

.

.

.

.

整理一下目前的情況:
為了確保 GTM 中的事件代碼既簡潔又容易維護,我們計劃使用同一個事件來追蹤三個不同網址的同類型活動頁面。

這意味著,儘管只有一個事件代碼,我們卻需要追蹤三個不同的網頁,每個都有自己獨特的網址。這時候,我們應該怎樣設置觸發條件呢?

你可能會想:「很簡單,我只需新增幾個條件就行了。」

像是下圖這樣。

這種方法其實是不可行的。你有沒有注意到紅框左上角的那行小字?上面寫著:「只有當所有這些條件都符合時,才會啟用這項觸發條件」。沒錯,你知道,我知道,獨眼龍也知道,一個網頁不可能同時擁有三個網址,因此這樣設定的觸發條件根本無法成立。那麼,我們應該怎麼做呢?

答案是使用「規則運算式(Regex,即 Regular Expression)」。在規則運算式中,我們可以在不同的字符之間加入「 | 」符號,這在規則運算式裡代表「或」(or)的意思,翻譯成中文就會變成:

Page URL 符合 Xmas-Eve 或是 Merry-Christmas 或是 New-Year-Ready 時,觸發條件啟動。

當然,還有另一種方法:你可以為每一個網址創建一個獨立的「網頁瀏覽」觸發條件,然後將每個觸發條件與代碼進行綁定。但這種做法效率不彰,而且會使你的觸發條件列表變得很複雜和混亂。

你的代碼下面就會變成有很多個觸發條件

使用者自定義的「網址」變數

除了提供內建的網址變數之外,GTM 還允許使用者自定義「網址」變數,這些自定義變數在某些功能上與內建變數相似,但又提供了更多靈活的選項供我們使用。

更多關於這部分的介紹,可以參考文章:GTM 變數介紹:網址變數(URL Variable)

總結

使用「網址」作為觸發條件來啟動代碼是在 GTM 初期設定中最常見的方法。當使用者訪問特定網址且該網址滿足觸發條件時,GTM 就會向 GA4 發送一個事件。

通過網址來決定代碼的啟動時機不僅有助於設置觸發條件,還能在製作 GA4 報表時提供有效的篩選功能。希望這篇文章能幫你更好地理解網頁瀏覽類型的觸發條件,使你在未來規劃代碼時更加清晰地知道何時應該啟動相關代碼。

然而,使用網址作為觸發條件的方法雖然方便,但對於一頁式網站而言可能就不太適用,因為在這種網站上,網址通常不會發生變化。

不過這又是一個全新的挑戰,如果你還有精力深入了解,可以參考另一篇文章,它將告訴你如何使用 GTM 的「記錄變更」功能及 GA4 的內建事件來追蹤一頁式網站


延伸閱讀

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

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