आरंभ करें

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

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

  • Android एपीआई लेवल 21 या उसके बाद का वर्शन

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

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

ज़्यादा जानकारी के लिए, निजता और मैसेज सेवा के बारे में जानकारी देखें.

Gradle की मदद से इंस्टॉल करना

अपने मॉड्यूल की ऐप्लिकेशन-लेवल Gradle फ़ाइल में, Google User Messaging Platform SDK टूल की डिपेंडेंसी जोड़ें. आम तौर पर, यह फ़ाइल app/build.gradle होती है:

dependencies {
  implementation("com.google.android.ump:user-messaging-platform:3.1.0")
}

अपने ऐप्लिकेशन के build.gradle में बदलाव करने के बाद, अपने प्रोजेक्ट को Gradle फ़ाइलों के साथ सिंक करना न भूलें.

ऐप्लिकेशन आईडी जोड़ना

अपना ऐप्लिकेशन आईडी, Ad Manager यूज़र इंटरफ़ेस (यूआई) में देखा जा सकता है. इस कोड स्निपेट की मदद से, अपने AndroidManifest.xml में आईडी जोड़ें:

<manifest>
  <application>
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
  </application>
</manifest>

सहमति लेने के लिए, यह तरीका अपनाएं:

  1. उपयोगकर्ता की हाल ही की सहमति की जानकारी का अनुरोध.
  2. अगर ज़रूरी हो, तो सहमति फ़ॉर्म लोड करें और उसे दिखाएं.

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

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

अगर ज़रूरी हो, तो निजता से जुड़े मैसेज का फ़ॉर्म लोड और दिखाएं

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

नीचे दिए गए कोड में, उपयोगकर्ता की सहमति से जुड़ी नई जानकारी का अनुरोध करने का तरीका बताया गया है. अगर ज़रूरी हो, तो कोड लोड होता है और निजता मैसेज फ़ॉर्म दिखाता है:

Java


// Requesting an update to consent information should be called on every app launch.
consentInformation.requestConsentInfoUpdate(
    activity,
    params,
    () ->
        UserMessagingPlatform.loadAndShowConsentFormIfRequired(
            activity, onConsentGatheringCompleteListener::consentGatheringComplete),
    onConsentGatheringCompleteListener::consentGatheringComplete);

Kotlin


// Requesting an update to consent information should be called on every app launch.
consentInformation.requestConsentInfoUpdate(
  activity,
  params,
  {
    UserMessagingPlatform.loadAndShowConsentFormIfRequired(activity) { formError ->
      // Consent has been gathered.
      onConsentGatheringCompleteListener.consentGatheringComplete(formError)
    }
  },
  { requestConsentError ->
    onConsentGatheringCompleteListener.consentGatheringComplete(requestConsentError)
  },
)

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

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

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

requestConsentInfoUpdate() को कॉल करने के बाद, ConsentInformation.PivacyOptionsRequirementStatus को चुनकर यह पता लगाएं कि आपके ऐप्लिकेशन के लिए, निजता के विकल्पों का एंट्री पॉइंट ज़रूरी है या नहीं:

Java


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

Kotlin


/** Helper variable to determine if the privacy options form is required. */
val isPrivacyOptionsRequired: Boolean
  get() =
    consentInformation.privacyOptionsRequirementStatus ==
      ConsentInformation.PrivacyOptionsRequirementStatus.REQUIRED

अपने ऐप्लिकेशन में कोई दिखने वाला एलिमेंट जोड़ना

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

Java


// Check ConsentInformation.getPrivacyOptionsRequirementStatus() to see the button should
// be shown or hidden.
if (consentManager.isPrivacyOptionsRequired()) {
  privacyButton.setVisibility(View.VISIBLE);
}

Kotlin


// Check ConsentInformation.getPrivacyOptionsRequirementStatus() to see the button should
// be shown or hidden.
if (consentManager.isPrivacyOptionsRequired) {
  privacyButton.visibility = View.VISIBLE
}

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

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

Java


UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener);

Kotlin


UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener)

विज्ञापन जोड़ने का अनुरोध करें

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

  • मौजूदा सेशन में सहमति मिलने के बाद.
  • requestConsentInfoUpdate() को कॉल करने के तुरंत बाद. ऐसा हो सकता है कि पिछले सेशन में सहमति मिल गई हो. हमारा सुझाव है कि आप कॉलबैक के पूरा होने का इंतज़ार न करें. यह इंतज़ार करने का सबसे अच्छा तरीका है, ताकि आपके ऐप्लिकेशन के लॉन्च होने के बाद, विज्ञापन जल्द से जल्द लोड होने लगें.
को कॉल नहीं किया जाता

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

नीचे दिया गया कोड यह जांच करता है कि सहमति लेने की प्रोसेस के दौरान, विज्ञापन दिखाने का अनुरोध किया जा सकता है या नहीं:

Java


consentManager.gatherConsent(
    consentError -> {
      if (consentError != null) {
        // Consent not obtained in current session.
        Log.i(
            LOGTAG,
            "Consent Error: "
                + String.format(
                    "%s: %s", consentError.getErrorCode(), consentError.getMessage()));
      }

      if (consentManager.canRequestAds()) {
        initializeImaSdk();
      } else {
        Log.i(LOGTAG, "Consent not available to request ads");
      }
      // ...
    });

// This sample attempts to load ads using consent obtained in the previous session.
if (consentManager.canRequestAds()) {
  initializeImaSdk();
}

Kotlin


consentManager.gatherConsent(this) { error ->
  if (error != null) {
    // Consent not obtained in current session.
    Log.d(LOGTAG, "${error.errorCode}: ${error.message}")
  }
  if (consentManager.canRequestAds) {
    initializeImaSdk()
  } else {
    Log.i(LOGTAG, "Consent not available to request ads")
  }
  // ...
}
// This sample attempts to load ads using consent obtained in the previous session.
if (consentManager.canRequestAds) {
  initializeImaSdk()
}

उपयोगकर्ता की सहमति मिलने के बाद, यह कोड इंटरैक्टिव मीडिया विज्ञापन SDK टूल को सेट अप करता है:

Java


private void initializeImaSdk() {
  if (sdkFactory != null) {
    // If the SDK is already initialized, do nothing.
    return;
  }

  sdkFactory = ImaSdkFactory.getInstance();

  adDisplayContainer =
      ImaSdkFactory.createAdDisplayContainer(videoPlayerContainer, videoAdPlayerAdapter);

  createAdsLoader();
  setUpPlayButton();
}

Kotlin


private fun initializeImaSdk() {
  sdkFactory = ImaSdkFactory.getInstance()
  adDisplayContainer = ImaSdkFactory.createAdDisplayContainer(videoPlayerContainer, videoAdPlayerAdapter)
  createAdsLoader()
  setUpPlayButton()
}

टेस्ट करना

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

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

    Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
    
  3. अपने टेस्ट डिवाइस का आईडी, क्लिपबोर्ड पर कॉपी करें.

  4. अपने कोड में बदलाव करके, ConsentDebugSettings.Builder().addTestDeviceHashedId() को कॉल करें और अपने टेस्ट डिवाइस आईडी की सूची डालें.

    Java

    ConsentDebugSettings debugSettings = new ConsentDebugSettings.Builder(this)
        .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")
        .build();
    
    ConsentRequestParameters params = new ConsentRequestParameters
        .Builder()
        .setConsentDebugSettings(debugSettings)
        .build();
    
    consentInformation = UserMessagingPlatform.getConsentInformation(this);
    // Include the ConsentRequestParameters in your consent request.
    consentInformation.requestConsentInfoUpdate(
        this,
        params,
        // ...
    );
    

    Kotlin

    val debugSettings = ConsentDebugSettings.Builder(this)
        .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")
        .build()
    
    val params = ConsentRequestParameters
        .Builder()
        .setConsentDebugSettings(debugSettings)
        .build()
    
    consentInformation = UserMessagingPlatform.getConsentInformation(this)
    // Include the ConsentRequestParameters in your consent request.
    consentInformation.requestConsentInfoUpdate(
        this,
        params,
        // ...
    )
    

किसी देश या इलाके के लिए ज़रूरी शर्तें तय करना

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

Java

ConsentDebugSettings debugSettings = new ConsentDebugSettings.Builder(this)
    .setDebugGeography(ConsentDebugSettings.DebugGeography.DEBUG_GEOGRAPHY_EEA)
    .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")
    .build();

ConsentRequestParameters params = new ConsentRequestParameters
    .Builder()
    .setConsentDebugSettings(debugSettings)
    .build();

consentInformation = UserMessagingPlatform.getConsentInformation(this);
// Include the ConsentRequestParameters in your consent request.
consentInformation.requestConsentInfoUpdate(
    this,
    params,
    ...
);

Kotlin

val debugSettings = ConsentDebugSettings.Builder(this)
    .setDebugGeography(ConsentDebugSettings.DebugGeography.DEBUG_GEOGRAPHY_EEA)
    .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")
    .build()

val params = ConsentRequestParameters
    .Builder()
    .setConsentDebugSettings(debugSettings)
    .build()

consentInformation = UserMessagingPlatform.getConsentInformation(this)
// Include the ConsentRequestParameters in your consent request.
consentInformation.requestConsentInfoUpdate(
    this,
    params,
    ...
)

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

Java

consentInformation.reset();

Kotlin

consentInformation.reset()

GitHub पर मौजूद उदाहरण

इस पेज पर बताए गए UMP SDK टूल के इंटिग्रेशन का पूरा उदाहरण, UmpExample में देखें.