आरंभ करें

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

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

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

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

SDK टूल इंपोर्ट करें

CocoaPods (इसका इस्तेमाल करना सबसे बेहतर है)

CocoaPods का इस्तेमाल करके, SDK टूल को iOS प्रोजेक्ट में आसानी से इंपोर्ट किया जा सकता है. अपने प्रोजेक्ट की Podfile खोलें और अपने ऐप्लिकेशन के टारगेट में यह लाइन जोड़ें:

pod 'GoogleUserMessagingPlatform'

इसके बाद, यह कमांड चलाएं:

pod install --repo-update

अगर आपने पहले कभी CocoaPods का इस्तेमाल नहीं किया है, तो Podfile बनाने और इस्तेमाल करने के तरीके के बारे में जानने के लिए, CocoaPods का इस्तेमाल करना लेख पढ़ें.

Swift Package Manager

UMP SDK टूल, Swift Package Manager के साथ भी काम करता है. Swift पैकेज इंपोर्ट करने के लिए, यह तरीका अपनाएं.

  1. Xcode में, UMP SDK Swift Package को इंस्टॉल करने के लिए, फ़ाइल > पैकेज जोड़ें... पर जाएं.

  2. इसके बाद, दिखने वाले प्रॉम्प्ट में UMP SDK टूल के Swift पैकेज का GitHub रिपॉज़िटरी खोजें:

    https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
    
  3. UMP SDK Swift पैकेज का वह वर्शन चुनें जिसका आपको इस्तेमाल करना है. नए प्रोजेक्ट के लिए, हम अगला मेजर वर्शन इस्तेमाल करने का सुझाव देते हैं.

इसके बाद, Xcode आपके पैकेज की डिपेंडेंसी का समाधान करता है और उन्हें बैकग्राउंड में डाउनलोड करता है. पैकेज डिपेंडेंसी जोड़ने के तरीके के बारे में ज़्यादा जानने के लिए, Apple का लेख पढ़ें.

मैन्युअल तरीके से डाउनलोड करना

SDK टूल को मैन्युअल तरीके से इंपोर्ट करने का एक और तरीका है.

SDK टूल डाउनलोड करना

इसके बाद, फ़्रेमवर्क को अपने Xcode प्रोजेक्ट में खींचें और छोड़ें. साथ ही, यह पक्का करें कि आपने ज़रूरी होने पर आइटम कॉपी करें चुना हो.

इसके बाद, फ़्रेमवर्क को अपनी ज़रूरत के हिसाब से किसी भी फ़ाइल में शामिल किया जा सकता है. इसके लिए, इनका इस्तेमाल करें:

Swift

import UserMessagingPlatform

Objective-C

#include <UserMessagingPlatform/UserMessagingPlatform.h>

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

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

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>

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

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

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

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

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

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

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

Swift


// Requesting an update to consent information should be called on every app launch.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(with: parameters) {
  requestConsentError in
  guard requestConsentError == nil else {
    return consentGatheringComplete(requestConsentError)
  }

  Task { @MainActor in
    do {
      try await UMPConsentForm.loadAndPresentIfRequired(from: viewController)
      // Consent has been gathered.
      consentGatheringComplete(nil)
    } catch {
      consentGatheringComplete(error)
    }
  }
}

Objective-C


// Requesting an update to consent information should be called on every app launch.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError *_Nullable requestConsentError) {
                           if (requestConsentError) {
                             consentGatheringComplete(requestConsentError);
                           } else {
                             [UMPConsentForm
                                 loadAndPresentIfRequiredFromViewController:viewController
                                                          completionHandler:^(
                                                              NSError
                                                                  *_Nullable loadAndPresentError) {
                                                            // Consent has been gathered.
                                                            consentGatheringComplete(
                                                                loadAndPresentError);
                                                          }];
                           }
                         }];

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

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

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

requestConsentInfoUpdate(with:completionHandler:) को कॉल करने के बाद, UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus को देखकर यह तय करें कि आपके ऐप्लिकेशन के लिए, निजता विकल्प के एंट्री पॉइंट की ज़रूरत है या नहीं:

Swift


var isPrivacyOptionsRequired: Bool {
  return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus == .required
}

Objective-C


- (BOOL)isPrivacyOptionsRequired {
  return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
         UMPPrivacyOptionsRequirementStatusRequired;
}

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

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

Swift


self.privacySettingsButton.isEnabled =
  GoogleMobileAdsConsentManager.shared.isPrivacyOptionsRequired

Objective-C


strongSelf.privacySettingsButton.enabled =
    GoogleMobileAdsConsentManager.sharedInstance
        .isPrivacyOptionsRequired;

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

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

Swift


try await UMPConsentForm.presentPrivacyOptionsForm(from: viewController)

Objective-C


[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                          completionHandler:completionHandler];

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

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

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

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

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

Swift


GoogleMobileAdsConsentManager.shared.gatherConsent(from: self) { [weak self] consentError in
  guard let self else { return }

  if let consentError {
    // Consent gathering failed.
    print("Error: \(consentError.localizedDescription)")
  }

  if GoogleMobileAdsConsentManager.shared.canRequestAds {
    self.startGoogleMobileAdsSDK()
  }
  // ...
}

// This sample attempts to load ads using consent obtained in the previous session.
if GoogleMobileAdsConsentManager.shared.canRequestAds {
  startGoogleMobileAdsSDK()
}

Objective-C


[GoogleMobileAdsConsentManager.sharedInstance
    gatherConsentFromConsentPresentationViewController:self
                              consentGatheringComplete:^(NSError *_Nullable consentError) {
                                if (consentError) {
                                  // Consent gathering failed.
                                  NSLog(@"Error: %@", consentError.localizedDescription);
                                }

                                __strong __typeof__(self) strongSelf = weakSelf;
                                if (!strongSelf) {
                                  return;
                                }

                                if (GoogleMobileAdsConsentManager.sharedInstance.canRequestAds) {
                                  [strongSelf startGoogleMobileAdsSDK];
                                }
                                // ...
                              }];

// This sample attempts to load ads using consent obtained in the previous session.
if (GoogleMobileAdsConsentManager.sharedInstance.canRequestAds) {
  [self startGoogleMobileAdsSDK];
}

उपयोगकर्ता की सहमति मिलने के बाद, यह कोड Google Mobile Ads SDK को सेट अप करता है:

Swift


private func startGoogleMobileAdsSDK() {
  DispatchQueue.main.async {
    guard !self.isMobileAdsStartCalled else { return }

    self.isMobileAdsStartCalled = true

    // Initialize the Google Mobile Ads SDK.
    GADMobileAds.sharedInstance().start()

    if self.isViewDidAppearCalled {
      self.loadBannerAd()
    }
  }
}

Objective-C


- (void)startGoogleMobileAdsSDK {
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
    // Initialize the Google Mobile Ads SDK.
    [GADMobileAds.sharedInstance startWithCompletionHandler:nil];
    [self loadBannerAd];
  });
}

टेस्ट करना

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

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

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

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

    Swift

    let parameters = UMPRequestParameters()
    let debugSettings = UMPDebugSettings()
    
    debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
    parameters.debugSettings = debugSettings
    
    // Include the UMPRequestParameters in your consent request.
    UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(
        with: parameters,
        completionHandler: { error in
          // ...
        })
    

    Objective-C

    UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
    UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
    
    debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ];
    parameters.debugSettings = debugSettings;
    
    // Include the UMPRequestParameters in your consent request.
    [UMPConsentInformation.sharedInstance
        requestConsentInfoUpdateWithParameters:parameters
                            completionHandler:^(NSError *_Nullable error){
                              // ...
    }];
    

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

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

Swift

let parameters = UMPRequestParameters()
let debugSettings = UMPDebugSettings()

debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
debugSettings.geography = .EEA
parameters.debugSettings = debugSettings

// Include the UMPRequestParameters in your consent request.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(
    with: parameters,
    completionHandler: { error in
      // ...
    })

Objective-C

UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];

debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ];
debugSettings.geography = UMPDebugGeographyEEA;
parameters.debugSettings = debugSettings;

// Include the UMPRequestParameters in your consent request.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError *_Nullable error){
                           // ...
}];

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

Swift

UMPConsentInformation.sharedInstance.reset()

Objective-C

[UMPConsentInformation.sharedInstance reset];

GitHub पर उदाहरण

इस पेज में दिए गए UMP SDK इंटिग्रेशन का पूरा उदाहरण देखने के लिए, Swift BannerExample और Objective-C BannerExample में देखें.