Chuyển tới nội dung
Khóa học SEO tiêu chuẩn
  • Trang chủ
  • Giới thiệu
    • Giới thiệu VietMoz Academy
    • Cơ sở vật chất
    • Hoạt động cộng đồng
  • Chương trình học
    • Lịch tuyển sinh
    • Khóa học SEO tiêu chuẩn
    • Google Marketing
      • Khóa học Adwords Pro Sales
      • Khoá học Google Map Premium
      • Khóa học SEO HCM Special
      • Khóa học GA4 from Zero to Hero
    • Thực hành quảng cáo Facebook
      • Khóa học Winning Facebook Ads
      • Khóa học Facebook Marketing
    • Khoá học kinh doanh thương mại điện tử trên sàn Shopee
    • Marketing tinh gọn
      • Marketing Fundamentals
      • Khoá học MSP – Thực hành xây dựng chiến lược marketing
      • Khoá học Digital Masterclass
      • Khóa học Sale Promotion
  • Blog
    • Tin tức
    • Cách làm SEO
      • SEO Cafe – Tin tức SEO mới nhất
      • Wiki SEO – Thư viện kiến thức quan trọng
      • SEO Guide – Hướng dẫn làm SEO
      • SEO Case Study
      • Resource – Công cụ & Template
    • Blog Marketing
    • Kiến thức Google Adwords
    • Blog Facebook Marketing
    • Blog Content
  • Liên hệ
    • Đăng ký học
    • Hướng dẫn thanh toán
    • Bản đồ đường đi
Mục lục nội dung
1 Data Layer trong Google Tag Manager hoạt động như thế nào?
2 Cách triển khai Data Layer trong Google Analytics 4 như thế nào?
2.1 Khai báo Data Layer với dataLayer.push
2.1.1 Data Layer Declaration (dataLayer = [...])
2.1.2 dataLayer.push()
2.2 Khai báo Data Layer
2.3 dataLayer.push
2.4 Vì sao phương pháp này tốt hơn cách khai báo dataLayer = []?
3 Google Tag Manager sử dụng dữ liệu trong Data Layer như thế nào?
4 Sử dụng Data Layer Variable
4.1 Vì sao GTM không tự động đọc toàn bộ Data Layer?
4.2 Cách tạo Data Layer Variable
4.3 Data Layer có thể chứa cấu trúc phức tạp hơn
5 Tạo Data Layer Variable trong Google Tag Manager
6 Bật chế độ Preview và Debug trong GTM
7 Gửi biến pricingPlan sang Google Analytics 4
8 Tạo Custom Dimension trong GA4
9 Sử dụng Data Layer để kích hoạt Trigger
9.1 Ví dụ: Tracking đăng ký thành công
9.2 Thêm dữ liệu bổ sung vào sự kiện
9.3 Kiểm tra trong Preview và Debug
10 Custom Event Trigger
Mục lục nội dung
1 Data Layer trong Google Tag Manager hoạt động như thế nào?
2 Cách triển khai Data Layer trong Google Analytics 4 như thế nào?
2.1 Khai báo Data Layer với dataLayer.push
2.1.1 Data Layer Declaration (dataLayer = [...])
2.1.2 dataLayer.push()
2.2 Khai báo Data Layer
2.3 dataLayer.push
2.4 Vì sao phương pháp này tốt hơn cách khai báo dataLayer = []?
3 Google Tag Manager sử dụng dữ liệu trong Data Layer như thế nào?
4 Sử dụng Data Layer Variable
4.1 Vì sao GTM không tự động đọc toàn bộ Data Layer?
4.2 Cách tạo Data Layer Variable
4.3 Data Layer có thể chứa cấu trúc phức tạp hơn
5 Tạo Data Layer Variable trong Google Tag Manager
6 Bật chế độ Preview và Debug trong GTM
7 Gửi biến pricingPlan sang Google Analytics 4
8 Tạo Custom Dimension trong GA4
9 Sử dụng Data Layer để kích hoạt Trigger
9.1 Ví dụ: Tracking đăng ký thành công
9.2 Thêm dữ liệu bổ sung vào sự kiện
9.3 Kiểm tra trong Preview và Debug
10 Custom Event Trigger

Data Layer trong Google Tag Manager là gì? Cách hoạt động và triển khai data layer trong GTM

Đăng vào 25/02/2026 bởi Khánh LinhDanh mục: Wiki SEO
Mục lục nội dung
1 Data Layer trong Google Tag Manager hoạt động như thế nào?
2 Cách triển khai Data Layer trong Google Analytics 4 như thế nào?
2.1 Khai báo Data Layer với dataLayer.push
2.1.1 Data Layer Declaration (dataLayer = [...])
2.1.2 dataLayer.push()
2.2 Khai báo Data Layer
2.3 dataLayer.push
2.4 Vì sao phương pháp này tốt hơn cách khai báo dataLayer = []?
3 Google Tag Manager sử dụng dữ liệu trong Data Layer như thế nào?
4 Sử dụng Data Layer Variable
4.1 Vì sao GTM không tự động đọc toàn bộ Data Layer?
4.2 Cách tạo Data Layer Variable
4.3 Data Layer có thể chứa cấu trúc phức tạp hơn
5 Tạo Data Layer Variable trong Google Tag Manager
6 Bật chế độ Preview và Debug trong GTM
7 Gửi biến pricingPlan sang Google Analytics 4
8 Tạo Custom Dimension trong GA4
9 Sử dụng Data Layer để kích hoạt Trigger
9.1 Ví dụ: Tracking đăng ký thành công
9.2 Thêm dữ liệu bổ sung vào sự kiện
9.3 Kiểm tra trong Preview và Debug
10 Custom Event Trigger

Data Layer là nền tảng cốt lõi giúp Google Tag Manager hoạt động chính xác và linh hoạt hơn trong việc tracking dữ liệu. Nếu bạn từng gặp tình huống tag không kích hoạt hoặc không lấy đúng tham số, rất có thể nguyên nhân nằm ở cách triển khai Data Layer. Hiểu rõ cơ chế push dữ liệu, tạo biến và sử dụng trigger sẽ giúp bạn kiểm soát hệ thống đo lường tốt hơn. Bài viết này giúp bạn nắm được cách Data Layer vận hành và cách ứng dụng nó vào thực tế tracking với GTM và GA4.

Data Layer trong Google Tag Manager hoạt động như thế nào?

Trước khi tiếp tục, lưu ý nhỏ: trong bài viết này tôi sẽ sử dụng luân phiên giữa dataLayer và Data Layer. Thực tế, chúng là một.

Về mặt kỹ thuật, Data Layer trong Google Tag Manager là một mảng JavaScript dùng để lưu trữ tạm thời những thông tin bạn cần. Sau đó, Google Tag Manager sẽ sử dụng dữ liệu này trong các tag/trigger/variable (và về sau, những công cụ khác như Google Analytics hay Meta Pixel cũng có thể sử dụng nguồn dữ liệu này).

Hiểu một cách đơn giản, Data Layer giống như một “lớp dữ liệu ảo” trên website của bạn, nơi chứa nhiều điểm dữ liệu khác nhau và GTM sẽ lấy dữ liệu từ đó để hoạt động (và đó cũng là lý do nó được gọi là “data layer”). Người dùng thông thường sẽ không nhìn thấy lớp dữ liệu này vì nó không hiển thị công khai. Tuy nhiên, nếu bạn biết cách, việc xem nội dung của nó khá đơn giản.

Bạn không cần công cụ đặc biệt nào để xem Data Layer. Chỉ cần sử dụng Developer Tools có sẵn trong trình duyệt:

  1. Nhấp chuột phải vào bất kỳ vị trí nào trên trang và chọn Inspect để mở Developer Tools.

  2. Chuyển sang tab Console.

  3. Gõ dataLayer vào Console và nhấn Enter.

Bạn sẽ thấy trạng thái hiện tại của mảng dataLayer. Nhấn vào các biểu tượng tam giác nhỏ để mở rộng từng object và xem chính xác dữ liệu đã được push vào, bao gồm cả các sự kiện nội bộ của GTM như gtm.js và gtm.dom.

Hãy tưởng tượng Data Layer như một cái xô. Trong xô có những quả bóng nhỏ, và mỗi quả bóng chứa một thông tin nào đó, ví dụ: user ID, thông tin về phần tử được click, mã đơn hàng, danh mục trang, v.v.

Google Tag Manager phụ thuộc rất nhiều vào những gì có trong “cái xô” đó (đặc biệt khi bạn có hành trình người dùng phức tạp và muốn tracking chính xác).

Ví dụ, thông tin về một cú click cụ thể có thể trở thành điều kiện kích hoạt (trigger) cho Google Tag Manager. Hoặc bạn có thể A/B test xem form nào trên website tạo ra nhiều lượt đăng ký nhất bằng cách sử dụng một biến Form ID riêng biệt. Sau đó, bạn gửi dữ liệu này sang GA4 để phục vụ báo cáo.

Bất kỳ ai hoặc bất kỳ thứ gì cũng có thể đưa những “quả bóng dữ liệu” đó vào Data Layer. Đó có thể là plugin bên thứ ba, đoạn code tùy chỉnh do developer viết, hoặc thậm chí chính Google Tag Manager cũng có thể push dữ liệu vào Data Layer.

Hãy lấy ví dụ về việc tracking đơn hàng trên website. Một trong những giải pháp phổ biến là yêu cầu developer push thông tin đơn hàng vào Data Layer sau khi giao dịch thành công. Những thông tin có thể được push bao gồm (nhưng không giới hạn ở):

  • Transaction ID
  • Tổng giá trị giao dịch
  • Doanh thu
  • Thuế
  • Danh sách sản phẩm đã mua, số lượng, product ID, v.v.

Tóm lại, cách GTM và Data Layer hoạt động có thể hiểu như sau:

(Phần minh họa trực quan về cách Google Tag Manager và Data Layer hoạt động)

Trong nhiều trường hợp (ít nhất theo kinh nghiệm của tôi), việc triển khai Data Layer không phải là hoạt động phổ biến với developer. Không phải website nào cũng có hoặc cần một Data Layer chủ động. Việc triển khai Data Layer thường xuất hiện khi bộ phận marketing muốn sử dụng các công cụ Tag Management như Google Tag Manager.

Vì vậy, đừng ngạc nhiên nếu developer của bạn tỏ ra bối rối khi bạn yêu cầu họ “thêm thông tin sản phẩm vào Data Layer”. Đó là lý do tôi cho rằng marketer và analyst nên hiểu rõ Data Layer là gì và nó hoạt động ra sao. Khi bạn nắm được bản chất vấn đề, việc trao đổi với đội dev sẽ trở nên dễ dàng và hiệu quả hơn rất nhiều. Trong các phần tiếp theo của bài viết, chúng ta sẽ tìm hiểu chi tiết hơn Data Layer trong Google Tag Manager là gì, cách cấu hình (nếu cần), và cách sử dụng nó trong hệ thống quản lý thẻ của bạn.

Cách triển khai Data Layer trong Google Analytics 4 như thế nào?

Tôi thường nhận được câu hỏi: làm thế nào để tạo Data Layer? Thực tế, nếu bạn không có nhu cầu sử dụng dữ liệu tùy chỉnh trong hệ thống tag (ví dụ: user ID, product ID…), thì bạn không cần làm thêm bất kỳ thao tác nào trên website. Khi bạn chèn đoạn mã container của Google Tag Manager vào source code của website, một Data Layer cơ bản sẽ tự động được khởi tạo mỗi khi người dùng truy cập trang. Bạn không cần cấu hình thêm. Tuy nhiên, nếu bạn muốn thu thập các thông tin tùy chỉnh (custom data), bạn sẽ cần triển khai Data Layer theo cách riêng. Phần này thường thuộc trách nhiệm của developer. Dưới đây là ví dụ về đoạn mã container của GTM:

<head>
<!– Google Tag Manager –>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({‘gtm.start’:
new Date().getTime(),event:‘gtm.js’});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!=‘dataLayer’?‘&l=’+l:”;j.async=true;j.src=
‘https://www.googletagmanager.com/gtm.js?id=’+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,‘script’,‘dataLayer’,‘GTM-XXXXXXX’);</script>
<!– End Google Tag Manager –>
</head>

Đoạn code trên mới chỉ là một nửa cấu trúc triển khai (ngoài ra còn có phần noscript). Tuy nhiên, vì chúng ta đang tập trung vào Data Layer nên chỉ cần xem phần <script>. Chính đoạn <script> này sẽ tạo Data Layer trên trang. Bạn có thể thấy biến dataLayer được khai báo trực tiếp trong mã. Nếu trang đã tồn tại Data Layer trước đó, đoạn container snippet này sẽ tiếp tục sử dụng lớp dữ liệu sẵn có thay vì tạo mới. Tóm lại, với nhu cầu tracking cơ bản, bạn chỉ cần cài đặt GTM là đủ. Còn khi cần truyền dữ liệu nâng cao như thông tin sản phẩm, đơn hàng hoặc thuộc tính người dùng, bạn sẽ phải làm việc với developer để xây dựng và push dữ liệu vào Data Layer một cách chủ động.

Khai báo Data Layer với dataLayer.push

Bây giờ, hãy nói về cách thực sự đưa dữ liệu vào Data Layer. Mặc định, sau khi được tạo, Data Layer chỉ là một “cái xô” rỗng. Mọi thứ chỉ bắt đầu có ý nghĩa khi có ai đó hoặc một đoạn mã nào đó đưa dữ liệu hữu ích vào để Google Tag Manager sử dụng.

Có hai cách để thêm dữ liệu vào Data Layer:

  • Thêm một đoạn khai báo Data Layer phía trên container snippet của GTM. Cách này được gọi là Data Layer declaration.

  • Hoặc sử dụng phương thức dataLayer.push() để đẩy dữ liệu vào.

Vậy sự khác biệt là gì?

Điểm khác biệt quan trọng nhất là:

  • dataLayer.push() là phương pháp an toàn và linh hoạt hơn vì nó thêm dữ liệu vào Data Layer hiện có.

  • Trong khi đó, cách khai báo dataLayer = [] sẽ ghi đè toàn bộ Data Layer, có thể làm hỏng hệ thống tracking của bạn.

Dưới đây là so sánh chi tiết:

Data Layer Declaration (dataLayer = [...])

Cách hoạt động:
Tạo lại và ghi đè toàn bộ mảng Data Layer.

Vị trí đặt code:
Phải đặt phía trên container snippet của GTM. Nếu đặt bên dưới, nó có thể làm gián đoạn hoặc phá vỡ tracking sự kiện của GTM.

Trường hợp sử dụng:
Chủ yếu dùng khi bạn cần đảm bảo dữ liệu có sẵn ngay tại thời điểm container GTM được tải.

Khuyến nghị:
Không được khuyến khích sử dụng. Các chuyên gia GTM thường tránh phương pháp này vì rủi ro cao làm hỏng cấu hình tracking.

dataLayer.push()

Cách hoạt động:
Thêm dữ liệu mới vào Data Layer hiện có mà không xóa dữ liệu trước đó.

Vị trí đặt code:
Có thể đặt ở bất kỳ đâu trên trang, phía trên hoặc phía dưới container snippet của GTM.

Trường hợp sử dụng:
Là phương pháp được khuyến nghị trong hầu hết mọi tình huống, đặc biệt khi tracking các tương tác xảy ra sau khi trang đã tải xong (ví dụ: click, gửi form…).

Khuyến nghị:
Rất nên sử dụng. Đây là cách an toàn, linh hoạt và được xem là tiêu chuẩn trong ngành khi làm việc với Data Layer.

Khai báo Data Layer

Phương pháp đầu tiên này khá hạn chế và chỉ hoạt động nếu bạn thêm đoạn mã Data Layer phía trên container code của Google Tag Manager. Cá nhân tôi không bao giờ sử dụng cách này. Tuy nhiên, để bạn hiểu rõ hơn, chúng ta vẫn sẽ xem qua.

Giả sử bạn muốn gửi page category làm một custom dimension sang Google Analytics 4. Khi đó, đoạn mã Data Layer cần được thêm phía trên container GTM sẽ như sau:

<script>
dataLayer = [{
‘pageCategory’: ‘google-tag-manager-tips’
}];
</script>
<!– Google Tag Manager –>
…
<!– End Google Tag Manager –>

Nếu bạn không quen thao tác với mã nguồn website, hãy nhờ developer thực hiện. Tuy nhiên, việc này có thể không cần thiết nếu bạn đã cài đặt các plugin hỗ trợ GTM trên website.

Khi trang được tải, một Data Layer sẽ được tạo và chứa một điểm dữ liệu là pageCategory. Sau đó, khi container Google Tag Manager tải xong, bạn có thể sử dụng giá trị pageCategory này trong hệ thống tag thông qua Data Layer Variable.

Một ví dụ khác là dữ liệu giao dịch hoặc sản phẩm. Nếu bạn muốn triển khai Purchase Tracking trong Google Analytics 4, developer cần thêm một đoạn Data Layer phía trên container GTM với các tham số như: transaction_id, value, v.v.

Khi các thông tin này được đưa vào Data Layer, Google Tag Manager có thể lấy dữ liệu và gửi sang GA4.

Tuy nhiên, có nhiều lý do khiến tôi luôn khuyên không nên sử dụng phương pháp này:

  • Nếu đoạn mã dataLayer = [] được đặt bên dưới container Google Tag Manager, toàn bộ hệ thống tracking sự kiện của GTM có thể bị hỏng và ngừng hoạt động. Và tình huống này xảy ra khá thường xuyên.
  • Người mới học GTM thường bối rối không biết khi nào nên dùng dataLayer = [] và khi nào nên dùng dataLayer.push() (phương pháp sẽ được giải thích ở phần tiếp theo). Việc chỉ sử dụng một phương pháp duy nhất sẽ đơn giản và an toàn hơn nhiều.

Tóm lại, các chuyên gia GTM không khuyến nghị sử dụng phương pháp khai báo Data Layer bằng dataLayer = [];.

dataLayer.push

Phương pháp thứ hai (dataLayer.push) là một cách khác để thêm dữ liệu vào Data Layer. Dưới đây là một vài ví dụ minh họa:

Giả sử bạn có một form đăng ký nhận bản tin (newsletter) nhưng không thể tracking dễ dàng bằng các phương pháp theo dõi form thông thường. Khi đó, bạn nên yêu cầu developer đẩy một sự kiện (event) vào Data Layer ngay sau khi người dùng nhập email đăng ký. Đoạn mã có thể trông như sau:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
‘event’: ‘new_subscriber’
});

Nếu cần, bạn có thể yêu cầu developer bổ sung thêm thông tin (ví dụ: vị trí của form – vì có thể bạn có nhiều form trên cùng một trang):

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
‘formLocation’: ‘footer’,
‘event’: ‘new_subscriber’
});

Một ví dụ khác: khi người dùng thêm sản phẩm vào giỏ hàng, một sự kiện Data Layer (kèm thông tin sản phẩm) có thể được kích hoạt:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
‘event’: ‘addToCart’,
‘products’: [{
‘id’: ‘123’,
‘name’: ‘Black T-shirt’,
‘brand’: ‘nike’,
‘quantity’: 1
}]
});

Vì sao phương pháp này tốt hơn cách khai báo dataLayer = []?

  • Có thể đặt ở bất kỳ đâu trong mã nguồn (trên hoặc dưới container Google Tag Manager) mà không làm hỏng hệ thống tracking sự kiện của GTM. Trong khi đó, phương pháp khai báo Data Layer bắt buộc phải đặt phía trên snippet GTM.

  • Dòng lệnh window.dataLayer = window.dataLayer || []; giúp đảm bảo an toàn. Nó kiểm tra xem Data Layer (window.dataLayer) đã tồn tại trên trang chưa.

    • Nếu đã tồn tại → giữ nguyên.

    • Nếu chưa tồn tại (ví dụ script chạy trước khi GTM load xong) → tạo một mảng rỗng mới.

Nhờ vậy, lệnh dataLayer.push() luôn có một mảng để thêm dữ liệu vào, tránh lỗi và giúp đoạn mã hoạt động ổn định, an toàn hơn.

Với phương pháp này, bạn có thể đẩy các sự kiện vào Data Layer và sử dụng chúng làm điều kiện kích hoạt (trigger) trong Google Tag Manager.

Ví dụ, khi người dùng gửi form, developer có thể thêm đoạn mã:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
‘event’: ‘formSubmission’
});

Vì đoạn mã trên chứa key event, nên bạn có thể sử dụng sự kiện formSubmission làm điều kiện kích hoạt thông qua Custom Event Trigger trong GTM.

Nếu bạn muốn tìm hiểu sâu hơn về dataLayer.push, hãy tham khảo thêm các tài liệu hướng dẫn chuyên sâu về chủ đề này.

Google Tag Manager sử dụng dữ liệu trong Data Layer như thế nào?

Google Tag Manager (GTM) sử dụng thông tin được lưu trong Data Layer theo hai cách:

  1. Lưu trữ một số dữ liệu vào biến (Variables).
    Phần này sẽ được giải thích chi tiết ở mục #3.1.

  2. Xác định thời điểm kích hoạt thẻ (Tags) thông qua trigger (bạn có thể dùng các event trong Data Layer làm điều kiện kích hoạt).
    Nội dung này sẽ được trình bày ở mục #5.

Tóm lại:

  • Phần thứ nhất được thực hiện bằng Data Layer Variable.

  • Phần thứ hai được thực hiện bằng Trigger.

Sử dụng Data Layer Variable

Giả sử blog này có nhiều tác giả:

  • Julius Fedorovicius
  • John Doe
  • Jack Torrance
  • v.v.

Tôi muốn biết tác giả nào viết nội dung thu hút nhất, sau đó phân đoạn (segment) session trong Google Analytics. Tôi đang sử dụng plugin GTM4WP cho WordPress, plugin này tự động lưu tên tác giả bài viết vào Data Layer. Nếu bạn không dùng WordPress, bạn có thể yêu cầu developer thêm dữ liệu vào Data Layer. Ví dụ:

<head>
<script>
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
pagePostAuthor: ‘Julius Fedorovicius’
});
</script>
<!– Google Tag Manager –>
…
<!– End Google Tag Manager –>
</head>

Mặc định, Google Tag Manager không tự động nhận diện dữ liệu tùy chỉnh trong Data Layer. Bạn không thể dùng các biến thông thường để lấy dữ liệu đó — trừ khi bạn tạo Data Layer Variable.

Vì sao GTM không tự động đọc toàn bộ Data Layer?

Đây là chủ ý trong thiết kế và thực tế là một điều tốt. GTM chỉ quan tâm đến những dữ liệu mà bạn chủ động khai báo. Khi bạn tạo một Data Layer Variable, bạn đang nói với GTM:

“Thông tin này quan trọng với tôi, hãy cho phép tôi sử dụng nó trong tag và trigger.”

Cách này giúp container của bạn gọn gàng, tránh bị “quá tải” bởi dữ liệu không cần thiết.

Cách tạo Data Layer Variable

Để tạo biến, bạn cần nhập Data Layer key mà bạn muốn lấy giá trị. Khi biến được gọi, nó sẽ trả về giá trị mới nhất được push vào key đó.

Ví dụ: Nếu muốn lấy giá trị pagePostAuthor, bạn chỉ cần nhập đúng key này vào phần cài đặt biến.

Giả sử bạn muốn gửi một sự kiện GA4 khi có người để lại bình luận. Đồng thời, bạn muốn gửi kèm tên tác giả bài viết để biết tác giả nào tạo ra nhiều tương tác nhất. Trong ví dụ này, tôi không đi sâu vào cách tạo tag, mà chỉ minh họa cách lấy dữ liệu tác giả từ Data Layer và chuyển thành biến trong GTM.

Trong tài khoản GTM:

  1. Vào Variables
  2. Tạo biến mới
  3. Chọn loại biến: Data Layer Variable (DLV)

Lưu ý quan trọng:
Trường Data Layer Variable Name phân biệt chữ hoa – chữ thường (case-sensitive). Điều đó có nghĩa là chỉ pagePostAuthor mới hoạt động. Các biến thể như pagepostauthor hoặc Pagepostauthor sẽ không hoạt động vì không trùng với key đã lưu trong Data Layer.

Sau khi tạo xong:

  • Lưu biến

  • Refresh chế độ Preview & Debug (P&D)

  • Kiểm tra xem biến có lấy đúng dữ liệu hay không

Bạn sẽ thấy biến vừa tạo xuất hiện trong tab Variables của giao diện Preview & Debug.

Data Layer có thể chứa cấu trúc phức tạp hơn

Ví dụ:

{
attributes: {
pagePostAuthor: {
authorName: ‘Julius Fedorovicius’,
authorTag: ‘Google Tag Manager’
}
}
}

Nếu bạn muốn lấy giá trị authorName, bạn cần hiểu cách truy cập bằng dot notation (ký pháp dấu chấm).

Ví dụ key sẽ là:

attributes.pagePostAuthor.authorName

Khi làm việc với developer, bạn nên thống nhất một quy ước đặt tên (naming convention) cho các key trong Data Layer.

Google Tag Manager có thể xử lý nhiều kiểu đặt tên như:

  • page_category (snake_case)

  • pageCategory (camelCase)

Tuy nhiên, việc chọn một kiểu duy nhất và dùng nhất quán sẽ giúp hệ thống tracking sạch sẽ hơn, giảm lỗi sai do phân biệt chữ hoa – chữ thường và giúp cả team dễ đọc, dễ hiểu cấu trúc dữ liệu hơn.

Tạo Data Layer Variable trong Google Tag Manager

Trước tiên, bạn cần tạo một Data Layer Variable trong container GTM. Khi đó, Tag Manager sẽ nhận diện tham số và lưu giá trị của nó.

Thực hiện như sau:

  1. Vào Variables

  2. Cuộn xuống phần User-defined Variables

  3. Nhấn New

Tôi thường đặt tên các Data Layer Variable bắt đầu bằng “dlv” để dễ quản lý và phân biệt.

Tiếp theo:

  • Chọn Variable Type → Data Layer Variable

  • Nhập pricingPlan vào trường Data Layer Variable Name (vì đây là key đã được developer push vào dataLayer)

  • Nhấn Save

Bật chế độ Preview và Debug trong GTM

Bây giờ, hãy kiểm tra xem GTM có nhận được biến pricing_plan hay không.

Trong giao diện GTM:

  1. Nhấn nút Preview để vào chế độ Preview & Debug

  2. Một tab mới sẽ mở ra và yêu cầu bạn nhập URL website

  3. Nhấn Start, bạn sẽ được chuyển đến website

Trong cửa sổ Preview:

  • Nhấn tab Variables

  • Tìm biến pricingPlan

  • Kiểm tra giá trị của nó

Nếu biến trả về giá trị undefined, hãy kiểm tra lại xem bạn đã nhập đúng tên Data Layer Variable trong GTM chưa (lưu ý: phân biệt chữ hoa – chữ thường).

Nếu cấu hình đúng, bạn sẽ thấy giá trị như Free hoặc Premium hiển thị tại đây.

Gửi biến pricingPlan sang Google Analytics 4

Quay lại tài khoản Google Tag Manager.

Mở Google tag hiện có. Nếu chưa có, hãy tạo mới:

  1. Vào Tags → Nhấn New

  2. Đặt tên tag (ví dụ: GA4 config)

  3. Nhấn vào Tag Configuration

Cấu hình như sau:

  • Chọn Tag Type → Google Analytics → Google tag

  • Nhập GA4 Measurement ID (hoặc biến chứa ID đó)

  • Tích chọn Send a page view event when this configuration loads

  • Ở phần Triggering, chọn Initialization – All Pages

Nếu container của bạn đã có Google tag, không cần tạo mới. Hãy sử dụng tag hiện có và thêm biến vào phần Shared Event Settings.

Lưu ý:
Thông thường, cấu hình này là đủ. Tuy nhiên, trong một số trường hợp, giá trị biến có thể thay đổi ngay trên cùng một trang mà không reload. Nếu gặp tình huống này, bạn nên thêm custom dimension vào từng event tag riêng lẻ.

Tạo Custom Dimension trong GA4

Vì pricingPlan là tham số tùy chỉnh do bạn (hoặc developer) tạo, nên Google Analytics 4 sẽ không tự động hiển thị nó trong báo cáo. Bạn cần đăng ký nó như một Custom Dimension.

Thực hiện các bước sau:

  1. Đăng nhập vào tài khoản Google Analytics 4

  2. Vào property của website

  3. Nhấn Admin

  4. Chọn Custom Definitions

  5. Nhấn Create Custom Dimension

Cấu hình:

  • Dimension name: pricing_plan

  • Scope: Event

  • Event Parameter: pricing_plan

Sau đó nhấn Create.

Ngoài ra, bạn cũng có thể tạo dimension theo phạm vi User (user-scoped) nếu phù hợp với mục đích phân tích. Cuối cùng, hãy chờ khoảng 24 giờ để dữ liệu bắt đầu hiển thị trong giao diện báo cáo của GA4.

Sử dụng Data Layer để kích hoạt Trigger

Toàn bộ cơ chế tracking sự kiện trong Google Tag Manager (GTM) đều dựa trên Data Layer. Nếu bạn muốn ghi nhận một tương tác và kích hoạt một tag cụ thể (ví dụ: thẻ chuyển đổi Google Ads), thì tương tác đó trước tiên phải được đẩy vào Data Layer.

Chỉ sau đó, GTM mới có thể nhận diện và sử dụng nó làm điều kiện kích hoạt (trigger). Điều này áp dụng cho cả:

  • Sự kiện tiêu chuẩn (ví dụ: click link, gửi form)
  • Sự kiện tùy chỉnh (ví dụ: mua hàng, đăng nhập)

Trong phần này, chúng ta sẽ tập trung vào custom event tracking.

Ví dụ: Tracking đăng ký thành công

Giả sử bạn muốn tracking sự kiện người dùng đăng ký thành công và gửi dữ liệu đó về Google Analytics.

Một giải pháp là yêu cầu developer thêm đoạn mã sau mỗi khi người dùng hoàn tất đăng ký:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
‘event’: ‘registrationComplete’
});

Phần quan trọng nhất ở đây là key event. Nếu bạn muốn kích hoạt tag mỗi khi một tương tác cụ thể xảy ra, key này là bắt buộc.

Trong GTM, event là một key có chức năng đặc biệt. Khi GTM thấy một dataLayer.push có chứa key event, nó sẽ:

  • Xem đó là một mốc sự kiện riêng biệt

  • Hiển thị tên event trong luồng sự kiện của chế độ Preview

  • Cho phép bạn tạo Custom Event Trigger

Ngược lại, nếu bạn push dữ liệu mà không có key event, thì dữ liệu chỉ được lưu vào Data Layer để sử dụng sau này, nhưng sẽ không tự tạo ra một sự kiện có thể kích hoạt trigger.

Thêm dữ liệu bổ sung vào sự kiện

Giả sử bạn cũng muốn biết người dùng đăng ký gói nào (Free hay Premium). Khi đó, bạn có thể mở rộng đoạn mã:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
‘event’: ‘registrationComplete’,
‘plan’: ‘Premium’
});

Kiểm tra trong Preview và Debug

Sau khi developer xác nhận đã triển khai mã, bạn cần kiểm tra:

  1. Bật chế độ Preview và Debug trong GTM

  2. Thực hiện một lần đăng ký thử

  3. Quan sát bảng debug

Ở phía bên trái (event stream), bạn phải thấy sự kiện registrationComplete xuất hiện.

Tiếp theo:

  • Click vào event registrationComplete
  • Chuyển sang tab Data Layer
  • Kiểm tra xem key plan có tồn tại không

Nếu thấy key plan, nghĩa là developer đã triển khai đúng.

Nếu không thấy registrationComplete, hãy liên hệ lại developer để họ kiểm tra và sửa theo đúng yêu cầu.

Custom Event Trigger

Giả sử developer đã push dữ liệu (bao gồm key event) vào Data Layer thành công. Bước tiếp theo là “bắt” sự kiện đó và biến nó thành điều kiện kích hoạt.

Mặc định, Google Tag Manager không tự động kích hoạt tag chỉ vì có event được push vào Data Layer. Bạn cần chủ động cấu hình.

Vì chúng ta muốn tracking đăng ký thành công, nên cần nói với GTM rằng event registrationComplete là quan trọng và sẽ được dùng làm trigger.

Thực hiện như sau:

  1. Vào Triggers

  2. Nhấn New

  3. Chọn loại trigger: Custom Event

  4. Nhập tên sự kiện: registrationComplete

Lưu ý: tên event phân biệt chữ hoa – chữ thường.

Sau khi lưu, bạn đã tạo xong một Custom Event Trigger trong Google Tag Manager. Tiếp theo, bạn chỉ cần gắn trigger này vào tag (ví dụ: GA4 Event Tag) để hoàn tất tracking sự kiện đăng ký thành công.

Khi làm việc với Data Layer, điều quan trọng không chỉ là biết cách viết dataLayer.push() mà còn hiểu cách GTM đọc dữ liệu và biến chúng thành trigger hoặc biến số trong báo cáo. Việc thống nhất naming convention, kiểm tra bằng Preview Mode và đăng ký custom dimension trong GA4 sẽ giúp hệ thống tracking của bạn ổn định và dễ mở rộng. Khi bạn hiểu đúng bản chất Data Layer, việc trao đổi với developer cũng trở nên rõ ràng và hiệu quả hơn rất nhiều.

Tài liệu tham khảo:

Google Tag Manager Data Layer Explained

Khánh Linh
Khánh Linh
662 bài đăng
Khánh Linh
Khánh Linh
662 bài đăng
  • VietMoz xin chào!

TRUNG TÂM ĐÀO TẠO VIETMOZ ACADEMY

Địa chỉ: Số 18 ngõ 11 Thái Hà, Đống Đa, Hà Nội
Điện thoại: (0246) 292 3344 – (0246) 291 2244
Hotline: 098 380 3333
Email: info@vietmoz.com

Google Partners Chung nhan Tin Nhiem Mang
DMCA.com Protection Status

Truy cập nhanh

  • Hướng dẫn thanh toán
  • Cơ sở vật chất
  • Chính sách bảo mật thông tin
  • Tổng quan về Digital Marketing
  • Tìm hiểu Marketing là gì
Bản quyền © bởi Trung tâm đào tạo VietMoz Academy. Tối ưu bởi Code Tốt.
  • Trang chủ
  • Giới thiệu
    • Giới thiệu VietMoz Academy
    • Cơ sở vật chất
    • Hoạt động cộng đồng
  • Chương trình học
    • Lịch tuyển sinh
    • Khóa học SEO tiêu chuẩn
    • Google Marketing
      • Khóa học Adwords Pro Sales
      • Khoá học Google Map Premium
      • Khóa học SEO HCM Special
      • Khóa học GA4 from Zero to Hero
    • Thực hành quảng cáo Facebook
      • Khóa học Winning Facebook Ads
      • Khóa học Facebook Marketing
    • Khoá học kinh doanh thương mại điện tử trên sàn Shopee
    • Marketing tinh gọn
      • Marketing Fundamentals
      • Khoá học MSP – Thực hành xây dựng chiến lược marketing
      • Khoá học Digital Masterclass
      • Khóa học Sale Promotion
  • Blog
    • Tin tức
    • Cách làm SEO
      • SEO Cafe – Tin tức SEO mới nhất
      • Wiki SEO – Thư viện kiến thức quan trọng
      • SEO Guide – Hướng dẫn làm SEO
      • SEO Case Study
      • Resource – Công cụ & Template
    • Blog Marketing
    • Kiến thức Google Adwords
    • Blog Facebook Marketing
    • Blog Content
  • Liên hệ
    • Đăng ký học
    • Hướng dẫn thanh toán
    • Bản đồ đường đi
Gõ để tìm