बैनर

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

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

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

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

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

Android

ca-app-pub-3940256099942544/6300978111

iOS

ca-app-pub-3940256099942544/2934735716

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

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

नीचे दिया गया उदाहरण बैनर विज्ञापन को इंस्टैंशिएट करता है:

class BannerExampleState extends State<BannerExample> {
  BannerAd? _bannerAd;
  bool _isLoaded = false;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = Platform.isAndroid
    ? 'ca-app-pub-3940256099942544/6300978111'
    : 'ca-app-pub-3940256099942544/2934735716';

  /// Loads a banner ad.
  void loadAd() {
    _bannerAd = BannerAd(
      adUnitId: adUnitId,
      request: const AdRequest(),
      size: AdSize.banner,
      listener: BannerAdListener(
        // Called when an ad is successfully received.
        onAdLoaded: (ad) {
          debugPrint('$ad loaded.');
          setState(() {
            _isLoaded = true;
          });
        },
        // Called when an ad request failed.
        onAdFailedToLoad: (ad, err) {
          debugPrint('BannerAd failed to load: $error');
          // Dispose the ad here to free resources.
          ad.dispose();
        },
      ),
    )..load();
  }
}

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

dp में साइज़ (WxH) ब्यौरा AdSize कॉन्सटेंट
320x50 स्टैंडर्ड बैनर banner
320x100 बड़ा बैनर largeBanner
320x250 मध्यम आयत mediumRectangle
468x60 फ़ुल-साइज़ बैनर fullBanner
728x90 लीडरबोर्ड leaderboard
दी गई चौड़ाई x ज़रूरत के हिसाब से ऊंचाई अडैप्टिव बैनर लागू नहीं

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

final AdSize adSize = AdSize(300, 50);

BannerAdListener का इस्तेमाल करके, लाइफ़साइकल इवेंट को सुना जा सकता है, जैसे का इस्तेमाल करें. यह उदाहरण हर तरीके को लागू करता है और मैसेज लॉग करता है कंसोल में जोड़ें:

class BannerExampleState extends State<BannerExample> {
  BannerAd? _bannerAd;
  bool _isLoaded = false;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = Platform.isAndroid
    ? 'ca-app-pub-3940256099942544/6300978111'
    : 'ca-app-pub-3940256099942544/2934735716';


  /// Loads a banner ad.
  void loadAd() {
    _bannerAd = BannerAd(
      adUnitId: adUnitId,
      request: const AdRequest(),
      size: AdSize.banner,
      listener: BannerAdListener(
        // Called when an ad is successfully received.
        onAdLoaded: (ad) {
          debugPrint('$ad loaded.');
          setState(() {
            _isLoaded = true;
          });
        },
        // Called when an ad request failed.
        onAdFailedToLoad: (ad, err) {
          debugPrint('BannerAd failed to load: $error');
          // Dispose the ad here to free resources.
          ad.dispose();
        },
        // Called when an ad opens an overlay that covers the screen.
        onAdOpened: (Ad ad) {},
        // Called when an ad removes an overlay that covers the screen.
        onAdClosed: (Ad ad) {},
        // Called when an impression occurs on the ad.
        onAdImpression: (Ad ad) {},
      ),
    )..load();
  }
}

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

BannerAd को विजेट के तौर पर दिखाने के लिए, आपको AdWidget इंस्टैंशिएट करना होगा load() को कॉल करने के बाद एक समर्थित विज्ञापन के साथ. इस तारीख से पहले भी विजेट बनाया जा सकता है load() को कॉल किया जा रहा है, लेकिन load() को विजेट में जोड़ने से पहले कॉल करना ज़रूरी है पेड़

AdWidget को Flutter के विजेट क्लास से इनहेरिट किया जाता है और इसे किसी भी दूसरे की तरह इस्तेमाल किया जा सकता है विजेट. iOS पर, पक्का करें कि आपने विजेट को चौड़ाई और ऊंचाई. ऐसा नहीं करने पर, हो सकता है कि आपका विज्ञापन न दिखे. BannerAd को विज्ञापन से मेल खाने वाले आकार के कंटेनर में रखा जा सकता है:

...
if (_bannerAd != null) {
  Align(
    alignment: Alignment.bottomCenter,
    child: SafeArea(
      child: SizedBox(
        width: _bannerAd!.size.width.toDouble(),
        height: _bannerAd!.size.height.toDouble(),
        child: AdWidget(ad: _bannerAd!),
      ),
    ),
  )
}
...

जब किसी विज्ञापन की ज़रूरत न हो, तब उसे हटा देना चाहिए. dispose() को कब कॉल करना है, यह तय करने के लिए सबसे सही तरीका यह है कि AdWidget को विजेट ट्री से हटाने के बाद या BannerAdListener.onAdFailedToLoad() कॉलबैक में ऐसा किया जाए.

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

Android 9 और इससे पहले के वर्शन पर स्क्रोल करने की सीमा

हमें पता है कि Android 9 या इसके बाद के वर्शन पर चलने वाले कुछ पुराने या कम क्षमता वाले डिवाइस की परफ़ॉर्मेंस पर खराब असर पड़ सकता है स्क्रोलिंग व्यू में इनलाइन बैनर विज्ञापन दिखाते समय. हमारा सुझाव है कि आप सिर्फ़ इस तरह के बैनर का इस्तेमाल Android 10 या उसके बाद के वर्शन पर करते हैं. फ़िक्स पोज़िशन वाले बैनर, जैसे ऐसा इसलिए, क्योंकि ऐंकर वाले बैनर पर इसका कोई असर नहीं होता है. साथ ही, इन विज्ञापनों की परफ़ॉर्मेंस बेहतर होने पर इनका इस्तेमाल किया जा सकता है सभी Android एपीआई लेवल में.

GitHub पर उदाहरण देखें

बैनर