Bài 8/10Kiến thức

Bài 8, Debug và audit GA4: đảm bảo dữ liệu bạn thấy là dữ liệu thật

5 công cụ debug (Realtime, DebugView, Tag Assistant, GTM Preview, BigQuery), quy trình audit 10 điểm phổ biến nhất, và bộ AI prompt để paste dataLayer dump cho audit nhanh.

The Data Way13 phút đọc
Series Google Analytics, The Data Way

Cài xong không bằng cài đúng. Trong 2 năm tôi làm dự án GA4, ~70% setup tôi audit có ít nhất một lỗi đáng kể mà chủ doanh nghiệp không biết.

Bài này tóm 5 công cụ debug cần biết, quy trình audit 10 điểm, và một bộ prompt AI để paste data nhanh.


5 công cụ debug phải biết

1. GA4 Realtime, kiểm tra dữ liệu đang chảy về

Vào GA4 → Reports → Realtime.

Dùng để: confirm event đang gửi về GA4 ngay tại thời điểm này. User truy cập website → trong 30 giây xuất hiện ở đây.

Hạn chế: không xem được parameter detail. Chỉ thấy event name và count.

Best practice: mở Realtime trong 1 tab khi đang test trên website ở tab khác. Bất kỳ event nào không xuất hiện trong 1 phút → tag không fire.

2. GA4 DebugView, xem event chi tiết

Vào GA4 → Admin → DebugView (hoặc cuộn xuống cuối Admin sidebar).

DebugView chỉ hiển thị event từ session có debug_mode = true. Có 2 cách bật:

  • Cách A: cài extension GA Debugger trên Chrome → click icon → từ giờ session của bạn được track với debug mode
  • Cách B: trong GTM, GA4 Configuration tag → Configuration parameters → thêm debug_mode = true → publish (chỉ làm tạm thời khi audit, sau khi xong gỡ ra)

Trong DebugView, bạn thấy stream of event theo thời gian thực với đầy đủ parameter. Click vào từng event xem detail: parameter value, user property, timestamp.

Đây là công cụ debug chính. Dùng nhiều nhất trong audit.

3. Tag Assistant Companion, Chrome extension chính thức của Google

Cài từ Chrome Web Store: Tag Assistant Companion.

Tính năng:

  • Detect tất cả Google tag trên page (GA4, GTM, Ads, Floodlight)
  • Hiển thị Measurement ID + Container ID
  • Validate cấu hình của từng tag

Dùng để: kiểm tra nhanh website đang chạy bao nhiêu tag, có tag nào setup sai không. Đặc biệt hữu ích khi audit website do người khác làm.

4. GTM Preview mode, debug từng tag

Bài 4-5 đã dùng. Recap:

  • Vào GTM workspace → Preview → connect domain
  • Mọi action trên website hiển thị trong Tag Assistant
  • Click vào từng event để xem tag nào fired, variable value nào
  • Click vào tag không fire → GTM nói rõ vì sao trigger không match

Khi data sai → Preview mode là chỗ debug đầu tiên. 80% case lỗi tìm ra ở đây.

5. BigQuery export, audit sâu nhất

GA4 có miễn phí BigQuery export (giới hạn 1 triệu event/ngày cho free tier). Vào Admin → BigQuery Links → Link → chọn Google Cloud project.

Sau 24h, mọi event GA4 nhập vào table BigQuery: events_YYYYMMDD. Bạn query trực tiếp bằng SQL.

Khi nào dùng:

  • So sánh số liệu GA4 báo với raw event (giải thích sai lệch)
  • Tìm event lạ (vd. có gì track tự nhiên với parameter unusual)
  • Audit lịch sử (DebugView chỉ thấy realtime; BigQuery thấy tất cả)

Cần biết SQL cơ bản. Phần này dùng AI rất hiệu quả, sẽ nói ở dưới.

BigQuery cost trap

BigQuery free tier: 10GB lưu trữ + 1TB query/tháng miễn phí. Đủ với hầu hết SME.

Nhưng nếu bạn chạy query lớn (SELECT * FROM events trên 1 năm dữ liệu) → có thể vượt 1TB → bill tăng nhanh.

Quy tắc: luôn query với WHERE event_date BETWEEN ... để giới hạn date range. Và dùng EXTRACT thay vì cast date string. Tiết kiệm 90% cost.


Quy trình audit end-to-end

Mọi event đi qua 5 stage. Lỗi có thể nằm bất cứ chỗ nào. Check theo thứ tự:

[1. User Action] → [2. Code/Plugin] → [3. dataLayer] → [4. GTM] → [5. GA4]

Stage 1, User Action (mở DevTools Console)

User click vào nút Đặt lịch → có handler được gọi không? Bật DevTools → Console → click nút → có log không?

Nếu không có log → JS handler chưa attach → tag sẽ không bao giờ fire dù GTM cài đúng.

Stage 2, Code/Plugin (kiểm tra plugin / code custom)

Nếu dùng plugin (GTM4WP, Shopify app), check log của plugin trong Console. Nếu code custom, đặt console.log trước mỗi dataLayer.push để verify push được gọi.

Stage 3, dataLayer (Console gõ dataLayer)

> dataLayer
[
  { event: "gtm.js", gtm.start: ... },
  { event: "gtm.dom", ... },
  { event: "view_item", ecommerce: { ... } },  // ← phải có push này
]

Nếu dataLayer KHÔNG có event mong đợi → vấn đề ở stage 2 (push chưa được gọi).

Stage 4, GTM Preview

Mở GTM Preview → click button trên website → trong Tag Assistant:

  • Event xuất hiện ở left panel? (nếu không → trigger điều kiện chưa match)
  • Tag fire ở event đó? (nếu không → trigger blocking, hoặc tag bị disable)
  • Tag fire nhưng error? (nếu có → click vào tag xem detail)

Stage 5, GA4 DebugView

Mở DebugView → đợi 30 giây sau action → event xuất hiện?

  • Có → flow đúng. Check parameter có đầy đủ không.
  • Không → vấn đề ở stage 4 hoặc network (ad blocker, transport_url sai)

Quy trình này áp dụng cho mọi audit. Sau 5-10 lần làm bạn sẽ thuần thục.


10 sai sót phổ biến nhất

Tôi đã thấy mỗi cái dưới đây ít nhất 5-10 lần trong các audit:

1. Event track 2 lần

Triệu chứng: doanh thu GA4 = 2× MISA. Hoặc user count gấp đôi expected.

Nguyên nhân: cài cả gtag + GTM mà chưa gỡ gtag (bài 4). Hoặc cài cả plugin GTM4WP + tag GA4 custom thủ công.

Cách check: DebugView → mua thử 1 đơn → đếm số lần event purchase xuất hiện. Nếu 2 → có double.

Cách sửa: tìm và gỡ một nguồn track.

2. Currency mismatch

Triệu chứng: GA4 báo purchase với value 4500000 nhưng MISA báo 450000. Hoặc số lẫn $45.00.

Nguyên nhân: currency setting của GA4 property là VND nhưng dataLayer push currency là USD. GA4 dùng currency của event để convert.

Cách check: trong DebugView → click event purchase → tìm parameter currency. Phải là VND. Tìm parameter value, phải là số VND (vd. 450000), không phải 4.5 (USD nghĩ là VND).

3. Items array thiếu price hoặc quantity

Triệu chứng: GA4 báo conversion count đúng nhưng revenue toàn 0.

Nguyên nhân: dataLayer push items với chỉ item_iditem_name, thiếu price hoặc quantity.

Cách check: DebugView → click purchase → expand items → mỗi item phải có price (số) và quantity (số).

4. SKU không nhất quán giữa view_item và purchase

Triệu chứng: GA4 báo view_item 1000 cho sản phẩm A, purchase 50 cho sản phẩm A, nhưng item_id ở 2 event khác nhau (vd. view_item dùng prod-123, purchase dùng 123).

Nguyên nhân: chỗ track view_item lấy SKU từ frontend, chỗ track purchase lấy từ order DB có format khác.

Cách check: report GA4 Reports → Monetization → Ecommerce purchases → so item_id ở view_item vs purchase.

Cách sửa: đồng bộ format SKU. Thường chỗ purchase đúng → fix view_item.

5. Internal traffic chưa filter

Triệu chứng: số user vào trang admin (vd. /wp-admin) lớn. Hoặc traffic đến trang nội bộ.

Cách check: Reports → Engagement → Pages and screens → xem có path nào nội bộ.

Cách sửa: bài 3 phần 5.2 (internal traffic filter qua IP). Plus có thể loại path admin trong GTM (block trigger).

6. Cross-domain không cài

Triệu chứng: user vào congty.vn, click sang app.congty.vn, GA4 báo 2 user khác nhau.

Cách check: DebugView → mở congty.vn, ghi user_id (parameter _ga). Click sang app.congty.vn → check user_id mới, có giống cũ không?

Cách sửa: bài 3 phần 5.3 (configure domains).

7. Bot traffic không filter

Triệu chứng: nhiều “user” vào website ban đêm với behavior lạ (xem 1 trang rồi thoát).

Cách check: Reports → Tech → Operating system → có nhiều “Other” hoặc các OS lạ → có khả năng bot.

Cách sửa: GA4 tự filter bot known. Nhưng nhiều bot custom không filter. Cài exclude list trong GTM: trigger blocking nếu Navigator User Agent match pattern bot.

8. UTM parameter sai

Triệu chứng: traffic source/medium hiển thị (not set) hoặc (direct) / (none) rất nhiều.

Cách check: Reports → Acquisition → Traffic acquisition → xem distribution.

Cách sửa: chuẩn hoá UTM. Luôn dùng utm_source, utm_medium, utm_campaign cho mọi link. Đừng dùng utm_Source (case-sensitive). Đừng dùng dấu cách trong value.

9. Conversion không được đánh dấu

Triệu chứng: event purchase được track nhưng báo cáo Conversions vẫn empty.

Cách check: Admin → Events → tìm event purchase → cột “Mark as conversion” phải bật (toggle xanh).

Cách sửa: bật toggle. Đợi 24h conversion xuất hiện trong Reports → Engagement → Conversions.

10. Data retention 2 tháng

Triệu chứng: không xem được báo cáo cohort hơn 2 tháng. User-level dimension trống ở data cũ.

Cách check: Admin → Data Settings → Data Retention → User and event data retention. Nếu 2 months → đó là vấn đề.

Cách sửa: đổi thành 14 months. Bài 3 phần 5.1.

Tần suất gặp các sai sót trong audit của tôi (2024-2025)

Dựa trên ~30 audit GA4 cho doanh nghiệp Việt:

  • Sai sót 1 (double track): ~35% website
  • Sai sót 2 (currency): ~15%
  • Sai sót 3 (items thiếu field): ~25%
  • Sai sót 4 (SKU không nhất quán): ~20%
  • Sai sót 5 (internal traffic): ~50% (cái này phổ biến nhất)
  • Sai sót 9 (conversion chưa đánh dấu): ~30%
  • Sai sót 10 (retention 2 tháng): ~60% (default mới)

Nếu bạn vừa cài GA4, khả năng cao ít nhất 2-3 sai sót đang ngầm. Chạy audit qua checklist này, 30 phút.


AI hỗ trợ, paste data, nhận audit report

Audit dataLayer dump

Mở Console → gõ JSON.stringify(dataLayer, null, 2) → copy output. Paste vào AI:

Đây là dataLayer dump của website e-commerce Việt sau khi user:
1. Vào trang chủ
2. Mở chi tiết 1 sản phẩm
3. Thêm vào giỏ
4. Checkout
5. Hoàn tất mua hàng

[paste dataLayer JSON]

Audit:
1. Có sai sót trong schema items array nào không?
2. Currency, value, transaction_id có đúng format không?
3. Có event nào bị duplicate?
4. Có event nào không phải tên chuẩn GA4 (nên đổi tên)?
5. So với best practice GA4 ecommerce, thiếu event/parameter nào?

Output dạng bảng: [sai sót] | [mức độ ảnh hưởng cao/trung/thấp] | [cách sửa cụ thể].

AI ra báo cáo trong 30 giây. Tôi đã thử trên ~20 dataLayer khác nhau, AI tìm ra ~80-90% lỗi mà mắt thường bỏ qua.

Audit DebugView screenshot

Chụp màn hình DebugView event detail. Paste:

Đây là chi tiết một event `purchase` trong GA4 DebugView. Liệt kê:
1. Parameter nào MỀ DỪNG/SAI
2. Parameter nào nên có nhưng không có
3. Có dấu hiệu nào của double tracking không?

[paste screenshot]

AI đọc được parameter từ screenshot → ra báo cáo.

Viết BigQuery SQL audit

Cần check sâu nhưng không biết SQL? Prompt:

Tôi có GA4 BigQuery export. Schema chuẩn (events_YYYYMMDD table với
nested fields event_params, ecommerce, user_properties, etc.).

Viết query SQL để tìm:
1. Tất cả purchase event trong 7 ngày qua có value > 10 triệu (đơn lớn, verify với MISA)
2. Tỷ lệ user mua sau khi xem ≥3 sản phẩm (cohort funnel)
3. Top 10 sản phẩm bị add_to_cart nhưng không purchase (trong 30 ngày)
4. Phát hiện event purchase nào có items[] rỗng (lỗi tracking)

Project: my-project. Dataset: analytics_123456789.
Output: 4 query rời nhau, comment giải thích từng query.

Output ra 4 SQL ready-paste vào BigQuery. So với tự viết: 1 giờ thay vì 5 phút.

Mẹo audit nhanh khi thừa hưởng GA4 từ ai khác

Nếu bạn vừa được giao quản lý GA4 mà người trước không bàn giao gì, làm 3 bước:

  1. Audit list event (5 phút): Reports → Engagement → Events. List ra. Mỗi event không hiểu vì sao có → nghi ngờ.

  2. Audit conversion (5 phút): Admin → Events → cột Mark as conversion. List conversion. Nếu thấy event lạ là conversion (vd. gtm_dom_ready) → có người setup sai từ trước.

  3. Audit custom dimensions (5 phút): Admin → Custom definitions. Mỗi custom dimension có comment giải thích vì sao tạo không? Không có → có thể safely delete sau khi confirm với người dùng.

  4. Paste tất cả vào AI (10 phút) với prompt: “Đây là cấu hình GA4 hiện tại. Đánh giá tổng thể chất lượng và liệt kê 5 việc tôi nên làm trong tuần đầu tiên quản lý”.

Tổng 30 phút bạn có overview của một GA4 setup lạ.


Trước khi sang bài 9

Sau bài này, GA4 của bạn nên:

  1. ✅ Đã chạy audit 10 sai sót phổ biến, tất cả pass
  2. ✅ DebugView không thấy event lạ hoặc double
  3. ✅ Doanh thu GA4 vs MISA lệch dưới 5%
  4. ✅ BigQuery export đã link (nếu cần audit sâu sau)
  5. ✅ Internal traffic filter đã active (test bằng cách vào website từ văn phòng → 30 phút sau không xuất hiện trong Realtime)
  6. ✅ Conversion đã đánh dấu cho tất cả event quan trọng

Bài tiếp theo là phần “đưa số liệu ra giao diện”, dựng dashboard Looker Studio kết nối GA4 trong 1 buổi. Phần dùng AI nhiều nhất series là ở đây: AI viết formula, query, chart config cho bạn.

Khi data quality vẫn lệch sau khi check 10 sai sót

Đôi khi check hết 10 cái mà GA4 vẫn lệch MISA quá. Lý do tiếp theo thường là:

  • Tracking ngoài website: đơn hàng đến qua hotline / Zalo / walk-in không vào GA4 → MISA cao hơn GA4. Đây là expected.
  • Refund đã ghi MISA nhưng chưa gửi GA4 refund event → GA4 cao hơn MISA.
  • Tax inclusion: MISA tính revenue ex-VAT, GA4 tính inc-VAT → GA4 cao hơn ~10%.

Nếu lệch giải thích được bằng 3 nguyên nhân trên → data quality tốt. Sai lệch chính đáng. Nếu không giải thích được → quay lại debug.

Đọc tiếp

Đọc xong rồi?

Bạn muốn cài giúp hoặc nhờ rà soát?

30 phút trao đổi miễn phí. Bạn share screen GA4/GTM hiện tại, chúng tôi chỉ ra 3 chỗ đang đo sai và cách sửa. Không sales, không ép.