Cẩm nang tracking sự kiện với Google Tag Manager

Theo dõi chuyển đổi và các sự kiện tương quan trên website là nhu cầu thiết yếu khi triển khai Digital Marketing. Để làm được điều này, nhiều người sử dụng Google Analytics. Nhưng công cụ này vẫn còn một số hạn chế, nhất là khi làm việc nhóm và với những người ít biết đến lập trình. Do đó, tôi viết “Cẩm nang tracking sự kiện với Google Tag Manager” này để các bạn có thể tiếp cận được với 1 công cụ khác, miễn phí và mạnh mẽ hơn từ Google. Mời các bạn đón xem.

Dù tiêu đề bài viết không đề cập đến Google Analytics, nhưng bạn cần lưu ý rằng Google Tag Manager và Google Analytics là 2 công cụ gắn kết mật thiết với nhau. Do đó, cẩm nang về cách tracking sự kiện với Google Tag Manager cũng sẽ bao gồm phần liên kết với Google Analytics.

Ngoài ra, tuy giao diện Google Tag Manager có tiếng Việt, nhưng cửa sổ Google Tag Manager Preview and Debug lại không có. Do đó, để thống nhất và các bạn dễ theo dõi, mình sẽ để giao diện ở Tiếng Anh và giữ nguyên 1 số từ tiếng Anh mà không dịch!

Mục lục

Phần 1: Giới thiệu các sự kiện của Google Analytics

Phần đầu tiên của “Cách tracking sự kiện với Google Tag Manager” này gần như chả nói gì về Google Tag Manager (GTM).

Tôi hiểu rằng nhiều bạn đọc bài blog này thậm chí còn mới bắt đầu tìm hiểu về Google Analytics (GA) nên đương nhiên những khái niệm về tracking (theo dõi) các sự kiện còn mơ hồ.

Thực tế, nếu bạn mới bắt đầu và chưa thực sự hiểu rõ sự khác biệt giữa Google Tag Manager và Google Analytics là gì, hãy đọc hướng dẫn này trước đã.

1.1. Giới hạn khi không tinh chỉnh Google Analytics

Thử hình dung một trường hợp điển hình nhé. Một anh chàng không quen thuộc lắm với Google Analytics nhưng lại muốn theo dõi xem người xem đang làm gì trên trang web của tôi. Anh ta liền đăng kí một tài khoản Google Analytics, lấy mã tracking và thêm nó vào tất cả trang web (tôi thực sự hi vọng anh ta đã làm điều này bằng Google Tag Manager).

Chỉ vài phút sau, anh ta bắt đầu thấy các dữ liệu hiện ra trên bản báo cáo, với đầy những “chỉ số tuyệt vời” như tỉ lệ thoát (bounce rate), thời gian trên trang (time on page), thời lượng phiên trung bình (average session duration),… (tôi đang mỉa mai đấy 😉 ).

Vấn đề với Google Analytics lúc ban đầu là nó quá chung chung. Bạn chẳng thể hi vọng nó sẽ phù hợp 100% với công ty bạn được. Vì thề, tất cả thứ gì bạn có là những thống kê về lượt xem và cố gắng tự chế biến nó thành cái gì có vẻ có ích.

Lý do tại sao thông số “Thời lượng phiên trung bình” (“Average Session Duration”) dẫn tới hiểu nhầm là vì Google Analytics tính toán giá trị này khác với cách mà bạn nghĩ. Thử hình dung thế này nhé: bạn vào 1 trang web, xem nó trong vòng 29 phút rồi rời đi.

Bạn nghĩ thời lượng phiên trung bình sẽ là bao nhiêu, theo Google Analytics? 29 phút?

Sai lầm to! 0 giây nhé!

Bạn thấy đấy, khi mới sử dụng thì Google Analytics chỉ theo dõi lượt xem (điều này đã thay đổi trong phiên bản Google Analytics 2.0). Nó có theo dõi những hành vi như click, hoàn thành điền biểu mẫu, cuộn chuột và các tương tác khác mà có thể có ích hơn để hiểu hành vi người dùng. Và cách mà GA tính toán thời lượng phiên là như thế này: nó lấy mốc thời điểm đầu tiên có hoạt động của 1 phiên (1 sự kiện hoặc 1 lần xem trang web) rồi tính toán chênh lệch giữa mốc trên và thời điểm diễn ra hoạt động cuối cùng của phiên đó.

Vấn đề xảy ra là khi Google Analytics mới được tạo thì nó chỉ ghi nhận một hành vi duy nhất: xem trang. Chẳng quan trọng là bạn click lên 1 liên kết hay làm các hoạt động khác. Google Analytics lúc này chỉ theo dõi lượt xem trang, vì vậy thời lượng phiên chỉ là 0 giây.

Nếu có 2 lần xem trang (và lần xem trang thứ 2 diễn ra sau 29 phút) thì thời lượng phiên sẽ được tính là phiên kéo dài 29 phút.

Và nhìn chung, chỉ nhìn vào dữ liệu xem trang thì bạn không thể biết người dùng đã tương tác thế nào với nội dung của bạn, như điền xong biểu mẫu chẳng hạn. Vậy nếu một người dành 10 phút trên một trang, đọc nội dung, mua xong 1 sản phẩm nhưng tất cả những gì bạn có là dữ liệu theo dõi mặc định của Google Analytics?

  • Bạn chỉ thấy thời lượng phiên là 0 giây
  • Người đó thoát ra ngoài

Trong khi thực tế, người đó không thoát ra ngoài. Anh/chị ta dành tới 10 phút trên trang web của bạn và mua 1 sản phẩm. Thành công đó chứ!

Và đó là khi chúng ta phải thực hiện theo dõi các sự kiện trên Google Analytics…

1.2. Theo dõi sự kiện trên Google Analytics là gì và tại sao nó hữu dụng?

Tracking sự kiện trên Google Analytics giúp bạn theo dõi những tương tác người dùng ngoài xem trang, vì hãy công nhận thế này, thông thường, chính những tương tác này mới thật sự có ý nghĩa.

Công cụ Universal Analytics không có khả năng theo dõi tự động các sự kiện (vì nó có thể khác nhau tại từng website) và đó là nơi mà bạn (cùng với Google Tag Manager) cần tham gia vào. Với Google Tag Manager, bạn có thể gửi dữ liệu sự kiện tới Google Analytics mỗi lần người xem thực hiện 1 hành động cụ thể.

Và khi những hành động trên được chuyển tới Google Analytics, bạn sẽ có được 1 báo cáo trông giống như sau:

Bao-cao-su-kien-Google-Analytics
Bảng báo cáo các sự kiện được theo dõi trên Google Analytics

Hữu dụng hơn nhiều phải không? Thay vì chỉ có mấy chỉ số chung chung như số người dùng, số phiên truy cập, thời gian trên trang,… giờ bạn có hiểu biết tốt hơn nhiều về điều thực sự diễn ra trên trang web. Người xem có đang click vào 1 số link cụ thể không? Họ có coi video không? Họ có truy cập đến 1 phần nào đó của trang không?

Tracking sự kiện giúp bạn gửi dữ liệu đến Google Analytics để báo hiệu về 1 tương tác từ người dùng. Mỗi sự kiện có thể có 4 trường dữ liệu:

  • Category: danh mục các loại sự kiện (buộc phải có)
  • Action: tác vụ, hành vi của sự kiện (buộc phải có)
  • Label: nhãn, tên của sự kiện (có thể có hoặc không)
  • Value: giá trị mang lại của sự kiện (có thể có hoặc không)

Danh mục là giá trị chung nhất và khi bạn kèm thêm các giá trị bên dưới, bạn có thể mô tả chi tiết hơn để hiểu rõ hơn về sự kiện. Ví dụ:

  • Category: form (biểu mẫu)
  • Action: newsletter subscription (đăng kí nhận tin)
  • Label: example.com/blog/article-title
  • Value: 5

Khi bạn mở báo cáo các sự kiện của GA, bạn sẽ nhìn thấy danh mục sự kiện đầu tiên – mà ở ví dụ trên là “form”.

Giả sử có 50 sự kiện. Giờ bạn muốn biết chính xác biểu mẫu nào được điền. Đó là khi bạn click vào các dòng của danh mục sự kiện để nhìn được mô tả về tác vụ.

Có thể bạn có nhiều biểu mẫu (đăng kí nhận tin, tải bảng hướng dẫn,…). Và nếu bạn muốn khai thác sâu hơn nữa, bạn click vào các dòng trong danh sách tác vụ sự kiện của báo cáo và bạn sẽ nhìn thấy địa chỉ URLs của các biểu mẫu được điền (hoặc thông tin khác, tùy vào việc bạn thiết lập mục nhãn sự kiện thế nào).

Trường dữ liệu Giá trị chỉ chấp nhận giá trị bằng số và nó thể hiện giá trị bằng tiền của một sự kiện người dùng đối với doanh nghiệp bạn (ví dụ: mua 1 sản phẩm có giá 100.000đ, tỉ lệ khách hàng điền biểu mẫu/chốt đơn thành công là 10%, thì bạn có thể đặt giá trị sự kiện điền biểu mẫu là 10.000đ).

1.3. Tại sao nên kết hợp Google Analytics và Google Tag Manager

Khi mới bắt đầu thiết lập trang web và theo dõi các sự kiện kèm theo, mọi người thường tự cài đặt bằng tay đoạn mã tracking của Google Analytics, Google Adwords, Facebook Pixel, hay thậm chí là MGID, plugin MeTu,…

Bạn có thấy vấn đề ở đây không?

Mỗi công cụ đều yêu cầu phải có đoạn code riêng của mình để theo dõi dữ liệu, được chèn vào các thẻ header hoặc footer của trang web. Càng sử dụng nhiều công cụ, phần tùy chỉnh header & footer càng rối rắm và có nguy cơ xảy ra lỗi hơn.

Thay vào đó, bạn có thể cài duy nhất đoạn code theo dõi của Google Tag Manager vào trang web. Sau đó thêm các đoạn mã theo dõi trên giao diện của Google Tag Manager.

Tada! Giao diện quản lý trực quan và dễ sử dụng của Google Tag Manager sẽ giúp bạn quản lý được có bao nhiêu đoạn mã theo dõi được cài, những dữ liệu nào được thu thập và sự kiện khi nào được kích hoạt. Cũng như quyết định sẽ thêm, sửa, xóa các hoạt động này.

Thế nhé! Ráng mà học xài Google Tag Manager đi 🙂

1.4. Quy ước đặt tên sự kiện của Google Analytics

Trước khi chúng ta đi sâu vào cách tracking sự kiện với Google Tag Manager, tôi muốn nói nhanh thêm về quy ước thông thường để đặt tên các sự kiện của Google Analytics. Nó chỉ là quan điểm của tôi thôi, và không có vấn đề gì nếu bạn không làm theo. Nhưng tôi thực sự hi vọng chí ít bạn hãy thử cân nhắc những điều tôi nói nhé!

Đầu tiên, tôi nghĩ hệ thống danh mục – tác vụ – nhãn có thể khiến người mới tìm hiểu nhầm lẫn. Mọi người thường chỉ điền vào những cái tên không mang lại giá trị thực tế gì.

Thường thấy nhất là mọi người hay điền “Tác vụ” cho có. Ví dụ:

Một người muốn theo dõi hành vi click vào 1 nút bấm và gửi thông tin sự kiện này tới Google Analytics. Anh ta sử dụng những giá trị sau cho sự kiện:

  • Category: button (nút)
  • Action: click (nhấn chuột)
  • Label: {{một đường link URL nào đó}}

Theo bạn có gì không ổn ở đây? Theo ý kiến của tôi, phần hành vi sự kiện thật thừa thãi. Tưởng tượng mà xem: bạn nhìn thấy báo cáo GA ở bước hiển thị danh mục sự kiện. Có khá nhiều sự kiện như video, button, form,…

Quy-uoc-dat-ten-su-kien-Google-Analytics-Event Category
Bạn đã tìm được cách tracking sự kiện với Google Tag Manager và muốn xem chi tiết báo cáo…

Bạn muốn tìm hiểu thêm về các nút. Những nút nào đã được click? Bạn bấm vào loại sự kiện button trong bảng báo cáo và tất cả những gì bạn nhìn được là… click. Chỉ 1 dòng thôi – click. Không có ý nghĩa gì thì phải?

Quy-uoc-dat-ten-su-kien-Google-Analytics-Event-Action
Thứ duy nhất bạn thấy là những dòng chữ vô nghĩa & lại tốn thêm 1 lần click để vào sâu nữa…

Nếu bạn nói “Nhưng click là 1 hành vi và đây chính xác là những gì tôi nhập dữ liệu vào”, tôi liền hỏi bạn: “Bạn có thể làm gì khác với 1 nút? Bạn còn có thể nhìn thấy lựa chọn nào khác ở mục Tác vụ sự kiện không?”

Phải, tôi biết rằng có thể track sự kiện con trỏ chuột giữ ở trên một nút (con trỏ chuột để ở trên nút nhưng không bấm – hovering) nhưng hầu hết các doanh nghiệp không làm vậy để làm gì. Nên tất cả thứ gì họ có trên bảng báo cáo chỉ là 1 dòng duy nhất – click. Và các số cũng giống nhau. Có tận 314 sự kiện button và nếu tôi khai thác thêm, tôi chỉ thấy 314 sự kiện với hành vi click!?

Rồi bạn lại phải bấm vào dòng hành vi click để xem danh sách các URLs mà khi click vào nút sẽ dẫn đến (click url).

Tôi hiểu rằng mục Tác vụ ngầm báo rằng bạn nên điền 1 hành vi vào đó. Nhưng đây thực sự không cần thiết. Thử quy luật khác đi: mỗi lần bạn xem chi tiết hơn của 1 thứ nguyên, nó phải cung cấp thêm 1 giá trị có ích nào đó. Dưới đây là 1 số ví dụ:

Ghi nhận 1 lead mới:

  • Category: lead
  • Action: {{loại form}} (nếu bạn có nhiều loại form như popup, landing page, form được tích hợp,…)
  • Label: {{tên của form}}

Click vào 1 link dẫn tới trang web khác (outbound link):

  • Category: outbound link click
  • Action: {{Click Hostname}}
  • Label: {{Click URL}}

Tốt hơn nhiều ấy chứ nhỉ?

Phù, chúng ta đã đi xong một số phần cơ bản rồi. Giờ hãy cùng xem cách track sự kiện Google Analytics với Google Tag Manager nhé!

Phần 2: Cách cài đặt track sự kiện với Google Tag Manager

Tôi sẽ tách cách track sự kiện với Google Tag Manager thành 2 phần cho dễ theo dõi:

  • Phần 2 nói về cách theo dõi sự kiện với những chức năng cơ bản của Google Tag Manager (tôi cũng sẽ nêu thêm một vài loại theo dõi mà bạn có thể tự khai báo)
  • Phần 3 nói về việc hợp tác với nhà phát triển web và yêu cầu họ đẩy dữ liệu tới Data Layer

2.1. Kế hoạch

Hãy bắt đầu với 1 bộ hành động. Mỗi lần bạn muốn track sự kiện với chức năng có sẵn của Google Tag Manager, bạn cần làm các bước sau:

  • Có ít nhất 1 trigger – trình kính hoạt (của 1 loại cụ thể) được bật lên ở trang web (ví dụ: bấm vào đường link, cuộn chuột đến 50% độ dài trang,…). Sau khi bạn thực hiện điều này, bạn sẽ nhìn thấy các sự kiện trên trong cửa sổ thử nghiệm và gỡ lỗi của Google Tag Manager (Google Tag Manager’s Preview and Debug console).
  • Các biến liên quan được bật: ví dụ khi bạn muốn theo dõi sự kiện click chuột, bạn cần các biến của Click (Click Variables) như Click ID, Click Classes,…
  • Cập nhật trình kích hoạt (để nó hoạt động chính xác)
  • Tạo 1 tag – thẻ (trong trường hợp của chúng ta, đó là Google Universal Analytics) và gán trình kích hoạt đó cho thẻ

Thế này cho dễ hiểu nhé:

Bạn muốn theo theo dõi sự kiện click nút mua hàng và đặt hàng thành công trên Google Analytics. Khi khách hàng click vào nút mua hàng sẽ được dẫn tới trang chứa giỏ hàng (giả sử: blogmarketing.online/cart.php). Khách hàng đặt hàng thành công được dẫn tới trang cảm ơn (giả sử: blogmarketing.online/thank-you).

Lúc này, thay vì cài đặt trực tiếp sự kiện trên Google Analytics, bạn sẽ cài tracking sự kiện với Google Tag Manager. Bạn cần 1 thẻ của Google Universal Analytics, 2 trình kích hoạt là URL “…/cart.php” và “…/thank-you”.

Chú ý: Bạn vẫn có thể theo dõi sự kiện click chuột mà không dẫn tới trang web khác. Nhưng nó hơi phức tạp hơn 1 chút và cần xem trực tiếp code của trang web, nên tôi tách riêng ra ở bài này.

Để học một thứ gì thì cách tốt nhất là xem ứng dụng thực tế của nó. Hãy bắt đầu với click vào link outbound (dạng link click vào sẽ dẫn tới trang web khác của bạn, ví dụ: cnn.com, bbc.co.uk,…).

Mặc định, Google Tag Manager không theo dõi hành vi click. Bạn có thể kiểm tra bằng cách bật chế độ Preview and Debug (xem trước và gỡ lỗi) rồi tải lại trang web của bạn.

Cách bật chế độ trên như sau:

  • Bước 1: Trên cửa sổ làm việc của Google Tag Manager, bấm vào nút Preview (được khoanh đỏ trong hình)
Bat-cua-so-Preview-and-Debug-Google-Tag-Manager
Bước 1: Bấm nút Preview để bật cửa sổ Preview and Debug của Google Tag Manager
  • Bước 2: cửa sổ thông báo đã bật chế độ xem trước và sửa lỗi của Google Tag Manager hiện ra. Truy cập trang web của bạn trong tab của trình duyệt hiện cửa sổ thông báo này.
Bat-cua-so-Preview-and-Debug-Google-Tag-Manager-buoc-2
Bước 2: Truy cập trang web của bạn trong tab trình duyệt hiện ra cửa sổ thông báo màu cam này
  • Bước 3: Cửa sổ chế độ xem trước và gỡ lỗi của Google Tag Manager hiện ra bên dưới

Bạn sẽ thấy chỉ có 3 sự kiện trong khung gỡ lỗi, Page View (Xem trang), DOM Ready (Giao diện lập trình sẵn sàng) và Window Loaded (Cửa sổ đã tải xong).

Track-su-kien-voi-Google-Tag-Manager-Mac-dinh
Các sự kiện được theo dõi mặc định với Google Tag Manager

Bây giờ, hãy click vào bất kì chỗ nào trên trang web (không click vào khung gỡ lỗi của GTM) và xem chuyện gì xảy ra ở bên trái khung gỡ lỗi nhé.

Tada! Chả có quái gì diễn ra cả!

Bạn vẫn chỉ có 3 sự kiện (trừ phi, tất nhiên, bạn đã khai báo một số chức năng tracking với Google Tag Manager trước đó).

Điều này xảy ra vì mặc định Google Tag Manager không theo dõi sự kiện click (hoặc các sự kiện khác). Vì thế, bạn phải tự thiết lập thôi.

Trong Google Tag Manager, bạn bấm vào Triggers > New > Trigger Configuration > Just Links. Giữ nguyên tất cả các thiết lập khác và chỉ thay đổi tên của trình kích hoạt thành All Link Clicks (hoặc tên nào mà bạn dễ theo dõi).

Su-kien-click-vao-link-bat-ki-Google-Tag-Manager
Thiết lập trình kích hoạt khi người dùng click chuột vào bất kì link nào trên trang web

Lưu thiết lập này và tải lại chế độ xem trước và gỡ lỗi. Truy cập lại trang web mà bạn muốn theo dõi sự kiện click vào outbound link với Google Tag Manager. Click vào bất kì link nào trên trang web.

Nếu liên kết được mở ra ở cùng 1 tab của trình duyệt, hãy chắc chắn rằng bạn mở liên kết ở tab mới bằng cách giữ phím Ctrl (với Windows) hoặc CMD (với Mac) trên bàn phím rồi mới click vào link. Vì nếu link được mở ra ở cùng tab, cả trang sẽ được tải lại và chế độ Preview and Debug cũng sẽ được reset. Do đó, bạn không thể kiểm tra xem dữ liệu click chuột nào có sẵn một khi cú click được ghi nhận bởi GTM (trừ phi bạn làm thế này). Hãy chú ý điều này!

Rồi, khi bạn click vào 1 link bất kì, hãy quan sát kĩ hơn trong khung xem trước và gỡ lỗi. Bạn sẽ thấy 1 sự kiện mới được hiện ra, Link Click. Đó là do một phần mềm theo dõi tự động các sự kiện được gán vào trên trang web bạn khi cài đặt Google Tag Manager (auto-event listener). Bộ phận này theo dõi xem có những sự kiện gì xảy ra như có click chuột nào được thực hiện hay không. Khi nó phát hiện 1 cú click, nó gửi dữ liệu của sự kiện gtm.linkClick về Data Layer (lớp dữ liệu) và, vì thế, nó hiện ra ở khung cửa sổ xem trước và gỡ rối.

Su-kien-Link-Click-duoc-ghi-nhan-su-kien-voi-Google-Tag-Manager
Sự kiện “Link Click” (số 4) được ghi nhận trong cửa sổ tracking sự kiện với Google Tag Manager

Nếu bạn vẫn không nhìn thấy sự kiện Link Click hiện ra, hãy chắc chắn rằng bạn đã tải lại chế độ xem trước và gỡ rối (bằng cách bấm vào đường link Refresh (tải lại) ở khung màu cam trong giao diện của GTM) và sau đó tải lại trang web (mà bạn đang muốn theo dõi) một lần nữa. Làm đúng thứ tự trên nhé: bấm vào thanh banner màu cam trước, rồi mới tải lại website.

Nhờ thực hiện bước này, chúng ta có thể nhìn thấy các sự kiện trong chế độ xem trước & gỡ rối và kiểm tra xem những dữ liệu gì có sẵn với mỗi cú click chuột.

Bàn về các dữ liệu, hãy đọc chương tiếp theo.

2.2.2. Bật các biến dữ liệu click chuột có sẵn

Để tạo nên những trình kích hoạt chính xác hơn (thay vì ghi nhận chung chung là có 1 click chuột vào link bất kì), chúng ta cần thêm nguyên liệu khác, các biến. Chúng là cái gì vậy?

Có một ít thông tin có thể dùng chung cho cả các Thẻ và các Trình kích hoạt (và thực ra còn cho nhiều biến khác nữa). Ví dụ, Click ID. Bạn có thể dùng nó làm một điều kiện để Trình kích hoạt khởi phát (ví dụ, báo cho Google Analytics sự kiện click chuột vào nút bấm có ID là “main-cta-button” (“nút bấm chuyển đổi chính“) đã diễn ra).

Nhờ có chế độ xem trước & gỡ lỗi của Google Tag Manager, chúng ta có thể biết được biến nào có sẵn cho mỗi sự kiện. Hãy click vào sự kiện Link Click ở khung trái của chế độ xem trước và bấm vào tab Variables (“Các biến dữ liệu”). Tìm kiếm xem những gì liên quan tới những cú click. Nếu bạn đang thao tác trên một không gian làm việc mới của Google Tag Manager (1 container, có thể hiểu đơn giản là 1 đơn vị do GTM quy định để theo dõi, ứng với 1 website), có lẽ bạn chẳng thấy gì cả.

Đừng lo lắng, điều đó nằm trong dự đoán. Giờ hãy xem tab Data Layer (khi bạn vẫn chọn sự kiện Link Click). Ở đó, bạn sẽ thấy một vài tham số liên quan tới cú click vào link, như gtm.elementId hoặc gtm.elementClasses:

Cac-thong-so-lien-quan-toi-click-chuot-trong-Google-Tag-Manager
Các thông số liên quan tới click liên kết trong Google Tag Manager

Kể cả khi dữ liệu về cú click đã được track bởi Google Tag Manager, nó vẫn không có sẵn ở trong tab Variables của cửa sổ xem trước & gỡ lỗi. Tại sao vậy?

Vì các biến dữ liệu của click chuột có sẵn trong GTM không được kích hoạt mặc định.

Điều này có nghĩa gì? Nếu bạn không thể thiết lập một số dữ liệu dưới dạng biến dữ liệu cho GTM, bạn không thể sử dụng nó trong các trình kích hoạt.

Khong-co-bien-du-lieu-click-nao-co-san-trong-cua-so-Google-Tag-Manager
Không có biến dữ liệu click nào có sẵn trong cửa sổ của Google Tag Manager

Cùng kích hoạt chúng lên nào!

Ở trong tài khoản GTM của bạn, hãy truy cập mục Variables (Biến dữ liệu) và ở phần Built-in Variables (Biến dữ liệu có sẵn), hãy click vào nút Configure (Tinh chỉnh).

Tuy-chinh-bien-du-lieu-co-san-cua-Google-Tag-Manager
Tùy chỉnh biến dữ liệu có sẵn của Google Tag Manager

Một khung sẽ hiển thị bên trái. Cuộn chuột xuống dưới cho tới khi bạn nhìn thấy các biến dữ liệu click và kích hoạt TẤT CẢ chúng, từng mục một.

Kich-hoat-bien-du-lieu-ve-click-trong-Google-Tag-Manager
Kích hoạt biến dữ liệu về click trong Google Tag Manager

Sau đó, tải lại chế độ xem trước & gỡ lỗi, rồi tải lại trang web mà bạn đang làm việc và click vào 1 liên kết bất kì lần nữa (nếu liên kết vẫn mở trong cùng 1 bảng, giữ đồng thời phím Ctrl hoặc Cmd khi click).

Sự kiện Link Click sẽ xuất hiện trong danh sách sự kiện của cửa sổ xem trước & gỡ lỗi. Click nó đi. Giờ chuyển sang tab Variables và tìm kiếm các biến liên quan tới click. Tada!

Cac-bien-du-lieu-ve-Click-da-xuat-hien-trong-Google-Tag-Manager
Các biến dữ liệu về Click đã xuất hiện trong Google Tag Manager

2.2.3. Cập nhật Trình kích hoạt

Bước tiếp theo là cập nhật các trình kích hoạt (để làm nó chính xác hơn). Chúng ta không muốn các thẻ được kích hoạt khi người dùng click vào bất kì đâu, mà chỉ được kích hoạt khi click vào các liên kết outbound.

Liên kết outbound là gì? Biến dữ liệu nào trong Google Tag Manager mà chúng ta nên sử dụng để kích hoạt điều kiện click vào link outbound? Cùng kiểm tra cửa sổ xem trước & gỡ lỗi và xem chúng ta có gì.

Khi bạn mở cửa sổ xem trước & gỡ lỗi, click vào bất kì liên kết outbound nào trên trang rồi bấm vào sự kiện Link Click ở dòng sự kiện (khung bên trái). Chuyển đến tab Variables. Biến dữ liệu nào chúng ta nên sử dụng để phân biệt 1 link dẫn ra ngoài và 1 link nội bộ?

Bien-du-lieu-nao-nen-duoc-dung-de-track-su-kien-outbound-click-Google-Tag-Manager
Biến dữ liệu nào nên được dùng để track sự kiện outbound click trên Google Tag Manager?

Tên miền (tên máy chủ của trang) của trang hiện tại là example.com (xem ảnh chụp màn hình ở trên). Tất cả liên kết (URL của click) được coi là nội bộ nếu tất cả thuộc về cùng 1 tên miền của trang. Do đó, tất cả link dẫn ra ngoài là những link không thuộc về example.com.

Và đây chính xác là thứ gì chúng ta cần làm: tạo trình kích hoạt cho sự kiện click vào link mà sẽ chỉ gửi dữ liệu theo dõi của những click không dẫn tới tên máy chủ của website chúng ta (trong ví dụ này là example.com).

Ngoài ra, chúng ta cũng cần loại bỏ những click vào liên kết sau:

  • Liên kết email (ví dụ: someone@company.com)
  • Số điện thoại (ví dụ: 18001190)
  • Liên kết Skype (link mở cửa sổ Skype)
  • Liên kết không điều hướng đi đâu cả (thường là những link mở 1 cửa sổ popup hoặc thứ gì đó gần gần thế). Trong báo cáo của GA, những liên kết này có thể được xuất hiện dưới dạng javascript:void(o).

Việc này có thể tránh được nếu chúng ta thu hẹp các trình kích hoạt chỉ theo dõi các liên kết bắt đầu bằng http. Tất cả liên kết outbound sẽ bắt đầu bằng http hoặc https.

Truy cập vào Google Tag Manager > Trình kích hoạt và mở lại trình kích hoạt chúng ta đã tạo trước đó “All link clicks”. Chúng ta sẽ sửa đổi nó chỉ track các sự kiện click vào các liên kết ra ngoài. Đổi tên và cài lại thiết lập giống như ảnh chụp màn hình dưới đây (tất nhiên, bạn cần thay thế example.com với tên miền thực tế của website bạn):

Thiet-lap-bien-du-lieu-de-track-su-kien-Outbound-Click-voi-Google-Tag-Manager
Thiết lập biến dữ liệu để track sự kiện Outbound Click với Google Tag Manager

Đây là 1 ít giải thích: liên kết outbound là liên kết gì? Đó là liên kết điều hướng tới 1 nơi không thuộc về tên miền hiện tại của trang web. Đó là lí do vì sao tôi sẽ thiết lập trình kích hoạt theo dõi tất cả liên kết có phần tên máy chủ không bằng với “example.com”. Ở trong trường hợp của bạn, chỉ việc điền tên miền trang web vào đây.

2.2.4. Tạo 1 thẻ

Tiếp theo, hãy gửi dữ liệu click vào link outbound dưới dạng các sự kiện tới Google Analytics. Để làm được điều này, truy cập phần Tags (trong giao diện GTM) > New > Tag Configuration > Universal Analytics.

Rồi thiết lập các giá trị dạng giống như hình dưới đây:

Gui-track-su-kien-outbound-click-tu-Google-Tag-Manager

Nếu bạn chưa có bất kì biến thiết lập nào của Google Analytics, hãy tạo 1 biến bằng cách click vào danh sách xổ xuống và chọn Biến dữ liệu mới (New Variable).

New GA Settings Variable

Nếu bạn muốn sử dụng các tính năng khác của GA, như các chiều dữ liệu tùy biến, track sự kiện giữa các tên miền khác nhau, bạn sẽ cần thiết lập thêm 1 số thứ nữa ở trong mục Google Analytics Settings.

Với biến dữ liệu thiết lập Google Analytics (“GA Settings Variable”), bạn có thể tái sử dụng thiết lập GA trong nhiều thẻ khác của Google Analytics. Mỗi thẻ của Google Analytics cần một Tracking ID, và, tùy theo, có thêm những dữ liệu khác để thiết lập. Khi bạn có 20, 30 hoặc nhiều thẻ Google Anaytics hơn nữa, việc quản lý ở từng cấp độ nhỏ sẽ trên rất phiền phức.

Đó là nơi mà các biến thiết lập của Google Analytics sẽ giúp bạn: mỗi khi bạn thay đổi các thiết lập của biến, tất cả thẻ sử dụng biến trên sẽ được áp dụng thay đổi theo.

(Ví dụ: bạn thiết lập 1 biến Google Analytics chỉ theo dõi trang landing page, 1 biến Google Analytics theo dõi toàn bộ trang web. Bạn có 30 thẻ (tags) sử dụng 2 thiết lập Google Analytics trên. Nếu sau này bạn cần thay đổi cả 2 thiết lập của Google Analytics thì bạn chỉ cần chỉnh sửa 2 lần, thay vì phải chỉnh 30 thẻ)

Sau khi bạn điền tất cả thông tin cần thiết cho thẻ sự kiện của GA, gán trình kích hoạt chúng ta đã tạo trước đó cho thẻ. Giống như ảnh chụp màn hình dưới đây:

 

#2.2.5. Don’t forget to test

Enable (or refresh) the Preview and Debug mode, go to your website and refresh the page. Here are scenarios you should test:

  • Click an internal link (e.g. the one that opens a “Contact us” page). The outbound link GA tag must not fire.
  • Click an email link, if you have one (that’s one of those links that are added to your website, e.g. in “Contacts” page). The GA Event tag should not fire.
  • Click an external (outbound) link. The GA Tag must fire. If the tag did not fire, click it in the P&D mode.

    and scroll down to Firing triggers section and check if all the conditions were not met (marked with a red X).
  • Then check GA real-time event reports and see if you are getting the data.
    In Google Analytics, go to Realtime > Events, and you should see the click data you’ve just tracked with GTM.

If, for some reason, you don’t see the data in Google Analytics real-time reports, read this guide.

If you want to see where this data lands in Google Analytics standard reports, go to this article.

 

With this example, I’ll be much quicker. The principle is the same as it was with the outbound links (so I will not go into details once again). Plus, part of the job is already complete:

  • We don’t need to create a generic link click trigger (to start seeing Link Click events in the preview mode)  because we already have the link click auto-event listener running in the background thanks to the outbound link click tracking implementation.
  • All Click Variables are already enabled.

What we’ll need to do is to create a different trigger that will track only document link clicks (like Word or PDF files) and then create another GA Event tag that will send that event data to Universal Analytics.

 

#2.3.1. Create a trigger

In Google Tag Manager interface, go to Triggers > New > Just Links and enter the following conditions:

  • Some Link Clicks
  • Click URL Matches RegEx (ignore case) \.(pdf|docx?|xlsx?|pptx?|zip|rar|tgz|mp3|odt)

With this condition, the trigger will be activated if the clicked URL contains any of the following extensions (e.g. .pdf or doc). I used here the most common file extensions from my experience but you can add more if you want. Just before the closing parentheses, add a pipe (“|”) and add another extension, e.g. exe. Then the result would be .(pdf|docx?|xlsx?|pptx?|zip|rar|tgz|mp3|odt|exe)

 

#2.3.2. Create a tag

And here is a tag that would send the event to Google Analytics.

If you want to track not the full URL of the file, but just the name and its extension, read this guide.

You could actually make things even cooler by tracking more information about the clicked document. For example, an interesting data point would be the “topic of the document”. Then you could pass that topic as an Event Action and would know which topics are the most interesting for your users/visitors. This is possible with the tracking of “data-*” attributes.

Assign the trigger to the tag and save everything. Don’t forget to test the events with GA real-time reports!

 

#2.4. Event Tracking Example #3 – Scroll tracking

In recent months, I have been more skeptical of scroll event tracking and its benefits (and reading this article confirmed that even more). However, if you don’t operate large volumes of traffic (to reach the threshold of monthly hits sent to GA for free), it should not do a lot of harm to you much.

The drill is, once again, quite similar to the ones that you saw before. This time, we don’t need to create a generic scroll trigger but we need to enable scroll variables. So go to Variables > Configure > Click checkboxes next to scroll variables (usually I use just Scroll Depth Threshold but for some mystical reason, I still enable all of them).

Then create a Scroll trigger in GTM with the following settings (you change the percentage values to whatever you prefer):

Last but not least, GA Event Tag. Here are its settings.

Notice anything unusual? I’ve set the non-interaction hit field to true. Why did we do that? Because we do not want to scroll events to affect the bounce rate. Even though the bounce rate as a metric is not too valuable, it sometimes may give us a bit of additional context (if your setup is correct).

Let’s remember when is a session considered as bounced in GA. If a session consists only of one hit (e.g. pageview or event), then it’s a bounce. If there are two or more hits, that is not a bounce.

Imagine a situation. A visitor lands on your website, scrolls past the 50% mark of the page height and leaves after 5 seconds (without doing anything).

Should such a session be counted as a bounce or as a session with interaction (the only interaction that was done here is scrolling)? I think that should be a bounce. Because a visitor did nothing meaningful on that page.

So with this non-interaction hit parameter, we are instructing Google Analytics to track the event but not treat it as an interaction.

I’ve seen some marketers “adjusting” bounce rate just to make things look prettier (e.g. if a person scrolls 50% or more, that should decrease a bounce rate). But if you take a look at the aforementioned example, 50% does not mean a thing. So if you want to track scrolling, that’s fine. But you should not treat those events as interactions and affect the bounce rate.

I mean, there is even a chance that a cat will move the mouse, accidentally scroll down and some marketers will treat this as a good session 🙂

Assign the scroll trigger to the Universal Analytics Event Tag. Once you save it, don’t forget to test.

Warning: non-interaction hits can be seen in GA real-time reports only if you switch to the Events (Last 30 min) 

 

#2.5. More GTM event tracking examples? Yes, please!

And there are many more examples of how can you track events with Google Tag Manager. I don’t want to turn this blog post into a 20,000-word behemoth, so I’ll just give you some links. You can decide which ones do you need:

And these are just several examples of what can be done. In fact, I’ve created a guide – 99 things you can do with Google Tag Manager (and this goes even beyond the event tracking).

 

Section 3:

Tracking custom events with Google Tag Manager

What if you cannot find a solution on how to track a certain event with GTM? Built-in variables are not useful and there is no ready-made solution offered by someone else (like GTM recipes).

You can always rely on developers. What they need to do is to push the event information to the Data Layer once that particular interaction occurs. After that, you will be able to catch the needed information with GTM and send the event further to Google Analytics.

 

#3.1. Prepare a Data Layer Event Code

As an example, let’s say that we want to track successful registrations on a website. You could give the following code to a developer:

Once this code is successfully implemented by a developer, you will start seeing it in the GTM Preview and Debug console. If you want to get some additional data, include it in the dataLayer.push() code:

 

#3.2. Tell the developer when to activate this code when the registration is completed

Another important step is to explain to the developer WHEN you want the dataLayer.push event to fire. If you’re interested in the tracking of a specific form, Data Layer event must be fired after the successful submission occurs.

 

#3.3. Test the event

After a developer says that his/her task is complete, enable GTM Preview and Debug mode to test it. Complete that specific interaction (e.g. submit the form) and keep looking for the Data Layer event in Preview and Debug mode’s event stream. It should look like this:

Data layer Event in Preview and Debug mode

 

#3.4. Configure Custom Event Trigger

By default, Data Layer events do not appear in the Google Tag Manager as triggers. You need to do that manually. Since we are interested in tracking successful registrations, we need to instruct GTM that registrationComplete events are important to us and we wish to use them as triggers.

In Google Tag Manager, go to Triggers and hit New button. Choose Custom Event as trigger type and enter the following settings:

Registration Complete Custom Event TriggerDone. You have just created a Google Tag Manager Custom Event Trigger. If you also wish to use registrationCountry and plan as variables in your Google Tag Manager tags, read the guide on how to access data in the Data Layer and turn them into GTM variables.

 

#3.5. Configure Data Layer Variable

If you want to send some custom data together with the event (and that custom data is present in the Data Layer), you can access that information with help of Data Layer Variable.

To continue our example, let’s access the plan key from the Data Layer. In GTM, go to Variables > New > Data Layer Variable.

We entered “plan” because that’s the name of the key in the Data Layer (when the registrationComplete event is pushed to the DL)

 

#3.6. Create a Universal Analytics Event Tag

Now, let’s create a GA event tag that will send the event data to Google Analytics every time a registrationComplete is pushed to the Data Layer). In GTM, go to Tags > New > Universal Analytics. Enter the following settings:

That’s it! Don’t forget to test the event by going to Real-time GA reports!

 

 

Section 4:

Google Tag Manager Event Tracking Not Working?

Looks exciting, right? All these possibilities of things you can track! However, not always things go easy and sometimes obstacles may occur. But don’t worry, here are the most common issues that I’ve noticed when someone says that event tracking is not working for them.

 

#4.1. Data Layer is broken

Even if you have configured Google Tag Manager event tracking properly, some other fundamental problem might break it. According to GTM’s official documentation, if a developer wants to configure dataLayer before GTM container is loaded, he/she should place the following code above GTM container snippet:

(Actually, this code should never be used and it’s always better to use .push() but let’s just pretend that I haven’t said that).

Unfortunately, some developers place it below the GTM container snippet thus break the Data Layer. As a result, no further events will be visible in the Preview and Debug mode and you won’t be able to fire tags in GTM based on user interactions.

Read more about this here

#4.2. Auto-event listener is not enabled

Sometimes people accidentally skip the step where they have to create a trigger in GTM in order to start seeing events in the Preview and Debug mode. They just enable Click Variables and hope that this will start showing Link click or Click events in the preview and debug mode.

Unfortunately, it won’t. So make sure that you also enable the trigger itself.

 

#4.3. A built-in GTM trigger is not built to track ALL possible website interactions

While GTM already has a bunch of triggers like click, element visibility, Youtube, etc., they do not cover all the possible scenarios. For example, Youtube trigger does not support some other embedded players on a site. So if you are dealing with such a situation, try to use Google Search and find a custom tracking solution.

I know, this sounds pretty obvious, but really — just google it. Find out what video player is embedded on a site and try to search whether someone is offering a solution for that. In fact, many video players can be tracked with GTM by using a custom solution.

 

#4.4. You are trying to track interactions within the iFrame

In a nutshell, iFrames enable developers to embed one HTML document within another. For example, the entire page can be embedded in another one. A video player can be embedded on another page. While this might sound exciting for regular mortal non-technical users, from a tracking perspective, this is a nightmare.

If something is embedded on a page, you cannot track what’s happening within the iFrame unless:

  • You have direct access to iFrame’s internal code (in many cases, you won’t)
  • Or the iFrame provides a certain mechanism of how to track it (a.k.a. JavaScript API). In most cases, JavaScript APIs are not available. But sometimes you might be lucky.

So if, for example, you are trying to track clicks of certain elements but no events are displayed in the Preview and Debug mode, chances are that you are dealing with the iFrame. One of the ways how to find that out is to do the right-click somewhere near that element that you want to track. If you see View frame source (at least on Google Chrome), this means that you are working with an iFrame and regular Google Tag Manager event tracking will not work.

The other option to check it is to use Inspect Element feature of your browser.

Solutions?

  • Either you need to find the access to add tracking code to the inside of the iFrame (if you’re working with a 3rd party vendor’s iframe, the chances of success are quite low)
  • Or to use Google and find — maybe someone has written a guide about it. For example, the Disqus comments widget is using iFrame. Even though you cannot place your tracking codes within the frame, there is another solution mentioned here.

 

#4.5. Other possible reasons why event tracking with GTM is not working

Here are several more resources that you might find useful?

 

Event tracking with Google Tag Manager: Final Words

Phew! The initial idea was to write a much shorter blog post but this topic is just too large to fit in a couple of thousands of words (or less). To sum up:

  • Google Analytics events greatly extend the capability of the tool. Just by looking at pageview data you cannot possibly draw some valuable insights (just remember my example of a person who visited for 10 minutes, purchased but your out-of-the-box GA just showed a bounce).
  • Google Tag Manager is a great tool that allows you to send events to GA or any other web tracking too. The built-in functionality covers a lot of interactions that can be captured (clicks, element appearances, Youtube video interactions).
  • But there are still many interactions that require custom solutions. One of them is to find guides that utilize custom auto-event listeners (e.g. DISQUS comments can be tracked with them
  • If none of the above solutions helped, cooperate with a developer. Ask him/her to push the interaction and its data to the Data Layer, then use Custom Event Trigger + Data Layer Variable and send the event to Google Analytics. In our example, we sent the info of successful registration.
  • This guide definitely does not cover all the possible scenarios. If you are interested, here’s how you can track forms, affiliate links, video players, etc.

Got questions? Post them below. Subscribe to the newsletter below and get relevant GTM tips to your inbox.

Leave a Reply

Your email address will not be published. Required fields are marked *