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

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

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

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

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

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

टेस्ट विज्ञापनों को लोड करने का सबसे आसान तरीका, iOS इंटरस्टीशियल के लिए हमारे खास टेस्ट विज्ञापन यूनिट आईडी का इस्तेमाल करना है:
ca-app-pub-3940256099942544/4411468910

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

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

लागू करना

इंटरस्टीशियल विज्ञापनों को इंटिग्रेट करने के मुख्य चरण ये हैं:

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

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

विज्ञापन लोड करने के लिए, GADInterstitialAd क्लास पर load(adUnitID:request) तरीके का इस्तेमाल किया जाता है.

Swift

fileprivate func loadInterstitial() async {
  do {
    interstitial = try await InterstitialAd.load(
      with: "ca-app-pub-3940256099942544/4411468910", request: Request())
    interstitial?.fullScreenContentDelegate = self
  } catch {
    print("Failed to load interstitial ad with error: \(error.localizedDescription)")
  }
}

SwiftUI

import GoogleMobileAds

class InterstitialViewModel: NSObject, FullScreenContentDelegate {
  private var interstitialAd: InterstitialAd?

  func loadAd() async {
    do {
      interstitialAd = try await InterstitialAd.load(
        with: "ca-app-pub-3940256099942544/4411468910", request: Request())
      interstitialAd?.fullScreenContentDelegate = self
    } catch {
      print("Failed to load interstitial ad with error: \(error.localizedDescription)")
    }
  }

Objective-C

[GADInterstitialAd
     loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
              request:[GADRequest request]
    completionHandler:^(GADInterstitialAd *ad, NSError *error) {
      if (error) {
        NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
        return;
      }
      self.interstitial = ad;
      self.interstitial.fullScreenContentDelegate = self;
    }];

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

प्रज़ेंटेशन इवेंट की सूचनाएं पाने के लिए, आपको दिखाए गए विज्ञापन की GADFullScreenContentDelegate to thefullScreenContentDelegate` प्रॉपर्टी असाइन करनी होगी:

Swift

interstitial?.fullScreenContentDelegate = self

SwiftUI

interstitialAd?.fullScreenContentDelegate = self

Objective-C

self.interstitial.fullScreenContentDelegate = self;

GADFullScreenContentDelegate प्रोटोकॉल, विज्ञापन के दिखाए जाने या न दिखाए जाने और खारिज किए जाने के लिए कॉलबैक मैनेज करता है. नीचे दिया गया कोड, प्रोटोकॉल को लागू करने का तरीका दिखाता है:

Swift

func adDidRecordImpression(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adDidRecordClick(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func ad(_ ad: FullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
  print("\(#function) called with error: \(error.localizedDescription)")
  // Clear the interstitial ad.
  interstitial = nil
}

func adWillPresentFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adWillDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adDidDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
  // Clear the interstitial ad.
  interstitial = nil
}

SwiftUI

func adDidRecordImpression(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adDidRecordClick(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func ad(
  _ ad: FullScreenPresentingAd,
  didFailToPresentFullScreenContentWithError error: Error
) {
  print("\(#function) called")
}

func adWillPresentFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adWillDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adDidDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
  // Clear the interstitial ad.
  interstitialAd = nil
}

Objective-C

- (void)adDidRecordImpression:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)adDidRecordClick:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)ad:(id<GADFullScreenPresentingAd>)ad
    didFailToPresentFullScreenContentWithError:(NSError *)error {
  NSLog(@"%s called with error: %@", __PRETTY_FUNCTION__, error.localizedDescription);
  // Clear the interstitial ad.
  self.interstitial = nil;
}

- (void)adWillPresentFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)adWillDismissFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)adDidDismissFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
  // Clear the interstitial ad.
  self.interstitial = nil;
}

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

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

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

Swift

ad.present(from: self!)

SwiftUI

विज्ञापन कब दिखाना है, यह तय करने के लिए व्यू में यूज़र इंटरफ़ेस (यूआई) इवेंट सुनें.

var body: some View {
  // ...
  }
  .onChange(of: countdownTimer.isComplete) { newValue in
    showGameOverAlert = newValue
  }
  .alert(isPresented: $showGameOverAlert) {
    Alert(
      title: Text("Game Over"),
      message: Text("You lasted \(countdownTimer.countdownTime) seconds"),
      dismissButton: .cancel(
        Text("OK"),
        action: {
          viewModel.showAd()
        }))

व्यू मॉडल से इंटरस्टीशियल विज्ञापन दिखाएं:

func showAd() {
  guard let interstitialAd = interstitialAd else {
    return print("Ad wasn't ready.")
  }

  interstitialAd.present(from: nil)
}

Objective-C

[self.interstitial presentFromRootViewController:self];

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

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

अन्य संसाधन

GitHub पर मौजूद उदाहरण

अपनी पसंदीदा भाषा में, इंटरस्टीशियल विज्ञापनों के पूरे उदाहरण देखें:

Mobile Ads Garage के वीडियो ट्यूटोरियल

सफलता की कहानियां

अगले चरण