Google की ईयू उपयोगकर्ता की सहमति से जुड़ी नीति के तहत, आपको यूके के साथ-साथ यूरोपियन इकनॉमिक एरिया (ईईए) में अपने उपयोगकर्ताओं को कुछ जानकारी देनी होगी. साथ ही, कानूनी तौर पर ज़रूरी होने पर और विज्ञापन दिखाने के लिए निजी डेटा (जैसे, AdID) का इस्तेमाल करने के लिए, कुकी और अन्य लोकल स्टोरेज की सहमति लेनी होगी. यह नीति ईयू के ई-निजता निर्देश और सामान्य डेटा से जुड़े सुरक्षा कानून (जनरल डेटा प्रोटेक्शन रेगुलेशन) की ज़रूरी शर्तें दिखाती है.
इस नीति के तहत, पब्लिशर की मदद करने के लिए Google, User Messaging Platform (UMP) SDK टूल ऑफ़र करता है. सबसे नए IAB मानकों के मुताबिक काम करने के लिए, UMP SDK टूल को अपडेट किया गया है. इन सभी कॉन्फ़िगरेशन को अब AdMob निजता और मैसेज सेवा में आसानी से मैनेज किया जा सकता है.
ज़रूरी शर्तें
- शुरू करने के लिए गाइड पूरी करें.
- AdMob खाते के निजता और मैसेज सेवा टैब में जाकर, अपने मैसेज कॉन्फ़िगर करें. ज़्यादा जानकारी के लिए, निजता और मैसेज सेवा के बारे में जानकारी
- अगर आप जीडीपीआर से जुड़ी ज़रूरतों पर काम कर रहे हैं, तो पढ़ें IAB की ज़रूरी शर्तें, ईयू (यूरोपीय संघ) के सहमति जताने वाले मैसेज पर कैसे असर डालती हैं.
उपयोगकर्ता मैसेज के टाइप
इस्तेमाल किए जा सकने वाले मैसेज की पूरी सूची देखने के लिए, उपयोगकर्ता के मैसेज के टाइप देखें. हर तरह के मैसेज को लागू करने से जुड़े खास निर्देशों के लिए, बायां नेविगेशन बार देखें.
SDK टूल इंपोर्ट करें
CocoaPods (पसंदीदा)
UMP SDK टूल, Google मोबाइल विज्ञापन SDK पॉड के तौर पर शामिल किया जाता है. यह Google मोबाइल विज्ञापन SDK 7.64.0 से शुरू होता है.
iOS प्रोजेक्ट में SDK टूल इंपोर्ट करने का सबसे आसान तरीका है, CocoaPods का इस्तेमाल करना. अपने प्रोजेक्ट की Podfile खोलें और इस लाइन को अपने ऐप्लिकेशन के टारगेट में जोड़ें:
pod 'Google-Mobile-Ads-SDK'
इसके बाद, यह निर्देश चलाएं:
pod install --repo-update
अगर आपने CocoaPods का इस्तेमाल पहले नहीं किया है, तो Podfile बनाने और इस्तेमाल करने के तरीके से जुड़ी जानकारी के लिए, CocoaPods का इस्तेमाल देखें.
मैन्युअल डाउनलोड
SDK टूल को इंपोर्ट करने का एक और तरीका है, इसे मैन्युअल तरीके से करना.
इसके बाद, फ़्रेमवर्क को अपने Xcode प्रोजेक्ट में खींचें और पक्का करें कि ज़रूरत पड़ने पर आइटम कॉपी करें चुना गया हो.
इसके बाद, ज़रूरत के हिसाब से किसी भी फ़ाइल में फ़्रेमवर्क को शामिल किया जा सकता है:
Swift
import UserMessagingPlatform
Objective-C
#include <UserMessagingPlatform/UserMessagingPlatform.h>
अपनी Info.plist अपडेट करें
अपना ऐप्लिकेशन आईडी ढूंढना और इसे अपनेInfo.plist
में जोड़ें:
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
इससे तय होता है कि कोई मैसेज दिखाना है या नहीं
फ़ॉर्म लोड करने से पहले, आपको requestConsentInfoUpdateWithParameters:completionHandler:
सभी ऐप्लिकेशन लॉन्च में, उपयोगकर्ता की सहमति की जानकारी अपडेट करने का अनुरोध करना चाहिए.
इससे यह तय किया जा सकता है कि अगर उपयोगकर्ता ने पहले कभी सहमति नहीं दी है, तो सहमति देने की ज़रूरत है या नहीं.
ऐप्लिकेशन शुरू होने की स्थिति देखने का तरीका यहां दिया गया है:
Swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Create a UMPRequestParameters object. let parameters = UMPRequestParameters() // Set tag for under age of consent. Here false means users are not under age. parameters.tagForUnderAgeOfConsent = false // Request an update to the consent information. UMPConsentInformation.sharedInstance.requestConsentInfoUpdate( with: parameters, completionHandler: { error in if error != nil { // Handle the error. } else { // The consent information state was updated. // You are now ready to check if a form is // available. } }) }
Objective-C
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Create a UMPRequestParameters object. UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init]; // Set tag for under age of consent. Here NO means users are not under age. parameters.tagForUnderAgeOfConsent = NO; // Request an update to the consent information. [UMPConsentInformation.sharedInstance requestConsentInfoUpdateWithParameters:parameters completionHandler:^(NSError *_Nullable error) { if (error) { // Handle the error. } else { // The consent information state was updated. // You are now ready to check if a form is // available. } }]; }
उपलब्ध होने पर फ़ॉर्म लोड करें
फ़ॉर्म दिखाने से पहले, आपको पता करना होगा कि कोई फ़ॉर्म उपलब्ध है या नहीं. उपलब्ध फ़ॉर्म की वजह से ऐसा हो सकता है कि उपयोगकर्ता सीमित विज्ञापन ट्रैकिंग को चालू कर रहा हो या जब आपने उन्हें सहमति देने की मान्य उम्र के तहत टैग किया हो.
किसी फ़ॉर्म की उपलब्धता देखने के लिए,the formStatus
property on the UMPConsentInformation
instance पहले से बनाए गए फ़ॉर्म का इस्तेमाल करें.
इसके बाद, फ़ॉर्म लोड करने के लिए रैपर तरीका जोड़ें:
Swift
// Request an update to the consent information. UMPConsentInformation.sharedInstance.requestConsentInfoUpdate( withParameters: parameters, completionHandler: { [self] error in // The consent information has updated. if error != nil { // Handle the error. } else { // The consent information state was updated. // You are now ready to see if a form is available. let formStatus = UMPConsentInformation.sharedInstance.formStatus if formStatus == UMPFormStatus.available { loadForm() } } }) ... func loadForm() { }
Objective-C
// Request an update to the consent information. [UMPConsentInformation.sharedInstance requestConsentInfoUpdateWithParameters:parameters completionHandler:^(NSError* _Nullable error) { // The consent information has updated. if (error) { // Handle the error. } else { // The consent information state was updated. // You are now ready to see if a form is available. UMPFormStatus formStatus = UMPConsentInformation.sharedInstance .formStatus; if (formStatus == UMPFormStatusAvailable) { [self loadForm]; } } }]; ... - (void) loadForm { }
फ़ॉर्म लोड करने के लिए, the static loadWithCompletionHandler:
method on the UMPConsentForm
classका इस्तेमाल करें.
Swift
func loadForm() { // Loads a consent form. Must be called on the main thread. UMPConsentForm.load( withCompletionHandler: { form, loadError in if loadError != nil { // Handle the error } else { // Present the form } }) }
Objective-C
- (void)loadForm { [UMPConsentForm loadWithCompletionHandler:^(UMPConsentForm *form, NSError *loadError) { if (loadError) { // Handle the error } else { // Present the form } }]; }
ज़रूरी होने पर फ़ॉर्म सबमिट करें
फ़ॉर्म की उपलब्धता तय करने और उसे लोड कर लेने के बाद, फ़ॉर्म प्रज़ेंट करने के लिए
UMPConsentForm
तरीके का इस्तेमाल करें.UMPConsentForm
presentFromViewController:completionHandler:
consent status को जांचने के लिएUMPConsentInformation
पहले से दिए गए ऑब्जेक्ट का इस्तेमाल करें औरloadForm
तरीका अपडेट करें:
Swift
func loadForm() { UMPConsentForm.load(withCompletionHandler: { form, loadError in if loadError != nil { // Handle the error. } else { // Present the form. You can also hold on to the reference to present // later. if UMPConsentInformation.sharedInstance.consentStatus == UMPConsentStatus.required { form?.present( from: self, completionHandler: { dismissError in if UMPConsentInformation.sharedInstance.consentStatus == UMPConsentStatus.obtained { // App can start requesting ads. } // Handle dismissal by reloading form. loadForm(); }) } else { // Keep the form available for changes to user consent. } } }) }
Objective-C
- (void)loadForm { [UMPConsentForm loadWithCompletionHandler:^(UMPConsentForm *form, NSError *loadError) { if (loadError) { // Handle the error. } else { // Present the form. You can also hold on to the reference to present // later. if (UMPConsentInformation.sharedInstance.consentStatus == UMPConsentStatusRequired) { [form presentFromViewController:self completionHandler:^(NSError *_Nullable dismissError) { if (UMPConsentInformation.sharedInstance.consentStatus == UMPConsentStatusObtained) { // App can start requesting ads. } // Handle dismissal by reloading form. [self loadForm]; }]; } else { // Keep the form available for changes to user consent. } } }]; }
अगर उपयोगकर्ता ने फ़ॉर्म का विकल्प चुन लिया है या उसे खारिज कर दिया है, तो आपको कोई भी कार्रवाई करनी होगी. अपने फ़ॉर्म के लिए पूरा होने के हैंडलर या कॉलबैक में यह नियम डालें.
टेस्ट करना
दुनिया को दिखाएं
यूएमपी SDK टूल की मदद से, ऐप्लिकेशन के व्यवहार की जांच की जा सकती है. इसके लिए, the debugGeography
property of type UMPDebugGeography
on UMPDebugSettings
का इस्तेमाल करके डिवाइस को ईईए या यूके में होना चाहिए.
डीबग फ़ंक्शन का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन की डीबग सेटिंग में टेस्ट डिवाइस का हैश किया गया आईडी देना होगा. अगर आपने
requestConsentInfoUpdateWithParameters:completionHandler:
इस वैल्यू को सेट किए बिना कॉल किया है, तो रन करने पर आपका ऐप्लिकेशन, ज़रूरी आईडी हैश को लॉग कर लेता है.
Swift
let parameters = UMPRequestParameters() let debugSettings = UMPDebugSettings() debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"] debugSettings.geography = UMPDebugGeography.EEA parameters.debugSettings = debugSettings 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; [UMPConsentInformation.sharedInstance requestConsentInfoUpdateWithParameters:parameters completionHandler:^(NSError *_Nullable error){ ... }];
UMPDebugGeography
के साथ, आपके पास भूगोल को
इन विकल्पों में से किसी एक पर ज़बरदस्ती लागू करने का विकल्प होता है:
डीबगोग्राफ़ी | ब्यौरा |
---|---|
UMPDebugGeographyDisabled |
डीबग भूगोल बंद है. |
UMPDebugGeographyEEA |
ईईए में भूगोल, डीबग डिवाइसों के तौर पर दिखता है. |
UMPDebugGeographyNotEEA |
ईईए के देशों की सूची में, डीबग डिवाइस के तौर पर नहीं दिखता. |
ध्यान दें कि डीबग सेटिंग सिर्फ़ टेस्ट डिवाइसों पर काम करती हैं. एम्युलेटर को आपकी डिवाइस आईडी सूची में जोड़ने की ज़रूरत नहीं है, क्योंकि पहले से ही डिफ़ॉल्ट रूप से टेस्टिंग चालू होती है.
सहमति की स्थिति रीसेट करें
UMP SDK टूल के साथ अपने ऐप्लिकेशन की जांच करने से, SDK टूल की स्थिति को रीसेट करने में मदद मिल सकती है. इससे, आप उपयोगकर्ता को पहली बार इंस्टॉल करने का अनुभव दे पाते हैं.
SDK टूल, ऐसा करने का reset
तरीका बताता है.
Swift
UMPConsentInformation.sharedInstance.reset()
Objective-C
[UMPConsentInformation.sharedInstance reset];
अगर आपको अपने प्रोजेक्ट से UMP SDK टूल हटाना है, तो आपको reset
को कॉल करना होगा.