之前接到一個需求,想在 Blogger 網站監測連結點擊的成效,收集不同優惠方案的點擊數據。
只要網站有安裝 Google Analytics(簡稱 GA),那麼做到這件事很容易,為每個點擊按鈕植入 GA 追蹤碼,在 GA 後台就能撈出點擊事件的詳細報表。
但實際上做了之後才發現 Blogger 網站會遇到一些狀況,請見本篇的說明。
1. 官方說明
參閱 GA 官方文件後,追蹤碼的完整格式如下:
2. 追蹤碼範例
假設網頁上有個按鈕,會連結到行銷網頁,為了追蹤點擊的成效,追蹤碼範例如下:
只要這個按鈕被點擊了,這一行 JS 就會被執行,該點擊事件會自動出現在 GA 的報表。
3. 完整 HTML 碼範例
這個按鈕的超連結語法範例如下:
有沒有覺得奇怪上面完整的範例碼,把 '按鈕', '點擊' 這兩組中文字串,換成了英文?
我在這篇「Google analytics 事件追蹤教學」,看到作者使用的參數為中文,而且 GA 截圖也顯示中文,但很奇怪「事件類別」、「事件動作」這兩組參數,我使用中文字串時 GA 都不吃,但一用英文字串 GA 馬上就撈到數據。
所以讀者可以自行試試看,如果中文也無法被 GA 接受的話,就使用英文吧。
但「事件標籤」確定是可以使用中文字串的。
接著進入「GA 官網」→ 左側選單:
切換到「活動標籤」看看,這邊就正常了,中、英文都沒問題。
前面說明的是所有網站通用的處理狀況,Blogger 若使用相同的追蹤碼,有可能在 GA 怎麼樣都追蹤不到任何事件。
調查了很久才發現原因,可參考這篇「Google Blogger/Blogspot onclick event in link will not pass to Google Analytics」。
1. Blogger 預設的 GA 安裝碼
事情出在 Blogger 範本中的 GA 預設程式,大部分 Blogger 站長都會符合以下兩個條件:
這樣 Blogger 不需要額外在範本中放入 GA 安裝碼,在網頁原始碼中就會看到自動產生的 GA 安裝碼,像下圖這樣:
注意上圖紅框的程式碼,這行由 Blogger 自動產生的參數,正是讓 GA 事件追蹤碼失效的原因:
正常的 GA 安裝碼參數應該是 'send' 而不是 'blogger.send',這會導致 「GA 事件追蹤碼」跟「GA 安裝碼」彼此無法對應。
然而 Blogger 自動產生的「GA 安裝碼」我們又無法修改,所以我們得修改「GA 事件追蹤碼」的參數,讓兩邊能對應的起來。
2. Blogger 修改事件追蹤碼
請將前面提供的完整 HTML 碼範例,改成以下即可:
只有紅字部分不同,其他都一樣,這樣 GA 報表就能看到事件的數據了。
使用 Blogger 先檢查一下,如果使用官方範本,那麼一定會出現自動產生的 "blogger.send" 參數,那麼就需要修改 GA 事件追蹤碼。
如果使用非官方範本,那麼可開啟網頁原始碼,搜尋是否有 "blogger.send" 參數。如果沒有的話,應該當初是自行安裝 GA,那麼追蹤 GA 事件就不必特別修改參數了。
只要網站有安裝 Google Analytics(簡稱 GA),那麼做到這件事很容易,為每個點擊按鈕植入 GA 追蹤碼,在 GA 後台就能撈出點擊事件的詳細報表。
但實際上做了之後才發現 Blogger 網站會遇到一些狀況,請見本篇的說明。
一、植入 GA 追蹤碼
1. 官方說明
參閱 GA 官方文件後,追蹤碼的完整格式如下:
ga('send', 'event', [事件類別], [事件動作], [事件標籤], [事件價值]);
- 前兩個 send、event 都是必要參數
- 事件類別:必要參數,為該事件設定一個分類字串
- 事件動作:必要參數,紀錄該事件的執行動作
- 事件標籤:非必要參數,可為該事件進行註解說明
- 事件價值:非必要參數,只能填入數字
2. 追蹤碼範例
假設網頁上有個按鈕,會連結到行銷網頁,為了追蹤點擊的成效,追蹤碼範例如下:
ga('send', 'event', '按鈕', '點擊', '2019 最新優惠', 1000);
只要這個按鈕被點擊了,這一行 JS 就會被執行,該點擊事件會自動出現在 GA 的報表。
3. 完整 HTML 碼範例
這個按鈕的超連結語法範例如下:
<a onclick="ga('send', 'event', 'button', 'click', '2019 最新優惠', 1000);" href="行銷網頁連結" target="_blank">前往最新優惠頁面</a>
有沒有覺得奇怪上面完整的範例碼,把 '按鈕', '點擊' 這兩組中文字串,換成了英文?
我在這篇「Google analytics 事件追蹤教學」,看到作者使用的參數為中文,而且 GA 截圖也顯示中文,但很奇怪「事件類別」、「事件動作」這兩組參數,我使用中文字串時 GA 都不吃,但一用英文字串 GA 馬上就撈到數據。
所以讀者可以自行試試看,如果中文也無法被 GA 接受的話,就使用英文吧。
但「事件標籤」確定是可以使用中文字串的。
二、調閱 GA 事件報表
接著進入「GA 官網」→ 左側選單:
- 行為 → 事件 → 總覽
- 如果剛剛自行點擊按鈕,想要馬上看報表,右上角記得日期範圍要選「今天」。
- 可以看到「事件類別」抓到的資料全部都是英文,我設成中文字串的事件全部都沒撈到。
切換到「活動標籤」看看,這邊就正常了,中、英文都沒問題。
三、Blogger 如何植入事件追蹤碼
前面說明的是所有網站通用的處理狀況,Blogger 若使用相同的追蹤碼,有可能在 GA 怎麼樣都追蹤不到任何事件。
調查了很久才發現原因,可參考這篇「Google Blogger/Blogspot onclick event in link will not pass to Google Analytics」。
1. Blogger 預設的 GA 安裝碼
事情出在 Blogger 範本中的 GA 預設程式,大部分 Blogger 站長都會符合以下兩個條件:
- 後台 → 設定 → 其他 → Analytics (分析) 網站資源 ID → 填入 GA ID
- 範本中應該會看到這行字串 <b:include data='blog' name='google-analytics'/>
這樣 Blogger 不需要額外在範本中放入 GA 安裝碼,在網頁原始碼中就會看到自動產生的 GA 安裝碼,像下圖這樣:
注意上圖紅框的程式碼,這行由 Blogger 自動產生的參數,正是讓 GA 事件追蹤碼失效的原因:
ga('blogger.send', 'pageview');
正常的 GA 安裝碼參數應該是 'send' 而不是 'blogger.send',這會導致 「GA 事件追蹤碼」跟「GA 安裝碼」彼此無法對應。
然而 Blogger 自動產生的「GA 安裝碼」我們又無法修改,所以我們得修改「GA 事件追蹤碼」的參數,讓兩邊能對應的起來。
2. Blogger 修改事件追蹤碼
請將前面提供的完整 HTML 碼範例,改成以下即可:
<a onclick="ga('blogger.send', 'event', 'button', 'click', '2019 最新優惠', 1000);" href="行銷網頁連結" target="_blank">前往最新優惠頁面</a>
只有紅字部分不同,其他都一樣,這樣 GA 報表就能看到事件的數據了。
四、總結
使用 Blogger 先檢查一下,如果使用官方範本,那麼一定會出現自動產生的 "blogger.send" 參數,那麼就需要修改 GA 事件追蹤碼。
如果使用非官方範本,那麼可開啟網頁原始碼,搜尋是否有 "blogger.send" 參數。如果沒有的話,應該當初是自行安裝 GA,那麼追蹤 GA 事件就不必特別修改參數了。
更多 Google Analytics 相關文章: