मध्यवर्ती विज्ञापन

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

इस गाइड में, किसी iOS ऐप्लिकेशन में अचानक दिखने वाले (इंटरस्टीशियल) विज्ञापनों को इंटिग्रेट करने का तरीका बताया गया है.

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

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

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

टेस्ट विज्ञापनों को लोड करने का सबसे आसान तरीका, iOS पर अचानक दिखने वाले विज्ञापनों के लिए हमारे खास टेस्ट विज्ञापन यूनिट आईडी का इस्तेमाल करना है:
/6499/example/interstitial

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

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

लागू करने का तरीका

पेज पर अचानक दिखने वाले विज्ञापनों को जोड़ने के मुख्य चरण ये हैं:

  1. एक विज्ञापन लोड करें.
  2. कॉलबैक के लिए रजिस्टर करें.
  3. विज्ञापन दिखाएं और इनाम वाले इवेंट को मैनेज करें.

विज्ञापन लोड करें

विज्ञापन को GAMInterstitialAd क्लास पर स्टैटिक loadWithAdManagerAdUnitID:request:completionHandler: तरीके से लोड किया जाता है. लोड करने के तरीके के लिए, आपको विज्ञापन यूनिट आईडी, GAMRequest ऑब्जेक्ट, और पूरा होने वाले हैंडलर की ज़रूरत होती है. इस हैंडलर को तब कॉल किया जाता है, जब विज्ञापन लोड होने की प्रोसेस पूरी होती है या पूरी नहीं होती. लोड किए गए GAMInterstitialAd ऑब्जेक्ट को, पूरा होने वाले हैंडलर में पैरामीटर के तौर पर दिया गया है. नीचे दिए गए उदाहरण में, अपनी ViewController क्लास में GAMInterstitialAd को लोड करने का तरीका बताया गया है.

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var interstitial: GAMInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    do {
      interstitial = try await GAMInterstitialAd.load(
        withAdUnitID: "/6499/example/interstitial", request: GAMRequest())
    } catch {
      print("Failed to load interstitial ad with error: \(error.localizedDescription)")
    }
  }
}

Objective-C

@import GoogleMobileAds;
@import UIKit;

@interface ViewController ()

@property(nonatomic, strong) GAMInterstitialAd *interstitial;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  GAMRequest *request = [GAMRequest request];
  [GAMInterstitialAd loadWithAdManagerAdUnitID:@"/6499/example/interstitial"
                                       request:request
                             completionHandler:^(GAMInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
  }];
}

कॉलबैक के लिए रजिस्टर करें

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

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController, GADFullScreenContentDelegate {

  private var interstitial: GAMInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    do {
      interstitial = try await GAMInterstitialAd.load(
        withAdUnitID: "/6499/example/interstitial", request: GAMRequest())
      interstitial?.fullScreenContentDelegate = self
    } catch {
      print("Failed to load interstitial ad with error: \(error.localizedDescription)")
    }
  }

  /// Tells the delegate that the ad failed to present full screen content.
  func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
    print("Ad did fail to present full screen content.")
  }

  /// Tells the delegate that the ad will present full screen content.
  func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad will present full screen content.")
  }

  /// Tells the delegate that the ad dismissed full screen content.
  func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad did dismiss full screen content.")
  }
}

Objective-C

@import GoogleMobileAds;
@import UIKit;

@interface ViewController () <GADFullScreenContentDelegate>

@property(nonatomic, strong) GAMInterstitialAd *interstitial;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  GAMRequest *request = [GAMRequest request];
  [GAMInterstitialAd loadWithAdManagerAdUnitID:@"/6499/example/interstitial"
                                       request:request
                             completionHandler:^(GAMInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
    self.interstitial.fullScreenContentDelegate = self;
  }];
}

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

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

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

GAMInterstitialAd एक बार इस्तेमाल किया जाने वाला ऑब्जेक्ट है. इसका मतलब है कि एक बार पेज पर अचानक दिखने वाले विज्ञापन को दिखाने के बाद, उसे फिर से नहीं दिखाया जा सकता. सबसे सही तरीका यह है कि आप GADFullScreenContentDelegate को adDidDismissFullScreenContent: तरीके में दूसरा विज्ञापन लोड करें, ताकि पेज पर अचानक दिखने वाला अगला विज्ञापन खारिज होते ही लोड होना शुरू हो जाए.

विज्ञापन दिखाएं

पेज पर अचानक दिखने वाले विज्ञापन, ऐप्लिकेशन के फ़्लो में स्वाभाविक रुकने के दौरान दिखाए जाने चाहिए. गेम के अलग-अलग लेवल के बीच या फिर उपयोगकर्ता के टास्क पूरा करने के बाद विज्ञापन दिखाना एक अच्छा उदाहरण है. यहां उदाहरण देकर यह बताया गया है कि UIViewController में किसी एक कार्रवाई के तरीके का इस्तेमाल करके ऐसा कैसे किया जा सकता है:

Swift

@IBAction func doSomething(_ sender: Any) {
  guard let interstitial = interstitial else {
    return print("Ad wasn't ready.")
  }

  // The UIViewController parameter is an optional.
  interstitial.present(fromRootViewController: nil)
}

Objective-C

- (IBAction)doSomething:(id)sender {
  if (self.interstitial) {
    // The UIViewController parameter is nullable.
    [self.interstitial presentFromRootViewController:nil];
  } else {
    NSLog(@"Ad wasn't ready");
  }
}

अगर आपको कोई भी विज्ञापन वापस नहीं मिल रहा है, तो "अनुरोध गड़बड़ी: दिखाने के लिए कोई विज्ञापन नहीं" गड़बड़ी जवाब के साथ, पक्का करें कि आपके लाइन आइटम में सही साइज़ को टारगेट करने वाला क्रिएटिव है. फ़ोन के लिए इंटरस्टीशियल साइज़ 320x480 और 480x320 और टैबलेट के लिए 1024x768 और 768x1024 है. अगर डिवाइस का साइज़ 1024x768 या 768x1024 के साइज़ के हिसाब से नहीं है, तो इसका साइज़ 320x480 या 480x320 हो जाएगा.

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

तय करें कि पेज पर अचानक दिखने वाले विज्ञापन आपके ऐप्लिकेशन के लिए सही तरह के विज्ञापन हैं या नहीं.
अचानक दिखने वाले (इंटरस्टीशियल) विज्ञापन, ऐसे ऐप्लिकेशन पर सबसे अच्छी तरह काम करते हैं जिनमें नैचुरल ट्रांज़िशन पॉइंट होते हैं. किसी ऐप्लिकेशन में किसी टास्क का पूरा होना, जैसे कि कोई इमेज शेयर करना या गेम का लेवल पूरा करना, इस तरह का पॉइंट बनाता है. उपयोगकर्ता को उम्मीद है कि वह कार्रवाई नहीं कर पाएगा. इसलिए, पेज पर अचानक दिखने वाले विज्ञापन को दिखाना आसान है और उसके अनुभव पर कोई असर नहीं होगा. ऐप्लिकेशन के वर्कफ़्लो में इस बात का ध्यान रखें कि अचानक दिखने वाले (इंटरस्टीशियल) विज्ञापन किस तरह से दिखाए जाएंगे और उपयोगकर्ता क्या जवाब देगा.
पेज पर अचानक दिखने वाले विज्ञापन को दिखाते समय, कार्रवाई को रोकना न भूलें.
अचानक दिखने वाले (इंटरस्टीशियल) विज्ञापन कई तरह के होते हैं: टेक्स्ट, इमेज, वीडियो वगैरह. यह पक्का करना ज़रूरी है कि जब आपका ऐप्लिकेशन पेज पर पेज पर अचानक दिखने वाला विज्ञापन दिखाता है, तो वह कुछ संसाधनों का इस्तेमाल भी निलंबित कर देता है, ताकि विज्ञापन उनका फ़ायदा ले सकता है. उदाहरण के लिए, पेज पर अचानक दिखने वाले विज्ञापन को दिखाने के लिए कॉल करते समय, अपने ऐप्लिकेशन से जनरेट हो रहे ऑडियो आउटपुट को रोकना न भूलें. adDidDismissFullScreenContent: इवेंट हैंडलर में, साउंड चलाना फिर से शुरू किया जा सकता है. उपयोगकर्ता का विज्ञापन से इंटरैक्ट करने के बाद, यह सुविधा शुरू की जाएगी. इसके अलावा, विज्ञापन दिखाए जाने के दौरान किसी भी गहन कंप्यूटेशन (जैसे कि गेम लूप) को कुछ समय के लिए रोकना. इससे यह पक्का होगा कि लोगों को धीमे या खराब ग्राफ़िक या रुक-रुककर चलने वाला वीडियो न दिखे.
कॉन्टेंट लोड होने में लगने वाले समय को कम करने के लिए, अनुमति दें.
यह पक्का करना ज़रूरी है कि पेज पर अचानक दिखने वाले विज्ञापन, सही समय पर दिखाए जाएं. साथ ही, यह भी पक्का करना ज़रूरी है कि उपयोगकर्ता को उनके लोड होने तक इंतज़ार न करना पड़े. विज्ञापन को दिखाने से पहले ही लोड करने से यह पक्का हो सकता है कि विज्ञापन दिखाने का समय आने पर, आपके ऐप्लिकेशन में इंटरस्टीशियल विज्ञापन (पेज पर अचानक दिखने वाला विज्ञापन) पूरी तरह से लोड हो.
उपयोगकर्ताओं को विज्ञापनों से भरा न रखें.
आपके ऐप्लिकेशन में पेज पर अचानक दिखने वाले विज्ञापनों की फ़्रीक्वेंसी बढ़ाना, आय बढ़ाने के एक अच्छे तरीके की तरह लग सकता है. हालांकि, इससे उपयोगकर्ता अनुभव खराब हो सकता है और क्लिक मिलने की दर (सीटीआर) कम हो सकती है. पक्का करें कि लोगों पर इतनी बार-बार रुकावट न आए कि वे अब आपके ऐप्लिकेशन को इस्तेमाल करने का आनंद न ले पाएं.
पेज पर अचानक दिखने वाले विज्ञापन को दिखाने के लिए, लोड पूरा होने के कॉलबैक का इस्तेमाल न करें.
इससे उपयोगकर्ता का अनुभव खराब हो सकता है. इसके बजाय, विज्ञापन दिखाने से पहले उसे पहले से लोड कर लें. इसके बाद, GAMInterstitialAd पर canPresentFromRootViewController:error: तरीके से देखें कि क्या यह दिखाए जाने के लिए तैयार है.

GitHub पर उदाहरण

  • पेज पर अचानक दिखने वाले विज्ञापनों का उदाहरण: Swift | मकसद-C

अगले चरण