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

प्लैटफ़ॉर्म चुनें: Android नई सुविधा Android iOS Flutter Unity

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

नेटिव विज्ञापन लोड होने पर, आपके ऐप्लिकेशन को एक विज्ञापन ऑब्जेक्ट मिलता है. इसमें उसकी ऐसेट शामिल होती हैं, और उन्हें दिखाने की ज़िम्मेदारी Google Mobile Ads SDK की नहीं, बल्कि ऐप्लिकेशन की होती है.

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

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

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

आगे बढ़ने से पहले, सेट अप करें Google Mobile Ads SDK.

हमेशा टेस्ट विज्ञापनों का इस्तेमाल करके टेस्ट करना

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

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

/21775744923/example/native

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

Google Mobile Ads SDK टेस्ट विज्ञापनों के बारे में ज़्यादा जानने के लिए, टेस्ट विज्ञापन चालू करना लेख पढ़ें.

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

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

AdLoader बनाना

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

Java

// It is recommended to call AdLoader.Builder on a background thread.
new Thread(
        () -> {
          AdLoader adLoader =
              new AdLoader.Builder(context, "AD_UNIT_ID")
                  .forNativeAd(
                      new NativeAd.OnNativeAdLoadedListener() {
                        @Override
                        // The native ad loaded successfully. You can show the ad.
                        public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {}
                      })
                  .withAdListener(
                      new AdListener() {
                        @Override
                        // The native ad load failed. Check the adError message for failure
                        // reasons.
                        public void onAdFailedToLoad(@NonNull LoadAdError adError) {}
                      })
                  // Use the NativeAdOptions.Builder class to specify individual options
                  // settings.
                  .withNativeAdOptions(new NativeAdOptions.Builder().build())
                  .build();
        })
    .start();

Kotlin

// It is recommended to call AdLoader.Builder on a background thread.
CoroutineScope(Dispatchers.IO).launch {
  val adLoader =
    AdLoader.Builder(context, "AD_UNIT_ID")
      .forNativeAd { nativeAd ->
        // The native ad loaded successfully. You can show the ad.
      }
      .withAdListener(
        object : AdListener() {
          override fun onAdFailedToLoad(adError: LoadAdError) {
            // The native ad load failed. Check the adError message for failure reasons.
          }
        }
      )
      // Use the NativeAdOptions.Builder class to specify individual options settings.
      .withNativeAdOptions(NativeAdOptions.Builder().build())
      .build()
}

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 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 को अनुरोध के लिए कितने विज्ञापन लोड करने की कोशिश करनी चाहिए. यह संख्या पांच तक सीमित है. साथ ही, इसकी कोई गारंटी नहीं है कि SDK, अनुरोध किए गए विज्ञापनों की सटीक संख्या दिखाएगा.

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

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

कॉलबैक

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

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

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

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

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

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

Java

nativeAd.destroy();

Kotlin

nativeAd.destroy()

सबसे सही तरीके

विज्ञापन लोड करते समय, इन नियमों का पालन करें.

  • सूची में नेटिव विज्ञापनों का इस्तेमाल करने वाले ऐप्लिकेशन को, विज्ञापनों की सूची को पहले से कैश मेमोरी में सेव करना चाहिए.

  • विज्ञापनों को पहले से कैश मेमोरी में सेव करते समय, एक घंटे बाद अपनी कैश मेमोरी मिटाएं और फिर से लोड करें.

  • जब तक पहला अनुरोध लोड न हो जाए, तब तक AdLoader पर loadAd() को कॉल न करें.
  • नेटिव विज्ञापन की कैश मेमोरी को सिर्फ़ ज़रूरत के हिसाब से सीमित करें. उदाहरण के लिए, पहले से कैश मेमोरी में सेव करते समय, सिर्फ़ उन विज्ञापनों को कैश मेमोरी में सेव करें जो स्क्रीन पर तुरंत दिखते हैं. नेटिव विज्ञापनों के लिए, ज़्यादा मेमोरी की ज़रूरत होती है. साथ ही, नेटिव विज्ञापनों को खत्म किए बिना उन्हें कैश मेमोरी में सेव करने से, ज़्यादा मेमोरी का इस्तेमाल होता है.

  • जब नेटिव विज्ञापनों का इस्तेमाल न किया जा रहा हो, तब उन्हें खत्म कर दें.

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

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

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

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

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

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

अपना विज्ञापन दिखाना

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