बैनर विज्ञापन

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

इस गाइड में बैनर विज्ञापनों कोAdMob Android ऐप्लिकेशन में इंटिग्रेट करने का तरीका बताया गया है. कोड स्निपेट और निर्देशों के अलावा, बैनर विज्ञापनों को सही तरीके से साइज़ करने और ज़्यादा संसाधनों के लिंक के बारे में भी जानकारी दी गई है.

ज़रूरी बातें

लेआउट में AdView जोड़ें

बैनर दिखाने के लिए पहला कदम है, Activity या Fragment के लेआउट में AdView को वहां दिखाना. जिसमें आप इसे दिखाना चाहते हैं. ऐसा करने का सबसे आसान तरीका यह है कि आप एक संबंधित एक्सएमएल लेआउट फ़ाइल को जोड़ें. यहां एक उदाहरण दिया गया है जिसमें गतिविधि AdView दिखाई गई है:

# main_activity.xml
...
  <com.google.android.gms.ads.AdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:id="@+id/adView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_alignParentBottom="true"
      ads:adSize="BANNER"
      ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
  </com.google.android.gms.ads.AdView>
...

इन ज़रूरी एट्रिब्यूट पर ध्यान दें:

  • ads:adSize - इसे उस विज्ञापन साइज़ पर सेट करें जिसका इस्तेमाल आप करना चाहते हैं. अगर आप कॉन्सटेंट के लिए तय किए गए स्टैंडर्ड साइज़ का इस्तेमाल नहीं करना चाहते हैं, तो आप इसके बजाय कस्टम साइज़ सेट कर सकते हैं. ज़्यादा जानकारी के लिए, नीचे दिया गया बैनर साइज़ सेक्शन देखें.
  • ads:adUnitId - इसे अपने ऐप्लिकेशन में विज्ञापन यूनिट में दिए गए उस यूनीक आइडेंटिफ़ायर पर सेट करें जहां विज्ञापन दिखाए जाने हैं. अगर आप अलग-अलग गतिविधियों में बैनर विज्ञापन दिखाते हैं, तो सभी के लिए एक-एक विज्ञापन यूनिट ज़रूरी होगी.

विकल्प के तौर पर AdView बनाए जा सकते हैं:

Java

AdView adView = new AdView(this);

adView.setAdSize(AdSize.BANNER);

adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// TODO: Add adView to your view hierarchy.

Kotlin

val adView = AdView(this)

adView.adSize = AdSize.BANNER

adView.adUnitId = "ca-app-pub-3940256099942544/6300978111"
// TODO: Add adView to your view hierarchy.

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

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

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

ca-app-pub-3940256099942544/6300978111

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

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

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

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

यहां एक उदाहरण दिया गया है, जिसमें Activity के onCreate() तरीके में किसी विज्ञापन को लोड करने का तरीका बताया गया है:

MainActivity (इसे छोड़कर)

Java

package ...

import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public class MainActivity extends AppCompatActivity {
    private AdView mAdView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });

        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }
}

Kotlin

package ...

import ...
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView

class MainActivity : AppCompatActivity() {

    lateinit var mAdView : AdView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        MobileAds.initialize(this) {}

        mAdView = findViewById(R.id.adView)
        val adRequest = AdRequest.Builder().build()
        mAdView.loadAd(adRequest)
    }
}

हो गया! आपका ऐप्लिकेशन अब बैनर विज्ञापन दिखाने के लिए तैयार है.

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

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

AdView के साथ AdListener का इस्तेमाल करने के लिए, setAdListener() तरीका को कॉल करें:

Java

mAdView.setAdListener(new AdListener() {
    @Override
    public void onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    @Override
    public void onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
});

Kotlin

mAdView.adListener = object: AdListener() {
    override fun onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
      // Code to be executed when an ad request fails.
    }

    override fun onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    override fun onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    override fun onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
}

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

ओवरराइड किए गए तरीके
onAdClicked() किसी विज्ञापन के लिए क्लिक रिकॉर्ड किए जाने पर, onAdClicked() तरीका लागू किया जाता है.
onAdClosed() onAdClosed() तरीका तब शुरू की जाती है, जब कोई उपयोगकर्ता किसी विज्ञापन के डेस्टिनेशन यूआरएल (विज्ञापन के लैंडिंग पेज का यूआरएल) देखने के बाद ऐप्लिकेशन पर वापस आता है. निलंबित गतिविधि को फिर से शुरू करने या इंटरैक्शन के लिए खुद को तैयार करने के लिए ज़रूरी किसी भी काम को करने के लिए आपका ऐप्लिकेशन इसका इस्तेमाल कर सकता है. Android एपीआई डेमो ऐप्लिकेशन में, विज्ञापन सुनने के तरीकों को लागू करने के लिए, AdMob AdListener का उदाहरण देखें.
onAdFailedToLoad() सिर्फ़ onAdFailedToLoad() तरीका ही एक पैरामीटर है. LoadAdError प्रकार का गड़बड़ी पैरामीटर बताता है कि क्या गड़बड़ी हुई. ज़्यादा जानकारी के लिए, विज्ञापन लोड करने से जुड़ी गड़बड़ियों का दस्तावेज़ देखें.
onAdImpression() किसी विज्ञापन के लिए इंप्रेशन रिकॉर्ड किए जाने पर, onAdImpression() तरीका लागू किया जाता है.
onAdLoaded() विज्ञापन लोड होने के बाद, onAdLoaded() तरीका लागू किया जाता है. अगर आपको अपनी गतिविधि या फ़्रैगमेंट को AdView में जोड़ने में देरी करनी है, तो पक्का करें कि कोई विज्ञापन लोड हो जाए. उदाहरण के लिए, आप यहां ऐसा कर सकते हैं.
onAdOpened() onAdOpened() तरीका तब शुरू की जाती है, जब कोई विज्ञापन स्क्रीन को कवर करने वाले ओवरले को खोलता है.

नीचे दी गई टेबल में स्टैंडर्ड बैनर साइज़ की सूची दी गई है.

dp में साइज़ (WxH) ब्यौरा उपलब्धता AdSize कॉन्सटेंट
320x50 बैनर फ़ोन और टेबलेट BANNER
320x100 बड़ा बैनर फ़ोन और टेबलेट LARGE_BANNER
300x250 IAB मध्यम आयत फ़ोन और टेबलेट MEDIUM_RECTANGLE
468x60 IAB का फ़ुल साइज़ बैनर टैबलेट FULL_BANNER
728x90 IAB लीडरबोर्ड टैबलेट LEADERBOARD
दी गई चौड़ाई x अडैप्टिव ऊंचाई अडैप्टिव बैनर फ़ोन और टेबलेट लागू नहीं
स्क्रीन की चौड़ाई x 32|50|90 स्मार्ट बैनर फ़ोन और टेबलेट SMART_BANNER
अडैप्टिव बैनर, स्मार्ट बैनर की जगह लेने के बारे में ज़्यादा जानें.

पसंद के मुताबिक बैनर का साइज़ तय करने के लिए, अपनी पसंद के हिसाब से AdSize सेट करें, जैसा कि यहां दिखाया गया है:

Java

AdSize adSize = new AdSize(300, 50);

Kotlin

val adSize = AdSize(300, 50)

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

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

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

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

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

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

अन्य संसाधन

GitHub पर उदाहरण

  • बैनर विज्ञापनों का उदाहरण: Java | Kotlin

  • बेहतर सुविधाओं का डेमो: Java | Kotlin

  • बैनर RecyclerView का सैंपल ऐप्लिकेशन: Java

मोबाइल विज्ञापन गैराज वीडियो ट्यूटोरियल

सफलता की कहानियां