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

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

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

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

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

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

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

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

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

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

ca-app-pub-3940256099942544/2247696110

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

Google Mobile Ads 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.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

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

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 विज्ञापन एक-दूसरे से अलग होंगे, हालांकि रिज़र्व इन्वेंट्री या तीसरे पक्ष के खरीदारों के यूनीक होने की कोई गारंटी नहीं है.

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

कॉलबैक

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

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

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

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() तरीके का इस्तेमाल किया गया हो. यह रिलीज़ इस्तेमाल किया जाता है और मेमोरी लीक को रोकता है.

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

अपने 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()

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

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

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

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

  • loadAd() को कॉल न करें या पहली बार AdLoader पर loadAds() अनुरोध पूरा लोड हो गया है.

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

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

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

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

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

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

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

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