ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन

यह गाइड, उन पब्लिशर के लिए है जो ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापनों को इंटिग्रेट कर रहे हैं.

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

ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन, अपने-आप एक छोटा ब्रैंडिंग एरिया दिखाते हैं, ताकि उपयोगकर्ता यह जान सकें कि वे आपके ऐप्लिकेशन में हैं. यहां एक उदाहरण दिया गया है कि ऐप्लिकेशन खोलने पर दिखने वाला विज्ञापन कैसा दिखता है:

ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापनों को लागू करने के लिए, यह तरीका अपनाएं:

  1. GADAppOpenAd को लोड करने और दिखाने के लिए, AppDelegate में तरीके जोड़ें.
  2. ऐप्लिकेशन के फ़ोरग्राउंड इवेंट का पता लगाएं.
  3. प्रज़ेंटेशन कॉलबैक मैनेज करें.

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

हमेशा टेस्ट विज्ञापनों के साथ टेस्ट करें

ऐप्लिकेशन बनाते और उसकी जांच करते समय, पक्का करें कि आप लाइव, प्रोडक्शन विज्ञापन के बजाय टेस्ट विज्ञापन का इस्तेमाल करें. ऐसा न करने पर, आपके खाते को निलंबित किया जा सकता है.

टेस्ट विज्ञापनों को लोड करने का सबसे आसान तरीका, ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापनों के लिए हमारे खास टेस्ट विज्ञापन यूनिट आईडी का इस्तेमाल करना है:

ca-app-pub-3940256099942544/5662855259

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

मोबाइल विज्ञापन SDK टूल के टेस्ट विज्ञापन कैसे काम करते हैं, इस बारे में ज़्यादा जानकारी के लिए विज्ञापन टेस्ट करें देखें.

अपने ऐप्लिकेशन का ऐक्सेस दें

ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन तब दिखाए जाते हैं, जब आपका ऐप्लिकेशन लॉन्च होता है या जब उपयोगकर्ता आपके ऐप्लिकेशन को फ़ोरग्राउंड में लाते हैं. यह पक्का करने के लिए कि जब कोई उपयोगकर्ता आपका ऐप्लिकेशन खोलेगा, वह विज्ञापन दिखाने के लिए तैयार हो, तो आपको इस्तेमाल करने के लिए तैयार विज्ञापन का रेफ़रंस लेना होगा.

इसका मतलब है कि विज्ञापन दिखाने से पहले, आपको GADAppOpenAd को पहले से लोड करना होगा. इस तरह, अगली बार ऐप्लिकेशन खोलने पर आपका ऐप्लिकेशन विज्ञापन प्रदर्शित होने के लिए तैयार होगा. विज्ञापन के लिए एक रेफ़रंस देने की सुविधा देने के लिए, नीचे दी गई प्रॉपर्टी और तरीके अपने AppDelegate.h में जोड़ें:

#import <GoogleMobileAds/GoogleMobileAds.h>
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property(strong, nonatomic) UIWindow* window;
@property(strong, nonatomic) GADAppOpenAd* appOpenAd;

- (void)requestAppOpenAd;
- (void)tryToPresentAd;

@end

ध्यान दें कि आपको अपना अनुरोध और AppDelegate के तरीकों के अलावा, स्क्रीन शेयर करने के तरीकों को ऐक्सेस करना चाहिए, ताकि आप iOS 13 और उसके बाद के वर्शन पर काम करने वाले डिवाइसों के लिए, UISceneDelegate से उन्हें कॉल कर सकें. इस बारे में ज़्यादा जानकारी बाद में दी गई है.

AppDelegate.m में requestAppOpenAd तरीका जोड़ें:

- (void)requestAppOpenAd {
  self.appOpenAd = nil;
  [GADAppOpenAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/5662855259"
                         request:[GADRequest request]
                     orientation:UIInterfaceOrientationPortrait
               completionHandler:^(GADAppOpenAd *_Nullable appOpenAd, NSError *_Nullable error) {
                 if (error) {
                   NSLog(@"Failed to load app open ad: %@", error);
                   return;
                 }
                 self.appOpenAd = appOpenAd;
               }];
}

इस तरीके से GADAppOpenAd को लोड करने का अनुरोध मिलता है. सफल होने पर, प्रॉपर्टी AppDelegate पर सेट हो जाती है, ताकि जब उपयोगकर्ता आपके ऐप्लिकेशन को फ़ोरग्राउंड में लाएं, तब विज्ञापन इस्तेमाल करने के लिए तैयार हो.

ओरिएंटेशन सेट करना ज़रूरी है. अगर ओरिएंटेशन UIInterfaceOrientationUnknown पर सेट किया गया है, तो GADAppOpenAd पोर्ट्रेट ओरिएंटेशन को तय करता है. अगर आपको लैंडस्केप लेआउट डिज़ाइन करना है, तो पक्का करें कि आपको अनुरोध के तरीके में UIInterfaceOrientationLandscapeLeft या UIInterfaceOrientationLandscapeRight पास करके, लैंडस्केप ओरिएंटेशन की ज़रूरत हो.

इसके बाद, AppDelegate से विज्ञापन दिखाने के लिए एक तरीका जोड़ें.

- (void)tryToPresentAd {
  if (self.appOpenAd) {
    UIViewController *rootController = self.window.rootViewController;
    [self.appOpenAd presentFromRootViewController:rootController];
  } else {
    // If you don't have an ad ready, request one.
    [self requestAppOpenAd];
  }
}

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

ऐप्लिकेशन के फ़ोरग्राउंड इवेंट का पता लगाने की अनुमति दें

जब कोई उपयोगकर्ता आपके ऐप्लिकेशन पर पहली बार आता है, तो इसकी संभावना नहीं होती कि आपके पास विज्ञापन के लिए रेफ़रंस तैयार हो. इसके बजाय, आपको ऊपर बताए गए tryToPresentAd तरीके पर भरोसा करना चाहिए. अगर कोई विज्ञापन उपलब्ध है, तो वह आपको विज्ञापन दिखाएगा या नए विज्ञापन का अनुरोध करेगा. जब भी आपका ऐप्लिकेशन फ़ोरग्राउंड में आए, तब इस तरीके का इस्तेमाल किया जाना चाहिए. ऐसा करने के लिए, अपने AppDelegate में applicationDidBecomeActive: तरीके से बदलाव करें:

- (void)applicationDidBecomeActive:(UIApplication *)application {
  [self tryToPresentAd];
}

प्रज़ेंटेशन कॉलबैक मैनेज करें

जब आपका ऐप्लिकेशन, ऐप्लिकेशन खोलने पर दिखने वाला विज्ञापन दिखाता है, तब आपको कुछ खास प्रज़ेंटेशन इवेंट मैनेज करने के लिए GADFullScreenContentDelegate पर भरोसा करना चाहिए. खास तौर पर, हो सकता है कि पहला विज्ञापन दिखाए जाने के बाद, ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन का अनुरोध करना हो.

अपनी AppDelegate.h फ़ाइल में, ये बदलाव करें:

#import <GoogleMobileAds/GoogleMobileAds.h>
#import <UIKit/UIKit.h>
@interface AppDelegate
    : UIResponder <UIApplicationDelegate, GADFullScreenContentDelegate>

@property(strong, nonatomic) UIWindow* window;
@property(strong, nonatomic) GADAppOpenAd* appOpenAd;

- (void)requestAppOpenAd;
- (void)tryToPresentAd;

@end

इसके बाद, अपनी AppDelegate.m फ़ाइल में ये पंक्तियाँ जोड़ें:

- (void)requestAppOpenAd {
  self.appOpenAd = nil;
  [GADAppOpenAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/5662855259"
                         request:[GADRequest request]
                     orientation:UIInterfaceOrientationPortrait
               completionHandler:^(GADAppOpenAd *_Nullable appOpenAd, NSError *_Nullable error) {
                 if (error) {
                   NSLog(@"Failed to load app open ad: %@", error);
                   return;
                 }
                 self.appOpenAd = appOpenAd;
                 self.appOpenAd.fullScreenContentDelegate = self;
               }];
}

#pragma mark - GADFullScreenContentDelegate

/// Tells the delegate that the ad failed to present full screen content.
- (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad
    didFailToPresentFullScreenContentWithError:(nonnull NSError *)error {
  NSLog(@"didFailToPresentFullScreenContentWithError");
  [self requestAppOpenAd];

}

/// Tells the delegate that the ad will present full screen content.
- (void)adWillPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
  NSLog(@"adWillPresentFullScreenContent");
}

/// Tells the delegate that the ad dismissed full screen content.
- (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
  NSLog(@"adDidDismissFullScreenContent");
  [self requestAppOpenAd];
}
...

ये कॉलबैक, ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन के लाइफ़साइकल में अलग-अलग इवेंट मैनेज करते हैं.

विज्ञापन की समयसीमा खत्म होने के बारे में सोचें

यह पक्का करने के लिए कि आपको जिस विज्ञापन की समयसीमा खत्म हो चुकी है उसे न दिखाएं. ऐप्लिकेशन देने के लिए, अपने तरीके में कोई तरीका जोड़ा जा सकता है. इससे, आपके विज्ञापन के रेफ़रंस लोड होने के बाद से बीत चुके समय को देखा जा सकता है.

AppDelegate.h, NSDate प्रॉपर्टी जोड़ें:

#import <GoogleMobileAds/GoogleMobileAds.h>
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property(strong, nonatomic) UIWindow* window;
@property(strong, nonatomic) GADAppOpenAd* appOpenAd;
@property(weak, nonatomic) NSDate *loadTime;

- (void)requestAppOpenAd;
- (void)tryToPresentAd;

@end

अगर आपका विज्ञापन लोड होने के बाद एक तय संख्या से कम समय बीत चुका है, तो आपके पास विकल्प के तौर पर true जोड़ने का विकल्प है.

AppDelegate.m में यह तरीका जोड़ें:

- (BOOL)wasLoadTimeLessThanNHoursAgo:(int)n {
  NSDate *now = [NSDate date];
  NSTimeInterval timeIntervalBetweenNowAndLoadTime = [now timeIntervalSinceDate:self.loadTime];
  double secondsPerHour = 3600.0;
  double intervalInHours = timeIntervalBetweenNowAndLoadTime / secondsPerHour;
  return intervalInHours < n;
}

अगला चरण, विज्ञापन लोड होने पर loadTime प्रॉपर्टी को सेट करना है:

- (void)requestAppOpenAd {
  self.appOpenAd = nil;
  [GADAppOpenAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/5662855259"
                         request:[GADRequest request]
                     orientation:UIInterfaceOrientationPortrait
               completionHandler:^(GADAppOpenAd *_Nullable appOpenAd, NSError *_Nullable error) {
                 if (error) {
                   NSLog(@"Failed to load app open ad: %@", error);
                   return;
                 }
                 self.appOpenAd = appOpenAd;
                 self.appOpenAd.fullScreenContentDelegate = self;
                 self.loadTime = [NSDate date];
               }];
}

आखिर में, विज्ञापन दिखाने से पहले, पक्का करें कि वह मान्य है या नहीं:

- (void)tryToPresentAd {
  if (self.appOpenAd && [self wasLoadTimeLessThanNHoursAgo:4]) {
    UIViewController *rootController = self.window.rootViewController;
    [self.appOpenAd presentFromRootViewController:rootController];
  } else {
    // If you don't have an ad ready, request one.
    [self requestAppOpenAd];
  }
}

कोल्ड स्टार्ट और लोड स्क्रीन

ऊपर दिया गया दस्तावेज़ यह मानता है कि ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन सिर्फ़ तब दिखाए जाते हैं, जब उपयोगकर्ता मेमोरी में निलंबित होने पर आपके ऐप्लिकेशन को आगे बढ़ाते हैं. "कोल्ड स्टार्ट" तब होता है, जब आपका ऐप्लिकेशन लॉन्च किया गया हो, लेकिन पहले उसकी मेमोरी में निलंबित न हुआ हो.

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

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

सबसे सही तरीके

Google ने ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन बनाए हैं, ताकि ऐप्लिकेशन के लोड होने की स्क्रीन पर कमाई की जा सके.

  • अपना पहला ऐप्लिकेशन खोलने वाला विज्ञापन दिखाने के लिए तब तक इंतज़ार करें, जब तक आपके ऐप्लिकेशन उपयोगकर्ता कुछ बार इसका इस्तेमाल नहीं कर लेते.
  • ऐसे समय के दौरान ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन दिखाएं, जब उपयोगकर्ता ऐप्लिकेशन के लोड होने का इंतज़ार कर रहे हों.
  • अगर आपके ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन के नीचे लोड होने वाली स्क्रीन है और विज्ञापन को खारिज करने से पहले लोडिंग स्क्रीन पूरी हो जाती है, तो आप adDidDismissFullScreenContent तरीके से लोड होने की स्क्रीन को खारिज कर सकते हैं.

GitHub पर पूरा उदाहरण

स्विफ़्ट मकसद-C

अगले चरण

उपयोगकर्ता की निजता के बारे में ज़्यादा जानें.