जीडीपीआर IAB सहायता

Google की ईयू उपयोगकर्ता की सहमति से जुड़ी नीति के तहत, आपको यूरोपियन इकनॉमिक एरिया (ईईए) और यूके में अपने उपयोगकर्ताओं को कुछ ज़रूरी जानकारी साफ़ तौर पर देनी होगी. साथ ही, कानूनी रूप से ज़रूरी होने पर, कुकी या दूसरे लोकल स्टोरेज में इकट्ठा किए गए डेटा के इस्तेमाल के लिए भी उनकी सहमति लेनी होगी. इसके अलावा, विज्ञापन दिखाने के मकसद से निजी डेटा (जैसे, AdID) इकट्ठा करने, शेयर करने, और इस्तेमाल करने के लिए भी उपयोगकर्ताओं की सहमति लेनी होगी. इस नीति में, ईयू के ई-निजता निर्देश और जनरल डेटा प्रोटेक्शन रेगुलेशन (जीडीपीआर) की ज़रूरी शर्तों के बारे में बताया गया है.

इस गाइड में, UMP SDK टूल के हिस्से के तौर पर, जीडीपीआर IAB टीसीएफ़ v2 मैसेज के साथ काम करने के लिए ज़रूरी चरणों के बारे में बताया गया है. इसे शुरू करें से जोड़ा जाना चाहिए. इसमें, UMP SDK टूल के साथ अपने ऐप्लिकेशन को चलाने का तरीका और मैसेज सेट अप करने की बुनियादी बातें बताई गई हैं. यहां दिया गया दिशा-निर्देश, जीडीपीआर के तहत IAB टीसीएफ़ के वर्शन 2 के मैसेज के लिए है. ज़्यादा जानकारी के लिए, IAB की ज़रूरी शर्तें, ईयू (यूरोपीय संघ) के सहमति जताने वाले मैसेज पर कैसे असर डालती हैं लेख पढ़ें.

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

जीडीपीआर के तहत, उपयोगकर्ताओं को किसी भी समय सहमति वापस लेने की अनुमति देने के लिए, सहमति रद्द करने की सुविधा ज़रूरी है. उपयोगकर्ताओं को सहमति के विकल्प वापस लेने का तरीका देने के लिए, निजता के विकल्प देखें.

यह बताने के लिए कि कोई उपयोगकर्ता सहमति देने की मान्य उम्र से कम है या नहीं, setTagForUnderAgeOfConsent (टीएफ़यूए) सेट करें. TFUA को true पर सेट करने पर, UMP SDK टूल, उपयोगकर्ता से सहमति का अनुरोध नहीं करता. अगर आपके ऐप्लिकेशन की ऑडियंस में बच्चे और वयस्क, दोनों शामिल हैं, तो बच्चों के लिए इस पैरामीटर को सेट करें. इससे यह पक्का किया जा सकेगा कि उनसे सहमति का अनुरोध न किया जाए.

यहां दिए गए उदाहरण में, UMP से सहमति के अनुरोध पर TFUA को 'सही' पर सेट किया गया है:

Java

ConsentRequestParameters params = new ConsentRequestParameters
    .Builder()
    // Indicate the user is under age of consent.
    .setTagForUnderAgeOfConsent(true)
    .build();

consentInformation = UserMessagingPlatform.getConsentInformation(this);
consentInformation.requestConsentInfoUpdate(
    this,
    params,
    (OnConsentInfoUpdateSuccessListener) () -> {
      // ...
    },
    (OnConsentInfoUpdateFailureListener) requestConsentError -> {
      // ...
    });

Kotlin

val params = ConsentRequestParameters
    .Builder()
    // Indicate the user is under age of consent.
    .setTagForUnderAgeOfConsent(true)
    .build()

consentInformation = UserMessagingPlatform.getConsentInformation(this)
consentInformation.requestConsentInfoUpdate(
    this,
    params,
    ConsentInformation.OnConsentInfoUpdateSuccessListener {
      // ...
    },
    ConsentInformation.OnConsentInfoUpdateFailureListener {
      requestConsentError ->
      // ...
    })

मीडिएशन

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

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

जीडीपीआर के तहत सहमति लेने के बाद, टीसीएफ़ के 2.0 वर्शन के स्पेसिफ़िकेशन के मुताबिक, लोकल स्टोरेज से सहमति के विकल्प पढ़े जा सकते हैं. IABTCF_PurposeConsents कुंजी, टीसीएफ़ के हर मकसद के लिए सहमति दिखाती है.

यहां दिए गए कोड स्निपेट में, मकसद 1 के लिए सहमति की जांच करने का तरीका बताया गया है:

Java

SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context);
// Example value: "1111111111"
String purposeConsents = sharedPref.getString("IABTCF_PurposeConsents", "");
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
if (!purposeConsents.isEmpty()) {
  String purposeOneString = purposeConsents.charAt(0);
  boolean hasConsentForPurposeOne = purposeOneString.equals("1");
}

Kotlin

val sharedPref = PreferenceManager.getDefaultSharedPreferences(context)
// Example value: "1111111111"
val purposesConsents = sharedPref.getString("IABTCF_PurposeConsents", "")
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
if (!purposeConsents.isEmpty()) {
  val purposeOneString = purposeConsents.first()
  val hasConsentForPurposeOne = purposeOneString == "1"
}

अक्सर पूछे जाने वाले सवाल

अगर ईईए और यूके में विज्ञापन दिखाने के लिए, सहमति मैनेजमेंट प्लैटफ़ॉर्म की ज़रूरी शर्तों को पूरा करने के लिए कोई कार्रवाई नहीं की जाती है, तो क्या होगा?

अगर कोई पार्टनर 16 जनवरी, 2024 से, Google से सर्टिफ़ाइड सीएमपी का इस्तेमाल नहीं करता है, तो ईईए और यूके के उपयोगकर्ताओं को सिर्फ़ सीमित तौर पर विज्ञापन दिखाए जा सकेंगे.

सहमति मैनेज करने से जुड़ी ज़रूरी शर्तें 16 जनवरी, 2024 को ईईए और यूके के ट्रैफ़िक के छोटे से हिस्से में लागू की जाएंगी. फ़रवरी के आखिर तक इन्हें ईईए और यूके के पूरे ट्रैफ़िक पर लागू कर दिया जाएगा. इसलिए, 16 जनवरी, 2024 तक किसी सर्टिफ़ाइड सीएमपी का इस्तेमाल शुरू करना ज़रूरी है, ताकि आप बिना किसी रुकावट के कमाई करना जारी रख सकें.

मैं यह कैसे देखूं कि उपयोगकर्ता ने सहमति दी है या नहीं?

सहमति को एक बिट से नहीं दिखाया जाता, बल्कि IAB टीसीएफ़ के स्पेसिफ़िकेशन में बताए गए मकसद और वेंडर के सेट से दिखाया जाता है. Google Ads में दिलचस्पी के मुताबिक विज्ञापन दिखाने की शर्तों के बारे में जानने के लिए, सहमति लेने की नीतियां: लोगों के हिसाब से दिखाए जाने वाले और लोगों के हिसाब से न दिखाए जाने वाले विज्ञापन देखें.

इसके अलावा, Google की विज्ञापन टेक्नोलॉजी से जुड़ी सेवा देने वाली कंपनियों (एटीपी) की सूची में शामिल वे ऐड टेक जो टीसीएफ़ वेंडर सूची में रजिस्टर नहीं हैं, वे सहमति इकट्ठा करने के लिए Google की अन्य सहमति से जुड़ी तकनीकी जानकारी का इस्तेमाल करते हैं. विज्ञापन टेक्नोलॉजी से जुड़ी सेवा देने वाली ऐसी कंपनियां जो IAB में रजिस्टर नहीं हैं, Google उनके नाम और आईडी यहां पब्लिश करता है: https://storage.googleapis.com/tcfac/additional-consent-providers.csv.

किसी एक विज्ञापन अनुरोध को डीबग करने के लिए, विज्ञापन अनुरोध की स्ट्रिंग एक्सपोर्ट करने के लिए, विज्ञापन जांचने वाले टूल में विज्ञापन यूनिट की ऐडवांस डीबगिंग सुविधा का इस्तेमाल करें. इसके बाद, ये क्वेरी पैरामीटर देखें:

क्वेरी पैरामीटर मतलब
gdpr इस विज्ञापन अनुरोध के लिए जीडीपीआर लागू होता है या नहीं.
gdpr_consent टीसी स्ट्रिंग. IAB एक वेब टूल उपलब्ध कराता है, जहां वैल्यू को मैन्युअल तरीके से डिकोड किया जा सकता है.
addtl_consent Google के अन्य सहमति वाले मोड की तकनीकी जानकारी में दी गई AC स्ट्रिंग.

सहमति के विकल्पों को प्रोग्राम के हिसाब से पढ़ने के लिए, ज़्यादा जानकारी के लिए सहमति के विकल्पों को पढ़ने का तरीका देखें.

क्या सीएमपी की ज़रूरी शर्तें पूरी करने के लिए, मुझे Google के UMP SDK टूल का इस्तेमाल करना होगा?

नहीं, विज्ञापन दिखाने के लिए, Google से सर्टिफ़ाइड सीएमपी की सूची में से किसी भी सीएमपी का इस्तेमाल किया जा सकता है.

अगर उपयोगकर्ता ने पहले ही सहमति दे दी है, तो UMP SDK टूल का इस्तेमाल करके, सहमति फ़ॉर्म को फिर से कैसे दिखाया जा सकता है?

अगर किसी उपयोगकर्ता ने पहले ही सहमति का फ़ैसला ले लिया है, तो Google का सहमति मैनेजमेंट प्लैटफ़ॉर्म, नई सहमति इकट्ठा करने का अनुरोध तब तक नहीं करेगा, जब तक टीसी स्ट्रिंग की समयसीमा खत्म नहीं हो जाती या वह अमान्य नहीं हो जाती.

जीडीपीआर के तहत, सहमति में बदलाव करना ज़रूरी है, ताकि उपयोगकर्ता किसी भी समय अपनी सहमति के विकल्प वापस ले सकें. उपयोगकर्ताओं को सहमति के विकल्प वापस लेने का तरीका लागू करने के लिए, निजता के विकल्प देखें. सहमति वाला फ़ॉर्म फिर से दिखाने के लिए, showPrivacyOptionsForm() को कॉल करें.

मैंने Google से सर्टिफ़ाइड सीएमपी इंटिग्रेट किया है. हालांकि, मुझे मीडिएशन पार्टनर को कोई विज्ञापन अनुरोध नहीं दिख रहा है. भले ही, सहमति देने वाले उपयोगकर्ताओं से भी कोई अनुरोध न मिला हो. ऐसा क्यों हो रहा है?

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

Google की विज्ञापन टेक्नोलॉजी से जुड़ी सेवा देने वाली कंपनियों (एटीपी) की सूची में शामिल कुछ मीडिएशन पार्टनर, टीसीएफ़ वेंडर सूची में रजिस्टर नहीं हैं. ये पार्टनर, सहमति इकट्ठा करने के लिए, Google के अन्य सहमति वाले मोड की तकनीकी जानकारी का इस्तेमाल करते हैं. विज्ञापन टेक्नोलॉजी से जुड़ी सेवा देने वाली ऐसी कंपनियां जो IAB में रजिस्टर नहीं हैं, Google उनके नाम और आईडी यहां पब्लिश करता है: https://storage.googleapis.com/tcfac/additional-consent-providers.csv

UMP SDK टूल, ACString को स्टोर करने की सुविधा देता है. इसकी मदद से, आपको यह जानने की ज़रूरत नहीं पड़ती कि पार्टनर, टीसीएफ़ के तहत रजिस्टर हैं या नहीं. साथ ही, पब्लिश किए जा चुके जीडीपीआर मैसेज में विज्ञापन पार्टनर जोड़े जा सकते हैं. तीसरे पक्ष के सीएमपी का इस्तेमाल करते समय, आपको ये काम करने चाहिए:

  1. पुष्टि करें कि तीसरे पक्ष का सीएमपी, ACString को सेव करने की सुविधा देता है.
  2. विज्ञापन टेक्नोलॉजी से जुड़ी सेवा देने वाली उन कंपनियों की सूची में हर मीडिएशन पार्टनर को शामिल करें जिनका इस्तेमाल तीसरे पक्ष का सीएमपी, सहमति लेने के लिए करता है.
अगर उपयोगकर्ता सहमति नहीं देते हैं, तो क्या मेरे पास अपने ऐप्लिकेशन के काम करने के तरीके में बदलाव करने का विकल्प है? क्या नीति में इसकी अनुमति है?

पब्लिशर अपने ऐप्लिकेशन में IAB टीसीएफ़ स्ट्रिंग को पढ़ सकते हैं. प्रोग्राम के हिसाब से सहमति के विकल्पों को पढ़ने के बारे में जानने के लिए, सहमति के विकल्पों को पढ़ने का तरीका लेख पढ़ें. पब्लिशर को ज़रूरी नियमों के तहत, अपनी जवाबदेही की समीक्षा करनी चाहिए. इसके लिए, वे किसी कानूनी सलाहकार से संपर्क कर सकते हैं.

विकल्प मैनेज करें को चुनने और सभी मकसद के लिए सहमति देने के बाद, मुझे कोई विज्ञापन नहीं दिख रहा है? ऐसा क्यों हो रहा है?

डेटा इकट्ठा करने के मकसद के लिए सहमति लेने के अलावा, आपको वेंडर की सहमति भी लेनी होगी. Google जैसे किसी भी वेंडर को सही विज्ञापन दिखाने के लिए, मकसद से जुड़ी सहमति और वेंडर की सहमति, दोनों की ज़रूरत होती है.

मैं उन उपयोगकर्ताओं के लिए, अतिरिक्त सहमति वाली स्ट्रिंग (एसी स्ट्रिंग) के दूसरे वर्शन को कैसे लागू करूं जिन्होंने पहले से ही पहले वर्शन के लिए सहमति दी है?

Google की सहमति से जुड़ी तकनीकी जानकारी के मुताबिक, लोकल स्टोरेज में IABTCF_AddtlConsent कुंजी देखें. इससे यह पता चलेगा कि उपयोगकर्ता ने AC स्ट्रिंग के वर्शन 2 के लिए सहमति दी है या नहीं. साथ ही, यह भी पता चलेगा कि आपको सहमति फ़ॉर्म फिर से दिखाना होगा या नहीं.

Java

SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context);
// Example value: "2~1.35.41.101~dv.9.21.81"
String additionalConsent = sharedPref.getString("IABTCF_AddtlConsent", "");
// Index 0 contains information about the specification version number.
if (!additionalConsent.isEmpty()) {
  String specACVersion = additionalConsent.charAt(0);
  boolean isACVersion2 = purposeOneString.equals("2");
}

Kotlin

val sharedPref = PreferenceManager.getDefaultSharedPreferences(context)
// Example value: "2~1.35.41.101~dv.9.21.81"
val additionalConsent = sharedPref.getString("IABTCF_AddtlConsent", "")
// Index 0 contains information about the specification version number.
if (!additionalConsent.isEmpty()) {
  val specACVersion = additionalConsent.first()
  val isACVersion2 = specACVersion == "2"
}