निजता और मैसेज सेवा JavaScript एपीआई

शुरुआती जानकारी

यह एपीआई, 'निजता और मैसेज' टैब में मिलने वाले मैसेज के साथ इंटरैक्ट करने के लिए टूल उपलब्ध कराता है. इसकी मदद से:

  • किसी खास उपयोगकर्ता के लिए मैसेज सेवा बंद करें
  • उपयोगकर्ता के विज्ञापन रोकने की स्थिति से जुड़ी क्वेरी
  • उपयोगकर्ता को सहमति निरस्त करने की अनुमति दें (अगर लागू हो)

कुछ इंडस्ट्री स्टैंडर्ड प्रोटोकॉल का इस्तेमाल करके, उपयोगकर्ताओं की सहमति लेने के लिए भी इन टूल का इस्तेमाल किया जा सकता है:

ऐसे मामलों में, इन एपीआई से सहमति की स्थिति की जानकारी दी जाती है.

अपनी साइट पर उपयोगकर्ता को मैसेज भेजने की सुविधा के कई तरीके इस्तेमाल किए जा सकते हैं:

  1. ज़्यादातर मामलों में, आपको बिलकुल भी टैग नहीं करना पड़ता - आपके मौजूदा Google पब्लिशर टैग या AdSense टैग में उपयोगकर्ता के मैसेज डिप्लॉय हो जाते हैं. इसके बाद, सही प्रॉडक्ट में मैसेज पब्लिश हो जाता है.
  2. अगर आप विज्ञापन ब्लॉकिंग रिकवरी मैसेज का इस्तेमाल कर रहे हैं, तो आपको अपने पेज पर विज्ञापन ब्लॉकिंग टैग को साफ़ तौर पर जोड़ना होगा. ज़्यादा जानकारी के लिए Ad Manager और AdSense को टैग करने से जुड़े निर्देश देखें.

googlefc, एक ग्लोबल नेमस्पेस है. इसका इस्तेमाल, उपयोगकर्ता मैसेजिंग की सुविधा, JavaScript Window पर अपने एपीआई के लिए करती है.

फ़ील्ड की खास जानकारी

नाम Type परिभाषा
googlefc.controlledMessagingFunction फ़ंक्शन(!ऑब्जेक्ट) एक ऐसा फ़ंक्शन जो तय करता है कि किसी मैसेज के साथ आगे बढ़ना है या नहीं. यह सुविधा सभी तरह के मैसेज के लिए उपलब्ध होती है.
googlefc.callbackQueue !Array<!Object<string, function()>> | !Array<function()> | !googlefc.CallbackQueue लोगों की मैसेज क्वेरी का जवाब देने में एसिंक्रोनस तरीके से लगने वाले डेटा के लिए, कॉलबैक की सूची देखें.
googlefc.CallbackQueue !ऑब्जेक्ट कॉलबैक सूची ऑब्जेक्ट का टाइप.
googlefc.AdBlockerStatusEnum !ऑब्जेक्ट<स्ट्रिंग, संख्या> उपयोगकर्ता की, विज्ञापन रोकने वाली स्थिति दिखाने के लिए Enum.
googlefc.AllowAdsStatusEnum !ऑब्जेक्ट<स्ट्रिंग, संख्या> उपयोगकर्ता की अनुमति वाले विज्ञापनों की स्थिति दिखाने के लिए Enum.
googlefc.ccpa.InitialCcpaStatusEnum !ऑब्जेक्ट<स्ट्रिंग, संख्या> उपयोगकर्ता के शुरुआती सीपीआरए स्टेटस के बारे में बताने वाला Enum.
googlefc.ccpa.overrideDnsLink तय नहीं किया गया|बूलियन बूलियन को 'सही है' पर सेट किया जा सकता है. ऐसा करने पर, कस्टम 'बिक्री न करें' लिंक का इस्तेमाल किया जा सकता है.

तरीके की खास जानकारी

नाम रिटर्न टाइप परिभाषा
googlefc.showRevocationMessage() तय नहीं है इससे, सहमति का रिकॉर्ड हट जाता है और उपयोगकर्ता पर लागू होने वाला सहमति मैसेज दिखाने के लिए, googlefc स्क्रिप्ट को फिर से लोड किया जाता है.
googlefc.getAdBlockerStatus() नंबर उपयोगकर्ता की विज्ञापन ब्लॉकिंग स्थिति के आधार पर AdBlockerStatusEnum में वैल्यू दिखाता है.
googlefc.getAllowAdsStatus() नंबर उपयोगकर्ता की अनुमति वाले विज्ञापन की स्थिति के आधार पर, AllowAdsStatusEnum में कोई वैल्यू दिखाता है.
googlefc.ccpa.getInitialCcpaStatus() नंबर उपयोगकर्ता के शुरुआती सीपीआरए स्टेटस के आधार पर, InitialCcpaStatusEnum में वैल्यू दिखाता है.
googlefc.ccpa.openConfirmationDialog(function(boolean)) तय नहीं है अगर 'बिक्री न करें' लिंक को बदला गया है, तो सीपीआरए की पुष्टि करने वाला डायलॉग खोलता है.

अपनी साइट की जांच करना और उसे डीबग करना

निजता और मैसेज सेवा, डीबग करने और जांच करने की सुविधा देती है. इसकी मदद से, यह देखा जा सकता है कि आपकी असली साइट पर कौनसे खास मैसेज (या मैसेज के मेल) दिखते हैं.

ज़रूरी शर्तें:

  • आप जिस मैसेज की झलक देखना चाहते हैं वह उस साइट पर पब्लिश होना चाहिए जिसकी जांच हो रही है

आप डीबग करने वाले इन यूआरएल पैरामीटर का इस्तेमाल करके, अपनी साइट पर लाइव झलक देख सकते हैं:

डीबग पैरामीटर मंज़ूर की गई वैल्यू
fc alwaysshow (डीबग/झलक मोड ट्रिगर करने के लिए)
fctype ab (विज्ञापन रोकने वाले मैसेज), ccpa (सीपीआरए से ऑप्ट-आउट करने वाले मैसेज), gdpr (जीडीपीआर के सहमति जताने वाले मैसेज), monetization (ऑफ़र वाले मैसेज)

अपनी साइट पर इसकी झलक दिखाने के तरीके के कुछ उदाहरण (foo.com):

  • सीपीआरए मैसेज सेवा की जांच करें -- http://foo.com?fc=alwaysshow&fctype=ccpa
  • जीडीपीआर मैसेज सेवा की जांच करें -- http://foo.com?fc=alwaysshow&fctype=gdpr

फ़ील्ड: एक्सप्लेनेशंस और उदाहरण

googlefc.controlledMessagingFunction {function(!Object)}

एक ऐसा फ़ंक्शन जो तय करता है कि मैसेज दिखाने चाहिए या नहीं. इसका इस्तेमाल, सदस्य की स्थिति या पेज के यूआरएल जैसी पब्लिशर की खास शर्तों के आधार पर मैसेज रेंडरिंग को गेट करने के लिए किया जा सकता है.

जब आप अन्य स्क्रिप्ट के लोड होने से पहले, विंडो पर 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>

ऑफ़रवॉल के बंद किए गए बीटा वर्शन वाले प्रकाशक यह बता सकते हैं कि सिर्फ़ ऑफ़र करने वाले उपयोगकर्ताओं को ही message.proceed()एक अतिरिक्त पैरामीटर देकर, यह ऑफ़र दिए जाने की अनुमति दी जाए. यह पैरामीटर, Array टाइप का googlefc.MessageTypeEnum है. आज सिर्फ़ OFFERWALL का ही ईनम मौजूद है, लेकिन आने वाले समय में इसमें कुछ और मैसेज भी जोड़े जा सकते हैं.

उदाहरण: मान लें कि आपके पास ऊपर दिए गए determineIfUserIsSubscriber() फ़ंक्शन की तरह है. यह एक उदाहरण है, जिसमें 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 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}

मैसेज सेवा से जुड़े कॉल के एसिंक्रोनस एक्ज़ीक्यूशन के लिए ग्लोबल कॉलबैक सूची का रेफ़रंस दें. किसी भी फ़ंक्शन को शुरू करने का एकमात्र तरीका, उसे callbackQueue में जोड़ना है.

अलग-अलग समय पर अलग-अलग तरह का डेटा उपलब्ध होने की वजह से, फ़ंक्शन को मैप के तौर पर जोड़ा जाना चाहिए. इनमें से एक स्ट्रिंग को कुंजी के तौर पर और वैल्यू के रूप में इस्तेमाल किया जाना चाहिए.

इस्तेमाल की जा सकने वाली कुंजियां:

कुंजी का नाम इस्तेमाल का तरीका सापेक्ष प्रतीक्षा अवधि
CONSENT_API_READY CONSENT_API_READY कुंजी की मदद से कॉलबैक सूची में भेजे गए फ़ंक्शन, एक्ज़ीक्यूट किए जाते हैं. इसके लिए तब काम किया जाता है, जब काम करने वाले सहमति फ़्रेमवर्क के एपीआई तय किए जा सकें और कॉल किए जा सकें. इस चरण के बाद, जोड़े गए CONSENT_API_READYकी-फ़ंक्शन को सिंक्रोनस किया जाता है. फ़्रेमवर्क से जुड़ी खास जानकारी के लिए, नीचे दिए गए IAB फ़्रेमवर्क पर सेक्शन देखें. खराब
CONSENT_DATA_READY CONSENT_DATA_READY कुंजी की मदद से कॉलबैक सूची में पुश किए गए फ़ंक्शन तब चलाए जाते हैं, जब उपयोगकर्ता की सहमति वाले किसी मान्य फ़्रेमवर्क के तहत इकट्ठा की गई सहमति मौजूद हो. इसका मतलब है कि सहमति पहले से लागू होने पर या उपयोगकर्ता के सहमति जताने वाले मैसेज से इंटरैक्ट करने पर मिलती है. इस चरण के बाद, जोड़े गए CONSENT_DATA_READYकी-फ़ंक्शन को सिंक्रोनस किया जाता है. ज़्यादा
AD_BLOCK_DATA_READY जब विज्ञापन ब्लॉकिंग डेटा, फ़्लो में उपलब्ध हो जाता है, तब AD_BLOCK_DATA_READY कुंजी की मदद से, कॉलबैक सूची में पुश किए गए फ़ंक्शन चलाए जाते हैं. इसके बाद, जोड़े गए AD_BLOCK_DATA_READY के मुख्य फ़ंक्शन एक साथ सिंक होते हैं. ज़्यादा
INITIAL_CCPA_DATA_READY जब फ़्लो में सीपीआरए डेटा उपलब्ध हो जाता है, तब INITIAL_CCPA_DATA_READY के साथ कॉलबैक सूची में पुश किए गए फ़ंक्शन, एक्ज़ीक्यूट किए जाते हैं. ध्यान दें कि सीपीआरए डेटा के लिए किया जाने वाला कोई भी अनुरोध, अमेरिका के निजता एपीआई (__uspapi) को सीधे कॉल करके किया जाना चाहिए. मीडियम

googlefc.CallbackQueue {!Object}

तरीके की खास जानकारी:

नाम Type पैरामीटर की जानकारी रिटर्न टाइप भूमिका
push(data) नंबर data: डेटा की उपलब्धता के प्रकारों में से एक के तौर पर कुंजी के साथ जोड़ी जाने वाली वैल्यू और JavaScript फ़ंक्शन के रूप में इस्तेमाल की जाने वाली वैल्यू. CONSENT_API_READY, CONSENT_DATA_READY, AD_BLOCK_DATA_READY, और INITIAL_CCPA_DATA_READY को डेटा की उपलब्धता के तौर पर स्वीकार किया जाता है. अब तक जोड़े गए निर्देशों की संख्या. यह श्रेणी की मौजूदा लंबाई दिखाता है. पास किए गए फ़ंक्शन को उस क्रम में एक्ज़ीक्यूट करता है जिस क्रम में डेटा उपलब्ध होता है. इसके बाद, जिस क्रम में ये फ़ंक्शन जोड़े जाते हैं उस क्रम में.

Example:

<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}

डिफ़ॉल्ट रूप से 'बिक्री न करें' लिंक को छिपाने के लिए, इस फ़ील्ड को 'सही' पर सेट करें. इसके बाद, पसंद के मुताबिक न बनाएं लिंक का इस्तेमाल करें.

Example:

<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 है.

Example:

<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 है.

Example:

<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 है.

Example:

<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 में वैल्यू दिखाता है. इस फ़ंक्शन के लिए तय की जाने वाली कुंजी, INITIAL_CCPA_DATA_READY है. ध्यान दें कि सीपीआरए डेटा के लिए किया जाने वाला कोई भी अनुरोध, अमेरिका के निजता एपीआई (__uspapi) को सीधे कॉल करके किया जाना चाहिए.

Example:

<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}

अगर 'बिक्री न करें' लिंक को डिफ़ॉल्ट रूप से बदला गया है, तो सीपीआरए की पुष्टि करने वाला डायलॉग खोलें. किसी उपयोगकर्ता के पुष्टि करने वाले डायलॉग से इंटरैक्ट करने के बाद, दिए गए कॉलबैक फ़ंक्शन को true के साथ कॉल किया जाता है. ऐसा तब होता है, जब उपयोगकर्ता ऑप्ट-आउट करता हो और false.

Example:

<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>

IAB टीसीएफ़ के 2.2 फ़्रेमवर्क में जीडीपीआर का सहमति इकट्ठा करने के लिए, Google की सहमति मैनेजमेंट सलूशन का इस्तेमाल करने पर, आपको IAB टीसीएफ़ के 2. एपीआई वर्शन का इस्तेमाल करना चाहिए.

इसके लिए, CONSENT_API_READY का इस्तेमाल किया जा सकता है

कॉलबैक क्यू की कुंजी, ताकि यह पक्का किया जा सके कि पेज पर IAB टीसीएफ़ के 2.0 वर्शन वाले एपीआई के तय होने पर ही संबंधित कॉलबैक लागू किए जाएं. इसका इस्तेमाल, IAB टीसीएफ़ वर्शन v2 एपीआई के साथ 'addEventListener' निर्देश के साथ किया जाना चाहिए. ऐसा इसलिए, क्योंकि सिंक करने की सुविधा का इस्तेमाल करके, उपयोगकर्ता की सहमति मिल गई है'getTCData' हो सकता है कि इसका निर्देश अभी तक उपलब्ध न हो.

Example:

<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.0, (data, success) => {
      // Do something with consent data value; this callback may be invoked
      // multiple times as user completes consent flow.
    })
  });
</script>

इसके लिए, CONSENT_DATA_READY का इस्तेमाल किया जा सकता है

कॉलबैक क्यू की कुंजी, यह पक्का करने के लिए कि मिलते-जुलते कॉलबैक तब ही शुरू किए जाएं, जब उपयोगकर्ता IAB टीसीएफ़ के 2.2 वर्शन के एपीआई का इस्तेमाल करके सहमति इकट्ठा करे और ऐक्सेस करे. इसका इस्तेमाल 'getTCData' के निर्देश के साथ किया जा सकता है, क्योंकि सिंक करने के तरीकों से उपयोगकर्ता की सहमति की स्थिति फ़ेच की जा सकती है.

Example:

<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('getTCData', 2.0, (data, success) => {
      // Do something with consent data value.
    })
  });
</script>

IAB GPP फ़्रेमवर्क के साथ, सीपीआरए के लिए, Google के सहमति मैनेजमेंट समाधान इस्तेमाल करना

IAB GPP फ़्रेमवर्क के तहत, सीपीआरए से ऑप्ट-आउट करने के लिए, Google की सहमति मैनेजमेंट सलूशन का इस्तेमाल करने पर, आपको IAB GPP एपीआई का इस्तेमाल करना चाहिए.

सीपीआरए कानून से ऑप्ट आउट करने की वजह से, CONSENT_API_READY या CONSENT_DATA_READY कॉलबैक सूची कुंजी का इस्तेमाल किया जा सकता है. इससे, यह पक्का किया जा सकता है कि कॉलबैक शुरू किए जाने पर, IAB GPP एपीआई, कॉल किया जा सके और सहमति से जुड़ा डेटा दिखा सके.

<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>

कस्टम 'डेटा न बेचें' लिंक के साथ, सीपीआरए के लिए, IAB GPP के फ़्रेमवर्क के साथ Google के सहमति मैनेजमेंट सलूशन का इस्तेमाल करना

IAB GPP फ़्रेमवर्क के तहत सीपीआरए से ऑप्ट-आउट करने के लिए, Google की सहमति मैनेजमेंट सलूशन का इस्तेमाल करने पर, पसंद के मुताबिक 'बिक्री न करें' लिंक दिया जा सकता है. ऐसा करने के लिए, 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>

इससे यह पक्का होता है कि डिफ़ॉल्ट रूप से "बिक्री न करें" लिंक रेंडर नहीं हो रहा है. ध्यान दें कि सीपीआरए की प्रोसेस को पूरा करने के लिए, आपको खुद का "बिक्री न करें" लिंक रेंडर करने की ज़िम्मेदारी आपकी है. इसके बाद, आपको सीपीआरए की पुष्टि करने वाले डायलॉग का इस्तेमाल करके, उपयोगकर्ता की पसंद को ध्यान में रखकर बनाए गए लिंक के साथ उपयोगकर्ता इंटरैक्शन को मैनेज करना होगा.

<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>