यूरोपीय उपयोगकर्ताओं से सहमति का अनुरोध करना

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

GMA Flutter प्लगिन के 1.3.0 वर्शन के साथ, शुरू करें को पूरा करें. यह वर्शन, User Messaging Platform SDK टूल के साथ काम करता है.

पढ़ें IAB की ज़रूरी शर्तें, ईयू के सहमति जताने वाले मैसेज पर कैसे असर डालती हैं.

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

UMP SDK टूल की मदद से पब्लिशर, लोगों के हिसाब से दिखाए जाने वाले विज्ञापनों के लिए सहमति का अनुरोध करने के साथ-साथ Apple की App Tracking Transparency (ATT) ज़रूरी शर्तों को पूरा कर सकते हैं. पब्लिशर, UMP SDK टूल का इस्तेमाल करके, इन दोनों अनुरोधों को हैंडल कर सकते हैं. इसके लिए, उन्हें एक ही फ़ॉर्म दिखाना होगा. इस तरह के सभी कॉन्फ़िगरेशन Ad Manager की निजता और मैसेज सेवा.

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

Google ने User Messaging Platform (UMP) SDK टूल की सुविधा दी है, ताकि पब्लिशर इस नीति के तहत अपनी ज़िम्मेदारी पूरी कर सकें. UMP SDK टूल को अपडेट किया गया है, ताकि वह नए IAB स्टैंडर्ड के साथ काम कर सके. हमने सहमति फ़ॉर्म सेट अप करने और विज्ञापन पार्टनर की सूची बनाने की प्रक्रिया को भी आसान बना दिया है. इन सभी कॉन्फ़िगरेशन को अब Ad Manager की निजता और मैसेज सेवा.

इस गाइड में SDK टूल इंस्टॉल करने, IAB के समाधानों को लागू करने, और टेस्टिंग की सुविधाओं को चालू करने का तरीका बताया गया है.

ऐप्लिकेशन ट्रैकिंग पारदर्शिता (सिर्फ़ iOS के लिए)

अगर आपको Apple की App Tracking Transparency की ज़रूरी शर्तों को पूरा करने के लिए UMP SDK टूल का इस्तेमाल करना है, तो पक्का करें कि आपने Ad Manager की निजता और मैसेज सेवा.

UMP SDK टूल की मदद से कस्टम सूचना वाला मैसेज दिखाने के लिए, Info.plist को अपडेट करें. इसके बाद, कस्टम मैसेज स्ट्रिंग के साथ NSUserTrackingUsageDescription कुंजी जोड़ें जिसमें आपके इस्तेमाल के बारे में जानकारी दी गई हो.

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

जब सहमति वाला फ़ॉर्म सबमिट किया जाता है, तो इस्तेमाल की जानकारी ATT डायलॉग के हिस्से के तौर पर दिखती है:

इसके बाद, आपको AppTrackingTransparency फ़्रेमवर्क लिंक करना होगा:

जांच करते समय, Apple की ज़रूरी शर्तों के मुताबिक, IDFA ATT डायलॉग सिर्फ़ एक बार दिखेगा. ऐसा इसलिए होगा, क्योंकि requestTrackingAuthorization: एक बार किया जाने वाला अनुरोध है. सूचना को दूसरी बार दिखाने के लिए, आपको अपने टेस्ट डिवाइस पर ऐप्लिकेशन अनइंस्टॉल करके फिर से इंस्टॉल करना होगा.

SDK टूल का इस्तेमाल करना

SDK टूल को इस तरह से डिज़ाइन किया गया है कि इसका इस्तेमाल लीनियर (लीनियर) तरीके से किया जा सके. SDK टूल इस्तेमाल करने का तरीका यहां बताया गया है:

  1. सहमति की नई जानकारी मांगें.
  2. देखें कि सहमति ज़रूरी है या नहीं.
  3. देखें कि फ़ॉर्म उपलब्ध है या नहीं. अगर ऐसा है, तो फ़ॉर्म लोड करें.
  4. फ़ॉर्म प्रज़ेंट करें.
  5. उपयोगकर्ताओं को अपनी सहमति बदलने का तरीका उपलब्ध कराएं.

हमारा सुझाव है कि आप हर ऐप्लिकेशन लॉन्च पर, सहमति की जानकारी को अपडेट करने का अनुरोध करें. इससे यह तय होगा कि आपके उपयोगकर्ता को सहमति देने की ज़रूरत है या नहीं.

final params = ConsentRequestParameters();
ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    // The consent information state was updated.
    // You are now ready to check if a form is available.
  },
  (FormError error) {
    // Handle the error
  },
);

अगर कोई फ़ॉर्म उपलब्ध है, तो उसे लोड करें

सहमति लेने के लिए फ़ॉर्म, Ad Manager यूज़र इंटरफ़ेस (यूआई) में बनाए जाते हैं. यह तय करने के बाद कि उपयोगकर्ता से सहमति लेने के लिए कहा जाएगा, अगला चरण यह तय करना है कि फ़ॉर्म उपलब्ध है या नहीं. फ़ॉर्म उपलब्ध न होने की कई वजहें हो सकती हैं, जैसे:

  • उपयोगकर्ता ने विज्ञापन ट्रैकिंग की सीमा को चालू किया है.
  • आपने उपयोगकर्ता को सहमति देने की मान्य उम्र से कम के तौर पर टैग किया है.

यह देखने के लिए कि कोई फ़ॉर्म उपलब्ध है या नहीं, ConsentInformation इंस्टेंस पर isConsentFormAvailable() तरीके का इस्तेमाल करें. फ़ॉर्म लोड करने के लिए रैपर तरीका जोड़ें:

final params = ConsentRequestParameters();
ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    if (await ConsentInformation.instance.isConsentFormAvailable()) {
      loadForm();
    }
  },
  (FormError error) {
    // Handle the error
  },
);

फ़ॉर्म लोड करने के लिए, आपको ConsentForm क्लास में स्टैटिक loadConsentForm() तरीके का इस्तेमाल करना होगा. अपने loadForm() तरीके में इस तरह से बदलाव करें:

void loadForm() {
  ConsentForm.loadConsentForm(
    (ConsentForm consentForm) async {
      // Present the form
    },
    (FormError formError) {
      // Handle the error
    },
  );
}

अगर ज़रूरी हो, तो फ़ॉर्म सबमिट करें

सहमति वाला फ़ॉर्म प्रज़ेंट करने के लिए, ConsentForm क्लास में show() तरीके का इस्तेमाल करें. फ़ॉर्म सबमिट करने से पहले, यह तय करना ज़रूरी है कि उपयोगकर्ता को सहमति लेने की ज़रूरत है या नहीं. यह देखने के लिए कि सहमति ज़रूरी है या नहीं, ConsentInformation ऑब्जेक्ट पर getConsentStatus() को कॉल करें. इससे ConsentStatus टाइप का एनम दिखेगा. ConsentStatus के लिए चार संभावित वैल्यू हो सकती हैं:

  • unknown: सहमति की स्थिति की जानकारी नहीं है.
  • required: उपयोगकर्ता की सहमति ज़रूरी है, लेकिन अभी नहीं ली गई है.
  • notRequired: उपयोगकर्ता की सहमति ज़रूरी नहीं है. उदाहरण के लिए, उपयोगकर्ता ईईए या यूके में न हो.
  • obtained: उपयोगकर्ता की सहमति मिल गई है. ऐप्लिकेशन को उपयोगकर्ता के मनमुताबिक नहीं बनाया जा सकता.

अपने loadForm तरीके में इस तरह से बदलाव करें:

void loadForm() {
  ConsentForm.loadConsentForm(
    (ConsentForm consentForm) async {
      var status = await ConsentInformation.instance.getConsentStatus();
      if (status == ConsentStatus.required) {
        consentForm.show(
          (FormError formError) {
            // Handle dismissal by reloading form
            loadForm();
          },
        );
      }
    },
    (formError) {
      // Handle the error
    },
  );
}

अगर सहमति ज़रूरी नहीं है, तो फ़ॉर्म का रेफ़रंस रखा जा सकता है, ताकि आपका उपयोगकर्ता अपनी सहमति की स्थिति बदल सके.

टेस्ट करना

भूगोल लागू करें

UMP SDK टूल की मदद से, यह जांच की जा सकती है कि डिवाइस ConsentDebugSettings.debugGeography का इस्तेमाल करके, ईईए में मौजूद है या नहीं.

डीबग फ़ंक्शन का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन की डीबग सेटिंग में टेस्ट डिवाइस के हैश किए गए आईडी की जानकारी देनी होगी. अगर इस वैल्यू को सेट किए बिना requestConsentInfoUpdate() को कॉल किया जाता है, तो रन करने पर आपका ऐप्लिकेशन ज़रूरी आईडी हैश को लॉग करेगा.

ConsentDebugSettings debugSettings = ConsentDebugSettings(
  debugGeography: DebugGeography.debugGeographyEea,
  testIdentifiers: ['TEST-DEVICE-HASHED-ID']);

ConsentRequestParameters params = ConsentRequestParameters(
  consentDebugSettings: debugSettings);

ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () {},
  (error) {});

SDK टूल को इस तरह से इस्तेमाल करने के लिए कि वह ईईए या यूके में उपलब्ध न हो. इसके लिए, DebugGeography.debugGeographyNotEea का इस्तेमाल करें. ध्यान दें कि डीबग सेटिंग सिर्फ़ टेस्ट डिवाइसों पर काम करती है. एम्युलेटर को डिवाइस आईडी की सूची में जोड़ने की ज़रूरत नहीं होती, क्योंकि उनमें जांच करने की सुविधा डिफ़ॉल्ट रूप से चालू होती है.

UMP SDK टूल की मदद से अपने ऐप्लिकेशन की जांच करते समय, आपको SDK टूल की स्थिति को रीसेट करने में मदद मिल सकती है. इससे, आपको यह जानने में मदद मिल सकती है कि उपयोगकर्ता ने पहली बार ऐप्लिकेशन को कैसे इंस्टॉल किया है. ऐसा करने के लिए, SDK टूल में reset तरीके का इस्तेमाल किया जाता है.

ConsentInformation.instance.reset();

अगर आपको अपने प्रोजेक्ट से UMP SDK टूल को पूरी तरह से हटाना है, तो आपको रीसेट कॉल भी करना चाहिए.

मीडिएशन

अगर मीडिएशन का इस्तेमाल किया जाता है, तो आपको अपने ऐप्लिकेशन पर इस्तेमाल के लिए चुने गए सहमति फ़्रेमवर्क के आधार पर, अपने मीडिएशन पार्टनर के लिए सहमति को अलग-अलग तरीके से मैनेज करना होगा. Google, IAB सहमति फ़्रेमवर्क के साथ काम करता है. हालांकि, Google आपको अपनी पसंद के सहमति समाधान की अनुमति भी देता है. इनमें से हर एक विकल्प के तहत, मीडिएशन को मैनेज करने के तरीके के बारे में जानकारी नीचे दी गई है. सहमति से जुड़े हमारे समाधान के बारे में ज़्यादा जानें.

UMP SDK टूल या Mobile Ads SDK, दोनों में से कोई भी सहमति की जानकारी को मीडिएशन पार्टनर को नहीं भेजता है. इसके बजाय, IAB के समाधान का इस्तेमाल करते समय UMP SDK टूल, लोकल स्टोरेज में सहमति की स्थिति की जानकारी लिखता है. सही कुंजियां पढ़ने की ज़िम्मेदारी हर मीडिएशन पार्टनर के SDK टूल की होती है. हर तीसरे पक्ष के नेटवर्क से संपर्क करके पता करें कि वे IAB के साथ काम करते हैं या नहीं.

अगर आपने पसंद के मुताबिक सहमति से जुड़े समाधान का इस्तेमाल किया है, तो तीसरे पक्ष के SDK टूल को अपने ऐप्लिकेशन की सहमति की स्थिति के बारे में बताना आपकी ज़िम्मेदारी है. सहमति को मैनेज करने के लिए, हर मीडिएशन नेटवर्क के अपने एपीआई होते हैं. इन्हें Android और iOS के लिए दस्तावेज़ के तौर पर दर्ज किया गया है.

Dart से इन एपीआई को कॉल करने का तरीका जानने के लिए, Networkspecific API का इस्तेमाल करना देखें.

Google Mobile Ads SDK का डिफ़ॉल्ट तरीका, लोगों के हिसाब से विज्ञापन दिखाना है. अगर किसी उपयोगकर्ता ने सिर्फ़ लोगों के हिसाब से न दिखाए जाने वाले विज्ञापनों को पाने की सहमति दी है, तो नीचे दिए गए कोड के साथ AdManagerAdRequest ऑब्जेक्ट को कॉन्फ़िगर किया जा सकता है. ऐसा करके, यह तय किया जा सकता है कि सिर्फ़ लोगों के हिसाब से न दिखाए जाने वाले विज्ञापनों का अनुरोध किया जाए:

final AdManagerAdRequest = AdManagerAdRequest(nonPersonalizedAds: true);

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