ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन, एक ऐसा विज्ञापन फ़ॉर्मैट है जो उन पब्लिशर के लिए है जो अपने ऐप्लिकेशन की लोडिंग स्क्रीन से कमाई करना चाहते हैं. आपके उपयोगकर्ता, ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापनों को किसी भी समय बंद कर सकते हैं. जब उपयोगकर्ता आपके ऐप्लिकेशन को फ़ोरग्राउंड में लाएं, तो ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन दिखाएं.
ज़्यादा जानकारी के लिए, ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन के लिए सलाह लेख पढ़ें.इस गाइड में, Android ऐप्लिकेशन में ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापनों को इंटिग्रेट करने का तरीका बताया गया है.
शुरू करने से पहले
जारी रखने से पहले, ये काम करें:
- GMA Next-Gen SDK को सेट अप करें.
- ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन की टेस्ट यूनिट के आईडी
/21775744923/example/app-openका इस्तेमाल करें.- अपने ऐप्लिकेशन बनाने और उनकी टेस्टिंग करने के लिए, लाइव और प्रोडक्शन विज्ञापन इस्तेमाल करने के बजाय, टेस्ट विज्ञापन इस्तेमाल करें. अगर आपने टेस्ट विज्ञापन यूनिट के आईडी का इस्तेमाल नहीं किया, तो Google आपके खाते को निलंबित कर सकता है.
- अपना ऐप्लिकेशन पब्लिश करने से पहले, इस आईडी को अपने विज्ञापन यूनिट आईडी से बदलें.
- GMA Next-Gen SDK टेस्ट विज्ञापनों के बारे में ज़्यादा जानने के लिए, टेस्ट विज्ञापनों को चालू करना लेख पढ़ें.
विज्ञापन लोड और कैश होने की प्रोसेस (बीटा वर्शन) के बारे में जानकारी
GMA Next-Gen SDK में विज्ञापन लोड और कैश होने की प्रोसेस, विज्ञापन लोड होने और कैश होने की प्रोसेस को ऑटोमेट करती है.
विज्ञापन लोड और कैश होने की प्रोसेस से ये फ़ायदे मिलते हैं:
- रेफ़रंस मैनेजमेंट: विज्ञापन दिखाए जाने तक रेफ़रंस बनाए रखता है.
- अपने-आप रीलोड होने की सुविधा: कैश मेमोरी से विज्ञापन वापस पाने पर, नया विज्ञापन लोड होता है.
- मैनेज की गई फिर से कोशिशें: जब कोई विज्ञापन लोड नहीं हो पाता है, तब यह सुविधा नया विज्ञापन लोड करती है.
- समयसीमा खत्म होने से पहले विज्ञापन रीफ़्रेश करना: समयसीमा खत्म होने से पहले विज्ञापनों को रीफ़्रेश करता है.
- कैश मेमोरी को ऑप्टिमाइज़ करना: यह सुविधा, कैश मेमोरी के क्रम को ऑप्टिमाइज़ करती है, ताकि सबसे ज़्यादा प्राथमिकता वाला विज्ञापन दिखाया जा सके.
विज्ञापन लोड और कैश होने की प्रोसेस शुरू करना
विज्ञापनों को पहले से लोड करने के लिए, GMA Next-Gen SDK को शुरू करते समय start तरीके को एक बार कॉल करें. start तरीके को कॉल करने के बाद, GMA Next-Gen SDK विज्ञापनों को अपने-आप पहले से लोड करता है. साथ ही, पहले से लोड किए गए कॉन्फ़िगरेशन के लिए, उन अनुरोधों को फिर से भेजता है जो पूरे नहीं हो पाए थे.
नीचे दिए गए उदाहरण में, विज्ञापनों को पहले से लोड करने का तरीका बताया गया है:
Kotlin
Java
AD_UNIT_ID को अपनी विज्ञापन यूनिट के आईडी से बदलें.
पिछले उदाहरण में, विज्ञापन यूनिट आईडी को प्रीलोड आईडी के तौर पर इस्तेमाल करने का तरीका बताया गया है. प्रीलोड आईडी, स्ट्रिंग आइडेंटिफ़ायर होता है. इसे विज्ञापन लोड और कैश होने की प्रोसेस के कॉन्फ़िगरेशन की पहचान करने के लिए बनाया जाता है. अगर आपके ऐप्लिकेशन को एक ही विज्ञापन यूनिट आईडी के लिए, टारगेटिंग के कई कॉन्फ़िगरेशन की ज़रूरत है, तो कस्टम स्ट्रिंग आइडेंटिफ़ायर पास करें.
विज्ञापन लोड और कैश होने की प्रोसेस में, टारगेटिंग पैरामीटर या विज्ञापन दिखाने के अनुरोधों में बदलाव नहीं किया जा सकता. अगर आपको अनुरोधों के बीच टारगेटिंग पैरामीटर बदलने हैं, तो सिंगल लोडिंग का इस्तेमाल करें.
पहले से लोड किया गया विज्ञापन पाना और दिखाना
विज्ञापन दिखाने से पहले, pollAd तरीके को कॉल करें.
पहले से लोड किए गए विज्ञापन ऑब्जेक्ट को सेव न करें. pollAd तरीके को कॉल करने पर, GMA Next-Gen SDK उपलब्ध विज्ञापन को फ़ेच करता है और बैकग्राउंड में अगले विज्ञापन को अपने-आप लोड करता है. अगर कोई विज्ञापन उपलब्ध नहीं है, तो GMA Next-Gen SDK कोई विज्ञापन नहीं दिखाता.
show तरीके को कॉल करें.
यहां दिए गए उदाहरण में, पहले से लोड किए गए विज्ञापन को वापस पाने और दिखाने का तरीका बताया गया है:
Kotlin
Java
जब आपका ऐप्लिकेशन किसी विज्ञापन प्लेसमेंट तक पहुंच जाता है और show तरीके को कॉल कर सकता है, तो pollAd तरीके को कॉल करें. विज्ञापन को होल्ड करने के लिए, प्रीलोड कॉलबैक में या isAdAvailable तरीके की जांच करने के बाद, pollAd तरीके को कॉल न करें. अगर आपको विज्ञापन दिखाने से पहले, विज्ञापन के मेटाडेटा की जांच करनी है, तो विज्ञापन को कैश मेमोरी से हटाए बिना रिस्पॉन्स की जानकारी पढ़ें.
विज्ञापन इवेंट सुनना
विज्ञापन दिखाने से पहले, विज्ञापन इवेंट सुनें. यहां दिए गए उदाहरण में, विज्ञापन इवेंट के लिए कॉलबैक रजिस्टर किए गए हैं:
Kotlin
private fun listenToAdEvents() { // Listen for ad events. val ad = appOpenAd if (ad == null) { Log.e(TAG, "App open ad is not ready yet.") return } ad.adEventCallback = object : AppOpenAdEventCallback { override fun onAdShowedFullScreenContent() { // App open ad did show. } override fun onAdDismissedFullScreenContent() { // App open ad did dismiss. appOpenAd = null } override fun onAdFailedToShowFullScreenContent( fullScreenContentError: FullScreenContentError ) { // App open ad failed to show. Log.e(TAG, "App open ad failed to show: ${fullScreenContentError.message}") } override fun onAdImpression() { // App open ad did record an impression. } override fun onAdClicked() { // App open ad did record a click. } } }
Java
private void listenToAdEvents() { // Listen for ad events. if (appOpenAd == null) { Log.e(TAG, "App open ad is not ready yet."); return; } appOpenAd.setAdEventCallback( new AppOpenAdEventCallback() { @Override public void onAdShowedFullScreenContent() { // App open ad did show. } @Override public void onAdDismissedFullScreenContent() { // App open ad did dismiss. appOpenAd = null; } @Override public void onAdFailedToShowFullScreenContent( @NonNull FullScreenContentError fullScreenContentError) { // App open ad failed to show. Log.e(TAG, "App open ad failed to show: " + fullScreenContentError.getMessage()); } @Override public void onAdImpression() { // App open ad did record an impression. } @Override public void onAdClicked() { // App open ad did record a click. } }); }
ज़रूरी नहीं: प्रीलोडिंग इवेंट सुनें
विज्ञापनों को पहले से लोड करना शुरू करने पर, प्रीलोड इवेंट के लिए रजिस्टर करें. इससे आपको विज्ञापन पहले से लोड होने, पहले से लोड न हो पाने या विज्ञापन की कैश मेमोरी खत्म होने पर सूचना मिलेगी.
यहां दिए गए उदाहरण में, विज्ञापन इवेंट को पहले से लोड करने के लिए रजिस्टर करने का तरीका बताया गया है:
Kotlin
val preloadCallback = object : PreloadCallback { override fun onAdFailedToPreload(preloadId: String, adError: LoadAdError) { Log.d(TAG, "App open preload ad $preloadId failed to load with error: ${adError.message}") } override fun onAdsExhausted(preloadId: String) { Log.i(TAG, "App open preload ad $preloadId is not available") } override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo) { Log.i(TAG, "App open preload ad $preloadId is available") } } val adRequest = AdRequest.Builder(adUnitId).build() val preloadConfig = PreloadConfiguration(adRequest) AppOpenAdPreloader.start(adUnitId, preloadConfig, preloadCallback)
Java
PreloadCallback preloadCallback = new PreloadCallback() { @Override public void onAdFailedToPreload(@NonNull String preloadId, @NonNull LoadAdError adError) { Log.d( TAG, String.format( "App open preload ad %s failed to load with error: %s", preloadId, adError.getMessage())); } @Override public void onAdsExhausted(@NonNull String preloadId) { Log.i(TAG, String.format("App open preload ad %s is not available", preloadId)); } @Override public void onAdPreloaded(@NonNull String preloadId, @NonNull ResponseInfo responseInfo) { Log.i(TAG, String.format("App open preload ad %s is available", preloadId)); } }; AdRequest adRequest = new AdRequest.Builder(adUnitId).build(); PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest); AppOpenAdPreloader.start(adUnitId, preloadConfig, preloadCallback);
जब कोई विज्ञापन लोड नहीं हो पाता है, तो GMA Next-Gen SDK विज्ञापनों को अपने-आप पहले से लोड करता है. साथ ही, पहले से लोड किए गए कॉन्फ़िगरेशन के लिए, उन अनुरोधों को फिर से भेजता है जो पूरे नहीं हो पाए थे. मैन्युअल तरीके से लोड करने के अनुरोधों को फ़ेल कॉलबैक में शुरू न करें. प्रीलोडिंग इवेंट के कॉलबैक के तरीकों में, pollAd, destroy या start वाले तरीकों को कॉल न करें. कॉलबैक में इन तरीकों को कॉल करने से, बार-बार लोड होने वाले लूप चालू हो सकते हैं.
ज़रूरी नहीं: विज्ञापन की उपलब्धता देखना
अगर आपको यह जानना है कि कोई विज्ञापन उपलब्ध है या नहीं, तो विज्ञापन की उपलब्धता देखें. यहां दिए गए उदाहरण से पता चलता है कि पहले से लोड किया गया कोई विज्ञापन उपलब्ध है या नहीं:
Kotlin
private fun isAdAvailable(adUnitId: String): Boolean { return AppOpenAdPreloader.isAdAvailable(adUnitId) }
Java
private boolean isAdAvailable(String adUnitId) { return AppOpenAdPreloader.isAdAvailable(adUnitId); }
ज़रूरी नहीं: बफ़र साइज़ सेट करना
बफ़र साइज़ से, मेमोरी में पहले से लोड किए गए विज्ञापनों की संख्या को कंट्रोल किया जाता है. डिफ़ॉल्ट रूप से, Google बफ़र साइज़ को ऑप्टिमाइज़ करता है, ताकि मेमोरी की खपत और विज्ञापन दिखाने में लगने वाले समय को संतुलित किया जा सके. मेमोरी में रखे गए विज्ञापनों की संख्या बढ़ाने या घटाने के लिए, पसंद के मुताबिक बफ़र साइज़ सेट किया जा सकता है. हमारा सुझाव है कि पहले से लोड किए गए दो विज्ञापनों का बफ़र साइज़ रखें. अगर आपका ज़्यादातर ट्रैफ़िक कम मेमोरी वाले डिवाइसों से आता है, तो बफ़र साइज़ कम करें.
यहां दिए गए उदाहरण में, बफ़र साइज़ सेट करने का तरीका बताया गया है:
Kotlin
val adRequest = AdRequest.Builder(adUnitId).build() // Define a PreloadConfiguration and set the buffer size to 2 preloaded ads. val preloadConfig = PreloadConfiguration(adRequest, bufferSize = 2) AppOpenAdPreloader.start(adUnitId, preloadConfig)
Java
AdRequest adRequest = new AdRequest.Builder(adUnitId).build(); // Define a PreloadConfiguration and set the buffer size to 2 preloaded ads. PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest, 2); AppOpenAdPreloader.start(adUnitId, preloadConfig);
कैश मेमोरी में पहले से लोड करने की सीमाएं
GMA Next-Gen SDK, सभी विज्ञापन यूनिट और पहले से लोड किए गए आईडी के लिए, पहले से लोड किए गए विज्ञापनों की कुल संख्या पर, ऐप्लिकेशन के हिसाब से सीमा लागू करता है:
- डिफ़ॉल्ट सीमा: Google, मेमोरी में ज़्यादा से ज़्यादा छह पहले से लोड किए गए विज्ञापन सेव रखता है. यह सीमा, सभी फ़ॉर्मैट और प्रीलोड आईडी के लिए शेयर की जाती है.
- हमारा सुझाव है कि हर प्रीलोड आईडी के लिए, बफ़र साइज़ दो रखें.
ज़रूरी नहीं: विज्ञापनों को पहले से लोड होने से रोकना
ऐप्लिकेशन में विज्ञापन दिखाते समय, प्रीलोडिंग की सुविधा चालू रखें. इस दौरान, destroy तरीके का इस्तेमाल न करें. अगर आपको सेशन में किसी खास प्रीलोड आईडी के लिए फिर से विज्ञापन नहीं दिखाने हैं, तो विज्ञापनों को पहले से लोड करना बंद किया जा सकता है. किसी खास प्रीलोड आईडी के लिए विज्ञापनों को लोड होने से रोकने के लिए, प्रीलोड आईडी के साथ destroy मेथड को कॉल करें. destroy तरीके को कॉल करने से, कैश मेमोरी से प्रीलोड आईडी से जुड़े सभी प्रीलोड किए गए विज्ञापन हट जाते हैं.
नीचे दिए गए उदाहरण में, विज्ञापनों को पहले से लोड होने से रोकने का तरीका बताया गया है:
Kotlin
private fun stopPreloading(adUnitId: String) { // Stops the preloading and destroy preloaded ads. AppOpenAdPreloader.destroy(adUnitId) }
Java
private void stopPreloading(String adUnitId) { // Stops the preloading and destroy preloaded ads. AppOpenAdPreloader.destroy(adUnitId); }
ज़रूरी नहीं: जवाब में दी गई जानकारी पढ़ना
पहले से लोड किए गए अगले विज्ञापन के रिस्पॉन्स की जानकारी को पढ़ें. इसके लिए, विज्ञापन को कैश मेमोरी से न हटाएं. अगर आपको विज्ञापन दिखाने से पहले उसके मेटाडेटा की जांच करनी है, तो pollAd तरीके को कॉल करने के बजाय, रिस्पॉन्स की जानकारी पढ़ें.
यहां दिए गए उदाहरण में, पहले से लोड किए गए अगले विज्ञापन रिस्पॉन्स की जानकारी को पढ़ने का तरीका बताया गया है:
Kotlin
val responseInfo = AppOpenAdPreloader.peekAdResponseInfo(preloadId) if (responseInfo == null) { Log.e(TAG, "Failed to peek ad response info.") return } Log.d(TAG, "Peeked ad response ID: ${responseInfo.responseId}")
Java
ResponseInfo responseInfo = AppOpenAdPreloader.peekAdResponseInfo(preloadId); if (responseInfo == null) { Log.e(TAG, "Failed to peek ad response info."); return; } Log.d(TAG, "Peeked ad response ID: " + responseInfo.getResponseId());
कोल्ड स्टार्ट और लोडिंग स्क्रीन को मैनेज करना
कोल्ड स्टार्ट तब होता है, जब आपका ऐप्लिकेशन डिस्क से लॉन्च होता है. वहीं, वॉर्म स्टार्ट तब होता है, जब ऐप्लिकेशन को मेमोरी से फिर से खोला जाता है. कोल्ड स्टार्ट के दौरान, आपके पास तुरंत दिखाने के लिए पहले से लोड किया गया कोई विज्ञापन नहीं होता. वॉर्म स्टार्ट के दौरान, हो सकता है कि आपके पास पहले से लोड किया गया कोई विज्ञापन दिखाने के लिए तैयार हो.
कोल्ड स्टार्ट के दौरान, हो सकता है कि उपयोगकर्ता आपके ऐप्लिकेशन के लोड होने और विज्ञापन दिखने से पहले ही, उसके साथ इंटरैक्ट करें. उपयोगकर्ता को खराब अनुभव से बचाने के लिए, ऐप्लिकेशन के कोल्ड स्टार्ट के दौरान, ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापनों को सिर्फ़ लोडिंग स्क्रीन पर दिखाएं. ऐसा तब करें, जब ऐप्लिकेशन की ऐसेट लोड हो रही हों. अगर एसेट लोड होने की प्रोसेस पूरी हो जाती है और विज्ञापन लोड होने से पहले उपयोगकर्ता मुख्य कॉन्टेंट तक पहुंच जाता है, तो विज्ञापन न दिखाएं.
सुझाव
ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापनों के लिए, इन सुझावों का पालन करें:
- ऐप्लिकेशन को पहली बार खोलने पर, ऐप्लिकेशन खोलने पर दिखने वाला विज्ञापन न दिखाएं.
- अगर विज्ञापन दिखने के दौरान, लोडिंग स्क्रीन लोड हो जाती है, तो विज्ञापन खारिज करने के कॉलबैक तरीके में लोडिंग स्क्रीन को खारिज करें.
- ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन, लोड होने के चार घंटे बाद एक्सपायर हो जाते हैं. ऐप्लिकेशन खोलने पर दिखने वाला ऐसा विज्ञापन न दिखाएं जिसे लोड हुए चार घंटे से ज़्यादा हो गए हों.