GA page_referrer 參數你可能不知道的細節

在網站的世界中 referrer 一詞指的是一個網頁的來源, 例如:你在 A 網頁點擊連結到達 B 網頁,對於 B 網頁而言,referrer 就是 A 網頁(網址)。 在 Google Analytics 4 (GA4) 中,page_referrer 這個內建參數就是用來記錄 referrer 所用的, 在 GA 當中的中文維度名稱為 網頁參照網址

實際查看 GA4 的報表後,發現 page_referrer 並不是完全符合我們的預期,可能會看到三種類型的值:

  1. 空值
  2. https://www.example.com/ 只有 origin。
  3. https://www.example.com/abc/?id=123 - 完整的 URL(包括路徑、網址參數)。

什麼樣的情況是空值?

使用者直接輸入網址或透過書籤進入網頁的情況,page_referrer 會是空值,這是最常見的一種。

什麼樣的情況是完整的 URL ?

如果你的 GA 只有安裝在一個網站上(單一網域),站內互連的頁面其 page_referrer 會是完整的 URL。

什麼樣的情況只有 origin ?

只要來源網域不同,像是藉由 Google 搜尋、Facebook 分享到達你的頁面,page_referrer 就會是只有 origin。

如果擁有多個不同網域的網站,page_referrer 一樣會只有 origin, 舉例來說,假設我有兩個站都安裝了 GA:

  1. https://www.example.com/
  2. https://news.example.com/

在 A 頁 https://www.example.com/abc/ 當中有一個連結指向 B 頁 https://news.example.com/ , 使用者點擊該連結,對於 B 頁 page_view 事件而言 page_referrer 會是 https://www.example.com/ 而不是 https://www.example.com/abc/ 完整網址。

重點不在於兩個網站是不是都安裝了同一個 GA,這其實與 GA 無關,只要簡單想成「網域不同,只會有 origin」即可。

Referrer 的安全機制

會有上述問題是因為瀏覽器對於 referrer 的安全機制所產生的結果,想像網址當中如果存放了具有隱私的資訊,這些資訊如果被第三方網站得到可不得了。

因此對於同一個網域的網站,referrer 會是完整的 URL,但對於不同網域的網站,瀏覽器所做的「預設」保護機制就是僅能讓他拿到 origin,而不是完整的 URL。 這也是為什麼在 GA 中的「網頁參照網址」有些會是完整的網址,有些則是只有 origin 的原因。

關於 referrer 細節以及如何改變預設的 Policy,推薦閱讀 Referer and Referrer-Policy best practices。 瀏覽器對於 referrer 的預設機制是好的,所以個人傾向不去更動它,但值得了解這個機制的運作方式。

回到原本的問題,如果想從單一事件得知 A 網頁到 B 網頁的資訊,GA4 自動收集的事件中有兩個可用:

  • page_view 事件:將 page_referrer 視為來源,page_location 視為目的地。但如果遇到上述問題(網域不同時)會碰壁。
  • click 事件:將 page_location 視為來源,link_url 視為目的地。但這個事件只追蹤跨站的連結,如果是同一個網站內的連結點擊不會追蹤。

這兩個 GA4 自動收集的事件在我們的問題上很有趣,一個是跨站時會失真,一個是只收集跨站的連結點擊。

GA 自動收集的 click 事件只追蹤跨站連結或許合理,畢竟站外連結就不會有 page_view,只能靠 click 來追蹤,感覺是刻意與 page_view 形成一個互補, 但對於使用 GA 的人來說,用起來可能就沒那麼方便。 本篇文章著重在一個事件中,同時帶有「來源」及「目的地」的事件在做探究,當然也可以用其他的方式計算出 A 到 B 點的流量,像是用漏斗分析,將步驟一、二分別設定為兩頁的 page_view。

而如果想在一個事件上同時看到來源及目的地,一種方法是再寫一個自訂事件, 新增一個 click_link 事件,收集點擊的連結 link_url, 這個事件與內建 click 事件差異在於, 我們寫的 click_link 事件會收集所有的點擊連結,而不是只有跨站的。

留言