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

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

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

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

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

जारी रखने से पहले, Google Mobile Ads SDK सेट अप करें.

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

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

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

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

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

लागू करना

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

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

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

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

Swift

fileprivate func loadInterstitial() async {
  do {
    interstitial = try await AdManagerInterstitialAd.load(
      with: "/21775744923/example/interstitial", request: AdManagerRequest())
    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

[GAMInterstitialAd loadWithAdManagerAdUnitID:@"/21775744923/example/interstitial"
                                     request:[GAMRequest 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;
                           }];

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

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

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;
}

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

GitHub पर उदाहरण

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

अगले चरण