PRIVACY · COMPLIANCE

Consent Mode v2 cho doanh nghiệp Việt Nam: hướng dẫn implementation từ Nghị định 13

Nhiều doanh nghiệp Việt Nam nghĩ Consent Mode v2 chỉ áp dụng ở EU. Thực tế: Nghị định 13/2023/NĐ-CP có hiệu lực từ 1/7/2023 yêu cầu tương đương GDPR về xin phép xử lý dữ liệu cá nhân. Bài này hướng dẫn triển khai Consent Mode v2 với code mẫu thực, test bằng Tag Assistant, và tránh 6 lỗi phổ biến.

Tóm tắt nhanh (Key takeaways)

  • Nghị định 13/2023/NĐ-CP yêu cầu xin consent rõ ràng — Consent Mode v2 là giải pháp tuân thủ Google.
  • 4 signal Consent Mode v2: ad_storage, ad_user_data, ad_personalization, analytics_storage.
  • Setup default "denied" trước khi tag fire — quan trọng để được "modeled conversion".
  • Tag Assistant + DebugView GA4 giúp verify consent signal đang truyền đúng.
  • Lỗi phổ biến: gọi gtag('consent','update',...) sau khi tag đã fire → consent không có hiệu lực.

Tổng quan Consent Mode v2

Consent Mode là cơ chế Google cho phép website truyền tín hiệu consent đến Google tags (Ads, GA4, Floodlight). Version 2 (ra mắt tháng 3/2024) thêm 2 signal mới: ad_user_dataad_personalization — bắt buộc để dùng Enhanced Conversions for Leads và Audience targeting.

SignalMục đíchBắt buộc cho
ad_storageLưu cookie cho ads (GCLID, conversion ID)Tất cả Google Ads
ad_user_dataGửi user data (email/phone hash) cho GoogleEnhanced Conversions
ad_personalizationCho phép cá nhân hóa quảng cáoRemarketing, similar audience
analytics_storageLưu cookie GA4 (_ga, _ga_*)GA4 analytics

Code mẫu setup đúng cho website Việt Nam

Đặt code này trước tag Google Ads/GA4 trong <head>:

<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

// 1. Default: denied (chưa xin consent → coi như từ chối)
gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied',
  'wait_for_update': 500   // đợi 500ms để CMP load
});

// 2. URL passthrough giúp truyền GCLID khi cookie bị deny
gtag('set', 'url_passthrough', true);

// 3. Conversion modeling khi user denied
gtag('set', 'ads_data_redaction', true);
</script>

Sau khi user click "Đồng ý" trên CMP banner, gọi:

gtag('consent', 'update', {
  'ad_storage': 'granted',
  'ad_user_data': 'granted',
  'ad_personalization': 'granted',
  'analytics_storage': 'granted'
});

Test bằng Google Tag Assistant

  1. Cài Chrome extension "Tag Assistant Companion"
  2. Mở website, F12 → Tab "Tag Assistant"
  3. Kiểm tra Consent State của từng tag: ad_storage: denied trước consent, granted sau khi click "Đồng ý"
  4. Vào Google Ads → Tools → Conversions → chọn conversion → "Diagnostics" → phải hiển thị "Consent Mode signal received"

6 lỗi phổ biến TyphanAds gặp khi audit Consent Mode

Lỗi #1: Tag fire trước consent default

Nguyên nhân: code consent default đặt sau tag Google Ads. Hậu quả: tag chạy với consent mặc định "granted" của Google, không có modeled conversion. Sửa: di chuyển consent default lên TRƯỚC mọi tag, kể cả GTM container.

Lỗi #2: Gọi consent update không có wait_for_update

Nếu CMP banner load chậm (1-2s), Google tag đã fire với "denied" trước khi user kịp consent. Sửa: thêm wait_for_update: 500 hoặc 2000 nếu CMP chậm.

Lỗi #3: Quên url_passthrough

Khi ad_storage = denied, Google Ads không lưu GCLID vào cookie. Phải bật url_passthrough = true để truyền GCLID qua URL (?gad_source=1&gclid=...) tới conversion page.

Lỗi #4: CMP không gửi update khi user click "Đồng ý"

Nhiều CMP chỉ set cookie riêng nhưng không gọi gtag('consent','update',...). Phải config CMP trigger gtag consent update — đa số CMP có integration sẵn cho Google Consent Mode v2.

Lỗi #5: Default "granted" cho tất cả

Theo Nghị định 13/2023, xử lý dữ liệu cá nhân yêu cầu consent rõ ràng. Default "granted" = vi phạm. Luôn default "denied" và update sau khi user click đồng ý.

Lỗi #6: Không test trên mobile

Mobile Safari có cách xử lý cookie khác desktop Chrome. 31% khách hàng TyphanAds audit có Consent Mode hoạt động đúng desktop nhưng broken trên mobile — luôn test cả 2.

CÂU HỎI THƯỜNG GẶP

Câu hỏi thường gặp

Consent Mode v2 có bắt buộc ở Việt Nam không?
Không bắt buộc bởi Google nhưng được khuyến nghị mạnh. Theo Nghị định 13/2023/NĐ-CP, doanh nghiệp phải xin consent xử lý dữ liệu cá nhân. Consent Mode v2 giúp truyền tín hiệu consent này đến Google Ads/GA4 để được modeled conversion khi user từ chối tracking.
Modeled conversion là gì?
Là conversion ước tính bởi Google AI khi không có data đầy đủ do user từ chối consent. Có Consent Mode v2 = được modeled conversion (~70% recovery); không có = mất hoàn toàn conversion đó. Modeled conversion vẫn được tính vào smart bidding optimization.
CMP nào nên dùng cho Việt Nam?
TyphanAds đã test 5 CMP cho khách hàng VN: Cookiebot (đắt nhưng đầy đủ), CookieYes (free tier OK cho 25K page/tháng), Iubenda (linh hoạt nhất), Termly (rẻ), và CMP tự code (cho dev có kinh nghiệm). 78% khách hàng VN của chúng tôi dùng CookieYes free hoặc tự code đơn giản.
Phải set default consent là denied hay granted?
Tùy thị trường. EU: bắt buộc default "denied". Việt Nam: chưa có quy định cứng nhưng theo Nghị định 13 nên default "denied". Đặt default "granted" rồi đợi user "deny" là sai về mặt pháp lý GDPR — Việt Nam đang theo hướng tương tự.

Sẵn sàng tối ưu Google Ads cùng TyphanAds?

Bạn muốn biết tài khoản Google Ads của mình đang lãng phí ngân sách ở đâu? Liên hệ TyphanAds để nhận audit miễn phí và tư vấn chiến lược tối ưu CPA/ROAS phù hợp với ngành hàng của bạn.