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

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

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

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

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

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

ग्राहकों की सफलता की कुछ कहानियां भी देखी जा सकती हैं: केस स्टडी 1, केस स्टडी 2.

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

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

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

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

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

ca-app-pub-3940256099942544/2247696110

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

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 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 टूल, अनुरोध किए गए विज्ञापनों की सटीक संख्या दिखाएगा.

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

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

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

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

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

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

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

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