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

प्लैटफ़ॉर्म चुनें: Android (बीटा) नई सुविधा Android iOS Unity Flutter

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

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

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

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

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

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

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

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

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

लागू करना

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

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

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

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

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 पर मौजूद उदाहरण

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

अगले चरण