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

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

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

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

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

बैनर दिखाने के लिए सबसे पहले AdView को Activity या Fragment के लेआउट में रखें, जहां आपको इसे दिखाना है. ऐसा करने का सबसे आसान तरीका यह है कि आप एक्सएमएल लेआउट फ़ाइल में किसी एक फ़ॉर्मैट को जोड़ दें. यहां एक उदाहरण दिया गया है जो किसी गतिविधि की 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

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

Mobile Ads SDK के टेस्ट विज्ञापनों के काम करने के तरीके के बारे में ज़्यादा जानने के लिए, विज्ञापन टेस्ट करें देखें.

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

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

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

मुख्य गतिविधि (उदाहरण)

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)
    }
}

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

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

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

अपने विज्ञापन के व्यवहार को और ज़्यादा कस्टमाइज़ करने के लिए, विज्ञापन के लाइफ़साइकल में कई इवेंट जोड़े जा सकते हैं: लोड करना, खोलना, बंद करना वगैरह. इन इवेंट को 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 API डेमो ऐप्लिकेशन में, विज्ञापन सुनने के तरीके लागू करने के लिए, AdMob AdListener का उदाहरण देखें.
onAdFailedToLoad() सिर्फ़ onAdFailedToLoad() तरीके में पैरामीटर शामिल होते हैं. LoadAdError टाइप का गड़बड़ी पैरामीटर, बताता है कि क्या गड़बड़ी हुई. ज़्यादा जानकारी के लिए, विज्ञापन लोड करने से जुड़ी गड़बड़ियों को डीबग करने का दस्तावेज़ देखें.
onAdImpression() जब किसी विज्ञापन के लिए इंप्रेशन रिकॉर्ड किया जाता है, तब onAdImpression() तरीका शुरू किया जाता है.
onAdLoaded() विज्ञापन लोड होने के बाद, onAdLoaded() तरीका चलाया जाता है. अगर आपको, अपनी गतिविधि या फ़्रैगमेंट में AdView को जोड़ने में देरी करनी है, तो यह पक्का करें कि कोई विज्ञापन लोड हो जाएगा. उदाहरण के लिए, यहां ऐसा किया जा सकता है.
onAdOpened() onAdOpened() तरीका तब शुरू किया जाता है, जब कोई विज्ञापन, स्क्रीन को कवर करने वाला ओवरले खोलता है.

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

W/Ads: Not enough space to show ad. Needs 320x50 dp, but only has 288x495 dp.

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

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)

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

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

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

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

अन्य संसाधन

GitHub पर उदाहरण

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

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

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

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

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

अगले चरण

इन विषयों को एक्सप्लोर करें: