नेटिव विज्ञापन

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

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

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

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

सैंपल, Java और Kotlin के लिए उपलब्ध हैं.

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

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

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

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

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

विज्ञापन फ़ॉर्मैट विज्ञापन यूनिट आईडी का सैंपल
मूल भाषा वाला ca-app-pub-3940256099942544/2247696110
नेटिव वीडियो ca-app-pub-3940256099942544/1044960115

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

नेटिव विज्ञापन लोड करने के लिए, NativeAdLoader.load() मेथड को कॉल करें. यह NativeAdRequest और NativeAdLoaderCallback लेता है.

import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoader
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoaderCallback
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdRequest

class NativeFragment : Fragment() {

  private var nativeAd: NativeAd? = null

  override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    loadAd()
  }

  private fun loadAd() {
    // Build an ad request with native ad options to customize the ad.
    val adRequest = NativeAdRequest
      .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
      .build()

    val adCallback =
      object : NativeAdLoaderCallback {
        override fun onNativeAdLoaded(nativeAd: NativeAd) {
          // Called when a native ad has loaded.
        }
        override fun onAdFailedToLoad(adError: LoadAdError) {
          // Called when a native ad has failed to load.
        }
      }

    // Load the native ad with our request and callback.
    NativeAdLoader.load(adRequest, adCallback)
  }

  companion object {
    // Sample native ad unit ID.
    const val AD_UNIT_ID = "ca-app-pub-3940256099942544/2247696110"
  }
}

नेटिव विज्ञापन इवेंट कॉलबैक सेट करना

onNativeAdLoaded को हैंडल करते समय, मिले हुए NativeAd को NativeAdEventCallback के साथ सेट करें, ताकि नेटिव विज्ञापन के लाइफ़साइकल इवेंट पाने के लिए फ़ंक्शन तय किए जा सकें:

  nativeAd.adEventCallback =
    object : NativeAdEventCallback {
      override fun onAdShowedFullScreenContent() {
        // Native ad showed full screen content.
      }
      override fun onAdDismissedFullScreenContent() {
        // Native ad dismissed full screen content.
      }
      override fun onAdFailedToShowFullScreenContent {
        // Native ad failed to show full screen content.
      }
      override fun onAdImpression() {
        // Native ad recorded an impression.
      }
      override fun onAdClicked() {
        // Native ad recorded a click.
      }
    }

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

एक से ज़्यादा विज्ञापन लोड करने के लिए, load() पैरामीटर के साथ load() को कॉल करें.numberOfAds ज़्यादा से ज़्यादा 5 वैल्यू सेट की जा सकती है. यह वैल्यू, विज्ञापनों की संख्या को दिखाती है. ऐसा हो सकता है कि Google Mobile Ads SDK (बीटा वर्शन), आपके अनुरोध के मुताबिक विज्ञापन न दिखाए.

private fun loadAd() {
  // Build an ad request with native ad options to customize the ad.
  val adRequest = NativeAdRequest
    .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
    .build()

  val adCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        // Called when a native ad has loaded.
      }
      override fun onAdFailedToLoad(adError: LoadAdError) {
        // Called when a native ad has failed to load.
      }
      override fun onAdLoadingCompleted() {
        // Called when all native ads have loaded.
      }
    }

  // Load the native ad with our request and callback.
  NativeAdLoader.load(adRequest, 3, adCallback)
}

Google Mobile Ads SDK (बीटा) से मिलने वाले विज्ञापन यूनीक होते हैं. हालांकि, रिज़र्व की गई इन्वेंट्री या तीसरे पक्ष के खरीदारों से मिलने वाले विज्ञापन यूनीक नहीं हो सकते.

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

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

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

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

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

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

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

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

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

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

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

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

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

उदाहरण

Google Mobile Ads SDK (बीटा) के इस्तेमाल के बारे में बताने वाला उदाहरण ऐप्लिकेशन डाउनलोड करें और उसे चलाएं.