ব্যানার

ব্যানার বিজ্ঞাপনগুলি ডিভাইস স্ক্রিনের উপরে বা নীচে একটি অ্যাপের লেআউটের মধ্যে একটি স্থান দখল করে। ব্যবহারকারীরা অ্যাপের সাথে ইন্টারঅ্যাক্ট করার সময় তারা স্ক্রিনে থাকে এবং একটি নির্দিষ্ট সময়ের পরে স্বয়ংক্রিয়ভাবে রিফ্রেশ করতে পারে।

এই নির্দেশিকাটি দেখায় কিভাবে একটি ফ্লাটার অ্যাপে অ্যাড ম্যানেজার থেকে ব্যানার বিজ্ঞাপনগুলিকে একীভূত করতে হয়৷ কোড স্নিপেট এবং নির্দেশাবলী ছাড়াও, এতে ব্যানারগুলি সঠিকভাবে আকার দেওয়ার বিষয়ে তথ্যও রয়েছে৷

সর্বদা পরীক্ষার বিজ্ঞাপন দিয়ে পরীক্ষা করুন

আপনার অ্যাপ তৈরি এবং পরীক্ষা করার সময়, নিশ্চিত করুন যে আপনি লাইভ, প্রোডাকশন বিজ্ঞাপনের পরিবর্তে পরীক্ষামূলক বিজ্ঞাপন ব্যবহার করছেন। এটি করতে ব্যর্থ হলে আপনার অ্যাকাউন্ট স্থগিত হতে পারে।

টেস্ট বিজ্ঞাপন লোড করার সবচেয়ে সহজ উপায় হল ব্যানারের জন্য আমাদের ডেডিকেটেড টেস্ট বিজ্ঞাপন ইউনিট আইডি ব্যবহার করা:

/21775744923/example/adaptive-banner

পরীক্ষার বিজ্ঞাপন ইউনিটগুলি প্রতিটি অনুরোধের জন্য পরীক্ষার বিজ্ঞাপনগুলি ফেরত দেওয়ার জন্য কনফিগার করা হয়েছে এবং আপনি কোডিং, পরীক্ষা এবং ডিবাগ করার সময় আপনার নিজের অ্যাপগুলিতে সেগুলি ব্যবহার করতে পারবেন৷ আপনার অ্যাপ প্রকাশ করার আগে শুধু নিশ্চিত করুন যে আপনি সেগুলিকে আপনার নিজস্ব বিজ্ঞাপন ইউনিট আইডি দিয়ে প্রতিস্থাপন করেছেন।

একটি বিজ্ঞাপন লোড করুন

নিম্নলিখিত উদাহরণটি একটি ব্যানার বিজ্ঞাপনকে তাৎক্ষণিকভাবে নির্দেশ করে:

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

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = '/21775744923/example/adaptive-banner';

  /// Loads a banner ad.
  void loadAd() {
    _bannerAd = AdManagerBannerAd(
      adUnitId: adUnitId,
      request: const AdManagerAdRequest(),
      size: AdSize.banner,
      listener: AdManagerBannerAdListener(
        // 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('AdManagerBannerAd failed to load: $error');
          // Dispose the ad here to free resources.
          ad.dispose();
        },
      ),
    )..load();
  }
}

নিচের সারণীতে স্ট্যান্ডার্ড ব্যানারের মাপ তালিকা করা আছে।

dp তে আকার (WxH) বর্ণনা বিজ্ঞাপন আকার ধ্রুবক
320x50 স্ট্যান্ডার্ড ব্যানার banner
320x100 বড় ব্যানার largeBanner
320x250 মাঝারি আয়তক্ষেত্র mediumRectangle
468x60 পূর্ণ আকারের ব্যানার fullBanner
728x90 লিডারবোর্ড leaderboard
প্রদত্ত প্রস্থ x অভিযোজিত উচ্চতা অভিযোজিত ব্যানার N/A

একটি কাস্টম ব্যানার আকার নির্ধারণ করতে, আপনার পছন্দের AdSize সেট করুন:

final AdSize adSize = AdSize(300, 50);

AdManagerBannerAdListener ব্যবহারের মাধ্যমে, আপনি লাইফসাইকেল ইভেন্টগুলি শুনতে পারেন, যেমন যখন একটি বিজ্ঞাপন লোড হয়৷ এই উদাহরণটি প্রতিটি পদ্ধতি প্রয়োগ করে এবং কনসোলে একটি বার্তা লগ করে:

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

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = '/21775744923/example/adaptive-banner';


  /// Loads a banner ad.
  void loadAd() {
    _bannerAd = AdManagerBannerAd(
      adUnitId: adUnitId,
      request: const AdManagerAdRequest(),
      size: AdSize.banner,
      listener: AdManagerBannerAdListener(
        // 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('AdManagerBannerAd 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();
  }
}

একটি ব্যানার বিজ্ঞাপন প্রদর্শন করুন

একটি AdManagerBannerAd একটি উইজেট হিসাবে প্রদর্শন করতে, আপনাকে load() কল করার পরে একটি সমর্থিত বিজ্ঞাপন সহ একটি AdWidget ইনস্ট্যান্টিয়েট করতে হবে। load() কল করার আগে আপনি উইজেট তৈরি করতে পারেন, কিন্তু উইজেট ট্রিতে যোগ করার আগে load() কল করতে হবে।

AdWidget Flutter's Widget ক্লাস থেকে উত্তরাধিকারসূত্রে প্রাপ্ত এবং অন্য যেকোনো উইজেটের মতো ব্যবহার করা যেতে পারে। iOS এ, নিশ্চিত করুন যে আপনি একটি নির্দিষ্ট প্রস্থ এবং উচ্চতা সহ একটি উইজেটে উইজেট স্থাপন করেছেন৷ অন্যথায়, আপনার বিজ্ঞাপন প্রদর্শিত হতে পারে না. একটি AdManagerBannerAd বিজ্ঞাপনের সাথে মেলে এমন একটি আকার সহ একটি পাত্রে স্থাপন করা যেতে পারে:

...
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 সরানোর পরে অথবা AdManagerBannerAdListener.onAdFailedToLoad() কলব্যাকে।

তাই তো! আপনার অ্যাপ এখন ব্যানার বিজ্ঞাপন প্রদর্শনের জন্য প্রস্তুত।

অ্যান্ড্রয়েড 9 এবং নীচের স্ক্রোলিং সীমাবদ্ধতা

আমরা সচেতন যে Android 9 বা তার আগের কিছু পুরানো বা কম শক্তিশালী ডিভাইসে স্ক্রলিং ভিউয়ের মধ্যে ইনলাইন ব্যানার বিজ্ঞাপন প্রদর্শন করার সময় সাবঅপ্টিমাল পারফরম্যান্স থাকতে পারে। আমরা শুধুমাত্র Android 10 বা তার পরবর্তী সংস্করণে এই ধরনের ব্যানার ব্যবহার করার পরামর্শ দিই। স্থির অবস্থানের ব্যানার যেমন অ্যাঙ্কর করা ব্যানার প্রভাবিত হয় না এবং সমস্ত Android API স্তরে সর্বোত্তম কর্মক্ষমতা সহ ব্যবহার করা যেতে পারে।