Growth

工程師也會的 Google Tag Manager (GTM) 追蹤碼設定教學

GTM 應該怎麼安裝、設定?如何和 GA 串接?
教你輕鬆在 GTM 上設定 GA 的增強型電子商務(Enhanced-Ecommerce)
其實~ GTM 安裝不難,但是設定和使用就有些眉角 😎
本文就我不專業說明 GTM 的設定、串接過程~

接續 "工程師的什麼是 GTM?"

Index


Why / GTM 安裝還要你教?

如~ 前言提到在網站上安插 GTM 並不難,追蹤碼置入到頁面上就好了。
但是要怎麼設定 GA, FaceBook Pixel 呢? 也是本文主要想分享的部份~

"工程師的什麼是 GTM?" 文內有提到,GTM 可以觸發與連結其它追蹤服務平台,依設定讓 GTM trigger, tag, variable 三者完成我們指定的動作。
(對 trigger, tag, variable 有疑問的人,可以再回顧一下關係圖~)

.
.
.

How 如何安裝與設定

ps: 💡 記得先關掉瀏覽的 廣告阻擋 工具喔,不然測試時會失敗

1- 在網頁內置入GTM 追蹤碼
GTM 追蹤碼的安裝只要依照教學處理非常簡單

另外建議在 gtm 追蹤碼前加一段

window.dataLayer = window.dataLayer || [];

預先定義 dataLayer 待用,避免未定義的錯誤

💡 什麼是 dataLayer?

置入 GTM 追蹤碼後看起來大概像這樣,注意貼上的位置即可~

2- 在 GA 啟用增強型電子商務 / Enhanced Ecommerce


(GA admin 電子商務設定中啟用兩個相關設定)

2-b GA 設定網站幣別
設定一下報表的幣別和確認網址是否正確~

3- 在 GA 取得 tarcking id

4- 新增 GTM variable 設定 GA Track ID

在 Variables – 新增一個 User-Defined Variables

Variable Configuration:
Variable Type: Google Analytics Settings
Tracking ID: 填入 step 3. 的 GA tracking ID



5- 新增 GTM Tag

使用上一步新增的 variable 設定 GA 基本 PageView 功能

  • Tag Type: Google Analytics: Universal Analytics
  • Tarck Type: page view
  • Google Analytics Settings: 上個動作新增的 GA ID
  • 啟用 Enable overriding settings in this tag
  • More Settings -> Ecommerce ->Enable Display Advertising Features -> true -> 啟用 Use Data Layer

並指定 Triggering 為 All Page – Page View

6- ✅ GTM Save -> Preview 或 Submit
這時候 GA 的基本安裝 (pageview event)已經安裝完成,也可以用 tools 檢查

.
.

7- 設定 GA 增強型電子商務 (Enhanced Ecommerce)
GTM 需要把 Enhanced Ecommerce 事件傳遞至 GA,不然事件的傳遞會停在 GTM 這端…

8- 新增 GTM Trigger 負責接收、觸發 Enhanced Ecommerce 事件

  • Event Type: custom event
  • Event: purchase|productDetail|transaction|checkout|contact|addToCart|setUserProperties|setUserId (use regex matching)
  • This trigger fires on: all custom events

因為 Enhanced Ecommerce (EE) 事件有很多個,這邊我選擇用 Regex 正規表達式 一次定義多個 event name。
上述的 EE Event 可以在給工程師的什麼是 GTM? – 註2暸解更多


9- 新增 Tag 負責實際將 Enhanced Ecommerce event 傳送至 GA

  • Tag Type: Google Analytics: Universal Analytics
  • Track Type: Event
  • Category: Enhanced Ecommerce
  • Action: {{Event}}
  • Label: {{Page Path}}
  • Enable overriding settings in this tag:
  • Ecommerce: User Data Layer(true)


10- 將上述 8 和 9 兩個功能互相連結(如上附圖下方的 Trigger 部份)

11- ✅ GTM Save -> Preview 或 Submit
這時候 GA 增強型電子商務 (Ecommerce Conversion) 功能就設定完成囉,也可以用 tools 檢查

.
.
.

12- 安裝 FB Pixel

而 Facebook Pixel ID 的取得,對工程師來說麻煩了許多 😵
你要先有 Facebook 帳號
然後建立、申請一個粉絲頁
接著到 Facebook 企業粉絲管理平台 新增一個 business 像素,這樣才能拿到 pixel ID


13- 新增 Tag 負責安裝、置入 FB Pixel

在 FB business 管理頁可以找到追蹤碼

  • Tag Type: custom html
  • html: 貼上 Pixel 安裝碼

並指定 Triggering 為 All Page – Page View

14- ✅ GTM Save -> Preview 或 Submit
這時候 FB Pixel 就安裝完成了,也可以用 tools Facebook Pixel Helper 檢查

.
.
.

自定與送出 Custom Event / Send Event

我們可以自定義事件由 GTM 介面送出,也可以由網頁上的 javascript 送出,依自己需求處理就可以

因需求關係,這裡說明如何自行透過 javascript 送出~

與例來說~ 將商品加入購物車
在使用者點擊加入購物車鈕後,隨即呼叫下面指令~

// 發送 GTM / GA 事件
dataLayer.push({
  'event': 'addToCart',
  'ecommerce': {
    'currencyCode': 'TWD',
    'add': {
      'products': [{
        'name': '可樂',
        'id': 'sn-cola-112233xx',
        'price': '35',
        'brand': 'coca cola', // optional 
        'category': 'Drink', // optional 
        'variant': 'original', // optional 
        'quantity': 1
       }]
    }
  }
});

// FB Pixel fbq 事件
fbq('track', 'AddToCart', {
    content_name: '可樂',
    content_ids: 'sn-cola-112233xx',
    content_type: 'product',
    value: 35,
    currency: 'TWD',
});

或是一般的自定事件
當使用者打開 banner 時,我們送出一個 event
附帶的參數為使用者目前的所在網址

// 發送 GTM / GA 事件
dataLayer.push({
    event: 'banner/open',
    properties: {
        url: window.location.href,
        path: window.location.pathname,
    },
});

// FB Pixel fbq 事件
fbq('trackCustom', 'banner/open', {
    url: window.location.href,
    path: window.location.pathname,
});

ref.
自定事件的參考~

因為是自行編寫 js 傳送事件,所以工程師們可以自由發揮傳遞的事件名稱、參數等內容

👉 但別忘了把發送 event 的觸發點和事件內容,一一記錄為文件
免得未來網站上安插了大量目地不明確的追蹤事件而難以維護

Tools Debug 工具

下述工具都只是方便 debug,除了套件有正確安裝之外,還要檢查發送出去的事件參數是否有正確。

例如:購物車結帳金額或是訂單編號有沒有正確送出

in GTM UI, GTM Preview

GTM 的工具很多但其實內建的預覽工具就很夠用了

新增或編輯任何內容後,GTM 首頁可以看見 preview 鈕
進入預覽模式 (preview) 後在同個瀏覽器打開目標網站就能看見工具面版了

Tag Assistant

Tag Assistant (by Google) Chrome Extension

能查看透過 GTM 觸發的行為與資料狀態

  • 綠色標記+數字:追蹤標籤運作正常
  • 藍色標記+笑臉:網頁上沒有追蹤標籤或Tag Assistant尚未啟動
  • 藍色標記+數字:追蹤標籤有點小問題
  • 黃色標記+數字:追蹤標籤有問題
  • 紅色標記+數字:追蹤標籤有嚴重的問題


(可以看出成功載入了哪些服務)


(GA 成功送出兩個任務; page view 與 event)

Facebook Pixel Helper

Facebook Pixel Helper – Google Chrome

可以清楚的把 pixel ID, 事件發送的成功與否顯示出來

Conclusion 結語

  • 如果對 GTM 設定流程上還是不懂也建議看看附註的三支影片,內容非常清楚喔~
  • 個人比較喜歡從頁面上寫 js 傳送 event,這麼做對資料掌握度比較高,而且時機也比較好控制

Ref. 參考內容

可樂

View Comments

Recent Posts

plain PHP 搭配 Slack 進行錯誤追蹤、回報(Error Tracking、Error Handling)

錯誤追蹤、回報非常重要,看到的錯誤才知道怎麼修。現今 PHP 流行的 Laravel 有很好的 Error Tracking, Error Handling。但 plain PHP 怎麼辦呢? 在 production 為了安全考量會設定…

4 years ago

Drone CI/CD 配合 Github 使用 Rsync 進行 Deploy

jenkins、circleci、travis 或 Gitlab CI 皆為目前暫知名的 CI/CD 服務,各自缺點也不言而喻...過於肥大、收費略高(?)、速度不夠快執問題...此時使用 go language 開發的 Drone 就出現啦,完全 docker 容器化的運行方式讓整個 CI…

4 years ago

Nginx brotli 設定

網頁壓縮技術中 gzip 很好用,deflate 己經過時,但你聽過 brotli 嗎? 有著比 gzip 更好、更快的壓縮效率。看起來利大於弊有什麼不用他的理由嗎?簡單從優、缺點來看 brotli!到底 brotli 布羅特利是什麼、如何設定呢。 目前大多的 web server…

4 years ago

本機使用 Docker 容器內 PHP (wrapper/expose PHP)

為什麼要讓本機使用 Docker 內 PHP? 情境... docker 容器內用的是 PHP 7.4 但你的開發本機還在跑 PHP 5.6 或是更舊,因為 dockerize 的關係會將所有相關環境都轉移到…

4 years ago

為什麼你需要密碼管理工具

為什麼你需要密碼管理工具現代人一天下來需要輸入多少組密碼,工作與生活己經和密碼密不可分! 除了足夠全安的密碼,密碼記錄、儲存的方式又足夠安全嗎?密碼管理工具可以帶來什麼幫助呢? 為什麼你需要密碼管理工具 資安問題!!大多人說著沒做壞事不怕被偷資料、監聽。嚴重曝露出現代人的基本科技素養的低落和無知 🤯 密碼的使用無所不在!! 行動裝置的普及,APP 、手機遊戲、銀行帳戶所有和生活相關的東西都需要密碼!!facebook, line 只要打開 APP 也會輸入密碼只是他是自動輸入、一般情況不可視 (auth token) 一般人最常發生的密碼資安問題…

4 years ago

簡單使用 Mysql Partition 優化查詢

mysql 資料表分區 mysql table partition 從架構上調整 mysql 的查詢效率。mysql DB 的優化可以簡單也能複雜,除了調整設定值。也可以透過水平分割(Horizontal Partitioning)、垂直分割(Vertical Partitioning) 分庫或分表將資料分散儲存減少資料搜尋、group by 時的效能消耗。拆開批次處理,理論上效率都會變好,本文就水平分割的…

4 years ago