अचानक दिखने वाले (इंटरस्टीशियल) विज्ञापन, फ़ुल-स्क्रीन वाले विज्ञापन होते हैं. ये तब तक किसी ऐप्लिकेशन के इंटरफ़ेस को कवर करते हैं, जब तक उपयोगकर्ता उन्हें बंद नहीं कर देता. ये विज्ञापन, आम तौर पर ऐप्लिकेशन के फ़्लो में मौजूद नैचुरल ट्रांज़िशन पॉइंट पर दिखते हैं. उदाहरण के लिए, ये विज्ञापन अलग-अलग गतिविधियों के बीच में या किसी गेम के अलग-अलग लेवल के बीच में ही दिखते हैं. जब कोई ऐप्लिकेशन अचानक दिखने वाला विज्ञापन दिखाता है, तो उपयोगकर्ता के पास विज्ञापन पर टैप करके, विज्ञापन के डेस्टिनेशन पर जाने या उसे बंद करके ऐप्लिकेशन पर वापस जाने का विकल्प होता है. केस स्टडी.
इस गाइड में, iOS ऐप्लिकेशन में पेज पर अचानक दिखने वाले विज्ञापनों को इंटिग्रेट करने का तरीका बताया गया है.
ज़रूरी शर्तें
- Google Mobile Ads SDK 8.0.0 या इसके बाद का वर्शन हो.
- शुरुआती निर्देशों की गाइड को पूरा करें.
हमेशा टेस्ट विज्ञापनों की मदद से जांच करें
अपने ऐप्लिकेशन बनाते और टेस्ट करते समय, लाइव और प्रोडक्शन विज्ञापनों के बजाय, टेस्ट विज्ञापनों का इस्तेमाल करें. ऐसा न करने पर, आपके खाते को निलंबित किया जा सकता है.
टेस्ट विज्ञापनों को लोड करने का सबसे आसान तरीका, iOS इंटरस्टीशियल के लिए हमारे खास टेस्ट विज्ञापन यूनिट आईडी का इस्तेमाल करना है:
ca-app-pub-3940256099942544/4411468910
इसे खास तौर पर कॉन्फ़िगर किया गया है, ताकि हर अनुरोध के लिए टेस्ट विज्ञापन दिखाए जा सकें. साथ ही, कोडिंग, टेस्ट, और डीबग करने के दौरान, इसे अपने ऐप्लिकेशन में इस्तेमाल किया जा सकता है. अपना ऐप्लिकेशन पब्लिश करने से पहले, बस यह पक्का कर लें कि आपने उसकी जगह अपना विज्ञापन यूनिट आईडी डाल दिया हो.
Mobile Ads SDK के टेस्ट विज्ञापनों के काम करने के तरीके के बारे में ज़्यादा जानने के लिए, टेस्ट विज्ञापन लेख पढ़ें.
लागू करना
पेज पर अचानक दिखने वाले विज्ञापनों को इंटिग्रेट करने का मुख्य तरीका ये है:
- कोई विज्ञापन लोड करें.
- कॉलबैक के लिए रजिस्टर करें.
- विज्ञापन दिखाएं.
विज्ञापन लोड करना
विज्ञापन लोड करने के लिए, GADInterstitialAd
क्लास पर load(adUnitID:request)
तरीके का इस्तेमाल किया जाता है.
Swift
import GoogleMobileAds
import UIKit
class ViewController: UIViewController {
private var interstitial: GADInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
Task {
do {
interstitial = try await GADInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
}
}
SwiftUI
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) GADInterstitialAd *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GADRequest *request = [GADRequest request];
[GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
request:request
completionHandler:^(GADInterstitialAd *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: GADInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
Task {
do {
interstitial = try await GADInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
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.")
}
}
SwiftUI
दिखाए गए विज्ञापन को 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) GADInterstitialAd *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GADRequest *request = [GADRequest request];
[GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
request: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;
}];
}
/// 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.");
}
GADInterstitialAd
, एक बार इस्तेमाल होने वाला ऑब्जेक्ट है. इसका मतलब है कि इंटरस्टीशियल विज्ञापन एक बार दिखाए जाने के बाद, उसे दोबारा नहीं दिखाया जा सकता. सबसे सही तरीका यह है कि GADFullScreenContentDelegate
पर adDidDismissFullScreenContent:
तरीके से, पेज पर अचानक दिखने वाला दूसरा विज्ञापन लोड किया जाए, ताकि पिछले विज्ञापन को खारिज करने के तुरंत बाद अगला विज्ञापन लोड होना शुरू हो जाए.
विज्ञापन दिखाएं
इंटरस्टीशियल विज्ञापनों को ऐप्लिकेशन के फ़्लो में मौजूद नैचुरल ब्रेक के दौरान दिखाया जाना चाहिए. उदाहरण के लिए, किसी गेम के लेवल के बीच में या उपयोगकर्ता के कोई टास्क पूरा करने के बाद.
Swift
guard let interstitial = interstitial else {
return print("Ad wasn't ready.")
}
// The UIViewController parameter is an optional.
interstitial.present(fromRootViewController: nil)
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(fromRootViewController: nil)
}
Objective-C
if (self.interstitial) {
// The UIViewController parameter is nullable.
[self.interstitial presentFromRootViewController:nil];
} else {
NSLog(@"Ad wasn't ready");
}
सबसे सही तरीके
- यह सोचें कि पेज पर अचानक दिखने वाले विज्ञापन आपके ऐप्लिकेशन के लिए सही तरह के विज्ञापन हैं या नहीं.
- इंटरस्टीशियल विज्ञापन, उन ऐप्लिकेशन में सबसे अच्छा काम करते हैं जिनमें नैचुरल ट्रांज़िशन पॉइंट होते हैं. ऐप्लिकेशन में किसी टास्क को पूरा करने पर, जैसे कि कोई इमेज शेयर करना या गेम का लेवल पूरा करना, ऐसा पॉइंट बनता है. उपयोगकर्ता को कार्रवाई में ब्रेक की उम्मीद होती है. इसलिए, उनके अनुभव में रुकावट डाले बिना, पेज पर अचानक दिखने वाला विज्ञापन दिखाना आसान होता है. पक्का करें कि आपने यह तय कर लिया हो कि अपने ऐप्लिकेशन के वर्कफ़्लो में किन पॉइंट पर, इंटरस्टीशियल विज्ञापन दिखाए जाएंगे. साथ ही, यह भी तय कर लें कि उपयोगकर्ता इन विज्ञापनों पर कैसा जवाब दे सकता है.
- पेज पर अचानक दिखने वाला विज्ञापन दिखाते समय, कार्रवाई को रोकना न भूलें.
- पेज पर अचानक दिखने वाले विज्ञापन कई तरह के होते हैं: टेक्स्ट, इमेज, वीडियो वगैरह. यह पक्का करना ज़रूरी है कि जब आपका ऐप्लिकेशन किसी पेज पर अचानक दिखने वाला विज्ञापन दिखाता है, तो वह कुछ संसाधनों का इस्तेमाल भी रोक दे, ताकि विज्ञापन उनका फ़ायदा लिया जा सके. उदाहरण के लिए, अचानक दिखने वाला विज्ञापन दिखाने के लिए कॉल करते समय, पक्का करें कि आपके ऐप्लिकेशन से कोई भी ऑडियो आउटपुट न हो.
adDidDismissFullScreenContent:
इवेंट हैंडलर में आवाज़ें फिर से चलाई जा सकती हैं. यह इवेंट, उपयोगकर्ता के विज्ञापन के साथ इंटरैक्ट करने के बाद ट्रिगर होगा. इसके अलावा, विज्ञापन दिखाए जाने के दौरान, किसी भी ज़्यादा कंप्यूटेशन वाले टास्क (जैसे, गेम लूप) को कुछ समय के लिए रोकें. इससे यह पक्का होगा कि उपयोगकर्ता को धीमे या रिस्पॉन्स न देने वाले ग्राफ़िक या रुक-रुककर चलने वाले वीडियो का अनुभव न मिले. - लोड होने में ज़रूरत के मुताबिक समय दें.
- यह पक्का करना ज़रूरी है कि आप सही समय पर, अचानक दिखने वाले (इंटरस्टीशियल) विज्ञापन दिखा सकें. साथ ही, यह पक्का करना भी ज़रूरी है कि लोगों को उनके लोड होने का इंतज़ार न करना पड़े. विज्ञापन को दिखाने से पहले, उसे लोड करने से यह पक्का हो जाता है कि आपके ऐप्लिकेशन में पेज पर पूरी तरह से लोड होने वाला इंटरस्टीशियल विज्ञापन समय पर पूरी तरह लोड होगा.
- उपयोगकर्ता को विज्ञापनों से परेशान न करें.
- आपके ऐप्लिकेशन में पेज पर अचानक दिखने वाले विज्ञापनों की फ़्रीक्वेंसी बढ़ाना, आय बढ़ाने का एक शानदार तरीका लग सकता है. हालांकि, इससे उपयोगकर्ता अनुभव खराब हो सकता है और क्लिक मिलने की दर में कमी भी आ सकती है. पक्का करें कि उपयोगकर्ताओं को बार-बार विज्ञापनों से इतना परेशान न किया जाए कि वे आपके ऐप्लिकेशन का आनंद न ले पाएं.
- इंटरस्टीशियल विज्ञापन दिखाने के लिए, 'लोड पूरा होने पर कॉलबैक' का इस्तेमाल न करें.
- इससे उपयोगकर्ताओं का अनुभव खराब हो सकता है. इसके बजाय, विज्ञापन दिखाने से पहले उसे पहले से लोड कर लें. इसके बाद,
GADInterstitialAd
परcanPresentFromRootViewController:error:
तरीका देखें और जानें कि वह दिखाए जाने के लिए तैयार है या नहीं.
अन्य संसाधन
GitHub पर मौजूद उदाहरण
अपनी पसंदीदा भाषा में, इंटरस्टीशियल विज्ञापनों के पूरे उदाहरण देखें:
Mobile Ads Garage के वीडियो ट्यूटोरियल
सफलता की कहानियां
अगले चरण
- अगर आपने अब तक ऐसा नहीं किया है, तो AdMob यूज़र इंटरफ़ेस (यूआई) में अपनी इंटरस्टीशियल विज्ञापन यूनिट बनाएं.
- विज्ञापन टारगेटिंग (विज्ञापन के लिए सही दर्शक चुनना) और पेज पर अचानक दिखने वाले विज्ञापन से जुड़े दिशा-निर्देशों के बारे में ज़्यादा जानें.
- उपयोगकर्ता की निजता के बारे में ज़्यादा जानें.