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

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

इस गाइड में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

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

मोबाइल विज्ञापन 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 मोबाइल विज्ञापन 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

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

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

अगले चरण

यहां दिए गए विषयों के बारे में जानें: