नेटिव विज्ञापन, विज्ञापन की ऐसी ऐसेट होती हैं जो उपयोगकर्ताओं को, प्लैटफ़ॉर्म के लिए नेटिव यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट के ज़रिए दिखाई जाती हैं. ये विज्ञापन, उसी तरह के व्यू का इस्तेमाल करके दिखाए जाते हैं जिनसे आपने पहले से ही अपने लेआउट बनाए हैं. इन्हें आपके ऐप्लिकेशन के विज़ुअल डिज़ाइन के हिसाब से फ़ॉर्मैट किया जा सकता है.
नेटिव विज्ञापन लोड होने पर, आपके ऐप्लिकेशन को एक विज्ञापन ऑब्जेक्ट मिलता है. इसमें उसकी ऐसेट शामिल होती हैं, और उन्हें दिखाने की ज़िम्मेदारी Google Mobile Ads SDK के बजाय, ऐप्लिकेशन की होती है.
आम तौर पर, नेटिव विज्ञापनों को सफलतापूर्वक लागू करने के दो हिस्से होते हैं: SDK का इस्तेमाल करके विज्ञापन लोड करना और फिर अपने ऐप्लिकेशन में विज्ञापन का कॉन्टेंट दिखाना.
इस पेज पर, नेटिव विज्ञापन लोड करने के लिए SDK का इस्तेमाल करने का तरीका बताया गया है. अहम जानकारी: हमारी नेटिव विज्ञापन प्लेबुक में, नेटिव विज्ञापनों के बारे में ज़्यादा जानें.
ग्राहकों की सफलता की कुछ कहानियां भी देखी जा सकती हैं: केस स्टडी 1, केस स्टडी 2.
ज़रूरी शर्तें
आगे बढ़ने से पहले, सेट अप करें Google Mobile Ads SDK.
हमेशा टेस्ट विज्ञापनों का इस्तेमाल करके टेस्ट करना
अपने ऐप्लिकेशन बनाने और उनकी टेस्टिंग करने के लिए, लाइव और प्रोडक्शन विज्ञापन इस्तेमाल करने के बजाय, टेस्ट विज्ञापन इस्तेमाल करें.
Android पर नेटिव विज्ञापनों के लिए, टेस्ट विज्ञापन लोड करने का सबसे आसान तरीका, हमारे खास टेस्ट विज्ञापन यूनिट आईडी का इस्तेमाल करना है:
ca-app-pub-3940256099942544/2247696110
इसे खास तौर पर इस तरह कॉन्फ़िगर किया गया है कि हर अनुरोध के लिए टेस्ट विज्ञापन दिखाए जा सकें. कोडिंग, टेस्टिंग, और डीबग करने के दौरान, इसका इस्तेमाल अपने ऐप्लिकेशन में किया जा सकता है. हालांकि, ऐप्लिकेशन पब्लिश करने से पहले, इसे अपने विज्ञापन यूनिट आईडी से बदल लें.
Google Mobile Ads SDK टेस्ट विज्ञापनों के बारे में ज़्यादा जानने के लिए, टेस्ट विज्ञापन चालू करना लेख पढ़ें.
विज्ञापन लोड करना
नेटिव विज्ञापन,
AdLoader क्लास की मदद से लोड किए जाते हैं.
इसमें, विज्ञापन बनाते समय उसे पसंद के मुताबिक बनाने के लिए, अपनी
Builder
क्लास होती है. AdLoader बनाते समय, उसमें लिसनर जोड़कर, कोई ऐप्लिकेशन यह तय करता है कि वह किस तरह के नेटिव विज्ञापन पाने के लिए तैयार है. इसके बाद, AdLoader सिर्फ़ उन टाइप के विज्ञापनों का अनुरोध करता है.
AdLoader बनाना
यहां दिए गए कोड से पता चलता है कि AdLoader कैसे बनाया जाता है. इसकी मदद से नेटिव विज्ञापन लोड किए जा सकते हैं:
Java
Kotlin
AD_UNIT_ID की जगह, अपने टेस्ट डिवाइस का आईडी डालें.
The
forNativeAd()
तरीका, AdLoader फ़ॉर्मैट के लिए NativeAd को तैयार करने की ज़िम्मेदारी लेता है.
जब कोई विज्ञापन लोड हो जाता है, तब लिसनर ऑब्जेक्ट के onNativeAdLoaded() तरीके को कॉल किया जाता है.
AdLoader के साथ AdListener सेट अप करना (ज़रूरी नहीं)
AdLoader बनाते समय,
withAdListener
फ़ंक्शन, लोडर के लिए
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 AdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdRequest.Builder().build())
loadAds()
यह तरीका, एक से ज़्यादा विज्ञापनों (पांच तक) के लिए अनुरोध भेजता है:
Java
// Load three native ads.
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
// Load three native ads.
adLoader.loadAds(AdRequest.Builder().build(), 3)
दोनों तरीकों में, एक
AdRequest
ऑब्जेक्ट को पहले पैरामीटर के तौर पर लिया जाता है. यह वही
AdRequest क्लास है जिसका इस्तेमाल बैनर और इंटरस्टीशियल विज्ञापनों के लिए किया जाता है.
साथ ही, AdRequest क्लास के तरीकों का इस्तेमाल करके टारगेटिंग की जानकारी जोड़ी जा सकती है.
ठीक वैसे ही जैसे अन्य विज्ञापन फ़ॉर्मैट के लिए किया जाता है.
एक से ज़्यादा विज्ञापन लोड करना (ज़रूरी नहीं)
loadAds() तरीके में एक और पैरामीटर लिया जाता है: SDK को अनुरोध के लिए कितने विज्ञापन लोड करने चाहिए. यह संख्या पांच तक सीमित है. साथ ही, इसकी कोई गारंटी नहीं है कि SDK, अनुरोध किए गए विज्ञापनों की सटीक संख्या दिखाएगा.
दिखाए गए Google के सभी विज्ञापन एक-दूसरे से अलग होंगे. हालांकि, रिज़र्व की गई इन्वेंट्री या तीसरे पक्ष के खरीदारों के विज्ञापनों के यूनीक होने की कोई गारंटी नहीं है.
अगर मीडिएशन का इस्तेमाल किया जा रहा है, तो loadAds() तरीके का इस्तेमाल न करें. ऐसा इसलिए, क्योंकि मीडिएशन के लिए कॉन्फ़िगर किए गए विज्ञापन यूनिट आईडी के लिए, एक से ज़्यादा नेटिव विज्ञापनों के अनुरोध काम नहीं करते.
कॉलबैक
loadAd() को कॉल करने के बाद, पहले से तय किए गए
लिसनर के तरीकों को एक कॉलबैक किया जाता है. इसका मकसद, नेटिव विज्ञापन ऑब्जेक्ट डिलीवर करना या गड़बड़ी की रिपोर्ट करना होता है.
loadAds() को कॉल करने के बाद, ऐसे कई कॉलबैक किए जाते हैं. इनकी संख्या कम से कम एक और अनुरोध किए गए विज्ञापनों की संख्या से ज़्यादा नहीं होती. एक से ज़्यादा विज्ञापनों का अनुरोध करने वाले ऐप्लिकेशन को, अपने कॉलबैक लागू करने के दौरान, AdLoader.isLoading() को कॉल करना चाहिए. इससे यह पता चलता है कि लोड करने की प्रोसेस पूरी हो गई है या नहीं.
यहां एक उदाहरण दिया गया है. इसमें, onNativeAdLoaded() कॉलबैक में isLoading() की जांच करने का तरीका बताया गया है:
Java
adLoaderBuilder
.forNativeAd(
nativeAd -> {
// This callback is invoked when a native ad is successfully loaded.
})
.build();
Kotlin
adLoaderBuilder
.forNativeAd { nativeAd ->
// This callback is invoked when a native ad is successfully loaded.
}
.build()
संसाधन रिलीज़ करें
लोड किए गए नेटिव विज्ञापनों पर, destroy() तरीके का इस्तेमाल करना न भूलें. इससे इस्तेमाल किए गए संसाधन रिलीज़ हो जाते हैं और मेमोरी लीक नहीं होती.
पुष्टि करें कि आपकी गतिविधि के onDestroy() तरीके में, NativeAd के सभी रेफ़रंस मिटा दिए गए हैं.
अपने onNativeAdLoaded कॉलबैक में, यह पक्का करें कि मौजूदा नेटिव विज्ञापनों को मिटा दिया गया हो. इन्हें अब रेफ़र नहीं किया जाएगा.
एक और अहम जांच यह है कि गतिविधि मिट गई है या नहीं. अगर ऐसा है, तो दिखाए गए विज्ञापन पर destroy() को कॉल करें और तुरंत वापस आएं:
Java
nativeAd.destroy();
Kotlin
nativeAd.destroy()
सबसे सही तरीके
विज्ञापन लोड करते समय, इन नियमों का पालन करें.
सूची में नेटिव विज्ञापनों का इस्तेमाल करने वाले ऐप्लिकेशन को, विज्ञापनों की सूची को पहले से कैश मेमोरी में सेव करना चाहिए.
विज्ञापनों को पहले से कैश मेमोरी में सेव करते समय, अपनी कैश मेमोरी मिटाएं और एक घंटे बाद फिर से लोड करें.
- जब तक पहला
अनुरोध लोड न हो जाए, तब तक
AdLoaderपरloadAd()याloadAds()को कॉल न करें.
नेटिव विज्ञापन की कैशिंग को सिर्फ़ ज़रूरत के हिसाब से सीमित करें. उदाहरण के लिए, पहले से कैश मेमोरी में सेव करते समय, सिर्फ़ उन विज्ञापनों को कैश मेमोरी में सेव करें जो स्क्रीन पर तुरंत दिखते हैं. नेटिव विज्ञापनों के लिए, ज़्यादा मेमोरी की ज़रूरत होती है. साथ ही, नेटिव विज्ञापनों को मिटाए बिना कैश मेमोरी में सेव करने से, ज़्यादा मेमोरी का इस्तेमाल होता है.
जब नेटिव विज्ञापनों का इस्तेमाल न किया जा रहा हो, तब उन्हें मिटा दें.
वीडियो विज्ञापनों के लिए हार्डवेयर से तेज़ी लाने की सुविधा
नेटिव विज्ञापन व्यू में वीडियो विज्ञापन दिखाने के लिए, हार्डवेयर से तेज़ी लाने की सुविधा चालू होनी चाहिए.
हार्डवेयर से तेज़ी लाने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. हालांकि, कुछ ऐप्लिकेशन इसे बंद कर सकते हैं. अगर आपका ऐप्लिकेशन भी ऐसा करता है, तो हमारा सुझाव है कि विज्ञापन इस्तेमाल करने वाली ऐक्टिविटी क्लास के लिए, हार्डवेयर से तेज़ी लाने की सुविधा चालू करें.
हार्डवेयर से तेज़ी लाने की सुविधा चालू करना
अगर आपका ऐप्लिकेशन, हार्डवेयर से तेज़ी लाने की सुविधा को पूरी तरह चालू करने पर ठीक से काम नहीं करता है, तो इसे अलग-अलग ऐक्टिविटी के लिए भी कंट्रोल किया जा सकता है. हार्डवेयर से तेज़ी लाने की सुविधा चालू या
बंद करने के लिए, android:hardwareAccelerated एट्रिब्यूट
का इस्तेमाल करें
<application>
और
<activity>
एलिमेंट के लिए, अपने AndroidManifest.xml में. यहां दिए गए उदाहरण में, पूरे ऐप्लिकेशन के लिए हार्डवेयर से तेज़ी लाने की सुविधा चालू की गई है. हालांकि, एक ऐक्टिविटी के लिए इसे बंद किया गया है:
<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>
हार्डवेयर से तेज़ी लाने की सुविधा को कंट्रोल करने के विकल्पों के बारे में ज़्यादा जानने के लिए, हार्डवेयर से तेज़ी लाने की सुविधा के बारे में बताने वाली गाइड देखें. ध्यान दें कि अगर ऐक्टिविटी के लिए हार्डवेयर से तेज़ी लाने की सुविधा बंद है, तो विज्ञापन के अलग-अलग व्यू के लिए इसे चालू नहीं किया जा सकता. इसलिए, ऐक्टिविटी के लिए हार्डवेयर से तेज़ी लाने की सुविधा चालू होनी चाहिए.
अपना विज्ञापन दिखाना
विज्ञापन लोड करने के बाद, अब आपको इसे अपने उपयोगकर्ताओं को दिखाना है. यह जानने के लिए, हमारे नेटिव ऐडवांस गाइड देखें.