Google की ईयू उपयोगकर्ता की सहमति से जुड़ी नीति के हिसाब से, आपको यूरोपीय आर्थिक क्षेत्र (ईईए) और यूके में अपने उपयोगकर्ताओं को कुछ खास जानकारी देनी होगी. साथ ही, कुकी या डिवाइस की दूसरी मेमोरी का इस्तेमाल करने के लिए, उनकी सहमति लेनी होगी. इसके अलावा, जहां कानूनी तौर पर ज़रूरी हो वहां विज्ञापन दिखाने के लिए, निजी डेटा (जैसे कि AdID) का इस्तेमाल करने के लिए भी उनकी सहमति लेनी होगी. इस नीति में, ईयू के ई-निजता निर्देश और जनरल डेटा प्रोटेक्शन रेगुलेशन (जीडीपीआर) की ज़रूरी शर्तों के बारे में बताया गया है.
इस गाइड में, UMP SDK के हिस्से के तौर पर, जीडीपीआर के लिए IAB टीसीएफ़ v2 मैसेज दिखाने के लिए ज़रूरी चरणों के बारे में बताया गया है. इसे शुरू करें के साथ इस्तेमाल किया जाता है. इसमें, UMP SDK की मदद से ऐप्लिकेशन को चालू करने का तरीका और मैसेज सेट अप करने की बुनियादी जानकारी दी गई है. यहां दी गई जानकारी, जीडीपीआर के लिए IAB टीसीएफ़ v2 के मैसेज के बारे में है. ज़्यादा जानकारी के लिए, 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 ->
// ...
})
मीडिएशन
विज्ञापन पार्टनर की सूची में मीडिएशन पार्टनर जोड़ने के लिए, पब्लिश किए जा चुके जीडीपीआर मैसेज में विज्ञापन पार्टनर जोड़ना लेख में दिया गया तरीका अपनाएं. ऐसा न करने पर, पार्टनर आपके ऐप्लिकेशन पर विज्ञापन नहीं दिखा पाएंगे.
मीडिएशन पार्टनर के पास, जीडीपीआर का पालन करने में मदद करने वाले अन्य टूल भी हो सकते हैं. ज़्यादा जानकारी के लिए, किसी पार्टनर की इंटिग्रेशन गाइड देखें.
सहमति के विकल्पों को पढ़ने का तरीका
जीडीपीआर के तहत सहमति मिलने के बाद, टीसीएफ़ के दूसरे वर्शन की खास बातों के मुताबिक, लोकल स्टोरेज से सहमति के विकल्प पढ़े जा सकते हैं.
IABTCF_PurposeConsents
कुंजी से, टीसीएफ़ के हर मकसद के लिए सहमति के बारे में पता चलता है.
यहां दिए गए कोड स्निपेट में, पहले मकसद के लिए सहमति की जांच करने का तरीका बताया गया है:
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).toString();
boolean hasConsentForPurposeOne = purposeOneString.equals("1");
}
Kotlin
val sharedPref = PreferenceManager.getDefaultSharedPreferences(context)
// Example value: "1111111111"
val purposeConsents = sharedPref.getString("IABTCF_PurposeConsents", "")
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
if (purposeConsents?.isEmpty() == false) {
val purposeOneString = purposeConsents.first().toString()
val hasConsentForPurposeOne = purposeOneString == "1"
}
अक्सर पूछे जाने वाले सवाल
- अगर मैंने ईईए और यूके में विज्ञापन दिखाने के लिए, सहमति मैनेजमेंट प्लैटफ़ॉर्म से जुड़ी ज़रूरी शर्तों को पूरा करने के लिए कोई कार्रवाई नहीं की, तो क्या होगा?
अगर कोई पार्टनर, 16 जनवरी, 2024 से Google से सर्टिफ़ाइड सीएमपी का इस्तेमाल नहीं करता है, तो उसे ईईए और यूके में सीमित तौर पर विज्ञापन दिखाने की अनुमति होगी.
सहमति मैनेज करने से जुड़ी ज़रूरी शर्तें 16 जनवरी, 2024 को ईईए और यूके के ट्रैफ़िक के छोटे से हिस्से में लागू की जाएंगी. फ़रवरी के आखिर तक Google इन्हें ईईए और यूके के पूरे ट्रैफ़िक पर लागू कर देगा. इसलिए, 16 जनवरी, 2024 तक किसी सर्टिफ़ाइड सीएमपी का इस्तेमाल शुरू करना ज़रूरी है, ताकि आप बिना किसी रुकावट के कमाई करना जारी रख सकें.
- मैं यह कैसे देखूं कि उपयोगकर्ता ने सहमति दी है या नहीं?
सहमति को एक बिट से नहीं दिखाया जाता, बल्कि IAB टीसीएफ़ की खास जानकारी में बताए गए उद्देश्यों और वेंडर के सेट से दिखाया जाता है. Google Ads के लिए, लोगों की दिलचस्पी के हिसाब से विज्ञापन दिखाने की ज़रूरी शर्तों के बारे में जानने के लिए, सहमति लेने की नीतियां: लोगों की दिलचस्पी के हिसाब से दिखाए जाने वाले और लोगों की दिलचस्पी के हिसाब से न दिखाए जाने वाले विज्ञापन लेख पढ़ें.
इसके अलावा, Google की ऐड टेक्नोलॉजी प्रोवाइडर (एटीपी) की लिस्ट में शामिल ऐसी ऐड टेक्नोलॉजी कंपनियां जो टीसीएफ़ वेंडर लिस्ट में रजिस्टर नहीं हैं, वे सहमति इकट्ठा करने के लिए Google के अन्य सहमति मोड की तकनीकी जानकारी का इस्तेमाल करती हैं. विज्ञापन टेक्नोलॉजी से जुड़ी सेवा देने वाली ऐसी कंपनियां जो IAB में रजिस्टर नहीं हैं, Google उनके नाम और आईडी यहां पब्लिश करता है: https://storage.googleapis.com/tcfac/additional-consent-providers.csv.
किसी विज्ञापन अनुरोध को डीबग करने के लिए, विज्ञापन जांचने वाले टूल में मौजूद निजता सेटिंग डीबग करें सुविधा का इस्तेमाल करें. इससे, IAB Europe टीसीएफ़ के साथ पब्लिशर के इंटिग्रेशन के तहत, विज्ञापन अनुरोध में पास किए गए निजता से जुड़े इन सिग्नल को देखा जा सकता है:
विज्ञापन जांचने वाले टूल का लेबल विज्ञापन अनुरोध क्वेरी पैरामीटर मतलब जीडीपीआर लागू होता है (IABTCF_gdprApplies) gdpr
इस विज्ञापन अनुरोध पर जीडीपीआर लागू होता है या नहीं. टीसी स्ट्रिंग (IABTCF_TCString) gdpr_consent
टीसी स्ट्रिंग. IAB एक वेब टूल उपलब्ध कराता है. इसकी मदद से, वैल्यू को मैन्युअल तरीके से डिकोड किया जा सकता है. अन्य सहमति वाली स्ट्रिंग (IABTCF_AddtlConsent) addtl_consent
Google के अन्य सहमति वाले मोड की तकनीकी जानकारी से मिली एसी स्ट्रिंग. सहमति से जुड़े विकल्पों को प्रोग्राम के हिसाब से पढ़ने के लिए, ज़्यादा जानकारी के लिए सहमति से जुड़े विकल्पों को पढ़ने का तरीका देखें.
- क्या सीएमपी की ज़रूरी शर्तों को पूरा करने के लिए, मुझे Google के यूएमपी एसडीके का इस्तेमाल करना होगा?
नहीं, विज्ञापन दिखाने के लिए, Google से सर्टिफ़ाइड सीएमपी की सूची में शामिल किसी भी सीएमपी का इस्तेमाल किया जा सकता है.
- अगर उपयोगकर्ता ने पहले ही सहमति दे दी है, तो भी UMP SDK का इस्तेमाल करके सहमति वाला फ़ॉर्म फिर से कैसे दिखाया जा सकता है?
अगर किसी उपयोगकर्ता ने पहले ही सहमति दे दी है, तो Google का सहमति मैनेजमेंट प्लैटफ़ॉर्म, नई सहमति का अनुरोध तब तक नहीं करेगा, जब तक टीसी स्ट्रिंग की समयसीमा खत्म नहीं हो जाती या वह अमान्य नहीं हो जाती.
जीडीपीआर के तहत, सहमति में बदलाव करने की अनुमति देना ज़रूरी है, ताकि उपयोगकर्ता किसी भी समय अपनी सहमति वापस ले सकें. उपयोगकर्ताओं को सहमति वापस लेने का विकल्प देने के लिए, निजता के विकल्प देखें. सहमति फ़ॉर्म को फिर से दिखाने के लिए,
showPrivacyOptionsForm()
को कॉल करें.- मैंने Google से सर्टिफ़ाइड सीएमपी को इंटिग्रेट किया है. हालांकि, मुझे मीडिएशन पार्टनर को कोई भी विज्ञापन अनुरोध नहीं दिख रहा है. ऐसा उन उपयोगकर्ताओं के लिए भी हो रहा है जिन्होंने सहमति दी है. ऐसा क्यों हो रहा है?
टीसीएफ़ के तहत, Google यह जांच करता है कि विज्ञापन टेक्नोलॉजी से जुड़ी सेवा देने वाली कंपनियां और प्रोग्राम के हिसाब से अपने-आप काम करने वाले दूसरे डिमांड सोर्स, Google की नीति का उल्लंघन न करते हों. साथ ही, उन्हें मीडिएशन वॉटरफ़ॉल में शामिल करने से पहले यह भी जांच करता है कि डेटा प्रोसेस करने के लिए उनके पास कम से कम एक कानूनी आधार ज़रूर हो. ज़्यादा जानकारी के लिए, मीडिएशन सेक्शन पर जाएं.
Google की ऐड टेक प्रोवाइडर (एटीपी) की लिस्ट में शामिल कुछ मीडिएशन पार्टनर, टीसीएफ़ वेंडर लिस्ट में रजिस्टर नहीं हैं. ये पार्टनर, सहमति इकट्ठा करने के लिए Google के अन्य सहमति मोड की तकनीकी जानकारी का इस्तेमाल करते हैं. विज्ञापन टेक्नोलॉजी से जुड़ी सेवा देने वाली ऐसी कंपनियां जो IAB में रजिस्टर नहीं हैं, Google उनके नाम और आईडी यहां पब्लिश करता है: https://storage.googleapis.com/tcfac/additional-consent-providers.csv
UMP SDK, ACString को सेव करने की सुविधा देता है. इससे आपको पब्लिश किए जा चुके जीडीपीआर मैसेज में विज्ञापन पार्टनर जोड़ने में मदद मिलती है. इसके लिए, आपको यह समझने की ज़रूरत नहीं होती कि पार्टनर टीसीएफ़ में रजिस्टर हैं या नहीं. तीसरे पक्ष के सीएमपी का इस्तेमाल करते समय, आपको यह काम करना चाहिए:
- पुष्टि करें कि तीसरे पक्ष का CMP, ACString को सेव करने की सुविधा देता हो.
- मीडिएशन पार्टनर को, विज्ञापन टेक्नोलॉजी से जुड़ी सेवा देने वाली उन कंपनियों की सूची में शामिल करें जिनका इस्तेमाल तीसरे पक्ष का सीएमपी, सहमति इकट्ठा करने के लिए करता है.
- क्या उपयोगकर्ताओं की सहमति न मिलने पर, मेरे ऐप्लिकेशन के काम करने के तरीके में बदलाव किया जा सकता है? क्या नीति के तहत इसकी अनुमति है?
पब्लिशर, अपने ऐप्लिकेशन में IAB टीसीएफ़ स्ट्रिंग पढ़ सकते हैं. प्रोग्राम के हिसाब से सहमति के विकल्पों को पढ़ने के बारे में जानकारी पाने के लिए, सहमति के विकल्पों को पढ़ने का तरीका लेख पढ़ें. पब्लिशर को कानूनी सलाह लेकर, ज़रूरी नियमों के तहत अपनी जवाबदेही की समीक्षा करनी चाहिए.
- विकल्प मैनेज करें को चुनने और सभी मकसद के लिए सहमति देने के बाद भी, मुझे कोई विज्ञापन नहीं दिख रहा है? ऐसा क्यों हो रहा है?
सहमति लेने के मकसद के अलावा, आपको वेंडर की सहमति भी लेनी होगी. Google जैसे किसी भी वेंडर को सही विज्ञापन दिखाने के लिए, सहमति लेने के दोनों मकसद और वेंडर की सहमति ज़रूरी होती है.
- मैं उन उपयोगकर्ताओं के लिए एसी स्ट्रिंग का दूसरा वर्शन कैसे लागू करूं जिन्होंने पहले ही पहले वर्शन के लिए सहमति दे दी है?
Google के 'अन्य सहमति वाला मोड' के तकनीकी स्पेसिफ़िकेशन के मुताबिक, लोकल स्टोरेज में मौजूद
IABTCF_AddtlConsent
कुंजी की जांच करें. इससे यह पता चलेगा कि किसी उपयोगकर्ता ने एसी स्ट्रिंग के वर्शन 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" }