नेटिव विज्ञापन, विज्ञापन ऐसेट होते हैं. इन्हें उपयोगकर्ताओं को यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट के ज़रिए दिखाया जाता है. ये कॉम्पोनेंट, प्लैटफ़ॉर्म के हिसाब से नेटिव होते हैं. इन्हें उसी तरह के व्यू का इस्तेमाल करके दिखाया जाता है जिनसे पहले से ही लेआउट बनाए जा रहे हैं. साथ ही, इन्हें आपके ऐप्लिकेशन के विज़ुअल डिज़ाइन के हिसाब से फ़ॉर्मैट किया जा सकता है.
जब कोई नेटिव विज्ञापन लोड होता है, तो आपके ऐप्लिकेशन को एक विज्ञापन ऑब्जेक्ट मिलता है. इसमें उसकी ऐसेट शामिल होती हैं. इसके बाद, Google Mobile Ads SDK के बजाय ऐप्लिकेशन, उन्हें दिखाने के लिए ज़िम्मेदार होता है.
नेटिव विज्ञापन को सही तरीके से लागू करने के लिए, आम तौर पर दो काम करने होते हैं: एसडीके का इस्तेमाल करके विज्ञापन लोड करना और फिर अपने ऐप्लिकेशन में विज्ञापन का कॉन्टेंट दिखाना.
इस पेज पर, नेटिव विज्ञापन लोड करने के लिए, एसडीके टूल का इस्तेमाल करने का तरीका बताया गया है.
ज़रूरी शर्तें
- शुरुआती निर्देश पढ़ें.
हमेशा टेस्ट विज्ञापनों का इस्तेमाल करके टेस्ट करें
अपने ऐप्लिकेशन बनाते और उनकी टेस्टिंग करते समय, पक्का करें कि आपने लाइव और प्रोडक्शन विज्ञापनों के बजाय, टेस्ट विज्ञापनों का इस्तेमाल किया हो.
टेस्ट विज्ञापनों को लोड करने का सबसे आसान तरीका यह है कि Android पर नेटिव विज्ञापनों के लिए, हमारी खास टेस्ट विज्ञापन यूनिट आईडी का इस्तेमाल करें:
/21775744923/example/native
इसे खास तौर पर हर अनुरोध के लिए टेस्ट विज्ञापन दिखाने के लिए कॉन्फ़िगर किया गया है. साथ ही, कोडिंग, टेस्टिंग, और डीबग करने के दौरान, इसका इस्तेमाल अपने ऐप्लिकेशन में किया जा सकता है. हालांकि, ऐप्लिकेशन पब्लिश करने से पहले, इसे अपने विज्ञापन यूनिट आईडी से बदलना न भूलें.
Google Mobile Ads SDK के टेस्ट विज्ञापन किस तरह काम करते हैं, इस बारे में ज़्यादा जानने के लिए, टेस्ट विज्ञापन लेख पढ़ें.
विज्ञापन लोड करना
नेटिव विज्ञापनों को AdLoader
क्लास के साथ लोड किया जाता है. इसमें Builder
क्लास होती है, ताकि विज्ञापन बनाते समय उसे कस्टमाइज़ किया जा सके. ऐप्लिकेशन बनाते समय, उसमें लिसनर जोड़ने से यह तय किया जाता है कि ऐप्लिकेशन किस तरह के नेटिव विज्ञापन पाने के लिए तैयार है.AdLoader
इसके बाद, AdLoader
सिर्फ़ उन टाइप के लिए अनुरोध करता है.
AdLoader बनाना
यहां दिए गए कोड से पता चलता है कि नेटिव विज्ञापन लोड करने वाला AdLoader
कैसे बनाया जाता है:
Java
Kotlin
AD_UNIT_ID को अपने टेस्ट डिवाइस के आईडी से बदलें.
forNativeAd()
मेथड, NativeAd
फ़ॉर्मैट के लिए AdLoader
तैयार करता है.
जब कोई विज्ञापन लोड हो जाता है, तब लिसनर ऑब्जेक्ट के onNativeAdLoaded()
मेथड को कॉल किया जाता है.
AdLoader की मदद से AdListener सेट अप करना (ज़रूरी नहीं)
AdLoader
बनाते समय, withAdListener
फ़ंक्शन, लोडर के लिए AdListener
सेट करता है. यह तरीका, AdListener
को अपने पैरामीटर के तौर पर लेता है. जब विज्ञापन के लाइफ़साइकल इवेंट होते हैं, तब AdListener
से कॉलबैक मिलते हैं:AdLoader
Java
adLoaderBuilder.withAdListener(
// Override AdListener callbacks here.
new AdListener() {});
Kotlin
adLoaderBuilder.withAdListener(
// Override AdListener callbacks here.
object : AdListener() {}
)
विज्ञापन जोड़ने का अनुरोध करें
AdLoader
बनाने के बाद, अब इसका इस्तेमाल करके विज्ञापनों का अनुरोध किया जा सकता है.
इसके लिए, दो तरीके उपलब्ध हैं: loadAd()
और loadAds()
.
loadAd()
इस तरीके से, एक विज्ञापन का अनुरोध भेजा जाता है.
Java
adLoader.loadAd(new AdManagerAdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdManagerAdRequest.Builder().build())
loadAds()
इस तरीके से, एक साथ कई विज्ञापनों (पांच तक) के लिए अनुरोध भेजा जाता है:
Java
// Load three native ads.
adLoader.loadAds(new AdManagerAdRequest.Builder().build(), 3);
Kotlin
// Load three native ads.
adLoader.loadAds(AdManagerAdRequest.Builder().build(), 3)
दोनों तरीकों में, AdManagerAdRequest
ऑब्जेक्ट को पहले पैरामीटर के तौर पर लिया जाता है. यह वही AdManagerAdRequest
क्लास है जिसका इस्तेमाल बैनर और इंटरस्टीशियल विज्ञापन करते हैं. साथ ही, AdManagerAdRequest
क्लास के तरीकों का इस्तेमाल करके, टारगेटिंग की जानकारी जोड़ी जा सकती है. ऐसा ही अन्य विज्ञापन फ़ॉर्मैट के साथ भी किया जाता है.
एक से ज़्यादा विज्ञापन लोड करना (ज़रूरी नहीं)
loadAds()
तरीके में एक और पैरामीटर होता है: SDK को अनुरोध के लिए कितने विज्ञापन लोड करने की कोशिश करनी चाहिए. यह संख्या पांच तक सीमित है. साथ ही, यह ज़रूरी नहीं है कि एसडीके, अनुरोध किए गए विज्ञापनों की सटीक संख्या दिखाए.
Google Ads से मिले सभी विज्ञापन एक-दूसरे से अलग होंगे. हालांकि, आरक्षित इन्वेंट्री या तीसरे पक्ष के खरीदारों के विज्ञापन यूनीक होने की गारंटी नहीं है.
अगर मीडिएशन का इस्तेमाल किया जा रहा है, तो loadAds()
तरीके का इस्तेमाल न करें. ऐसा इसलिए, क्योंकि मीडिएशन के लिए कॉन्फ़िगर किए गए विज्ञापन यूनिट आईडी के लिए, एक से ज़्यादा नेटिव विज्ञापनों के अनुरोध काम नहीं करते.
कॉलबैक
loadAd()
को कॉल करने के बाद, पहले से तय किए गए लिसनर के तरीकों को एक ही बार कॉल किया जाता है, ताकि नेटिव विज्ञापन ऑब्जेक्ट डिलीवर किया जा सके या गड़बड़ी की सूचना दी जा सके.
संसाधन रिलीज़ करें
पक्का करें कि आपने लोड किए गए नेटिव विज्ञापनों पर, destroy()
तरीके का इस्तेमाल किया हो. इससे इस्तेमाल किए गए संसाधन रिलीज़ हो जाते हैं और मेमोरी लीक नहीं होती.
पुष्टि करें कि आपकी गतिविधि के onDestroy()
तरीके में सभी NativeAd
रेफ़रंस मिटा दिए गए हैं.
अपने onNativeAdLoaded
कॉलबैक में, यह पक्का करें कि डीरेफ़रंस किए जाने वाले किसी भी मौजूदा नेटिव विज्ञापन को डिस्ट्रॉय कर दिया गया हो.
एक और ज़रूरी जांच यह है कि गतिविधि बंद हो गई है या नहीं. अगर ऐसा है, तो दिखाए गए विज्ञापन पर destroy()
को कॉल करें और तुरंत वापस आएं:
Java
nativeAd.destroy();
Kotlin
nativeAd.destroy()
सबसे सही तरीके
विज्ञापन लोड करते समय, इन नियमों का पालन करें.
किसी सूची में नेटिव विज्ञापनों का इस्तेमाल करने वाले ऐप्लिकेशन को, विज्ञापनों की सूची को पहले से कैश मेमोरी में सेव कर लेना चाहिए.
विज्ञापनों को पहले से कैश मेमोरी में सेव करते समय, कैश मेमोरी मिटाएं और एक घंटे बाद फिर से लोड करें.
- जब तक पहला अनुरोध लोड नहीं हो जाता, तब तक
AdLoader
परloadAd()
को कॉल न करें.
नेटिव विज्ञापन की कैश मेमोरी को सिर्फ़ ज़रूरी डेटा तक सीमित रखें. उदाहरण के लिए, प्रीकैशिंग करते समय, सिर्फ़ उन विज्ञापनों को कैश मेमोरी में सेव करें जो स्क्रीन पर तुरंत दिखते हैं. नेटिव विज्ञापनों के लिए ज़्यादा मेमोरी की ज़रूरत होती है. अगर नेटिव विज्ञापनों को मिटाए बिना कैश मेमोरी में सेव किया जाता है, तो इससे बहुत ज़्यादा मेमोरी का इस्तेमाल होता है.
जब नेटिव विज्ञापनों का इस्तेमाल न हो रहा हो, तब उन्हें बंद कर दें.
वीडियो विज्ञापनों के लिए हार्डवेयर की मदद से रेंडरिंग की सुविधा
नेटिव विज्ञापन व्यू में वीडियो विज्ञापन सही तरीके से दिखाने के लिए, हार्डवेयर ऐक्सलरेशन चालू होना चाहिए.
हार्डवेयर ऐक्सेलरेटेड रेंडरिंग की सुविधा डिफ़ॉल्ट रूप से चालू होती है. हालांकि, कुछ ऐप्लिकेशन इसे बंद कर सकते हैं. अगर यह समस्या आपके ऐप्लिकेशन पर लागू होती है, तो हमारा सुझाव है कि विज्ञापन दिखाने वाली Activity क्लास के लिए, हार्डवेयर ऐक्सेलरेट करने की सुविधा चालू करें.
हार्डवेयर से तेज़ी लाने की सुविधा चालू करना
अगर हार्डवेयर ऐक्सलरेशन को ग्लोबल लेवल पर चालू करने पर आपका ऐप्लिकेशन ठीक से काम नहीं करता है, तो इसे अलग-अलग गतिविधियों के लिए भी कंट्रोल किया जा सकता है. हार्डवेयर से तेज़ी लाने की सुविधा को चालू या बंद करने के लिए, अपने AndroidManifest.xml
में मौजूद <application>
और <activity>
एलिमेंट के लिए, android:hardwareAccelerated
एट्रिब्यूट का इस्तेमाल करें. नीचे दिए गए उदाहरण में, पूरे ऐप्लिकेशन के लिए हार्डवेयर
ऐक्सलरेशन चालू किया गया है. हालांकि, इसे एक गतिविधि के लिए बंद कर दिया गया है:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
हार्डवेयर ऐक्सलरेशन को कंट्रोल करने के विकल्पों के बारे में ज़्यादा जानने के लिए, हार्डवेयर ऐक्सलरेशन से जुड़ी गाइड देखें. ध्यान दें कि अगर गतिविधि को सेव करने की सेटिंग बंद है, तो हार्डवेयर से तेज़ी लाने की सुविधा के लिए, अलग-अलग विज्ञापन व्यू चालू नहीं किए जा सकते. इसलिए, गतिविधि को सेव करने की सेटिंग के लिए, हार्डवेयर से तेज़ी लाने की सुविधा चालू होनी चाहिए.
विज्ञापन दिखाना
विज्ञापन लोड हो जाने के बाद, आपको सिर्फ़ उसे उपयोगकर्ताओं को दिखाना होता है. इसके बारे में जानने के लिए, हमारी नेटिव ऐडवांस गाइड देखें.