Thiết lập chế độ đồng ý trên trang web

Trang này dành cho những nhà phát triển duy trì giải pháp yêu cầu sự đồng ý của riêng họ trên trang web và muốn tích hợp chế độ đồng ý. Để biết thông tin giới thiệu về chế độ đồng ý, hãy đọc bài viết Tổng quan về chế độ đồng ý. Nếu bạn sử dụng Nền tảng quản lý sự đồng ý (CMP) để lấy sự đồng ý của người dùng, hãy tìm hiểu thêm về cách thiết lập chế độ đồng ý bằng CMP.

Bạn có thể triển khai chế độ đồng ý theo cách cơ bản hoặc nâng cao. Hãy kiểm tra nguyên tắc của công ty để chọn phương thức triển khai và phương thức mặc định cần đặt. Tìm hiểu thêm về chế độ đồng ý cơ bản và nâng cao.

Trước khi bắt đầu

Hãy cân nhắc những điều sau trước khi triển khai chế độ đồng ý:

  • Nếu bạn sử dụng Trình quản lý thẻ và muốn duy trì biểu ngữ của riêng mình, bạn nên tải biểu ngữ thông qua vùng chứa Trình quản lý thẻ. Để làm như vậy, bạn cần tạo mẫu chế độ đồng ý. Ngoài ra, bạn có thể sử dụng mẫu chế độ đồng ý trong Thư viện mẫu cho cộng đồng.

  • Nếu bạn sử dụng gtag.js, hãy đảm bảo bạn đã cài đặt thẻ Google trên mọi trang của trang web. Mã chế độ đồng ý sẽ được thêm vào từng trang của trang web.

Để thiết lập chế độ đồng ý, bạn cần phải:
  1. Trước khi người dùng đồng ý: Đặt trạng thái đồng ý mặc định.
  2. Cập nhật trạng thái đồng ý dựa trên hoạt động tương tác của người dùng với chế độ cài đặt về sự đồng ý.

Đặt giá trị mặc định cho từng loại đồng ý mà bạn đang sử dụng. Theo mặc định, hệ thống không đặt giá trị nào cho chế độ đồng ý.

Tốt nhất là bạn nên áp dụng chế độ cài đặt mặc định về sự đồng ý ở những khu vực mà bạn sẽ hiển thị biểu ngữ yêu cầu đồng ý cho khách truy cập. Điều này giúp duy trì hoạt động đo lường ở những khu vực bắt buộc phải sử dụng biểu ngữ yêu cầu đồng ý và các thẻ Google sẽ điều chỉnh hành vi cho phù hợp. Ngoài ra, bạn cũng tránh được tình trạng bị mất dữ liệu đo lường khi không có biểu ngữ yêu cầu đồng ý nào hoặc biểu ngữ yêu cầu đồng ý không được áp dụng. Xem phần Hành vi theo khu vực.

Để điều chỉnh các chức năng đo lường mặc định, hãy gọi lệnh gtag('consent', 'default', ...) trên mọi trang của trang web trước khi có bất kỳ lệnh nào gửi dữ liệu đo lường (chẳng hạn như config hoặc event).

Ví dụ: để đặt trạng thái từ chối đồng ý cho tất cả các tham số theo mặc định:

gtag('consent', 'default', {
 
'ad_storage': 'denied',
 
'ad_user_data': 'denied',
 
'ad_personalization': 'denied',
 
'analytics_storage': 'denied'
});

Không bắt buộc: Tích hợp với các nền tảng quản lý sự đồng ý không đồng bộ

Nếu biểu ngữ tải không đồng bộ, thì biểu ngữ đó không phải lúc nào cũng chạy trước các thẻ Google. Để xử lý những trường hợp như vậy, hãy chỉ định wait_for_update cùng với giá trị mili giây để kiểm soát thời gian chờ trước khi gửi dữ liệu.

Ví dụ: để từ chối ad_storage trên một trang cụ thể theo mặc định, nhưng để cho phép CMP cập nhật trạng thái đồng ý, hãy sử dụng wait_for_update. Trong mã sau, ad_storage mặc định là denied và công cụ đồng ý được cấp 500 mili giây để gọi gtag('consent', 'update', ...) trước khi thẻ kích hoạt:

  gtag('consent', 'default', {
   
'ad_storage': 'denied',
   
'wait_for_update': 500
 
});

Khi bạn sử dụng Trình quản lý thẻ của Google, hãy tạo mẫu của riêng bạn bằng API Chế độ đồng ý trong Trình quản lý thẻ. Bạn có thể tham khảo ví dụ sau đây làm điểm xuất phát.

Sử dụng các API dành riêng cho Trình quản lý thẻ để quản lý trạng thái đồng ý setDefaultConsentStateupdateConsentState. Bạn có thể sử dụng API gtagSet để tuỳ ý đặt chế độ cài đặt truyền URL và ads_data_redaction cho phù hợp.

Để gửi trạng thái đồng ý của người dùng, hãy sử dụng lệnh update. Vì chế độ đồng ý không lưu lựa chọn đồng ý, hãy cập nhật trạng thái đồng ý ngay khi người dùng tương tác với giải pháp quản lý sự đồng ý của bạn. Sau khi người dùng đồng ý, hãy duy trì lựa chọn của họ và gọi lệnh cập nhật tương ứng trên các trang tiếp theo.

Bạn có thể tự đảm bảo việc đặt đúng giá trị cho tất cả các loại sự đồng ý. Để biết toàn bộ thông tin chi tiết về các loại được hỗ trợ, hãy đọc tài liệu tham khảo API.

Ví dụ về mã sau đây cho biết cách cập nhật trạng thái đồng ý thành granted khi người dùng đồng ý với tất cả các lựa chọn:

<script>
function allConsentGranted() {
  gtag
('consent', 'update', {
   
'ad_user_data': 'granted',
   
'ad_personalization': 'granted',
   
'ad_storage': 'granted',
   
'analytics_storage': 'granted'
 
});
}
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
  ...
 
<button onclick="allConsentGranted()">Yes</button>
  ...
</body>

Khi bạn sử dụng mẫu chế độ đồng ý, trạng thái đồng ý của người dùng sẽ tự động cập nhật khi người dùng tương tác với biểu ngữ.

Nếu bạn tự tạo mẫu chế độ đồng ý, hãy sử dụng các API dành riêng cho Trình quản lý thẻ để quản lý trạng thái đồng ý setDefaultConsentStateupdateConsentState. Bạn có thể sử dụng API gtagSet để tuỳ ý đặt chế độ cài đặt truyền URL và ads_data_redaction cho phù hợp.

Ví dụ về cách triển khai

Ví dụ sau đây đặt nhiều tham số chế độ đồng ý thành denied theo mặc định. Sau khi người dùng cho biết lựa chọn về sự đồng ý, các tham số liên quan sẽ được cập nhật thành granted.

Thứ tự của mã ở đây rất quan trọng. Nếu mã yêu cầu đồng ý của bạn được gọi không theo thứ tự, thì các chế độ mặc định về yêu cầu đồng ý sẽ không hoạt động. Tuỳ thuộc vào yêu cầu kinh doanh, thông tin cụ thể có thể khác nhau, nhưng nhìn chung, mã sẽ chạy theo thứ tự sau:

  1. Tải thẻ Google. Đây là mã đoạn mã mặc định của bạn. Bạn nên cập nhật đoạn mã mặc định (xem bên dưới) để thêm lệnh gọi đến gtag('consent', 'default', ...).

  2. Tải giải pháp yêu cầu đồng ý. Nếu giải pháp yêu cầu đồng ý của bạn tải không đồng bộ, hãy xem phần Tích hợp với các nền tảng quản lý yêu cầu đồng ý không đồng bộ để biết cách đảm bảo việc này diễn ra theo đúng thứ tự.

  3. Nếu giải pháp đồng ý của bạn không xử lý lệnh này, hãy gọi gtag('consent', 'update', ...) sau khi người dùng cho biết sự đồng ý.

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

// Set default consent to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag
('consent', 'default', {
 
'ad_storage': 'denied',
 
'ad_user_data': 'denied',
 
'ad_personalization': 'denied',
 
'analytics_storage': 'denied'
});
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID">
</script>
<script>
  window
.dataLayer = window.dataLayer || [];
 
function gtag(){dataLayer.push(arguments);}

  gtag
('js', new Date());
  gtag
('config', 'TAG_ID');
</script>

<!-- Create one update function for each consent parameter -->
<script>
 
function consentGrantedAdStorage() {
    gtag
('consent', 'update', {
     
'ad_storage': 'granted'
   
});
 
}
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
  ...
 
<button onclick="consentGrantedAdStorage">Yes</button>
  ...
</body>

Đối với các trang web sử dụng Trình quản lý thẻ, bạn nên sử dụng một CMP để xử lý các bản cập nhật về lựa chọn đồng ý của khách truy cập. CMP cung cấp các mẫu trong Thư viện mẫu cho cộng đồng để tạo thẻ quản lý chế độ đồng ý.

Nếu không thể sử dụng mẫu, bạn có thể cập nhật mã trên trang như sau. Thứ tự của mã ở đây rất quan trọng. Nếu mã yêu cầu đồng ý của bạn được gọi không đúng thứ tự, thì các chế độ mặc định về sự đồng ý sẽ không hoạt động.

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

 
// Set default consent to 'denied' as a placeholder
 
// Determine actual values based on your own requirements
  gtag
('consent', 'default', {
   
'ad_storage': 'denied',
   
'ad_user_data': 'denied',
   
'ad_personalization': 'denied',
   
'analytics_storage': 'denied'
 
});
</script>

<!-- 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-XXXXXX');</script>
<!-- End Google Tag Manager -->

<!-- Create one update function for each consent parameter -->
<script>
 
function consentGrantedAdStorage() {
    gtag
('consent', 'update', {
     
'ad_storage': 'granted'
   
});
 
}
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
  ...
 
<button onclick="consentGrantedAdStorage()">Yes</button>
  ...
</body>

Để thực hiện cam kết không ngừng xây dựng một hệ sinh thái quảng cáo kỹ thuật số chú trọng quyền riêng tư, Google đang tăng cường việc thực thi Chính sách về sự đồng ý của người dùng ở Liên minh Châu Âu.

Tìm hiểu thêm về Nội dung cập nhật đối với chế độ đồng ý cho lưu lượng truy cập ở Khu vực kinh tế Châu Âu (EEA) của Google.

Người dùng chế độ đồng ý cần gửi thêm hai tham số mới ngoài ad_storageanalytics_storage:

Tên trường Giá trị được phép Mô tả
ad_user_data 'granted' | 'denied' Đặt trạng thái đồng ý đối với việc gửi dữ liệu người dùng liên quan đến quảng cáo cho Google.
ad_personalization 'granted' | 'denied' Đặt trạng thái đồng ý cho quảng cáo được cá nhân hoá.

Các tính năng nâng cao về sự đồng ý bao gồm khả năng:

  • Thiết lập những dịch vụ của Google mà bạn chia sẻ dữ liệu bằng giao diện người dùng của thẻ Google.
  • Thiết lập hành vi cho một khu vực địa lý.
  • Truyền thông tin về lượt nhấp vào quảng cáo, mã ứng dụng và mã phiên trong URL khi người dùng chưa đồng ý sử dụng cookie.
  • Xoá hoàn toàn (xoá) thông tin quảng cáo khi người dùng từ chối đồng ý sử dụng cookie quảng cáo.

Hành vi theo khu vực

Để thay đổi hành vi mặc định của thẻ cho người dùng ở một số khu vực nhất định, hãy chỉ định một khu vực trong lệnh đồng ý. Bằng cách cung cấp giá trị khu vực, bạn có thể điều chỉnh các giá trị mặc định dựa trên vị trí địa lý của người dùng. Hãy xem phần Mã nhận dạng địa lý để biết thêm thông tin về cách xác định khu vực.

Ví dụ sau đây đặt analytics_storage thành denied cho người dùng ở Tây Ban Nha và Alaska, đồng thời đặt ad_storage thành denied cho tất cả người dùng.

  gtag('consent', 'default', {
   
'analytics_storage': 'denied',
   
'region': ['ES', 'US-AK']
 
});

  gtag
('consent', 'default', {
   
'ad_storage': 'denied'
 
});

Nếu bạn đang sử dụng một mẫu để tạo thẻ, thì mẫu đó có thể có các chế độ điều khiển để đặt hành vi theo khu vực. Nếu bạn tự tạo thẻ mẫu, hãy xem bài viết Tạo mẫu chế độ đồng ý để biết thêm thông tin về cách thiết lập hành vi theo khu vực.

Thông số cụ thể nhất được ưu tiên

Nếu hai lệnh mặc định về sự đồng ý xuất hiện trên cùng một trang với các giá trị cho một khu vực và tiểu khu vực, thì lệnh có khu vực cụ thể hơn sẽ có hiệu lực. Ví dụ: nếu bạn đặt ad_storage thành granted cho khu vực Hoa Kỳ và đặt ad_storage thành denied cho khu vực Hoa Kỳ-California, thì người dùng truy cập từ California sẽ áp dụng chế độ cài đặt cụ thể hơn là Hoa Kỳ-California. Đối với ví dụ này, điều đó có nghĩa là một khách truy cập từ US-CA sẽ có ad_storage được đặt thành denied.

Khu vực ad_storage Hành vi
Hoa Kỳ 'granted' Áp dụng cho người dùng ở Hoa Kỳ không ở Canada
US-CA 'denied' Áp dụng cho người dùng ở Hoa Kỳ và Canada
Không xác định 'granted' Sử dụng giá trị mặc định là 'granted'. Trong ví dụ này, áp dụng cho khách truy cập không ở Hoa Kỳ hoặc ở Hoa Kỳ-California

Truyền thông tin về lượt nhấp quảng cáo, mã ứng dụng và mã phiên trong URL

Khi người dùng truy cập vào trang web của bạn sau khi nhấp vào một quảng cáo, thông tin về quảng cáo đó có thể được thêm vào URL trang đích dưới dạng tham số truy vấn. Để cải thiện độ chính xác của sự kiện chính, thông tin này thường được lưu trữ trong cookie của bên thứ nhất trên miền của bạn.

Tuy nhiên, nếu bạn đặt ad_storage thành denied, thông tin này sẽ không được lưu trữ cục bộ. Để cải thiện chất lượng đo lường lượt nhấp vào quảng cáo khi ad_storagedenied, bạn có thể tuỳ ý chọn truyền thông tin về lượt nhấp vào quảng cáo thông qua các tham số URL trên các trang bằng tính năng truyền URL.

Tương tự, nếu bạn đặt analytics_storage thành denied, bạn có thể sử dụng tính năng chuyển tiếp URL để gửi dữ liệu phân tích dựa trên sự kiện và phiên (bao gồm cả sự kiện chính) mà không cần cookie trên các trang.

Bạn phải đáp ứng các điều kiện sau để sử dụng tính năng chuyển tiếp URL:

  • Thẻ Google của bạn nhận biết được sự đồng ý và xuất hiện trên trang.
  • Nhà quảng cáo đã bật tính năng truyền qua URL.
  • Chế độ đồng ý được triển khai trên trang.
  • Đường liên kết ngoài trỏ đến cùng một miền với miền của trang hiện tại.
  • URL có GCLID hoặc DCLID (chỉ áp dụng cho thẻ Google Ads và Floodlight)

Để bật chức năng này, hãy đặt tham số url_passthrough thành true. Thêm lệnh sau vào đoạn mã mặc định trước mọi lệnh config:

gtag('set', 'url_passthrough', true);

Nếu bạn đang sử dụng một mẫu để tạo thẻ, thì mẫu đó có thể có các chế độ kiểm soát để đặt tính năng chuyển tiếp URL. Nếu bạn đang tự tạo thẻ mẫu, hãy xem phần Tạo mẫu chế độ đồng ý để biết thêm thông tin về cách thiết lập tính năng chuyển tiếp URL bằng API mẫu tuỳ chỉnh gtagSet.

Hoặc bạn có thể sử dụng các tuỳ chọn sau để đặt giá trị này trong Trình liên kết lượt chuyển đổi và/hoặc thẻ phân tích

Đối với thẻ Google AdsFloodlight:

Để bật tính năng này, hãy tạo (hoặc sử dụng thẻ trình liên kết chuyển đổi hiện có) và đảm bảo bạn đã đánh dấu vào mục Bật tính năng liên kết trên tất cả URL trang. Hãy xem phần thiết lập cơ bản để biết hướng dẫn về cách tạo thẻ trình liên kết chuyển đổi.

Đối với thẻ Google Analytics:

  1. Trong Trình quản lý thẻ, hãy chuyển đến phần Các trường cần đặt rồi chọn Cấu hình thẻ > Các trường cần đặt.
  2. Khi phần Trường cần đặt được mở rộng, hãy nhấp vào Thêm hàng.
  3. Đối với Tên trường, hãy nhập url_passthrough.
  4. Đối với Giá trị, hãy nhập "true".
  5. Lưu thẻ rồi xuất bản.

Ngoài ra, bạn có thể đặt tham số url_passthrough thành true trên mọi trang của trang web trước khi cài đặt đoạn mã GTM.

window.dataLayer = window.dataLayer || [];
function gtag(){window.dataLayer.push(arguments);}
gtag('set', 'url_passthrough', true);

Khi sử dụng tính năng truyền qua URL, một vài tham số truy vấn có thể được thêm vào các đường liên kết khi người dùng di chuyển qua các trang trên trang web của bạn:

  • gclid
  • dclid
  • gclsrc
  • _gl
  • wbraid

Để có kết quả tốt nhất, hãy đảm bảo rằng:

  1. Lệnh chuyển hướng trên trang web của bạn sẽ truyền tất cả các tham số truy vấn ở trên.
  2. Các công cụ phân tích của bạn sẽ bỏ qua các tham số này trong URL của trang.
  3. Các thông số này không ảnh hưởng đến hành vi của trang web.

Xoá dữ liệu quảng cáo

Khi ad_storagedenied, cookie mới sẽ không được đặt cho mục đích quảng cáo. Ngoài ra, cookie của bên thứ ba đã đặt trước đây trên google.com và doubleclick.net sẽ không được sử dụng, ngoại trừ mục đích gửi thư rác và hành vi gian lận. Dữ liệu được gửi đến Google vẫn sẽ bao gồm URL đầy đủ của trang, bao gồm mọi thông tin về lượt nhấp vào quảng cáo trong các tham số URL.

Để loại bỏ thêm dữ liệu quảng cáo khi ad_storagedenied, hãy đặt ads_data_redaction thành true.

gtag('set', 'ads_data_redaction', true);

Khi ads_data_redactiontruead_storagedenied, các giá trị nhận dạng lượt nhấp vào quảng cáo được gửi trong các yêu cầu mạng bằng thẻ Google Ads và Floodlight sẽ được loại bỏ. Các yêu cầu mạng cũng sẽ được gửi qua một miền không có cookie.

Nếu bạn đang sử dụng một mẫu để tạo thẻ, thì mẫu đó có thể có các chế độ kiểm soát để loại bỏ thêm dữ liệu quảng cáo. Nếu bạn tự tạo thẻ mẫu, hãy xem phần Tạo mẫu chế độ đồng ý để biết thêm thông tin về cách xoá dữ liệu quảng cáo.

Các vấn đề thường gặp

Khi triển khai chế độ đồng ý nâng cao, bạn nên gọi lệnh cập nhật trên trang mà người dùng đồng ý.

Khi một trang tải với trạng thái từ chối đồng ý, sau đó tải lại với trạng thái đồng ý sau khi trạng thái đồng ý thay đổi, thẻ Google có thể mất các điểm dữ liệu chính trên trang ban đầu. Mọi báo cáo tiếp theo có thể chưa đầy đủ.

Ví dụ: trong Google Analytics, nhiều phiên có sự đồng ý có thể bị thiếu sự kiện session_start.

Để tránh vấn đề này, hãy gọi lệnh cập nhật bất cứ khi nào trạng thái đồng ý của người dùng thay đổi.

Trong một số trường hợp, khi loại trạng thái đồng ý cập nhật từ từ chối thành cấp, thẻ Google có thể gửi số liệu đo lường dựa trên nội dung cập nhật này. Nếu lệnh cập nhật được gọi khi trang tải xuống, trình duyệt có thể huỷ lưu lượng truy cập mạng này trước khi hoàn tất. Mọi báo cáo tiếp theo có thể chưa đầy đủ.

Nếu có thể, hãy đảm bảo rằng các lệnh cập nhật được ghi lại trước khi trang tải xuống.

Các bước tiếp theo

Các chế độ kiểm soát thẻ cũ

Nếu bạn sử dụng các thẻ cũ, chẳng hạn như ga.js, analytics.js hoặc conversion.js, hãy cập nhật lên gtag.js hoặc Trình quản lý thẻ của Google.

Để tìm hiểu thêm về các chế độ kiểm soát quyền riêng tư của các thẻ cũ khác, hãy xem tài liệu sau: