Google User Messaging Platform (UMP) SDK, निजता और मैसेज सेवा से जुड़ा टूल है. इसकी मदद से, निजता से जुड़े विकल्पों को मैनेज किया जा सकता है. ज़्यादा जानकारी के लिए, निजता और मैसेज सेवा के बारे में जानकारी लेख पढ़ें. Objective-C या Swift के UMP सैंपल ऐप्लिकेशन में, UMP SDK टूल के साथ IMA को लागू करने का तरीका देखा जा सकता है.
मैसेज का टाइप बनाना
अपने Ad Manager खाते के निजता और मैसेज सेवा टैब में जाकर, उपयोगकर्ता मैसेज के उपलब्ध टाइप में से किसी एक का इस्तेमाल करके उपयोगकर्ता मैसेज बनाएं. UMP SDK, आपके प्रोजेक्ट में सेट किए गए इंटरैक्टिव मीडिया विज्ञापनों के ऐप्लिकेशन आईडी से बनाए गए निजता मैसेज को दिखाने की कोशिश करता है.
ज़्यादा जानकारी के लिए, निजता और मैसेज सेवा के बारे में जानकारी लेख पढ़ें.एसडीके इंपोर्ट करना
UMP SDK, IMA SDK पर निर्भर नहीं है. इसलिए, आपको इसे खुद जोड़ना होगा.
सुझाव: Swift Package Manager का इस्तेमाल करें
UMP SDK Swift पैकेज को इंपोर्ट करने के लिए, यह तरीका अपनाएं:
Xcode में, UMP SDK Swift पैकेज इंस्टॉल करने के लिए, File > Add Packages... पर जाएं.
इसके बाद, जो प्रॉम्प्ट दिखेगा उसमें UMP SDK Swift Package की GitHub रिपॉज़िटरी खोजें:
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.gitUMP SDK Swift पैकेज का वह वर्शन चुनें जिसे आपको इस्तेमाल करना है. नए प्रोजेक्ट के लिए, हमारा सुझाव है कि आप Up to Next Major Version का इस्तेमाल करें.
इसके बाद, Xcode आपके पैकेज की डिपेंडेंसी से जुड़ी समस्या को हल करता है और उन्हें बैकग्राउंड में डाउनलोड करता है. पैकेज डिपेंडेंसी जोड़ने के तरीके के बारे में ज़्यादा जानने के लिए, Apple का लेख पढ़ें.
CocoaPods
CocoaPods का इस्तेमाल करने के लिए, अपने प्रोजेक्ट की Podfile खोलें और अपने ऐप्लिकेशन के टारगेट में यह लाइन जोड़ें:
pod 'GoogleUserMessagingPlatform'
इसके बाद, यह कमांड चलाएं:
pod install --repo-updateअगर CocoaPods का इस्तेमाल पहली बार किया जा रहा है, तो Podfiles बनाने और इस्तेमाल करने के तरीके के बारे में जानने के लिए, CocoaPods का इस्तेमाल करना लेख पढ़ें.
ऐप्लिकेशन आईडी जोड़ना
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.
ConsentInformation.shared.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 ConsentForm.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 ConsentInformation.shared.privacyOptionsRequirementStatus == .required
}
Objective-C
- (BOOL)isPrivacyOptionsRequired {
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
ConsentForm.presentPrivacyOptionsForm(
from: viewController, completionHandler: completionHandler)
Objective-C
[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
completionHandler:completionHandler];
उपयोगकर्ता की सहमति से विज्ञापन दिखाने का अनुरोध करना
विज्ञापनों का अनुरोध करने से पहले,
UMPConsentInformation.sharedInstance.canRequestAds का इस्तेमाल करके देखें कि आपने उपयोगकर्ता से सहमति ली है या नहीं:
Swift
ConsentInformation.shared.canRequestAds
Objective-C
UMPConsentInformation.sharedInstance.canRequestAds;
सहमति इकट्ठा करते समय, विज्ञापन दिखाने का अनुरोध किया जा सकता है या नहीं, यह देखने के लिए यहां दी गई जगहों पर जाएं:
- जब यूएमपी एसडीके, मौजूदा सेशन में सहमति इकट्ठा कर लेता है.
requestConsentInfoUpdateWithParameters:completionHandler:को कॉल करने के तुरंत बाद. ऐसा हो सकता है कि UMP SDK को पिछले ऐप्लिकेशन सेशन में सहमति मिल गई हो.
अगर सहमति लेने की प्रोसेस के दौरान कोई गड़बड़ी होती है, तो देखें कि विज्ञापनों का अनुरोध किया जा सकता है या नहीं. UMP SDK, ऐप्लिकेशन के पिछले सेशन में मिली सहमति की स्थिति का इस्तेमाल करता है.
विज्ञापन दिखाने के अनुरोध से जुड़े ग़ैर-ज़रूरी काम को रोकना
सहमति इकट्ठा करने और
requestConsentInfoUpdateWithParameters:completionHandler: को कॉल करने के बाद,
UMPConsentInformation.sharedInstance.canRequestAds की जांच करते समय पक्का करें कि आपका लॉजिक, विज्ञापन दिखाने के ऐसे अनुरोधों को रोकता हो जिनकी ज़रूरत नहीं है. इनकी वजह से, दोनों जांचों में true दिख सकता है. उदाहरण के लिए, बूलियन वैरिएबल के साथ.
टेस्ट करना
अगर आपको ऐप्लिकेशन डेवलप करते समय उसमें इंटिग्रेशन की जांच करनी है, तो प्रोग्राम के हिसाब से अपने टेस्ट डिवाइस को रजिस्टर करने के लिए यह तरीका अपनाएं. अपना ऐप्लिकेशन रिलीज़ करने से पहले, टेस्ट डिवाइस आईडी सेट करने वाले कोड को हटाना न भूलें.
requestConsentInfoUpdateWithParameters:completionHandler:पर कॉल करें.लॉग आउटपुट में, यहां दिए गए उदाहरण जैसा कोई मैसेज देखें. इसमें आपका डिवाइस आईडी और उसे टेस्ट डिवाइस के तौर पर जोड़ने का तरीका बताया गया है:
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]अपने टेस्ट डिवाइस आईडी को क्लिपबोर्ड पर कॉपी करें.
UMPDebugSettings().testDeviceIdentifiersको कॉल करने के लिए, अपने कोड में बदलाव करें और टेस्ट डिवाइस आईडी की सूची पास करें.Swift
let parameters = RequestParameters() let debugSettings = DebugSettings() debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"] parameters.debugSettings = debugSettings // Include the UMPRequestParameters in your consent request. ConsentInformation.shared.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 = RequestParameters()
let debugSettings = DebugSettings()
debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
debugSettings.geography = .EEA
parameters.debugSettings = debugSettings
// Include the UMPRequestParameters in your consent request.
ConsentInformation.shared.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 की स्थिति को रीसेट करना मददगार हो सकता है. इससे, उपयोगकर्ता के पहली बार ऐप्लिकेशन इंस्टॉल करने के अनुभव को सिम्युलेट किया जा सकता है.
एसडीके, ऐसा करने के लिए reset तरीका उपलब्ध कराता है.
Swift
ConsentInformation.shared.reset()
Objective-C
[UMPConsentInformation.sharedInstance reset];
GitHub पर उदाहरण
इस पेज पर, यूएमपी एसडीके इंटिग्रेशन का पूरा उदाहरण देखें. यह उदाहरण, Swift UmpExample और Objective-C UmpExample में दिया गया है.