UMP SDK टूल सेट अप करना

Google User Messaging Platform (UMP) SDK, निजता और मैसेज सेवा से जुड़ा टूल है. इससे आपको निजता के विकल्प मैनेज करने में मदद मिलती है. ज़्यादा जानकारी के लिए, निजता और मैसेज सेवा के बारे में जानकारी लेख पढ़ें.

मैसेज का टाइप बनाना

अपने AdMob खाते के निजता और मैसेज सेवा टैब में जाकर, उपयोगकर्ता मैसेज के उपलब्ध टाइप में से किसी एक का इस्तेमाल करके उपयोगकर्ता मैसेज बनाएं. UMP SDK, आपके प्रोजेक्ट में सेट किए गए AdMob ऐप्लिकेशन आईडी से बनाए गए निजता मैसेज को दिखाने की कोशिश करता है.

आपको requestConsentInfoUpdate() का इस्तेमाल करके, हर बार ऐप्लिकेशन लॉन्च होने पर उपयोगकर्ता की सहमति की जानकारी को अपडेट करने का अनुरोध करना चाहिए. इस अनुरोध से इन चीज़ों की जांच की जाती है:

  • क्या सहमति ज़रूरी है. उदाहरण के लिए, पहली बार सहमति लेना ज़रूरी है या सहमति देने का पिछला फ़ैसला खत्म हो गया है.
  • निजता विकल्पों के एंट्री पॉइंट की ज़रूरत है या नहीं. निजता से जुड़े कुछ मैसेज के लिए, ऐप्लिकेशन को उपयोगकर्ताओं को यह अनुमति देनी होगी कि वे किसी भी समय अपने निजता विकल्पों में बदलाव कर सकें.
/**
 * Requests consent information update on app launch.
 */
export function requestConsent(onComplete?: () => void) {
  requestConsentInfoUpdate({}, (error) => {
    if (error) {
      console.warn('Consent info update error:', error.message);
    } else {
      console.log('Consent info update complete.');
    }

    // Load and show consent form if required.
    loadAndPresentConsentForm(onComplete);
  });
}

निजता से जुड़े मैसेज का फ़ॉर्म लोड करना और दिखाना

सहमति की सबसे अप-टू-डेट स्थिति मिलने के बाद, उपयोगकर्ता की सहमति लेने के लिए ज़रूरी फ़ॉर्म लोड करने के लिए, loadAndShowConsentFormIfRequired() को कॉल करें. लोड होने के बाद, फ़ॉर्म तुरंत दिखते हैं.

/**
 * Loads and presents the privacy message form if required to collect user consent.
 */
export function loadAndPresentConsentForm(onComplete?: () => void) {
  loadAndShowConsentFormIfRequired((formError) => {
    if (formError) {
      console.warn('Consent form error:', formError.message);
    } else {
      console.log('Consent gathering complete.');
    }

    // Execute logic that depends on consent state (for example, initialize the SDK).
    onComplete?.();
  });
}

निजता के विकल्प

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

यह देखना कि निजता के विकल्पों वाला एंट्री पॉइंट ज़रूरी है या नहीं

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

/**
 * Helper to determine if the privacy options entry point is required.
 */
export function isPrivacyOptionsRequired(): boolean {
  return (
    getPrivacyOptionsRequirementStatus() ===
    PrivacyOptionsRequirementStatus.REQUIRED
  );
}

निजता विकल्पों की ज़रूरी शर्तों के स्टेटस की पूरी सूची देखने के लिए, PrivacyOptionsRequirementStatus पर जाएं.

निजता विकल्पों का फ़ॉर्म दिखाना

जब उपयोगकर्ता आपके एलिमेंट से इंटरैक्ट करे, तो निजता के विकल्पों वाला फ़ॉर्म दिखाएं:

/**
 * Renders a privacy options button if required by user consent policy.
 */
export function PrivacyOptionsButton({
  onDismissed,
}: {
  onDismissed?: (error?: FormError) => void;
}) {
  const isRequired =
    getPrivacyOptionsRequirementStatus() ===
    PrivacyOptionsRequirementStatus.REQUIRED;

  if (!isRequired) {
    return null;
  }

  const handleShowPrivacyOptions = () => {
    showPrivacyOptionsForm((error) => {
      if (error) {
        console.error('Failed to show privacy options form:', error.message);
      } else {
        console.log('Privacy options form dismissed.');
      }

      // Execute custom logic after form is dismissed.
      onDismissed?.(error);
    });
  };

  return <Button title="Privacy Settings" onPress={handleShowPrivacyOptions} />;
}

उपयोगकर्ता की सहमति से विज्ञापन दिखाने का अनुरोध करना

विज्ञापनों का अनुरोध करने से पहले, canRequestAds() का इस्तेमाल करके देखें कि आपने उपयोगकर्ता से सहमति ली है या नहीं:

/**
 * Checks whether user consent allows requesting ads and initializes the SDK.
 */
let isMobileAdsInitialized = false;

export function initializeMobileAdsSdkIfConsentGiven() {
  if (canRequestAds()) {
    if (!isMobileAdsInitialized) {
      isMobileAdsInitialized = true;
      initialize({}, (status) => {
        console.log('Google Mobile Ads SDK initialized:', status);
      });
    }
  }
}

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

  • जब यूएमपी एसडीके, मौजूदा सेशन में सहमति इकट्ठा कर लेता है.
  • requestConsentInfoUpdate() को कॉल करने के तुरंत बाद. ऐसा हो सकता है कि UMP SDK को पिछले ऐप्लिकेशन सेशन में सहमति मिल गई हो.

अगर सहमति लेने की प्रोसेस के दौरान कोई गड़बड़ी होती है, तो देखें कि विज्ञापनों के लिए अनुरोध किया जा सकता है या नहीं. UMP SDK, पिछले ऐप्लिकेशन सेशन से सहमति की स्थिति का इस्तेमाल करता है.

विज्ञापन दिखाने के अनुरोध के लिए बार-बार होने वाले काम को रोकना

सहमति इकट्ठा करने और requestConsentInfoUpdate() को कॉल करने के बाद, canRequestAds() की जांच करते समय पक्का करें कि आपका लॉजिक, विज्ञापन दिखाने के ऐसे अनुरोधों को रोकता हो जिनकी ज़रूरत नहीं है. इनकी वजह से, दोनों जांचों में true दिख सकता है. उदाहरण के लिए, बूलियन वैरिएबल के साथ.

टेस्ट करना

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

  1. requestConsentInfoUpdate() पर कॉल करें.
  2. लॉग आउटपुट में, यहां दिए गए उदाहरण जैसा कोई मैसेज देखें. इसमें आपका डिवाइस आईडी और उसे टेस्ट डिवाइस के तौर पर जोड़ने का तरीका बताया गया है:

    Android

    Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231")
    to set this as a debug device.
    

    iOS

    <UMP SDK>To enable debug mode for this device,
    set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
    
  3. अपने टेस्ट डिवाइस के डिवाइस आईडी को क्लिपबोर्ड पर कॉपी करें.

  4. consentDebugSettings.testDeviceIdentifiers को कॉल करने के लिए, अपने कोड में बदलाव करें और टेस्ट डिवाइस आईडी की सूची पास करें.

    /**
     * Registers a test device for testing consent flows.
     */
    export function configureTestDevice() {
      requestConsentInfoUpdate(
        {
          consentDebugSettings: {
            debugGeography: DebugGeography.DISABLED,
            testDeviceIdentifiers: ["TEST_DEVICE_HASHED_ID"],
          },
        },
        (error) => {
          if (!error) {
            console.log('Test device registered.');
          }
        },
      );
    }

किसी देश या इलाके के हिसाब से कॉन्टेंट दिखाना

UMP SDK की मदद से, अपने ऐप्लिकेशन के व्यवहार की जांच की जा सकती है. इसके लिए, DebugGeography का इस्तेमाल करके, यह माना जाता है कि डिवाइस अलग-अलग इलाकों में मौजूद है. जैसे, यूरोपियन इकनॉमिक एरिया (ईईए), यूनाइटेड किंगडम (यूके), और स्विट्ज़रलैंड. ध्यान दें कि डीबग सेटिंग सिर्फ़ टेस्ट डिवाइसों पर काम करती हैं.

/**
 * Configures debug settings to force EEA geography on a test device.
 */
export function configureDebugGeography() {
  requestConsentInfoUpdate(
    {
      consentDebugSettings: {
        debugGeography: DebugGeography.EEA,
        testDeviceIdentifiers: ["TEST_DEVICE_HASHED_ID"],
      },
    },
    (error) => {
      if (!error) {
        console.log('Consent debug test configuration loaded.');
      }
    },
  );
}

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

/**
 * Resets consent state for testing purposes.
 */
export function resetConsentState() {
  reset();
}