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

प्लैटफ़ॉर्म चुनें: Android iOS Unity Flutter Android (लेगसी)

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

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

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

आगे बढ़ने से पहले, Google Mobile Ads SDK सेट अप करें.

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

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

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

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

Google 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 को दिखाए गए विज्ञापन की fullScreenContentDelegate प्रॉपर्टी को असाइन करना होगा:

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: इवेंट हैंडलर में आवाज़ें फिर से चलाने की सुविधा चालू की जा सकती है. यह तब चालू होगा, जब उपयोगकर्ता विज्ञापन के साथ इंटरैक्ट कर लेगा. इसके अलावा, विज्ञापन दिखाए जाने के दौरान, गेम लूप जैसे मुश्किल टास्क को कुछ समय के लिए रोक दें. इससे यह पक्का किया जा सकेगा कि उपयोगकर्ता को ग्राफ़िक के धीरे लोड होने या काम न करने की समस्या न आए. साथ ही, वीडियो के रुक-रुक कर चलने की समस्या भी न आए.
पेज को लोड होने में लगने वाले समय का ध्यान रखें.
इंटरस्टीशियल विज्ञापनों को सही समय पर दिखाना जितना ज़रूरी है उतना ही यह भी ज़रूरी है कि उपयोगकर्ता को उन्हें लोड होने के लिए इंतज़ार न करना पड़े. विज्ञापन दिखाने से पहले उसे लोड करने से, यह पक्का किया जा सकता है कि जब विज्ञापन दिखाने का समय आए, तब आपका ऐप्लिकेशन पूरी तरह से लोड किए गए इंटरस्टीशियल विज्ञापन को दिखाने के लिए तैयार हो.
उपयोगकर्ता को बहुत सारे विज्ञापन न दिखाएं.
आपके ऐप्लिकेशन में इंटरस्टीशियल विज्ञापनों की फ़्रीक्वेंसी बढ़ाने से, रेवेन्यू में बढ़ोतरी हो सकती है. हालांकि, इससे उपयोगकर्ता अनुभव खराब हो सकता है और क्लिक मिलने की दर कम हो सकती है. पक्का करें कि उपयोगकर्ताओं को बार-बार विज्ञापन न दिखाए जाएं, ताकि वे आपके ऐप्लिकेशन का इस्तेमाल ठीक से कर पाएं.
इंटरस्टीशियल विज्ञापन दिखाने के लिए, लोड पूरा होने पर वापस कॉल करने की सुविधा का इस्तेमाल न करें.
इससे उपयोगकर्ता को खराब अनुभव मिल सकता है. इसके बजाय, विज्ञापन को दिखाने से पहले ही उसे प्री-लोड कर लें. इसके बाद, canPresentFromRootViewController:error: तरीके से GADInterstitialAd पर जाकर देखें कि वह दिखने के लिए तैयार है या नहीं.

अन्य संसाधन

GitHub पर उदाहरण

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

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

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

अगले चरण