विज्ञापन को पहले से लोड करने की सुविधा, Google की ओर से मैनेज की जाती है. यह Google Mobile Ads SDK में विज्ञापन लोड करने की सुविधा है. यह आपकी ओर से विज्ञापन लोड करने और उन्हें कैश मेमोरी में सेव करने की सुविधा को मैनेज करती है. विज्ञापन को पहले से लोड करने के लिए, विज्ञापन लोड करने के तरीके में बदलाव करना ज़रूरी है. विज्ञापन प्रीलोडिंग का इस्तेमाल करके परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए, कस्टम कैश मेमोरी को बंद करें और इस काम की ज़िम्मेदारी Google Mobile Ads SDK को सौंपें.
विज्ञापन को पहले से लोड करने की सुविधा, विज्ञापन को मैन्युअल तरीके से लोड करने की तुलना में ये फ़ायदे देती है:
- रेफ़रंस मैनेजमेंट: यह सुविधा, लोड किए गए विज्ञापनों को सेव करके रखती है. इससे आपको तब तक रेफ़रंस बनाए रखने की ज़रूरत नहीं पड़ती, जब तक आप उन्हें दिखाने के लिए तैयार न हों.
- अपने-आप रीलोड होने की सुविधा: जब कैश मेमोरी से कोई विज्ञापन निकाला जाता है, तो यह सुविधा अपने-आप एक नया विज्ञापन लोड कर देती है.
- रीट्राय को मैनेज करना: यह सुविधा, एक्स्पोनेंशियल बैकऑफ़ का इस्तेमाल करके, पूरे नहीं किए जा सके अनुरोधों को अपने-आप फिर से भेजती है.
- समयसीमा खत्म होने से जुड़ी सेटिंग: यह सेटिंग, विज्ञापन की समयसीमा खत्म होने से पहले (आम तौर पर एक घंटे बाद) उन्हें अपने-आप रीफ़्रेश करती है.
- कैश मेमोरी का ऑप्टिमाइज़ेशन: अगर एक से ज़्यादा कैश मेमोरी का इस्तेमाल किया जाता है, तो Google Mobile Ads SDK सबसे अच्छा विज्ञापन दिखाने के लिए कैश मेमोरी के क्रम को ऑप्टिमाइज़ करता है.
इस गाइड में, पहले से लोड होने वाले विज्ञापनों को कॉन्फ़िगर करने, उनकी उपलब्धता की जांच करने, और उन्हें दिखाने के बारे में बताया गया है.
ज़रूरी शर्तें
ट्यूटोरियल शुरू करने से पहले, आपको ये काम पूरे करने होंगे:
- Google Mobile Ads SDK का 12.6.0 या इसके बाद का वर्शन इंस्टॉल करें. SDK के पुराने वर्शन के लिए डेवलपर संसाधन यहां उपलब्ध हैं: 11.12.0 - 12.2.0 हालांकि, हमारा सुझाव है कि आप 12.6.0 या इसके बाद के वर्शन का इस्तेमाल करें और आगे इस गाइड का पालन करें.
- Google Mobile Ads SDK सेट अप करें पर क्लिक करें.
प्रीलोडिंग की झलक दिखाने वाले हेडर डाउनलोड करें और उन्हें अपने प्रोजेक्ट में शामिल करें.
ज़रूरी नहीं: विज्ञापन प्रीलोड करने का उदाहरण देने वाला ऐप्लिकेशन डाउनलोड करें और उसे चलाएं.
विज्ञापनों को पहले से लोड करना शुरू करें
विज्ञापनों को पहले से लोड करने की सुविधा शुरू करने के लिए, preload() को कॉल करें. इस तरीके को ऐप्लिकेशन की शुरुआत में सिर्फ़ एक बार कॉल करें. preload() को कॉल करने के बाद, Google Mobile Ads SDK विज्ञापनों को अपने-आप प्रीलोड करता है. साथ ही, प्रीलोड किए गए कॉन्फ़िगरेशन के लिए, फ़ेल हुए अनुरोधों को फिर से भेजता है.
यहां दिए गए उदाहरण में, विज्ञापनों को पहले से लोड करने की सुविधा शुरू की गई है:
Swift
// Start the preloading initialization process.
let request = Request()
let interstitialConfig = PreloadConfigurationV2(
adUnitID: Constants.interstitialAdUnitID, request: request)
InterstitialAdPreloader.shared.preload(
for: Constants.interstitialAdUnitID, configuration: interstitialConfig, delegate: self)
Objective-C
// Start the preloading initialization process.
GADRequest *request = [GADRequest request];
GADPreloadConfigurationV2 *interstitialConfig = [[GADPreloadConfigurationV2 alloc] initWithAdUnitID:interstitialAdUnitID request:request];
[GADInterstitialAdPreloader.sharedInstance preloadForPreloadID:interstitialAdUnitID
configuration:interstitialConfig
delegate:self];
पहले से लोड किए गए विज्ञापन को पाना और दिखाना
विज्ञापन प्रीलोडिंग का इस्तेमाल करते समय, Google Mobile Ads SDK कैश किए गए विज्ञापनों को सेव करता है.
जब आपको कोई विज्ञापन दिखाना हो, तब adWithPreloadID() को कॉल करें.
Google Mobile Ads SDK उपलब्ध विज्ञापन को फिर से लोड करता है और अगले विज्ञापन को बैकग्राउंड में अपने-आप प्रीलोड करता है.
जब तक विज्ञापन दिखाने के लिए तैयार न हों, तब तक इस तरीके को कॉल न करें. विज्ञापनों को कैश मेमोरी में सेव करने से, Google Mobile Ads SDK की मदद से समयसीमा खत्म हो चुके विज्ञापनों को अपने-आप रीफ़्रेश किया जा सकता है. साथ ही, कैश मेमोरी को ऑप्टिमाइज़ किया जा सकता है.
यहां दिए गए उदाहरण में, पहले से लोड किए गए विज्ञापन को वापस पाने और दिखाने का तरीका बताया गया है:
Swift
private func showInterstitialAd() {
// Verify that the preloaded ad is available before polling.
guard isInterstitialAvailable() else {
printAndShowAlert("Preload interstitial ad is exhausted.")
return
}
// Polling returns the next available ad and load another ad in the background.
let ad = InterstitialAdPreloader.shared.ad(with: Constants.interstitialAdUnitID)
// Interact with the ad object as needed.
print("Interstitial ad response info: \(String(describing: ad?.responseInfo))")
ad?.paidEventHandler = { (value: AdValue) in
print("Interstitial ad paid event: \(value.value), \(value.currencyCode)")
}
ad?.fullScreenContentDelegate = self
ad?.present(from: self)
}
Objective-C
- (void)showInterstitialAd {
// Verify that the preloaded ad is available before polling.
if (![self isInterstitialAvailable]) {
[self logAndShowAlert:@"Preloaded interstitial ad is not available."];
return;
}
// Getting the preloaded ad loads another ad in the background.
GADInterstitialAd *ad = [GADInterstitialAdPreloader.sharedInstance adWithPreloadID:interstitialAdUnitID];
// Interact with the ad object as needed.
NSLog(@"Interstitial ad response info: %@", ad.responseInfo);
ad.paidEventHandler = ^(GADAdValue *_Nonnull value) {
NSLog(@"Interstitial ad paid event: %@ %@ ", value.value, value.currencyCode);
};
ad.fullScreenContentDelegate = self;
[ad presentFromRootViewController:self];
}
विज्ञापन पहले से लोड करने की सुविधा की उपलब्धता की जांच करना
विज्ञापन की उपलब्धता की जांच करने के लिए, इनमें से कोई एक विकल्प चुनें:
- प्रीलोड विज्ञापन की उपलब्धता के बारे में जानकारी पाना
- प्रीलोड विज्ञापन दिखाने की सुविधा के बारे में जानकारी
पहले से लोड किए गए विज्ञापन के उपलब्ध होने की जानकारी पाना
यहां दिए गए उदाहरण में, विज्ञापन की उपलब्धता की जांच की गई है:
Swift
private func isInterstitialAvailable() -> Bool {
// Verify that an ad is available before polling.
return InterstitialAdPreloader.shared.isAdAvailable(with: Constants.interstitialAdUnitID)
}
Objective-C
- (BOOL)isInterstitialAvailable {
// Verify that an ad is available before polling.
return [GADInterstitialAdPreloader.sharedInstance isAdAvailableWithPreloadID:(interstitialAdUnitID)];
}
पहले से लोड किए गए विज्ञापन की उपलब्धता के बारे में सुनना
प्रीलोड इवेंट के लिए रजिस्टर करें, ताकि आपको सूचना मिल सके कि विज्ञापन प्रीलोड हो गए हैं या नहीं. इसके अलावा, विज्ञापन की कैश मेमोरी खत्म होने पर भी आपको सूचना मिल सके.
प्रीलोड इवेंट का इस्तेमाल, आंकड़ों के लिए किया जाता है. प्रीलोड इवेंट के कॉल बैक में:
preload()को कॉल न करें.- विज्ञापन तुरंत दिखाए जाने पर ही
adWithPreloadID()को कॉल करें.
यहां दिए गए उदाहरण में, विज्ञापन इवेंट के लिए रजिस्टर किया गया है:
Swift
func adAvailable(forPreloadID preloadID: String, responseInfo: ResponseInfo) {
// This callback indicates that an ad is available for the specified configuration.
// No action is required here, but updating the UI can be useful in some cases.
print("Ad preloaded successfully for ad preload ID: \(preloadID)")
// ...
}
func adsExhausted(forPreloadID preloadID: String) {
// This callback indicates that all the ads for the specified configuration have been
// consumed and no ads are available to show. No action is required here, but updating
// the UI can be useful in some cases.
// [Important] Don't call AdPreloader.shared.preload or AdPreloader.shared.ad
// from adsExhausted.
print("Ad exhausted for ad preload ID: \(preloadID)")
// ...
}
func adFailedToPreload(forPreloadID preloadID: String, error: Error) {
print(
"Ad failed to load with ad preload ID: \(preloadID), Error: \(error.localizedDescription)"
)
}
Objective-C
- (void)adAvailableForPreloadID:(nonnull NSString *)preloadID responseInfo:(nonnull GADResponseInfo *)responseInfo {
// This callback indicates that an ad is available for the specified configuration.
// No action is required here, but updating the UI can be useful in some cases.
NSLog(@"Ad preloaded successfully for ad unit ID: %@", preloadID);
// ...
}
- (void)adsExhaustedForPreloadID:(nonnull NSString *)preloadID {
// This callback indicates that all the ads for the specified configuration have been
// consumed and no ads are available to show. No action is required here, but updating
// the UI can be useful in some cases.
// [Important] Don't call [GAD<Format>AdPreloader preloadForPreloadID:] or
// [GAD<Format>AdPreloader adWithPreloadID:] from adsExhaustedForPreloadID.
NSLog(@"Ad exhausted for ad preload ID: %@", preloadID);
// ...
}
- (void)adFailedToPreloadForPreloadID:(nonnull NSString *)preloadID error:(nonnull NSError *)error {
NSLog(@"Ad failed to load with ad preload ID: %@, Error: %@", preloadID, error.localizedDescription);
}
विज्ञापनों को पहले से लोड होने से रोकना
अगर आपको सेशन में किसी प्रीलोड आईडी के लिए विज्ञापन फिर से नहीं दिखाने हैं, तो विज्ञापनों को प्रीलोड करना बंद किया जा सकता है. किसी खास प्रीलोड आईडी के लिए, विज्ञापनों को प्रीलोड करने की सुविधा बंद करने के लिए, प्रीलोड आईडी के साथ stopPreloadingAndRemoveAdsForPreloadID() को कॉल करें.
बफ़र का साइज़ सेट करना
बफ़र साइज़ से, मेमोरी में सेव किए गए पहले से लोड किए गए विज्ञापनों की संख्या को कंट्रोल किया जाता है. डिफ़ॉल्ट रूप से, Google बफ़र के साइज़ को ऑप्टिमाइज़ करता है, ताकि मेमोरी की खपत और विज्ञापन दिखाने में लगने वाले समय को बैलेंस किया जा सके. अगर आपका ऐप्लिकेशन, अगले विज्ञापन के लोड होने से पहले विज्ञापन दिखाता है, तो मेमोरी में रखे गए विज्ञापनों की संख्या बढ़ाने के लिए, कस्टम बफ़र साइज़ सेट किया जा सकता है. हमारा सुझाव है कि बफ़र का साइज़ ज़्यादा से ज़्यादा चार होना चाहिए.
Swift
let preloadConfig = PreloadConfigurationV2(adUnitID: "ca-app-pub-3940256099942544/1712485313")
preloadConfig.bufferSize = 3
Objective-C
GADPreloadConfigurationV2 *preloadConfig =
[[GADPreloadConfigurationV2 alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/1712485313"];
preloadConfig.bufferSize = 3;