अपने सुझाव शेयर करके Google मोबाइल विज्ञापन SDK रोडमैप को बेहतर बनाने में मदद करें. Google मोबाइल विज्ञापन SDK टूल के साल 2023 के सर्वे को 5 मई, 2023 को बंद होने से पहले पूरा कर लें.

मूल विज्ञापन

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

नेटिव विज्ञापन, विज्ञापन एसेट होते हैं जो उपयोगकर्ताओं को यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट के ज़रिए दिखाए जाते हैं. उन्हें उसी तरह के व्यू का इस्तेमाल करके दिखाया जाता है जिनके साथ आप पहले से ही अपने लेआउट बना रहे हैं. साथ ही, उन्हें उपयोगकर्ता के अनुभव के विज़ुअल डिज़ाइन के हिसाब से फ़ॉर्मैट किया जा सकता है. कोडिंग के संदर्भ में, इसका मतलब है कि जब कोई नेटिव विज्ञापन लोड होता है, तो आपके ऐप्लिकेशन को एकNativeAd ऑब्जेक्ट मिलता है जिसमें उसके एसेट होते हैं. साथ ही, उन्हें दिखाने के लिए ऐप्लिकेशन (Google मोबाइल विज्ञापन SDK की जगह) ज़िम्मेदार होता है.

मोटे तौर पर, नेटिव विज्ञापनों को सफलता से लागू करने के दो हिस्से हैं: SDK टूल का इस्तेमाल करके विज्ञापन लोड करना और फिर अपने ऐप्लिकेशन में विज्ञापन का कॉन्टेंट दिखाना.

इस पेज पर, SDK टूल का इस्तेमाल करके, नेटिव विज्ञापन को लोड करने के बारे में बताया गया है.

ज़रूरी शर्तें

लागू करना

नेटिव विज्ञापन AdLoader क्लास के साथ लोड किए जाते हैं. इस क्लास की अपनी Builder क्लास होती है जो इसे बनाए जाने के दौरान पसंद के मुताबिक बनाती है. AdLoader को सुनने वाले लोगों को जोड़कर, ऐप्लिकेशन को यह तय करके कि यह किस तरह के नेटिव विज्ञापनों के साथ काम कर सकता है. इसके बाद, AdLoader सिर्फ़ इस तरह का अनुरोध करता है.

AdLoader बनाएं

इस कोड में AdLoader बनाने का तरीका बताया गया है, जो नेटिव विज्ञापनों को लोड कर सकता है:

Java

AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd nativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

नेटिव विज्ञापन फ़ॉर्मैट के लिए तैयारी करें

ऊपर दिया गया पहला तरीका, AdLoader को NativeAd फ़ॉर्मैट के लिए तैयार करने के लिए ज़िम्मेदार है:

forNativeAd()
इस तरीके को कॉल करने से, नेटिव विज्ञापनों का अनुरोध करने के लिए, AdLoader कॉन्फ़िगर हो जाता है. जब कोई विज्ञापन लोड हो जाता है, तब लिसनर ऑब्जेक्ट के onNativeAdLoaded() तरीके को कॉल किया जाता है.

जब AdLoader विज्ञापन अनुरोध करता है, तो Google उस विज्ञापन को चुनता और दिखाता है जो पब्लिशर को ज़्यादा से ज़्यादा फ़ायदा देता है.

AdLoader के साथ AdListener सेट अप करना (ज़रूरी नहीं)

ऊपर दिए गए AdLoader बनाने के दौरान, withAdListener फ़ंक्शन AdListener सेट करता है. AdListenerइस तरीके को अपने अकेले पैरामीटर के रूप में लेता है, जिसे विज्ञापन लाइफ़साइकल इवेंट के होने पर AdLoader से कॉलबैक मिलता है:

Java

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

Kotlin

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

विज्ञापन लोड करें

AdLoader बनाने के बाद, विज्ञापनों को लोड करने का इस्तेमाल करें. इसके लिए दो तरीके उपलब्ध हैं: loadAd() और loadAds().

loadAd()
यह तरीका किसी एक विज्ञापन के लिए अनुरोध भेजता है. :

Java

adLoader.loadAd(new AdRequest.Builder().build());

Kotlin

adLoader.loadAd(AdRequest.Builder().build())
loadAds()
यह तरीका एक से ज़्यादा विज्ञापनों के लिए अनुरोध भेजता है (ज़्यादा से ज़्यादा पांच): :

Java

adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

adLoader.loadAds(AdRequest.Builder().build(), 3)

इन दोनों तरीकों में, पहले पैरामीटर के तौर पर AdRequest ऑब्जेक्ट लगता है. यह वही AdRequest क्लास है जिसका इस्तेमाल बैनर और पेज पर अचानक दिखने वाले एलिमेंट में किया जाता है. साथ ही, टारगेटिंग की जानकारी जोड़ने के लिए, AdRequest क्लास के तरीके का इस्तेमाल किया जाता है, जैसा कि दूसरे विज्ञापन फ़ॉर्मैट में किया जाता है.

loadAds() को एक और पैरामीटर की ज़रूरत होती है: अनुरोध की संख्या के लिए, SDK टूल को ज़्यादा से ज़्यादा विज्ञापन लोड करने की कोशिश करनी चाहिए. यह संख्या पांच तक सीमित हो सकती है और इस बात की गारंटी नहीं है कि SDK टूल, जितने चाहे उतने विज्ञापनों का अनुरोध करेगा.

लौटाए गए सभी Google विज्ञापन एक-दूसरे से अलग होंगे. रिज़र्व की गई इन्वेंट्री या तीसरे पक्ष के खरीदारों के विज्ञापनों के साथ-साथ, वॉटरफ़ॉल या बिडिंग के लिए कॉन्फ़िगर किए गए खरीदारों के विज्ञापन की गारंटी नहीं दी जाती.

कॉलबैक

loadAd() पर कॉल करने के बाद, नेटिव विज्ञापन ऑब्जेक्ट डिलीवर करने या गड़बड़ी की शिकायत करने के लिए, पहले से बताए गए सुनने के तरीकों में एक कॉलबैक होता है.

loadAds() पर कॉल करने के बाद, ऐसे कई कॉलबैक किए जाते हैं. कम से कम एक कॉलबैक, अनुरोध किए गए विज्ञापनों की संख्या से ज़्यादा नहीं होता. एक से ज़्यादा विज्ञापनों का अनुरोध करने वाले ऐप्लिकेशन को अपने कॉलबैक लागू करने में AdLoader.isLoading() को कॉल करना चाहिए. इससे यह तय होता है कि लोड होने की प्रोसेस खत्म हुई है या नहीं.

यहां एक उदाहरण दिया गया है, जिसमें onNativeAdLoaded() कॉलबैक में isLoading() की जांच करने का तरीका बताया गया है:

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading()) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)

संसाधन रिलीज़ करें

लोड किए गए नेटिव विज्ञापनों के लिए, destroy() तरीके का इस्तेमाल करना न भूलें. इससे, इस्तेमाल किए गए रिसॉर्स फ़्री हो जाते हैं और स्टोरेज लीक नहीं होता.

पक्का करें कि आपकी गतिविधि के onDestroy() तरीके में, NativeAd के सभी रेफ़रंस खत्म हो गए हों.

अपने onNativeAdLoaded कॉलबैक में, ऐसे सभी मौजूदा नेटिव विज्ञापनों को बंद करना न भूलें जिनका ज़िक्र किया गया है.

एक और जांच यह है कि गतिविधि खत्म हो गई है या नहीं और अगर रद्द हुई है, तो तुरंत विज्ञापन पर destroy() को कॉल करें और वापस आएं:

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed()` is a method on Activity.
        if (isDestroyed()) {
            nativeAd.destroy();
            return;
        }
        ...
    }
}).build();

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { nativeAd ->
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed` is a method on Activity.
        if (isDestroyed) {
            nativeAd.destroy()
            return@forNativeAd
        }
        ...
    }.build()

हमेशा टेस्ट विज्ञापनों की मदद से टेस्ट करें

अपने ऐप्लिकेशन बनाते और उनकी जांच करते समय पक्का करें कि आप लाइव और प्रोडक्शन विज्ञापनों के बजाय टेस्ट विज्ञापनों का इस्तेमाल करते हों. ऐसा नहीं करने पर, आपका खाता निलंबित किया जा सकता है.

Android पर नेटिव ऐडवांस्ड विज्ञापन के लिए हमारी टेस्ट करने के विज्ञापन आईडी का इस्तेमाल करना, टेस्ट विज्ञापनों को लोड करने का सबसे आसान तरीका है:

ca-app-pub-3940256099942544/2247696110

इसे खास तौर पर, हर अनुरोध के साथ टेस्ट विज्ञापनों को दिखाने के लिए कॉन्फ़िगर किया गया है. आप कोडिंग, टेस्टिंग, और डीबग करने के दौरान, अपने ऐप्लिकेशन में इसका इस्तेमाल कर सकते हैं. अपना ऐप्लिकेशन प्रकाशित करने से पहले आपको इसे अपने विज्ञापन यूनिट आईडी से बदलना होगा.

मोबाइल विज्ञापन SDK टूल के टेस्ट विज्ञापन कैसे काम करते हैं, इसके बारे में ज़्यादा जानने के लिए टेस्ट विज्ञापन देखें.

विज्ञापनों का अनुरोध कब करें

नेटिव विज्ञापन दिखाने वाले ऐप्लिकेशन, अनुरोध करने से पहले ही मुफ़्त में अनुरोध कर सकते हैं कि असल में वे कब दिखाए जाएंगे. कई मामलों में, यह सुझाया गया तरीका है. उदाहरण के लिए, अगर कोई ऐप्लिकेशन, नेटिव विज्ञापनों के साथ मिले आइटम की सूची दिखाता है, तो वह पूरी सूची के लिए नेटिव विज्ञापन लोड कर सकता है. यह जानते हुए कि कुछ व्यू सिर्फ़ उपयोगकर्ता के स्क्रोल करने के बाद दिखेंगे और कुछ बिल्कुल नहीं दिखेंगे.

वीडियो विज्ञापनों के लिए हार्डवेयर से तेज़ी

अपने नेटिव विज्ञापन व्यू में वीडियो विज्ञापन सफलतापूर्वक दिखाने के लिए, हार्डवेयर ऐक्सेस चालू होना ज़रूरी है.

हार्डवेयर से तेज़ी लाने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. हालांकि, हो सकता है कि कुछ ऐप्लिकेशन इसे बंद करना चाहें. अगर यह आपके ऐप्लिकेशन पर लागू होता है, तो हमारा सुझाव है कि आप विज्ञापनों का इस्तेमाल करने वाली गतिविधि की कक्षाओं के लिए, हार्डवेयर ऐक्सेलरेशन चालू करें.

'हार्डवेयर से तेज़ी लाएं' सुविधा चालू की जा रही है

अगर आपके ऐप्लिकेशन में दुनिया भर में चालू किए गए हार्डवेयर से तेज़ी लाने की सुविधा ठीक से काम नहीं करती है, तो आप उसे हर गतिविधि के लिए भी कंट्रोल कर सकते हैं. हार्डवेयर से तेज़ी लाने की सुविधा चालू या बंद करने के लिए, अपने 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>

'हार्डवेयर से तेज़ी लाएं' सुविधा को कंट्रोल करने के विकल्पों के बारे में ज़्यादा जानने के लिए, HW की तेज़ी से जुड़ी गाइड देखें. ध्यान दें कि अगर गतिविधि बंद है, तो अलग-अलग विज्ञापन व्यू को हार्डवेयर से तेज़ी लाने के लिए चालू नहीं किया जा सकता. इसलिए, गतिविधि में हार्डवेयर से तेज़ी लाने की सुविधा चालू होनी चाहिए.

नेटिव विज्ञापन दिखाएं

विज्ञापन लोड करने के बाद, सिर्फ़ इतना ही होता है कि आप उसे अपने उपयोगकर्ताओं को दिखाएं. इसका तरीका जानने के लिए, हमारी नेटिव ऐडवांस्ड गाइड पर जाएं.

,

नेटिव विज्ञापन, विज्ञापन एसेट होते हैं जो उपयोगकर्ताओं को यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट के ज़रिए दिखाए जाते हैं. उन्हें उसी तरह के व्यू का इस्तेमाल करके दिखाया जाता है जिनके साथ आप पहले से ही अपने लेआउट बना रहे हैं. साथ ही, उन्हें उपयोगकर्ता के अनुभव के विज़ुअल डिज़ाइन के हिसाब से फ़ॉर्मैट किया जा सकता है. कोडिंग के संदर्भ में, इसका मतलब है कि जब कोई नेटिव विज्ञापन लोड होता है, तो आपके ऐप्लिकेशन को एकNativeAd ऑब्जेक्ट मिलता है जिसमें उसके एसेट होते हैं. साथ ही, उन्हें दिखाने के लिए ऐप्लिकेशन (Google मोबाइल विज्ञापन SDK की जगह) ज़िम्मेदार होता है.

मोटे तौर पर, नेटिव विज्ञापनों को सफलता से लागू करने के दो हिस्से हैं: SDK टूल का इस्तेमाल करके विज्ञापन लोड करना और फिर अपने ऐप्लिकेशन में विज्ञापन का कॉन्टेंट दिखाना.

इस पेज पर, SDK टूल का इस्तेमाल करके, नेटिव विज्ञापन को लोड करने के बारे में बताया गया है.

ज़रूरी शर्तें

लागू करना

नेटिव विज्ञापन AdLoader क्लास के साथ लोड किए जाते हैं. इस क्लास की अपनी Builder क्लास होती है जो इसे बनाए जाने के दौरान पसंद के मुताबिक बनाती है. AdLoader को सुनने वाले लोगों को जोड़कर, ऐप्लिकेशन को यह तय करके कि यह किस तरह के नेटिव विज्ञापनों के साथ काम कर सकता है. इसके बाद, AdLoader सिर्फ़ इस तरह का अनुरोध करता है.

AdLoader बनाएं

इस कोड में AdLoader बनाने का तरीका बताया गया है, जो नेटिव विज्ञापनों को लोड कर सकता है:

Java

AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd nativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

नेटिव विज्ञापन फ़ॉर्मैट के लिए तैयारी करें

ऊपर दिया गया पहला तरीका, AdLoader को NativeAd फ़ॉर्मैट के लिए तैयार करने के लिए ज़िम्मेदार है:

forNativeAd()
इस तरीके को कॉल करने से, नेटिव विज्ञापनों का अनुरोध करने के लिए, AdLoader कॉन्फ़िगर हो जाता है. जब कोई विज्ञापन लोड हो जाता है, तब लिसनर ऑब्जेक्ट के onNativeAdLoaded() तरीके को कॉल किया जाता है.

जब AdLoader विज्ञापन अनुरोध करता है, तो Google उस विज्ञापन को चुनता और दिखाता है जो पब्लिशर को ज़्यादा से ज़्यादा फ़ायदा देता है.

AdLoader के साथ AdListener सेट अप करना (ज़रूरी नहीं)

ऊपर दिए गए AdLoader बनाने के दौरान, withAdListener फ़ंक्शन AdListener सेट करता है. AdListenerइस तरीके को अपने अकेले पैरामीटर के रूप में लेता है, जिसे विज्ञापन लाइफ़साइकल इवेंट के होने पर AdLoader से कॉलबैक मिलता है:

Java

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

Kotlin

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

विज्ञापन लोड करें

AdLoader बनाने के बाद, विज्ञापनों को लोड करने का इस्तेमाल करें. इसके लिए दो तरीके उपलब्ध हैं: loadAd() और loadAds().

loadAd()
यह तरीका किसी एक विज्ञापन के लिए अनुरोध भेजता है. :

Java

adLoader.loadAd(new AdRequest.Builder().build());

Kotlin

adLoader.loadAd(AdRequest.Builder().build())
loadAds()
यह तरीका एक से ज़्यादा विज्ञापनों के लिए अनुरोध भेजता है (ज़्यादा से ज़्यादा पांच): :

Java

adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

adLoader.loadAds(AdRequest.Builder().build(), 3)

इन दोनों तरीकों में, पहले पैरामीटर के तौर पर AdRequest ऑब्जेक्ट लगता है. यह वही AdRequest क्लास है जिसका इस्तेमाल बैनर और पेज पर अचानक दिखने वाले एलिमेंट में किया जाता है. साथ ही, टारगेटिंग की जानकारी जोड़ने के लिए, AdRequest क्लास के तरीके का इस्तेमाल किया जाता है, जैसा कि दूसरे विज्ञापन फ़ॉर्मैट में किया जाता है.

loadAds() को एक और पैरामीटर की ज़रूरत होती है: अनुरोध की संख्या के लिए, SDK टूल को ज़्यादा से ज़्यादा विज्ञापन लोड करने की कोशिश करनी चाहिए. यह संख्या पांच तक सीमित हो सकती है और इस बात की गारंटी नहीं है कि SDK टूल, जितने चाहे उतने विज्ञापनों का अनुरोध करेगा.

लौटाए गए सभी Google विज्ञापन एक-दूसरे से अलग होंगे. रिज़र्व की गई इन्वेंट्री या तीसरे पक्ष के खरीदारों के विज्ञापनों के साथ-साथ, वॉटरफ़ॉल या बिडिंग के लिए कॉन्फ़िगर किए गए खरीदारों के विज्ञापन की गारंटी नहीं दी जाती.

कॉलबैक

loadAd() पर कॉल करने के बाद, नेटिव विज्ञापन ऑब्जेक्ट डिलीवर करने या गड़बड़ी की शिकायत करने के लिए, पहले से बताए गए सुनने के तरीकों में एक कॉलबैक होता है.

loadAds() पर कॉल करने के बाद, ऐसे कई कॉलबैक किए जाते हैं. कम से कम एक कॉलबैक, अनुरोध किए गए विज्ञापनों की संख्या से ज़्यादा नहीं होता. एक से ज़्यादा विज्ञापनों का अनुरोध करने वाले ऐप्लिकेशन को अपने कॉलबैक लागू करने में AdLoader.isLoading() को कॉल करना चाहिए. इससे यह तय होता है कि लोड होने की प्रोसेस खत्म हुई है या नहीं.

यहां एक उदाहरण दिया गया है, जिसमें onNativeAdLoaded() कॉलबैक में isLoading() की जांच करने का तरीका बताया गया है:

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading()) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)

संसाधन रिलीज़ करें

लोड किए गए नेटिव विज्ञापनों के लिए, destroy() तरीके का इस्तेमाल करना न भूलें. इससे, इस्तेमाल किए गए रिसॉर्स फ़्री हो जाते हैं और स्टोरेज लीक नहीं होता.

पक्का करें कि आपकी गतिविधि के onDestroy() तरीके में, NativeAd के सभी रेफ़रंस खत्म हो गए हों.

अपने onNativeAdLoaded कॉलबैक में, ऐसे सभी मौजूदा नेटिव विज्ञापनों को बंद करना न भूलें जिनका ज़िक्र किया गया है.

एक और जांच यह है कि गतिविधि खत्म हो गई है या नहीं और अगर रद्द हुई है, तो तुरंत विज्ञापन पर destroy() को कॉल करें और वापस आएं:

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed()` is a method on Activity.
        if (isDestroyed()) {
            nativeAd.destroy();
            return;
        }
        ...
    }
}).build();

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { nativeAd ->
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed` is a method on Activity.
        if (isDestroyed) {
            nativeAd.destroy()
            return@forNativeAd
        }
        ...
    }.build()

हमेशा टेस्ट विज्ञापनों की मदद से टेस्ट करें

अपने ऐप्लिकेशन बनाते और उनकी जांच करते समय पक्का करें कि आप लाइव और प्रोडक्शन विज्ञापनों के बजाय टेस्ट विज्ञापनों का इस्तेमाल करते हों. ऐसा नहीं करने पर, आपका खाता निलंबित किया जा सकता है.

Android पर नेटिव ऐडवांस्ड विज्ञापन के लिए हमारी टेस्ट करने के विज्ञापन आईडी का इस्तेमाल करना, टेस्ट विज्ञापनों को लोड करने का सबसे आसान तरीका है:

ca-app-pub-3940256099942544/2247696110

इसे खास तौर पर, हर अनुरोध के साथ टेस्ट विज्ञापनों को दिखाने के लिए कॉन्फ़िगर किया गया है. आप कोडिंग, टेस्टिंग, और डीबग करने के दौरान, अपने ऐप्लिकेशन में इसका इस्तेमाल कर सकते हैं. अपना ऐप्लिकेशन प्रकाशित करने से पहले आपको इसे अपने विज्ञापन यूनिट आईडी से बदलना होगा.

मोबाइल विज्ञापन SDK टूल के टेस्ट विज्ञापन कैसे काम करते हैं, इसके बारे में ज़्यादा जानने के लिए टेस्ट विज्ञापन देखें.

विज्ञापनों का अनुरोध कब करें

नेटिव विज्ञापन दिखाने वाले ऐप्लिकेशन, अनुरोध करने से पहले ही मुफ़्त में अनुरोध कर सकते हैं कि असल में वे कब दिखाए जाएंगे. कई मामलों में, यह सुझाया गया तरीका है. उदाहरण के लिए, अगर कोई ऐप्लिकेशन, नेटिव विज्ञापनों के साथ मिले आइटम की सूची दिखाता है, तो वह पूरी सूची के लिए नेटिव विज्ञापन लोड कर सकता है. यह जानते हुए कि कुछ व्यू सिर्फ़ उपयोगकर्ता के स्क्रोल करने के बाद दिखेंगे और कुछ बिल्कुल नहीं दिखेंगे.

वीडियो विज्ञापनों के लिए हार्डवेयर से तेज़ी

अपने नेटिव विज्ञापन व्यू में वीडियो विज्ञापन सफलतापूर्वक दिखाने के लिए, हार्डवेयर ऐक्सेस चालू होना ज़रूरी है.

हार्डवेयर से तेज़ी लाने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. हालांकि, हो सकता है कि कुछ ऐप्लिकेशन इसे बंद करना चाहें. अगर यह आपके ऐप्लिकेशन पर लागू होता है, तो हमारा सुझाव है कि आप विज्ञापनों का इस्तेमाल करने वाली गतिविधि की कक्षाओं के लिए, हार्डवेयर ऐक्सेलरेशन चालू करें.

'हार्डवेयर से तेज़ी लाएं' सुविधा चालू की जा रही है

अगर आपके ऐप्लिकेशन में दुनिया भर में चालू किए गए हार्डवेयर से तेज़ी लाने की सुविधा ठीक से काम नहीं करती है, तो आप उसे हर गतिविधि के लिए भी कंट्रोल कर सकते हैं. हार्डवेयर से तेज़ी लाने की सुविधा चालू या बंद करने के लिए, अपने 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>

'हार्डवेयर से तेज़ी लाएं' सुविधा को कंट्रोल करने के विकल्पों के बारे में ज़्यादा जानने के लिए, HW की तेज़ी से जुड़ी गाइड देखें. ध्यान दें कि अगर गतिविधि बंद है, तो अलग-अलग विज्ञापन व्यू को हार्डवेयर से तेज़ी लाने के लिए चालू नहीं किया जा सकता. इसलिए, गतिविधि में हार्डवेयर से तेज़ी लाने की सुविधा चालू होनी चाहिए.

नेटिव विज्ञापन दिखाएं

विज्ञापन लोड करने के बाद, सिर्फ़ इतना ही होता है कि आप उसे अपने उपयोगकर्ताओं को दिखाएं. इसका तरीका जानने के लिए, हमारी नेटिव ऐडवांस्ड गाइड पर जाएं.