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) để thu thập 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 tham khảo các nguyên tắc của công ty bạn để chọn phương thức triển khai và các giá trị mặc định cần đặt. Tìm hiểu thêm về chế độ đồng ý cơ bản so với chế độ đồng ý 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, thì phương pháp được đề xuất là 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ột mẫu chế độ đồng ý. Ngoài ra, bạn có thể sử dụng một 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 trên trang web của bạn.

Để thiết lập chế độ đồng ý, bạn cần:
  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 Hành vi theo khu vực.

gtag.js

Để đ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 mọi lệnh 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 thông 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ữ của bạn 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 dữ liệu được gửi.

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ủa bạn 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 các thẻ kích hoạt:

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

Trình quản lý thẻ

Khi 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 lấy sự đồng ý của Trình quản lý thẻ. Bạn có thể tham khảo ví dụ sau đây để bắt đầu.

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

gtag.js

Để 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 các 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 phải đảm bảo rằng bạn đã đặt đúng giá trị cho tất cả các loại trạng thái đồng ý. Để biết đầy đủ thông tin chi tiết về các loại được hỗ trợ, hãy đọc tài liệu tham khảo về API.

Ví dụ về mã sau đây cho thấy 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>

Trình quản lý thẻ

Khi bạn sử dụng mẫu chế độ đồng ý, sự đồ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ể dùng API gtagSet để tuỳ ý đặt chế độ cài đặt ads_data_redaction và chế độ chuyển tiếp URL cho phù hợp.

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

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

gtag.js

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

  1. Tải thẻ Google. Đây là đ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 một lệnh gọi đến gtag('consent', 'default', ...).

  2. Tải giải pháp lấy sự đồng ý của bạn. Nếu giải pháp về sự đồng ý của bạn tải không đồng bộ, hãy xem bài viết Tích hợp với các nền tảng quản lý sự đồng ý không đồng bộ để biết cách đảm bảo điều này xảy 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 họ đồ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>

Trình quản lý thẻ

Đối với những 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 nội dung cập nhật về lựa chọn đồng ý của khách truy cập. Các CMP cung cấp 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 theo cách sau. Thứ tự của mã ở đây là rất quan trọng. Nếu mã đồng ý của bạn được gọi không đúng thứ tự, thì các chế độ cài đặt 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ố đảm bảo 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 2 thông 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:

  • Đặt 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 thẻ Google.
  • Đặt 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.
  • Chỉnh sửa (xoá) hoàn toàn 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 từng khu vực

Để đặt trạng thái đồng ý mặc định áp dụng cho khách truy cập từ một số khu vực cụ thể, hãy chỉ định một khu vực (theo ISO 3166-2) trong lệnh mặc định về sự đồng ý của gtag. Việc sử dụng các giá trị khu vực giúp bạn tuân thủ các quy định theo khu vực.

Bạn có thể đặt giá trị mặc định cho các khu vực cụ thể, sau đó đặt một giá trị mặc định khác cho tất cả các khu vực khác. Lệnh mặc định về sự đồng ý của gtag không có tham số khu vực sẽ đặt giá trị mặc định cho tất cả khách truy cập không thuộc phạm vi của một lệnh khác dành riêng cho khu vực.

gtag.js

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'
  });

Trình quản lý thẻ

Nếu đ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 hành vi theo khu vực cụ thể. Nếu bạn đang 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 dành riêng cho khu vực.

Thông số cụ thể nhất sẽ đượ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 có 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ì một khách truy cập ở California sẽ thấy chế độ cài đặt cụ thể hơn là Hoa Kỳ – California có hiệu lực. Trong ví dụ này, điều đó có nghĩa là khách truy cập ở Hoa Kỳ – California 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 sinh sống tại California
Hoa Kỳ – California 'denied' Áp dụng cho người dùng ở Hoa Kỳ – California
Không xác định 'granted' Sử dụng giá trị mặc định của 'granted'. Trong ví dụ này, điều kiện áp dụng cho những khách truy cập không ở Hoa Kỳ hoặc ở Hoa Kỳ – California

Truyền thông tin về lượt nhấp vào quảng cáo, mã ứng dụng khách 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 của bạn dưới dạng một 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 ad_storage được đặt thành denied, thì 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ể chọn chuyển thông tin về lượt nhấp vào quảng cáo qua các trang bằng tham số URL bằng tính năng chuyển URL.

Tương tự, nếu bạn đặt analytics_storage thành denied, thì bạn có thể dùng tính năng chuyển tiếp URL để gửi số 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.

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

  • 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 đề cập đến cùng một miền với miền của trang hiện tại.
  • URL có chứa GCLID hoặc DCLID (chỉ dành cho Google Ads và thẻ Floodlight)

gtag.js

Để bật tính 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);

Trình quản lý thẻ

Nếu đ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 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 truyền URL bằng API mẫu tuỳ chỉnh gtagSet.

Hoặc bạn có thể sử dụng các lựa chọn sau để đặt giá trị này trong Trình liên kế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ả cá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 Các trường cần đặt rồi chọn **Cấu hình thẻ

    Các trường cần đặt**.

    1. Khi mục Trường cần đặt được mở rộng, hãy nhấp vào Thêm hàng.
    2. Đối với Tên trường, hãy nhập url_passthrough.
    3. Đối với Giá trị, hãy nhập "true".
    4. Lưu thẻ và 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 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 những tham số này trong URL trang.
    3. Các thông số này không ảnh hưởng đến hành vi trên trang web của bạn.

Loại bỏ 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 chống 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 cả mọi thông tin về lượt nhấp vào quảng cáo trong các tham số URL.

gtag.js

Để chỉnh sửa 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 do thẻ Google Ads và Floodlight gửi trong các yêu cầu mạng sẽ được chỉnh sửa. Các yêu cầu mạng cũng sẽ được gửi qua một miền không có cookie.

Trình quản lý thẻ

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 để chỉnh sửa thêm dữ liệu quảng cáo. 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 chỉnh sửa 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 đồng ý bị từ chối rồi tải lại với trạng thái đồng ý được cấp sau khi có thay đổi về sự đồng ý, thẻ Google có thể mất các điểm dữ liệu chính từ 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 một loại sự đồng ý thay đổi từ bị từ chối thành được cấp, thẻ Google có thể gửi các chỉ số dựa trên thay đổi này. Nếu lệnh cập nhật được gọi khi trang huỷ tải, 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 huỷ tải.

Các bước tiếp theo

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 thẻ cũ khác, hãy xem tài liệu sau: