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