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

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

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

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

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

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

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

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

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

लागू करना

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

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

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

किसी विज्ञापन को लोड करने के लिए load(adUnitID:request) तरीका 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: "/21775744923/example/interstitial", request: GAMRequest())
    } catch {
      print("Failed to load interstitial ad with error: \(error.localizedDescription)")
    }
  }
}

स्विफ़्टयूआई

import GoogleMobileAds

class InterstitialViewModel: NSObject, GADFullScreenContentDelegate {
  private var interstitialAd: GADInterstitialAd?

  func loadAd() async {
    do {
      interstitialAd = try await GADInterstitialAd.load(
        withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
      interstitialAd?.fullScreenContentDelegate = self
    } 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:@"/21775744923/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: "/21775744923/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.")
  }
}

स्विफ़्टयूआई

लौटाए गए विज्ञापन को fullScreenContentDelegate प्रॉपर्टी असाइन करें:

interstitialAd?.fullScreenContentDelegate = self

प्रोटोकॉल लागू करें:

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

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

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

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

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

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

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

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

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

Swift

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

// The UIViewController parameter is an optional.
interstitial.present(fromRootViewController: nil)

स्विफ़्टयूआई

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

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(fromRootViewController: nil)
}

Objective-C

if (self.interstitial) {
  // The UIViewController parameter is nullable.
  [self.interstitial presentFromRootViewController:nil];
} else {
  NSLog(@"Ad wasn't ready");
}

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

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

GitHub पर उदाहरण

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

अगले चरण