WordPress網站安裝Google Analytics追蹤碼時,使用Google Analytics管理平台提供的標準範本,會同時追蹤未登入與已登入使用者的所有流量,很適合專注會員行為追蹤的電子商務類型網站,一般部落格若是想單純追蹤閱讀者的行為,不想記錄網站管理員或編輯的瀏覽行為的話,就必須採用額外的設定。
方法一:使用現成的外掛程式
使用現成的外掛程式,例如Rank Math SEO外掛程式,內建提供排除登錄使用者(Exclude Logged-in Users)選項,或是Perfmatters效能外掛程式,提供是否追蹤登錄管理後台(Track Logged-in Admins)選項,若是本來就有使用上述外掛的人,直接在外掛設定即可,但不適合特別為此安裝一個外掛。
方法二:參考官方的建議作法
參考Google官方指引,在自己的網站撰寫代碼先標註使用者的登錄狀態,傳送狀態值給Google 追蹤代碼管理員,然後在Google分析平台設定篩檢程式,據此來排除登錄使用者的流量。但是,官方建議方法太過複雜,必須同時在自己網站與Google平台進行設置。
方法三:安裝自訂程式碼片段
使用程式碼片段(Code Snippet)管理外掛程式,例如:Code Snippets、WPCodeBox等外掛程式,修改原有的Google Analytics追蹤碼,調整為PHP語法,辨識是否為登錄使用者後,再決定是否插入追蹤碼,刪除登錄使用者瀏覽網頁的追蹤碼,就不會傳送資料給Google分析平台了。
原有的追蹤碼格式
Google Analytics追蹤碼原有格式如下範例,”G-XXXXXXXXXX”為每個網站的專屬ID編號,通常安裝在每個網頁</head>標籤之前的java script程式,經過改寫為PHP程式碼,可將刪除登錄使用者瀏覽網頁中的追蹤碼,資料也就不會傳送到Google分析平台了。
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
</script>
修改後追蹤碼格式
Google Analytics修改後的PHP如同下例,原有追蹤碼前方增加一行”<?php if (!is_user_logged_in()) { ?>”,後方增加一行”<?php } ?>”,即可判斷是否為登錄使用者後,刪除登錄者瀏覽網頁內的追蹤碼。使用WPCodeBox外掛設定時,選擇”PHP”類型,設定位置”wp_head”即可。
<?php if (!is_user_logged_in()) { ?>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
</script>
<?php } ?>
若是想要排除特定登錄使用者的流量的話,可以使用”if ($user_id)”來取代”if (!is_user_logged_in())”,設定使用者ID來篩選。