Thông báo

Google Analytics: Thẻ cấu hình GA4 hiện là thẻ Google. Kể từ tháng 9, hệ thống sẽ tự động di chuyển các thẻ Cấu hình GA4 trong vùng chứa trên web. Chế độ đo lường hiện tại của bạn sẽ không thay đổi và bạn không cần phải làm gì cả. Tìm hiểu thêm

Thiết lập TrustArc để lấy sự đồng ý của người dùng

Để nắm bắt được thông tin chi tiết có giá trị trong khi vẫn bảo vệ được quyền riêng tư của người dùng, bạn cần có được sự đồng ý của người dùng trang web. Bạn nên sử dụng Nền tảng quản lý sự đồng ý (CMP) hoặc làm việc với Hệ thống quản lý nội dung (CMS) của mình để thu thập sự đồng ý và gửi thông tin đó cho Google.

Bước 1: Thiết lập biểu ngữ yêu cầu đồng ý

  1. Nếu bạn có CCM Advanced (Dịch vụ được quản lý), thì Nhà quản lý tài khoản hỗ trợ kỹ thuật (TAM) sẽ thiết lập biểu ngữ theo các yêu cầu và nguyên tắc về cách trình bày của bạn.
  2. Nếu bạn có CCM Pro (CMP tự phục vụ), thì TrustArc sẽ cung cấp URL để bạn đăng nhập vào cổng thông tin và định cấu hình biểu ngữ của mình bằng các mẫu tạo sẵn trong trình hướng dẫn.
  3. Đảm bảo rằng biểu ngữ của bạn tuân thủ các yêu cầu trong Chính sách về sự đồng ý của người dùng ở Liên minh Châu Âu (EUUCP) của Google. Để biết thêm thông tin về cách thiết lập biểu ngữ TrustArc, hãy xem phần Bắt đầu trong Hướng dẫn sử dụng của chúng tôi.
  4. Thêm các phần tử <div> (chịu trách nhiệm hiển thị biểu ngữ và đường liên kết đến CMP) trong mã trang web của bạn hoặc thông qua Trình quản lý thẻ của Google.

Bước 2: Thiết lập chế độ đồng ý

Sử dụng Trình quản lý thẻ của Google

  1. Mở Trình quản lý thẻ rồi chuyển đến vùng chứa của bạn.
  2. Trong mục "Thẻ", hãy nhấp vào Mới rồi đặt tên cho thẻ.
  3. Nhấp vào Cấu hình thẻ, rồi nhấp vào Khám phá nhiều loại thẻ khác trong Thư viện mẫu cho cộng đồng. Trong thư viện, hãy tìm "TrustArc CMP (Chế độ đồng ý)", rồi cài đặt "TrustArc CMP (Chế độ đồng ý)" theo TrustArc.
  4. Thiết lập các chế độ cài đặt mặc định mà bạn muốn sử dụng trong phần "Cài đặt Chế độ đồng ý mặc định".
  5. Chọn Triển khai tập lệnh CMP bằng cách sử dụng mẫu.
    1. Trong trường Mã CMP, hãy nhập mã phiên bản có trong Bước 4. Sao chép Đoạn mã của cổng CCM Pro. Nếu bạn có CCM Advanced, thì TAM có thể cung cấp cho bạn thông tin đó.
    2. Trong trường Thông số bổ sung, hãy nhập các chế độ cài đặt bổ sung cho phiên bản của bạn. Cấu hình này được dùng để ghi đè các cấu hình phụ trợ như ngôn ngữ, tính năng phát hiện địa lý, đường liên kết đến chính sách quyền riêng tư, v.v.
  6. Thiết lập tính năng Tích hợp Chế độ đồng ý của Google bằng cách bật lựa chọn Tích hợp CMP với Chế độ đồng ý của Google.
  7. Thông báo việc liên kết đối với các loại đồng ý và lựa chọn ưu tiên của người dùng theo chế độ cài đặt của bạn. Đối với mỗi loại đồng ý mà bạn đang sử dụng, hãy liên kết đến mã nhận dạng tương ứng của nhóm đồng ý sử dụng cookie (Bắt buộc, Chức năng, Quảng cáo). Trong trường Cookie lựa chọn ưu tiên, hãy liên kết một cookie của bên thứ nhất cho cmapi_cookie_privacy. Trong trường Cookie hành vi, hãy liên kết cookie của bên thứ nhất cho notice_behavior.
  8. Nhấp vào Kích hoạt > Hoạt động tiến hành lấy sự đồng ý – Tất cả các trang > Lưu.
  9. Kiểm tra vùng chứa của bạn bằng cách nhấp vào Xem trước ở góc trên cùng bên phải (xem hướng dẫn cách kiểm tra ở bên dưới).
  10. Xuất bản vùng chứa của bạn.

Sử dụng những nền tảng khác hoặc trực tiếp chỉnh sửa mã trang web 

  1. Đăng nhập vào Cổng hỗ trợ TrustArc, mở Hướng dẫn triển khai chế độ đồng ý của Google dành cho TrustArc từ đường liên kết này, sau đó làm theo hướng dẫn trong mục Tích hợp Chế độ đồng ý bằng JavaScript.
  2. Nếu bạn sử dụng một trình tạo trang web, hãy xem tài liệu của trình tạo trang web đó để tìm hiểu cách triển khai mã trong thẻ head của mỗi trang. Nếu không, hãy chuyển sang bước 3.
  3. Nếu bạn đang sử dụng phiên bản CCM Advanced, vui lòng làm theo bước này. Nếu không, hãy chuyển sang bước 4. Trong thẻ head của mỗi trang (tham khảo bước 2 nếu bạn sử dụng một trình tạo trang web), hãy sao chép và dán đoạn mã bên dưới, tiếp theo là tập lệnh CMP mà bạn đã sao chép trong bước 1 ở phần đầu thẻ head. Xin lưu ý rằng bước này rất quan trọng nhằm đảm bảo CMP hoạt động đúng cách.

    <script>

    window.dataLayer = window.dataLayer || [];

    function gtag(){dataLayer.push(arguments);}

     

    gtag('js', new Date());

    gtag('config', 'AW-YYYYYY');

     

    // Default consent types to 'denied' as a placeholder

    // Determine actual values based on your own requirements

    // Please omit consent types not being used

    gtag('consent', 'default', {

    'ad_storage': 'denied',

    'ad_user_data': 'denied',

    'ad_personalization': 'denied',

    'analytics_storage': 'denied',

    'functionality_storage': 'denied',

    'personalization_storage': 'denied',

    'security_storage': 'denied',

    'wait_for_update': 500

    });

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

    gtag('set', 'developer_id.dNTIxZG', true);

    </script>

    <!--Banner script here!-->

  4. Nếu bạn đang sử dụng phiên bản CCM Pro, vui lòng làm theo bước này. Trong thẻ head của mỗi trang (tham khảo bước 2 nếu bạn sử dụng một trình tạo trang web), hãy sao chép và dán đoạn mã bên dưới, tiếp theo là tập lệnh CMP mà bạn đã sao chép trong bước 1 ở phần đầu thẻ head. Xin lưu ý rằng bước này rất quan trọng nhằm đảm bảo CMP hoạt động đúng cách. Hãy nhớ điều chỉnh mối liên kết giữa các nhóm CMP và các loại đồng ý.

    window.dataLayer = window.dataLayer || [];

    function gtag() { dataLayer.push(arguments); }

    gtag('js', new Date());

    gtag('config', 'GA_MEASUREMENT_ID');

    gtag('set', 'developer_id.dNTIxZG', true);

    // TODO: Can be changed according to customer's need and according to the configuration

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

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

    //Consent Mode Status

    const ConsentType = {

    DENIED: 'denied',

    GRANTED: 'granted',

    };

     

    const convertBooleanToGrantedOrDenied = (boolean) => boolean ? ConsentType.GRANTED : ConsentType.DENIED;

     

    /*

    TODO: This is where you can configure the Google Consent Mode, map the CMP categorisation and the default values for the consent initialization

    Google recommends commenting our consent types that you are not going to use.

    */

    const domain = 'your_domain.com'; // TODO: update

    // Bucket Mapping

    const REQUIRED = 1;

    const FUNCTIONAL = 2;

    const ADVERTISING = 3;

    const consentTypesMapped = {

    'ad_storage': ADVERTISING,

    'ad_user_data': ADVERTISING,

    'ad_personalization': FUNCTIONAL,

    'analytics_storage': FUNCTIONAL,

    'functionality_storage': FUNCTIONAL,

    'personalization_storage': FUNCTIONAL,

    'security_storage': REQUIRED

    }

    const getConsentState = (prefCookie) => {

    var consentStates = {};

    var noticeBehavior = window.truste.util.readCookie("notice_behavior");

    /*

    TODO: Can be changed according to customer's need and according to the configuration

    */

    var impliedLocation = noticeBehavior && noticeBehavior.includes("na");

    for (const consentType in consentTypesMapped) {

    var id = consentTypesMapped[consentType];

     

    if(prefCookie && !prefCookie.includes(0)) {

    console.log("Existing consent..");

    consentStates[consentType] = convertBooleanToGrantedOrDenied(prefCookie && prefCookie.includes(id));

    } else {

    console.log("Non Existing consent..");

    consentStates[consentType] = convertBooleanToGrantedOrDenied(impliedLocation);

    ;}

    ;}

    consentStates['wait_for_update'] = 500;

    console.log(consentStates);

    return consentStates;

    };

    /*

    Helper function to submit a GCM event based on user's preferences on TrustArc's Script

    consent: The consent object will be an array of values [1, 2, 3, n] as 1 being if the user consented to required, 2 to function, ... etc

    This function needs to be customized according to the customer's needed mapping. Ex: 'ad_storage': returnGrantedOrDenied(advertisingAccepted) is being mapped to advertising. if we were to map it to functional instead, we just need to change the bucket variable it's looking at. 

    */

     

    var runOnceGCM = 0;

    function handleConsentDecisionForGCM(consent) {

    //This code initializes the consent mode

    const consentStates = getConsentState(consent.consentDecision);

    var defaultOrUpdate;

    if (runOnceGCM == 0) {

    defaultOrUpdate = 'default';

    runOnceGCM++;

    } else {

    console.log('consent is being updated');

    defaultOrUpdate = 'update';

    }

    console.log(consentStates);

    //Once consent is changed, we will send an update 

    gtag('consent', defaultOrUpdate, {

    consentStates

    });

    }

     

    // This code is responsible for listening to any consent changes trough TrustArc's CCM Instance

    // And pushing the consent changes to the dataLayer according to the customer's consent mapping

    // This is for the intial load. If the user has a consent different from the default values, this is to push an update to the datalayer 

    // Once the CCM loads. 

    var interval = setInterval(() => {

    if (window.truste) {

    var consentDecision = truste.cma.callApi("getGDPRConsentDecision", domain);

    handleConsentDecisionForGCM(consentDecision);

    clearInterval(interval);

    console.log("running once...");

    }

    }, 100);

     

    // Start listening to when users submit their preferences  

    window.addEventListener("message", (event) => {

    let eventDataJson = null;

    // We only care about TrustArc Events at this point. And TrustArc's even it encoded in JSON

    try {

    eventDataJson = JSON.parse(event.data);

    } catch {

    // Some other event that is not JSON. 

    // TrustArc encodes the data as JSON

    // console.log(event.data);

    }

     

    // Safeguard to make sure we are only getting events from TrustArc

    if (eventDataJson && eventDataJson.source === "preference_manager") {

    // Means that the user has submited their preferences

    if (eventDataJson.message === "submit_preferences") {

    console.log("Event Data: ", eventDataJson);

    // Waiting half a second to make sure user's preferences are reflected. 

    setTimeout(() => {

    var consentDecision = truste.cma.callApi("getGDPRConsentDecision", domain);

    console.log("Consent Decision: ", consentDecision);

    handleConsentDecisionForGCM(consentDecision);

    }, 500);

    }

    }

    }, false);

    <!--Banner script here!-->

Kiểm thử bằng tiện ích Tag Assistant

Tìm hiểu thêm về cách Khắc phục sự cố liên quan đến chế độ đồng ý bằng Trình quản lý thẻ của Google.

Thông tin này có hữu ích không?

Chúng tôi có thể cải thiện trang này bằng cách nào?
true
Tìm kiếm
Xóa nội dung tìm kiếm
Đóng tìm kiếm
Trình đơn chính
2663853072528732152
true
Tìm kiếm trong Trung tâm trợ giúp
true
true
true
true
true
102259
false
false