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

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

इस गाइड में, 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 एक बार इस्तेमाल किया जाने वाला ऑब्जेक्ट है. इसका मतलब है कि पेज पर अचानक दिखने वाले विज्ञापन को एक बार दिखाने के बाद, उसे दोबारा नहीं दिखाया जा सकता. सबसे सही तरीका यह है कि adDidDismissFullScreenContent: तरीके में, GADFullScreenContentDelegate को पेज पर अचानक दिखने वाला दूसरा विज्ञापन लोड किया जाए, ताकि पिछले विज्ञापन के खारिज होते ही, पेज पर अचानक दिखने वाला अगला विज्ञापन लोड होना शुरू हो जाए.

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

अचानक दिखने वाले विज्ञापन, ऐप्लिकेशन के फ़्लो में सामान्य तौर पर ऐसी स्थिति में दिखाए जाने चाहिए, जब वे गेम के अलग-अलग लेवल के बीच में हों या उपयोगकर्ता के कोई टास्क पूरा करने के बाद हों. यहां एक उदाहरण में बताया गया है कि 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

अगले चरण