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

प्लैटफ़ॉर्म चुनें: Android iOS Flutter Unity Android (लेगसी)

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

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

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

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

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

जारी रखने से पहले, Google Mobile Ads SDK (Legacy) सेट अप करें.

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

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

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

/21775744923/example/native

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

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

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

नेटिव विज्ञापन, 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 को अपने टेस्ट डिवाइस आईडी से बदलें.

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() को कॉल न करें.
  • नेटिव विज्ञापन की कैश मेमोरी को सिर्फ़ ज़रूरत के हिसाब से सीमित करें. उदाहरण के लिए, प्रीकैश करते समय सिर्फ़ उन विज्ञापनों को कैश मेमोरी में सेव करें जो स्क्रीन पर तुरंत दिखते हैं. नेटिव विज्ञापनों के लिए ज़्यादा मेमोरी की ज़रूरत होती है. साथ ही, नेटिव विज्ञापनों को खत्म किए बिना उन्हें कैश मेमोरी में सेव करने से, मेमोरी का ज़्यादा इस्तेमाल होता है.

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

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

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

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

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

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

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

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

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