अपनी प्रोफ़ाइल बनाना शुरू करें

Google की ईयू उपयोगकर्ता की सहमति से जुड़ी नीति के तहत, आपको यूके के साथ-साथ यूरोपियन इकनॉमिक एरिया (ईईए) में अपने उपयोगकर्ताओं को कुछ जानकारी देनी होगी. साथ ही, कानूनी तौर पर ज़रूरी होने पर और विज्ञापन दिखाने के लिए निजी डेटा (जैसे, AdID) का इस्तेमाल करने के लिए, कुकी और अन्य लोकल स्टोरेज की सहमति लेनी होगी. यह नीति ईयू के ई-निजता निर्देश और सामान्य डेटा से जुड़े सुरक्षा कानून (जनरल डेटा प्रोटेक्शन रेगुलेशन) की ज़रूरी शर्तें दिखाती है.

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

ज़रूरी शर्तें

उपयोगकर्ता मैसेज के टाइप

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

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 टूल को इंपोर्ट करने का एक और तरीका है, इसे मैन्युअल तरीके से करना.

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 तरीके का इस्तेमाल करें.UMPConsentFormpresentFromViewController: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 को कॉल करना होगा.