शुरू करना

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

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

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

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

SDK टूल इंपोर्ट करना

UMP SDK टूल को IMA SDK टूल की डिपेंडेंसी के तौर पर शामिल नहीं किया गया है. इसलिए, आपको इसे खुद जोड़ना होगा.

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

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

pod 'GoogleUserMessagingPlatform'

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

pod install --repo-update

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

Swift Package Manager

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

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

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

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

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

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

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

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

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

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

Swift


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

Objective-C


// Requesting an update to consent information should be called on every app launch.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError *_Nullable requestConsentError) {
                           // ...
                         }];

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

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

Swift


try await UMPConsentForm.loadAndPresentIfRequired(from: viewController)

Objective-C


[UMPConsentForm
    loadAndPresentIfRequiredFromViewController:viewController
                             completionHandler:^(NSError *_Nullable loadAndPresentError) {
                                 // Consent gathering process is complete.
                                }];

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

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

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

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

Swift


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

Objective-C


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

- (void)gatherConsentFromConsentPresentationViewController:(UIViewController *)viewController
                                  consentGatheringComplete:
                                      (void (^)(NSError *_Nullable))consentGatheringComplete {
  UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
  // Set tag for under age of consent. Use NO constant to indicate that the user is not under age.
  parameters.tagForUnderAgeOfConsent = NO;

  UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
  // Uncomment the following line to simulate a consent request from users in the
  // European Economic Area (EEA) for testing purposes.
  // debugSettings.geography = UMPDebugGeographyEEA;
  parameters.debugSettings = debugSettings;

  // Requesting an update to consent information should be called on every app launch.
  [UMPConsentInformation.sharedInstance
      requestConsentInfoUpdateWithParameters:parameters
                           completionHandler:^(NSError *_Nullable requestConsentError) {
                             // ...
                           }];
}

- (void)loadAndPresentIfRequiredFromViewController:(UIViewController *)viewController
                           completionHandler:(void (^)(NSError *_Nullable))completionHandler {
  [UMPConsentForm
      loadAndPresentIfRequiredFromViewController:viewController
                               completionHandler:^(NSError *_Nullable loadAndPresentError) {
                                   // Consent gathering process is complete.
                                  }];
}

- (void)presentPrivacyOptionsFormFromViewController:(UIViewController *)viewController
                                  completionHandler:
                                      (void (^)(NSError *_Nullable))completionHandler {
  [UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                            completionHandler:completionHandler];
}

@end

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

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

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

Swift


UMPConsentForm.presentPrivacyOptionsForm(
  from: viewController, completionHandler: completionHandler)

Objective-C


[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                          completionHandler:completionHandler];

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

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

Swift

UMPConsentInformation.sharedInstance.canRequestAds

Objective-C

UMPConsentInformation.sharedInstance.canRequestAds;

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

  • UMP SDK टूल, मौजूदा सेशन में सहमति लेने के बाद.
  • requestConsentInfoUpdateWithParameters:completionHandler: को कॉल करने के तुरंत बाद. हो सकता है कि UMP SDK टूल ने पिछले ऐप्लिकेशन सेशन में सहमति ली हो.
को कॉल नहीं किया है

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

विज्ञापन अनुरोध से जुड़े काम को बार-बार करने से रोकना

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

टेस्ट करना

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

  1. requestConsentInfoUpdateWithParameters: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 टूल की मदद से, अपने ऐप्लिकेशन के व्यवहार की जांच की जा सकती है. ऐसा करने के लिए, UMPDebugGeography का इस्तेमाल करके, यह मानना होगा कि डिवाइस ईईए या यूके जैसे अलग-अलग इलाकों में है. ध्यान दें कि डीबग सेटिंग सिर्फ़ टेस्ट डिवाइसों पर काम करती हैं.

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 UmpExample और Objective-C UmpExample.