ความเป็นส่วนตัวและการรับส่งข้อความ JavaScript API

บทนำ

API นี้มีเครื่องมือในการโต้ตอบกับข้อความที่ให้บริการโดยนโยบายความเป็นส่วนตัวและ แท็บการรับส่งข้อความ โดยคุณสามารถทำสิ่งต่อไปนี้

  • ระงับการแสดงข้อความสำหรับผู้ใช้ที่ระบุ
  • ค้นหาสถานะการบล็อกโฆษณาของผู้ใช้
  • อนุญาตให้ผู้ใช้เพิกถอนความยินยอม (หากมี)

คุณยังใช้เครื่องมือเหล่านี้เพื่อรวบรวมความยินยอมของผู้ใช้ได้โดยใช้มาตรฐานอุตสาหกรรมบางอย่าง โปรโตคอล:

ในกรณีเหล่านี้ ระบบจะแจ้งสถานะความยินยอมโดยใช้ API เหล่านั้น

คุณสามารถติดตั้งใช้งานฟังก์ชันการรับส่งข้อความกับผู้ใช้นี้ในเว็บไซต์ได้ใน ด้วยวิธีต่อไปนี้

  1. ในกรณีส่วนใหญ่ คุณไม่จำเป็นต้องติดแท็กใหม่เลย โดยแท็ก Google ผู้เผยแพร่ แท็ก หรือ ใช้แท็ก AdSense ข้อความสำหรับผู้ใช้ เมื่อข้อความได้รับการเผยแพร่ในผลิตภัณฑ์ที่เกี่ยวข้องแล้ว
  2. หากใช้ข้อความการกู้คืนรายได้จากการบล็อกโฆษณา คุณจะต้องเพิ่มโฆษณา ที่บล็อกในหน้าเว็บของคุณ ได้อย่างชัดเจน ดูโฆษณา ผู้จัดการและ การติดแท็ก AdSense สำหรับข้อมูลเพิ่มเติม

googlefc เป็นเนมสเปซส่วนกลางที่ฟังก์ชันการรับส่งข้อความกับผู้ใช้ใช้ สำหรับ API ใน JavaScript Window

ข้อมูลสรุปภาคสนาม

ชื่อ ประเภท คำจำกัดความ
googlefc.controlledMessagingFunction ฟังก์ชัน(!Object) ฟังก์ชันที่กำหนดว่าจะดำเนินการกับข้อความต่อไปหรือไม่ ฟังก์ชันนี้รองรับข้อความทุกประเภท
googlefc.callbackQueue !Array<!Object<string, function()>> | !Array&lt;function()&gt; | !googlefc.CallbackQueue การอ้างอิงคิว Callback สำหรับการดำเนินการแบบไม่พร้อมกันสำหรับการค้นหาการรับส่งข้อความของผู้ใช้
googlefc.CallbackQueue !Object ประเภทของออบเจ็กต์คิว Callback
googlefc.AdBlockerStatusEnum !Object<สตริง, ตัวเลข> Enum สำหรับแสดงสถานะตัวบล็อกโฆษณาของผู้ใช้
googlefc.AllowAdsStatusEnum !Object<สตริง, ตัวเลข> Enum สำหรับแสดงสถานะอนุญาตโฆษณาของผู้ใช้
googlefc.ccpa.InitialCcpaStatusEnum !Object<สตริง, ตัวเลข> enum สำหรับแสดงสถานะ CPRA เริ่มต้นของผู้ใช้
googlefc.ccpa.overrideDnsLink ไม่ระบุ|บูลีน บูลีนที่สามารถตั้งค่าเป็น true เพื่อใช้ลิงก์ "ห้ามขาย" ที่กำหนดเอง

สรุปเมธอด

ชื่อ ประเภทการแสดงผล คำจำกัดความ
googlefc.showRevocationMessage() ไม่ได้กำหนด ล้างบันทึกความยินยอมและโหลดสคริปต์ googlefc ซ้ำเพื่อแสดงข้อความขอความยินยอมที่เกี่ยวข้องกับผู้ใช้
googlefc.getAdBlockerStatus() ตัวเลข แสดงผลค่าใน AdBlockerStatusEnum ขึ้นอยู่กับสถานะการบล็อกโฆษณาของผู้ใช้
googlefc.getAllowAdsStatus() ตัวเลข แสดงผลค่าใน AllowAdsStatusEnum ขึ้นอยู่กับสถานะอนุญาตโฆษณาของผู้ใช้
googlefc.ccpa.getInitialCcpaStatus() ตัวเลข แสดงผลค่าใน InitialCcpaStatusEnum โดยขึ้นอยู่กับสถานะ CPRA เริ่มต้นของผู้ใช้
googlefc.ccpa.openConfirmationDialog(function(boolean)) ไม่ได้กำหนด เปิดกล่องโต้ตอบการยืนยัน CPRA หากมีการลบล้างลิงก์ "ห้ามขาย" เริ่มต้น

การทดสอบและแก้ไขข้อบกพร่องในเว็บไซต์

ความเป็นส่วนตัวและ ข้อความมีฟังก์ชันการแก้ไขข้อบกพร่อง และการทดสอบที่ช่วยให้คุณ ดูว่าข้อความหนึ่งๆ (หรือชุดค่าผสมของข้อความ) มีลักษณะอย่างไรบนหน้าเว็บ เว็บไซต์ที่แท้จริง

สิ่งที่ต้องมีก่อน

  • ข้อความที่คุณต้องการดูตัวอย่างต้องเผยแพร่ภายใต้เว็บไซต์ที่คุณ การทดสอบกับ

คุณดูตัวอย่างจริงในเว็บไซต์ได้โดยใช้ URL การแก้ไขข้อบกพร่องต่อไปนี้ ได้แก่

พารามิเตอร์การแก้ไขข้อบกพร่อง ค่าที่อนุญาต
fc alwaysshow (เพื่อทริกเกอร์โหมดแก้ไขข้อบกพร่อง/แสดงตัวอย่าง)
fctype ab (ข้อความการบล็อกโฆษณา), ccpa (ข้อความเลือกไม่รับ CPRA), gdpr (ข้อความขอความยินยอมตาม GDPR), monetization (ข้อความ Offerwall)

ตัวอย่างวิธีใช้ฟีเจอร์นี้เพื่อดูตัวอย่างในเว็บไซต์ (foo.com)

  • ทดสอบการส่งข้อความ CPRA -- http://foo.com/?fc=alwaysshow&fctype=ccpa
  • ทดสอบการส่งข้อความ GDPR -- http://foo.com/?fc=alwaysshow&fctype=gdpr

ช่อง: คําอธิบายและตัวอย่าง

googlefc.controlledMessagingFunction {function(!Object)}

ฟังก์ชันที่กำหนดว่าข้อความควรแสดงหรือไม่ สามารถทำได้ ซึ่งใช้เพื่อกำหนดการแสดงผลโฆษณาในเงื่อนไขที่ผู้เผยแพร่โฆษณาระบุ เช่น สถานะสมาชิกหรือ URL ของหน้าเว็บ

เมื่อคุณกำหนด googlefc.controlledMessagingFunction บนหน้าต่างก่อนหน้า กำลังโหลดสคริปต์อื่นๆ ข้อความจะไม่แสดงจนกว่าคุณจะเรียก message.proceed(boolean) การโทรหา message.proceed(true) จะทำให้สามารถส่งข้อความถึง ดำเนินการตามปกติ ในขณะที่การเรียก message.proceed(false) จะทำให้ไม่สามารถส่งข้อความใดๆ สำหรับการดูหน้าเว็บ

ตัวอย่าง: สมมติว่าคุณมีสคริปต์นี้ในหน้าที่กำหนดอะซิงโครนัส ฟังก์ชัน determineIfUserIsSubscriber() ที่ตรวจสอบว่าผู้ใช้ที่เข้าสู่ระบบเป็น สมาชิก

<head>
  <script>
    window.isSubscriber = undefined;
    function determineIfUserIsSubscriber() {
      if (isSubscriber !== undefined) {
        return isSubscriber;
      }
      return new Promise(resolve => {
        setTimeout(() => {
          // Change this to true if you want to test what subscribers would see.
          window.isSubscriber = false;
          resolve(window.isSubscriber);
        }, 1000);
      });
    }
  </script>
</head>

นี่เป็นตัวอย่างวิธีที่คุณสามารถใช้ googlefc.controlledMessagingFunction เพื่อแสดงข้อความต่อ ผู้ที่ไม่ใช่สมาชิก

<head>
  <script>
    // Define googlefc and the controlled messaging function on the Window.
    window.googlefc = window.googlefc || {};
    googlefc.controlledMessagingFunction = async (message) => {
      // Determine if the user is a subscriber asynchronously.
      const isSubscriber = await determineIfUserIsSubscriber();

      if (isSubscriber) {
        // If the user is a subscriber, don't show any messages.
        message.proceed(false);
      } else {
        // Otherwise, show messages as usual.
        message.proceed(true);
      }
    }
  </script>
</head>

นอกจากนี้ยังมีส่วนขยายของฟีเจอร์นี้ที่ช่วยให้ผู้เผยแพร่โฆษณา Offerwall แบบปิดรุ่นเบต้าเพื่อระบุว่าควรส่ง Offerwall เท่านั้น ที่ถูกระงับ ข้อความประเภทอื่นๆ จะไม่ได้รับผลกระทบเมื่อฟีเจอร์นี้มีผลบังคับใช้

การรับส่งข้อความที่มีการควบคุมสำหรับ Offerwall โดยเฉพาะนั้นทำได้โดยการส่งผ่าน เป็น message.proceed() ซึ่งเป็น Array ประเภท googlefc.MessageTypeEnum

ตัวอย่าง: นี่คือตัวอย่างการใช้ googlefc.controlledMessagingFunction เพื่อ ระงับการแสดง Offerwall สำหรับสมาชิกเท่านั้น โดยไม่ระงับการแสดง ประเภทข้อความ:

<head>
  <script>
    // Define googlefc and the controlled messaging function on the Window.
    window.googlefc = window.googlefc || {};
    googlefc.controlledMessagingFunction = async (message) => {
     // Determine if the Offerwall should display or not.
     const shouldDisplayOfferwall = await determineIfUserIsSubscriber();
     const applicableMessageTypes = [];

     if (!shouldDisplayOfferwall) {
       // Do not show the Offerwall, but allow other message types to display.
       applicableMessageTypes.push(window.googlefc.MessageTypeEnum.OFFERWALL);
       message.proceed(false, applicableMessageTypes);
     } else {
       // Otherwise, show messages as usual.
       message.proceed(true);
     }
    }
  </script>
</head>

googlefc.callbackQueue {!Array<!Object<string, function()>> | !Array<function()> | !googlefc.CallbackQueue}

การอ้างอิงถึงคิว Callback ทั่วโลกสำหรับการดำเนินการแบบไม่พร้อมกันของ การโทรที่เกี่ยวข้องกับการรับส่งข้อความ วิธีเดียวที่รองรับในการเรียกใช้ฟังก์ชันคือ กำลังเพิ่มลงใน callbackQueue

เนื่องจากข้อมูลประเภทต่างๆ จะพร้อมใช้งานในเวลาที่ต่างกัน ฟังก์ชันหนึ่ง ควรเพิ่มเป็นแผนที่ โดยมีสตริงใดสตริงหนึ่งต่อไปนี้เป็นคีย์และ ที่จะเรียกใช้เป็นค่า

คีย์ที่รองรับ:

ชื่อคีย์ การใช้งาน เวลาในการตอบสนองสัมพัทธ์
CONSENT_API_READY ฟังก์ชันที่พุชไปยังคิว Callback ด้วยคีย์ CONSENT_API_READY จะทำงานเมื่อมีการกำหนด API สำหรับกรอบคำยินยอมที่รองรับและเรียกใช้ได้ จากจุดนี้ การเรียกใช้ฟังก์ชันซึ่งผูกกับ CONSENT_API_READY ที่เพิ่มเข้ามาหลังจากนั้นจะเป็นแบบซิงโครนัส ดูรายละเอียดเฉพาะเฟรมเวิร์กได้ใน เฟรมเวิร์กของ IAB ต่ำ
CONSENT_DATA_READY ฟังก์ชันที่พุชไปยังคิว Callback ที่มีคีย์ CONSENT_DATA_READY จะทำงานเมื่อทราบความยินยอมของผู้ใช้ภายใต้กรอบคำยินยอมที่รองรับ (ทั้งจากการดำเนินการก่อนหน้านี้หรือเมื่อผู้ใช้โต้ตอบกับข้อความขอความยินยอม) จากจุดนี้ การเรียกใช้ฟังก์ชันซึ่งผูกกับ CONSENT_DATA_READY ที่เพิ่มเข้ามาหลังจากนั้นจะเป็นแบบซิงโครนัส สูง
AD_BLOCK_DATA_READY ฟังก์ชันที่พุชไปยังคิว Callback ด้วยคีย์ AD_BLOCK_DATA_READY จะทำงานเมื่อมีข้อมูลการบล็อกโฆษณาพร้อมใช้งานในโฟลว์ จากจุดนี้ การเรียกใช้ฟังก์ชันซึ่งผูกกับ AD_BLOCK_DATA_READY ที่เพิ่มเข้ามาหลังจากนั้นจะเป็นแบบซิงโครนัส สูง
INITIAL_CCPA_DATA_READY ฟังก์ชันที่พุชไปยังคิว Callback ที่มี INITIAL_CCPA_DATA_READY จะทำงานเมื่อข้อมูล CPRA พร้อมใช้งานในโฟลว์ โปรดทราบว่าคุณควรได้รับคำขอข้อมูล CPRA ในครั้งต่อๆ ไปโดยการเรียกใช้ US Privacy API โดยตรง (__uspapi) ปานกลาง

googlefc.CallbackQueue {!Object}

สรุปเมธอด:

ชื่อ ประเภท พารามิเตอร์ ประเภทการแสดงผล บทบาท
push(data) ตัวเลข data: คู่คีย์-ค่าที่มีคีย์เป็นหนึ่งในข้อมูล ประเภทความพร้อมใช้งานและค่าที่เป็นฟังก์ชัน JavaScript ที่จะดำเนินการ คีย์ความพร้อมใช้งานของข้อมูลที่ยอมรับได้คือ CONSENT_API_READY CONSENT_DATA_READY, AD_BLOCK_DATA_READY และ INITIAL_CCPA_DATA_READY จำนวนคำสั่งที่เพิ่มจนถึงตอนนี้ จะแสดงผลความยาวปัจจุบันของอาร์เรย์ เรียกใช้ฟังก์ชันที่ส่งผ่านตามลำดับที่ข้อมูล ตามลําดับการเพิ่มฟังก์ชันเหล่านี้ไปยังฟังก์ชัน คิว

ตัวอย่าง

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.ccpa = window.googlefc.ccpa || {}
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  googlefc.callbackQueue.push({
    'AD_BLOCK_DATA_READY':
    () => {
      if (googlefc.getAdBlockerStatus() == googlefc.AdBlockerStatusEnum.NO_AD_BLOCKER) {
        // Handle a non-ad blocking user.
      }
    }
  });
</script>

googlefc.AdBlockerStatusEnum {!Object<string, number>}

แสดงสถานะการบล็อกโฆษณาต่างๆ ของผู้ใช้ รัฐต่างๆ ได้แก่

googlefc.AdBlockerStatusEnum = {
  // Something failed, in an unknown state.
  UNKNOWN: 0,
  // The user was running an extension level ad blocker.
  EXTENSION_AD_BLOCKER: 1,
  // The user was running a network level ad blocker.
  NETWORK_LEVEL_AD_BLOCKER: 2,
  // The user was not blocking ads.
  NO_AD_BLOCKER: 3,
};

googlefc.AllowAdsStatusEnum {!Object<string, number>}

แสดงสถานะการอนุญาตการบล็อกโฆษณาต่างๆ ของผู้ใช้ ความแตกต่างของ ได้แก่

googlefc.AllowAdsStatusEnum = {
  // Something failed, in an unknown state.
  UNKNOWN: 0,
  // User is currently using an ad blocker, was never using an ad blocker, or
  // allowed ads, but not because they saw the Privacy & messaging message.
  ADS_NOT_ALLOWED: 1,
  // User is no longer using an ad blocker after seeing the ad blocking message.
  ADS_ALLOWED: 2,
};

googlefc.ccpa.InitialCcpaStatusEnum{!Object<string, number>}

แสดงสถานะการอนุญาตการบล็อกโฆษณาต่างๆ ของผู้ใช้ ความแตกต่างของ ได้แก่

googlefc.ccpa.InitialCcpaStatusEnum = {
  // Something failed, in an unknown state.
  UNKNOWN: 0,
  // CPRA does not apply to this user.
  CCPA_DOES_NOT_APPLY: 1,
  // CPPA applies to this user, and the user has not opted out yet.
  NOT_OPTED_OUT: 2,
  // CPPA applies to this user, and the user has opted out.
  OPTED_OUT: 3,
};

googlefc.ccpa.overrideDnsLink{undefined|boolean}

ตั้งค่าฟิลด์นี้เป็น "จริง" เพื่อซ่อนลิงก์ "ห้ามขาย" ที่เป็นค่าเริ่มต้นและใช้ลิงก์ "ห้ามขาย" ลิงก์ "ห้ามขาย" แบบกำหนดเอง

ตัวอย่าง

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.ccpa = window.googlefc.ccpa || {}
  // Signals that the default DNS link will be overridden.
  googlefc.ccpa.overrideDnsLink = true;
</script>

วิธีการ: คำอธิบายและตัวอย่าง

googlefc.getConsentStatus(): {number}


googlefc.getConsentedProviderIds(): {!Array<string>}

  1. ซึ่งตอนนี้ระบบจะส่งคืนรายการที่ว่างเปล่าเสมอเมื่อมีการเรียก

googlefc.showRevocationMessage(): {undefined}

ล้างบันทึกความยินยอมปัจจุบันและแสดงข้อความขอความยินยอมที่ ที่เกี่ยวข้องสำหรับผู้ใช้รายนี้ คีย์ที่ควรระบุสำหรับฟังก์ชันนี้คือ CONSENT_DATA_READY

ตัวอย่าง

<button type="button" onclick="googlefc.callbackQueue.push({'CONSENT_DATA_READY': () => googlefc.showRevocationMessage()});">
  Click here to revoke
</button>

googlefc.getAdBlockerStatus(): {number}

แสดงค่าใน AdBlockerStatusEnum โดยขึ้นอยู่กับสถานะการบล็อกโฆษณา ของผู้ใช้ คีย์ที่ควรระบุสำหรับฟังก์ชันนี้คือ AD_BLOCK_DATA_READY

ตัวอย่าง

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.ccpa = window.googlefc.ccpa || {}
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  googlefc.callbackQueue.push({
    'AD_BLOCK_DATA_READY':
    () => {
      switch (googlefc.getAdBlockerStatus()) {
          case googlefc.AdBlockerStatusEnum.EXTENSION_LEVEL_AD_BLOCKER:
          case googlefc.AdBlockerStatusEnum.NETWORK_LEVEL_AD_BLOCKER:
            // Insert handling for cases where the user is blocking ads.
            break;
          case googlefc.AdBlockerStatusEnum.NO_AD_BLOCKER:
            // Insert handling for cases where the user is not blocking ads.
            break;
          case googlefc.AdBlockerStatusEnum.UNKNOWN:
            // Insert handling for unknown cases.
            break;
      }
    }
  });
</script>

googlefc.getAllowAdsStatus(): {number}

แสดงผลค่าใน AllowAdsStatusEnum ขึ้นอยู่กับสถานะการอนุญาตโฆษณาของ ผู้ใช้รายนั้น คีย์ที่ควรระบุสำหรับฟังก์ชันนี้คือ AD_BLOCK_DATA_READY

ตัวอย่าง

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.ccpa = window.googlefc.ccpa || {}
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  googlefc.callbackQueue.push({
    'AD_BLOCK_DATA_READY':
    () => {
      switch (googlefc.getAllowAdsStatus()) {
        case googlefc.AllowAdsStatusEnum.ADS_NOT_ALLOWED:
          // Insert handling for cases where the user has not allowed ads.
          // The user may have never been an ad blocker.
          break;
        case googlefc.AllowAdsStatusEnum.ADS_ALLOWED:
          // Insert handling for cases where the user saw the ad blocking
          // message and allowed ads on the site.
          break;
        case googlefc.AllowAdsStatusEnum.UNKNOWN:
          // Insert handling for unknown cases.
          break;
      }
    }
  });
</script>

googlefc.ccpa.getInitialCcpaStatus(): {number}

แสดงผลค่าใน InitialCcpaStatusEnum ขึ้นอยู่กับสถานะ CPRA ของ ผู้ใช้รายนั้น คีย์ที่ควรระบุสำหรับฟังก์ชันนี้คือ INITIAL_CCPA_DATA_READY โปรดทราบว่าคำขอข้อมูล CPRA ครั้งต่อๆ ไปควร จะรับได้ด้วยการเรียกใช้ Privacy API ของสหรัฐอเมริกาโดยตรง (__uspapi)

ตัวอย่าง

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.ccpa = window.googlefc.ccpa || {}
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  googlefc.callbackQueue.push({
    'INITIAL_CCPA_DATA_READY':
    () => {
      switch (googlefc.ccpa.getInitialCcpaStatus()) {
        case googlefc.ccpa.InitialCcpaStatusEnum.CCPA_DOES_NOT_APPLY:
          // Insert handling for cases where the user is not CPRA eligible.
          break;
        case googlefc.ccpa.InitialCcpaStatusEnum.NOT_OPTED_OUT:
          // Insert handling for cases where the user is CPRA eligible and has
          // not opted out.
          break;
        case googlefc.ccpa.InitialCcpaStatusEnum.OPTED_OUT:
          // Insert handling for cases where the user is CPRA eligible and has
          // opted out.
          break;
      }
    }
  });
</script>

googlefc.ccpa.openConfirmationDialog(function(boolean)): {undefined}

เปิดกล่องโต้ตอบการยืนยัน CPRA หากลิงก์ "ห้ามขาย" เริ่มต้นคือ ถูกลบล้าง เมื่อผู้ใช้โต้ตอบกับกล่องโต้ตอบการยืนยัน อินพุต มีการเรียกฟังก์ชัน Callback ด้วย true หากผู้ใช้เลือกที่จะเลือกไม่ใช้ และ false หรือไม่เช่นนั้น

ตัวอย่าง

<script>
// This callback will be called with the user CPRA decision.
const ccpaCompletionCallback = (userOptedOut) => {
  // Insert handling for user opt-out status here.
}
// Invoke the CPRA confirmation dialog when the user clicks the link.
document.getElementById("your-custom-ccpa-do-not-sell-link").addEventListener(
  "click", () => googlefc.ccpa.openConfirmationDialog(ccpaCompletionCallback));
</script>

หากคุณใช้โซลูชันการจัดการความยินยอมของ Google เพื่อรวบรวมความยินยอมตาม GDPR ภายใต้กรอบ TCF เวอร์ชัน 2 ของ IAB คุณควรใช้ TCF เวอร์ชัน 2 ของ IAB API

คุณสามารถใช้CONSENT_API_READY คีย์ของคิว Callback เพื่อให้แน่ใจว่าระบบจะเรียกใช้ Callback ที่เกี่ยวข้องเฉพาะเมื่อ มีการกำหนด TCF เวอร์ชัน 2 ของ IAB ในหน้าเว็บ ควรใช้ร่วมกับ พร้อมด้วย 'addEventListener' ของ IAB TCF v2 API

ตัวอย่าง

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback using the CONSENT_API_READY key on the callbackQueue.
  window.googlefc.callbackQueue.push({
    'CONSENT_API_READY':
    () => __tcfapi('addEventListener', 2.2, (data, success) => {
      // Do something with consent data value; this callback may be invoked
      // multiple times as user completes consent flow.
    })
  });
</script>

คุณสามารถใช้CONSENT_DATA_READY คีย์ของคิว Callback เพื่อให้แน่ใจว่ามีการเรียกใช้ Callback ที่เกี่ยวข้อง เมื่อมีการรวบรวมและเข้าถึงความยินยอมของผู้ใช้โดยใช้ TCF เวอร์ชัน 2 ของ IAB เท่านั้น ซึ่งสามารถใช้ร่วมกับ 'addEventListener' - ข้อมูลที่ให้ไว้ในการเรียกใช้ครั้งแรกของ Callback ที่ระบุ จะมีการเลือกความยินยอมของผู้ใช้ (ตราบใดที่ TCF เวอร์ชัน 2 มีผลกับ ผู้ใช้) โปรดทราบว่าการเปิดตัว TCF เวอร์ชัน 2.2 'getTCData' ขณะนี้เลิกใช้งานแล้ว

ตัวอย่าง

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback using the CONSENT_DATA_READY key on the callbackQueue.
  window.googlefc.callbackQueue.push({
    'CONSENT_DATA_READY':
    () => __tcfapi('addEventListener', 2.2, (data, success) => {
      // Do something with consent data value; this callback may be invoked
      // multiple times if user consent selections change.
    })
  });
</script>

การใช้โซลูชันการจัดการความยินยอมของ Google กับเฟรมเวิร์ก GPP ของ IAB สำหรับ CPRA

หากคุณใช้โซลูชันการจัดการความยินยอมของ Google เพื่อรวบรวมการเลือกไม่ใช้ CPRA ภายใต้กรอบ GPP ของ IAB คุณควรใช้เมตริก GPP ของ IAB API

เนื่องด้วยลักษณะการเลือกไม่ใช้ตามกฎระเบียบ CPRA คุณสามารถใช้ CONSENT_API_READY หรือ การติดต่อกลับ CONSENT_DATA_READY คีย์คิวเพื่อดูแลให้ IAB GPP API เรียกใช้ได้และแสดงผลข้อมูลความยินยอม ในเวลาที่มีการเรียกใช้ Callback

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.ccpa = window.googlefc.ccpa || {}
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  window.googlefc.callbackQueue.push({
    'CONSENT_DATA_READY':
    () => __uspapi('getUSPData', 1, (data, success) => {
      // Do something with consent data value.
    })
  });
</script>

การใช้โซลูชันการจัดการความยินยอมของ Google กับเฟรมเวิร์ก GPP ของ IAB สำหรับ CPRA ที่มีลิงก์ "ห้ามขาย" ที่กำหนดเอง

หากคุณใช้โซลูชันการจัดการความยินยอมของ Google เพื่อรวบรวมการเลือกไม่ใช้ CPRA ภายใต้เฟรมเวิร์ก IAB GPP คุณสามารถส่งลิงก์ "ห้ามขาย" ที่กำหนดเองได้ โดยตั้งค่าสถานะ googlefc.ccpa.overrideDnsLink เป็น true

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.ccpa = window.googlefc.ccpa || {}
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Signals that the default DNS link will be overridden.
  window.googlefc.ccpa.overrideDnsLink = true;

  // Register the callback for the initial CPRA data.
  window.googlefc.callbackQueue.push({
      'INITIAL_CCPA_DATA_READY': () => {
        if (googlefc.ccpa.getInitialCcpaStatus() ===
            googlefc.ccpa.InitialCcpaStatusEnum.NOT_OPTED_OUT) {
          // TODO: Display custom CPRA Do Not Sell link here.
        }
      }
    });
</script>

การดำเนินการนี้จะทำให้ลิงก์ "ห้ามขาย" เริ่มต้นไม่แสดงผล โปรดทราบว่า มีหน้าที่แสดงลิงก์ "ห้ามขาย" ของคุณเองเพื่อให้เป็นไปตามข้อกําหนด ร่วมกับ CPRA จากนั้นคุณต้องจัดการการโต้ตอบของผู้ใช้กับ "อย่า" ที่คุณกำหนดเอง ขายลิงก์โดยการเรียกใช้กล่องโต้ตอบการยืนยัน CPRA

<script>
// This callback will be called with the user CPRA decision.
const ccpaCompletionCallback = (userOptedOut) => {
  if (userOptedOut) {
    // TODO: Hide custom CPRA Do Not Sell link here.
  }
}
// Invoke the CPRA confirmation dialog when the user clicks the link.
document.getElementById("your-custom-ccpa-do-not-sell-link").addEventListener(
  "click", () => googlefc.ccpa.openConfirmationDialog(ccpaCompletionCallback));
</script>