雖然 GA4 的「加強型評估事件」已經有「檔案下載」的追蹤功能,但誠如我們之前所說的,GA4 是透過點擊連結中的「副檔名」來判斷使用者是否為下載的行為,進而觸發 file_download
事件。
如果你的「副檔名」不在 GA4 的判讀清單當中(例如常見的 .png 或是 .jpeg 類型的檔案),那 GA4 中的「檔案下載」事件便不會啟動,而 GA4 「加強型評估事件」的操作介面中,也沒有地方可以讓我們新增「檔名」到這份判讀清單當中,此時我們就必須依賴 Google 代碼管理工具的協助,自訂一個透過 GTM 設定的「檔案下載」事件。
該怎麼做呢?其實不會很困難,需要借助到一點小小的 Javascript 以及規則運算式的技巧,其餘的設定就跟一般我們追蹤連結點擊的設定差不多。
讓我們繼續看下去。
本篇重點
#1. 關閉 GA4 中的「檔案下載」事件
為了不讓 GA4 的「檔案下載」事件與透過 GTM 自訂的事件衝突,以及我們將會繼續沿用「檔案下載」事件的名稱以及參數,因此為了避免收集資料上的混亂,我們必須先將其關閉。
點擊 GA4 左下角齒輪(管理)進入後台 > 選擇「資料收集和修改」> 選擇「資料串流」> 選擇該網站所屬串流 > 點擊「加強型評估區塊」右下角齒輪 > 在彈出的清單最下方找到「檔案下載」選項,將其關閉。
在 GA4「加強型評估事件」的文件中,可以看到「檔案下載」的事件名稱為 file_download
,同時還會帶上參數 file_extension
、file_name
、link_classes
、link_id
、link_text
、link_url
我們將會原封不動的把事件以及參數名稱複製到 GTM 設定的事件當中,保有原本的功能,同時還可以自行新增「副檔名」的判讀清單。
#2. 確認內建點擊相關變數皆有開啟
首先必須確認 GTM 中所有內建的點擊相關變數皆有勾選,稍後的設定當中我們會使用到如:Click Classes、Click ID、Click Text 以及 Click URL。
GTM 左側介面選擇「變數」 > 右上角點擊「設定」 > 勾選「點擊」區塊內的所有變數
#3. 用「自訂 Javascript」變數抓取「檔案名稱」
GTM 左側介面選擇「變數」 > 右側下拉至「使用者定義的變數」區塊 > 右上角選擇「新增」> 點選「請選擇變數類型以開始設定」> 右側彈出視窗選擇「自訂 Javascript」
接著將以下代碼複製到「自訂 Javascript」變數當中,這段代碼會協助我們「取出」使用者點擊的連結中的「檔案名稱」,我們會將這個「自訂 Javascript」變數用於原 GA4「檔案下載」使用的參數 file_name
。
function() {
// 檢查點擊的連結是否存在且不為空
if ({{Click URL}} && {{Click URL}} !== ”) {
var filename = decodeURIComponent({{Click URL}}.split(‘/’).pop());
// 將URL以斜杠(“/”)為分隔符拆分為陣列,並取最後一個元素作為文件名
// 檢查文件名是否包含副檔名,有的話回傳 filename,沒有的話回傳 n/a
if (filename.includes(‘.’)) {
return filename;
} else {
return ‘n/a’;
}
} else {
return ‘n/a’;
}
}
命名 CJS | File Name 儲存之後,我們就可以開始設定用來取得「副檔名 file_extension」的變數。
#4. 用「自動事件變數」抓取「副檔名」
副檔名的抓取就相對簡單多了,透過 GTM 內建的「自動事件變數」便可以幫我們完成。
(如果對於「自動事件變數」想要有更進一步的了解,可以參考這篇文章:GTM 變數介紹:自動事件變數)
GTM 左側介面選擇「變數」 > 右側下拉至「使用者定義的變數」區塊 > 右上角選擇「新增」> 點選「請選擇變數類型以開始設定」> 右側彈出視窗選擇「自動事件變數」
之所以會使用「自動事件變數」是因為該變數會在使用者與網頁產生互動時,抓取我們所指定的特定「值」,在這邊的互動就是當使用者點擊連結時,該「自動事件變數」會去抓取連結中的「副檔名」,我們就可以將這個變數用於原 GA4「檔案下載」使用的參數 file_extension
,設定方式如下圖:
設定完畢之後命名為 AEV | File Extension,我們就完成了所有需要的參數設定。而下方是各參數與 GTM 中的變數對照,方便大家理解前面所設定的變數,各自是對應到哪個 GA4 預設的參數。
- file_name:CJS | File Name (自訂 Javascript 變數)
- file_extension:AEV | File Extension(自動事件變數)
- link_class:Click Classes(勾選的內建變數)
- link_id:Click ID(勾選的內建變數)
- link_text:Click Target(勾選的內建變數)
- link_URL:Click URL(勾選的內建變數)
#5. 設定觸發條件
既然檔案下載的動作是點擊一條連結,想當然爾,我們就可以直接運用點擊類型觸發條件中的「僅連結」來幫助我們完成設定。
GTM 左側面板選擇「觸發條件」 > 右上角點擊「新增」 > 選擇觸發條件類型「僅連結」
因為只有帶有檔案名稱的連結才需要觸發「檔案下載」事件,因此這邊的設定選擇「部分的連結點擊」,當前面設定的「自訂 Javascript」 變數值在規則運算式的條件中與下列條件相符時,便滿足觸發條件。
\.(jpeg|png|pdf|xlsx?|docx?|txt|rtf|csv|exe|key|pp(s|t|tx)|
7z|pkg|rar|gz|zip|avi|mov|mp4|mpe?g|wmv|midi?|mp3|wav|wma)
這段檔名清單是來自於 Google 官方文件,並且另外新增了 jpeg 以及 png 的檔案類型,如果清單中沒有你的檔案類型,請自行加上並以「|」作為區隔即可(不包含引號),「|」在規則運算式中代表的是「或」的意思,完整設定畫面請參考下圖。
上述的設定翻譯成中文就是:當使用者點擊的連結中,檔案名稱中有 .jpeg、.png、.pdf 等副檔名時,便滿足觸發條件並觸發代碼。(也可以將 CJS | File Name 替換成前面設定的「自動事件變數」,會是一樣的意思,不過記得要移除「 . 」)
延伸閱讀 》GTM 中的「或」:用不同啟動時機條件觸發相同代碼
#6. 設定「檔案下載」 事件
GTM 左側面板選擇「代碼」> 右上角選擇「新增」> Google Analytics (分析) > Google Analytics (分析):GA4 事件
在代碼設定介面,依序填入以下欄位,最後設定畫面會如下:
ㅤ
如果希望「檔案下載」事件不要重複觸發?
在介紹 GA4「加強型評估事件」的文章當中我們提到,其「檔案下載」事件會因為使用者的連續點擊被重複觸發,而我們透過 GTM 設定的好處是可以避免這樣的情況。
代碼設定介面中 > 展開「進階設定」 > 下拉選單選擇「每個網頁一次」
這樣一來,不管使用者在該頁面上下載多少次檔案,都只會觸發「檔案下載」事件一次(如果刷新頁面並再度點擊「下載」的話,那就會再度觸發代碼一次。)
#7. 測試一下
老規矩,在完成所有設定之後,發佈到正式網站上之前,都必須要用「預覽」功能測試一下,我們預期的行為是,當使用者點擊檔案下載連結時,file_download
事件就會被觸發,同時 GA4 DebugView 中也會接收到事件以及相關參數。
(如果你是第一次來到本站的朋友,不了解「預覽」功能如何使用,可以參考這篇文章:如何用 GTM 「預覽模式」檢查代碼?
至於 GA4 DebugView 的位置則是在 GA4 操作介面左下角點擊齒輪「管理」進入後台 > 資料顯示 > DebugView。
如果對 GA4 的後台想要有更多的了解,可以參考這篇文章:深入了解 Google Analytics 4:手把手建立帳戶並瞭解 GA4 後台介面)
確認事件發送端(GTM)與接收端(GA4)都沒有問題之後,就可以將代碼「提交」了。
總結一下
大部分的功能其實都跟 GA4「加強型評估事件」中的「檔案下載」一樣,差別在於我們可以在「觸發條件」的欄位中,自行新增更多的檔案類型(副檔名),如果你有注意到,其實整個設定跟「連結點擊」追蹤事件的設定方式是一樣(雖然是下載檔案,但其實就是點擊了一個連結)。
只是因為要取得「檔案名稱 file_name」參數的值,我們必須要多做一個「自訂 Javascript」變數,除此之外,設定上並沒有複雜太多,因此不用把這個代碼的設定想得太過困難。
另外,關於「連結點擊」的設定以及延伸的應用,可以參考下列這幾篇文章:
延伸閱讀
如果你很喜歡這篇文章並且覺得內容有幫助,又剛有些多餘時間,歡迎你看看其它文章,繼續探索(這坑?這地獄?這片樂土?)
同時,如果對於內容有疑問或是建議,也歡迎你留言或是到社群上找我們,我們都會盡我們所知道的進行回覆:)