Google User Messaging Platform (UMP) SDK टूल, निजता और मैसेज सेवा के लिए एक टूल है. इससे आपको निजता के विकल्प मैनेज करने में मदद मिलती है. ज़्यादा जानकारी के लिए, निजता और मैसेज सेवा के बारे में जानकारी देखें.
मैसेज टाइप बनाना
अपने Ad Manager खाते के निजता और मैसेज सेवा टैब में, उपयोगकर्ता मैसेज के उपलब्ध टाइप में से किसी एक की मदद से, उपयोगकर्ता मैसेज बनाएं. UMP SDK आपके प्रोजेक्ट में सेट किए गए Ad Manager ऐप्लिकेशन आईडी से बनाया गया निजता मैसेज दिखाने की कोशिश करता है.
ज़्यादा जानकारी के लिए, निजता और मैसेज सेवा के बारे में जानकारी देखें.
SDK टूल इंपोर्ट करना
CocoaPods (इसका इस्तेमाल करना सबसे बेहतर है)
SDK टूल को iOS प्रोजेक्ट में इंपोर्ट करने का सबसे आसान तरीका, CocoaPods का इस्तेमाल करना है. अपने प्रोजेक्ट की Podfile खोलें और अपने ऐप्लिकेशन के टारगेट में यह लाइन जोड़ें:
pod 'GoogleUserMessagingPlatform'
इसके बाद, यह कमांड चलाएं:
pod install --repo-update
अगर आपने पहले कभी CocoaPods का इस्तेमाल नहीं किया है, तो Podfile बनाने और इस्तेमाल करने के तरीके के बारे में जानने के लिए, CocoaPods का इस्तेमाल करना लेख पढ़ें.
Swift पैकेज मैनेजर
UMP SDK टूल, Swift Package Manager के साथ भी काम करता है. Swift पैकेज इंपोर्ट करने के लिए, यह तरीका अपनाएं.
Xcode में, UMP SDK Swift Package को इंस्टॉल करने के लिए, फ़ाइल > पैकेज जोड़ें... पर जाएं.
इसके बाद, दिखने वाले प्रॉम्प्ट में UMP SDK टूल के Swift पैकेज का GitHub रिपॉज़िटरी खोजें:
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
UMP SDK टूल के उस Swift पैकेज का वर्शन चुनें जिसका इस्तेमाल करना है. नए प्रोजेक्ट के लिए, हमारा सुझाव है कि आप अगले मेजर वर्शन तक का इस्तेमाल करें.
इसके बाद, Xcode आपके पैकेज की डिपेंडेंसी को हल करता है और उन्हें बैकग्राउंड में डाउनलोड करता है. पैकेज की डिपेंडेंसी जोड़ने के तरीके के बारे में ज़्यादा जानने के लिए, Apple का लेख देखें.
मैन्युअल तरीके से डाउनलोड करना
SDK टूल को मैन्युअल तरीके से भी इंपोर्ट किया जा सकता है.
इसके बाद, फ़्रेमवर्क को अपने Xcode प्रोजेक्ट में खींचें और छोड़ें. साथ ही, पक्का करें कि आपने ज़रूरत पड़ने पर आइटम कॉपी करें को चुना हो.
इसके बाद, फ़्रेमवर्क को अपनी ज़रूरत के हिसाब से किसी भी फ़ाइल में शामिल किया जा सकता है. इसके लिए, इनका इस्तेमाल करें:
Swift
import UserMessagingPlatform
Objective-C
#include <UserMessagingPlatform/UserMessagingPlatform.h>
ऐप्लिकेशन आईडी जोड़ें
अपना ऐप्लिकेशन आईडी Ad Manager यूज़र इंटरफ़ेस (यूआई) में देखा जा सकता है.
इस कोड स्निपेट की मदद से, अपने Info.plist
में आईडी जोड़ें:
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
सहमति लें
सहमति लेने के लिए, नीचे दिया गया तरीका अपनाएं:
- उपयोगकर्ता की सहमति से जुड़ी सबसे हाल की जानकारी का अनुरोध करना.
- अगर ज़रूरी हो, तो सहमति फ़ॉर्म लोड करें और उसे दिखाएं.
सहमति की जानकारी का अनुरोध करना
आपको
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];
});
}
टेस्ट करना
अगर आपको अपने ऐप्लिकेशन में इंटिग्रेशन की जांच करनी है, तो अपने टेस्ट डिवाइस को प्रोग्राम के हिसाब से रजिस्टर करें. इसके लिए, यह तरीका अपनाएं. ऐप्लिकेशन को रिलीज़ करने से पहले, टेस्ट डिवाइस आईडी सेट करने वाले कोड को हटाना न भूलें.
requestConsentInfoUpdate(with:completionHandler:)
पर कॉल करें.लॉग आउट में, नीचे दिए गए उदाहरण से मिलते-जुलते मैसेज देखें. इसमें आपका डिवाइस आईडी और उसे टेस्ट डिवाइस के तौर पर जोड़ने का तरीका दिखता है:
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
अपने टेस्ट डिवाइस का आईडी, क्लिपबोर्ड पर कॉपी करें.
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 AdManagerBannerExample और Objective-C AdManagerBannerExample में देखें.