ব্যানার

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

এই নির্দেশিকা আপনাকে অ্যাঙ্কর করা অভিযোজিত ব্যানার বিজ্ঞাপন দিয়ে শুরু করে। অ্যাঙ্কর করা অভিযোজিত ব্যানারগুলি আপনার নির্দিষ্ট করা বিজ্ঞাপনের প্রস্থ ব্যবহার করে প্রতিটি ডিভাইসের জন্য বিজ্ঞাপনের আকার অপ্টিমাইজ করে।

অ্যাঙ্কর করা অভিযোজিত ব্যানার বিজ্ঞাপনগুলি নির্দিষ্ট আকারের বিজ্ঞাপনের পরিবর্তে নির্দিষ্ট আকৃতির অনুপাতের বিজ্ঞাপন। আকৃতির অনুপাত 320x50 এর মতো। একবার আপনি উপলব্ধ সম্পূর্ণ প্রস্থ উল্লেখ করলে, Google মোবাইল বিজ্ঞাপন SDK সেই প্রস্থের জন্য সর্বোত্তম উচ্চতা সহ একটি বিজ্ঞাপন প্রদান করে। বিজ্ঞাপনের জন্য সর্বোত্তম উচ্চতা বিভিন্ন বিজ্ঞাপনের অনুরোধে স্থির থাকে এবং বিজ্ঞাপনটি রিফ্রেশ করার সময় বিজ্ঞাপনের আশেপাশের বিষয়বস্তু ঠিক থাকে।

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

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

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

অ্যান্ড্রয়েড

ca-app-pub-3940256099942544/9214589741

iOS

ca-app-pub-3940256099942544/2435281174

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

বিজ্ঞাপনের আকার পান

সঠিক বিজ্ঞাপনের আকার সহ একটি ব্যানার বিজ্ঞাপনের অনুরোধ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. MediaQuery.of(context) ব্যবহার করে ঘনত্ব-স্বাধীন পিক্সেলে (dp) ডিভাইসের স্ক্রিনের প্রস্থ পান। আপনি যদি পূর্ণ পর্দার প্রস্থ ব্যবহার করতে না চান তবে আপনি নিজের প্রস্থ সেট করতে পারেন।

  2. একটি AdSize অবজেক্ট পেতে AdSize ক্লাসে উপযুক্ত স্ট্যাটিক পদ্ধতি ব্যবহার করুন। উদাহরণস্বরূপ, বর্তমান ওরিয়েন্টেশনের জন্য বিজ্ঞাপনের আকার পেতে AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(int width) ব্যবহার করুন।

// Get an AnchoredAdaptiveBannerAdSize before loading the ad.
final size = await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(
    MediaQuery.sizeOf(context).width.truncate());

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

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

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/9214589741'
    : 'ca-app-pub-3940256099942544/2435281174';

  /// Loads a banner ad.
  void loadAd() async {
    // Get an AnchoredAdaptiveBannerAdSize before loading the ad.
    final size = await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(
        MediaQuery.sizeOf(context).width.truncate());

    _bannerAd = BannerAd(
      adUnitId: adUnitId,
      request: const AdRequest(),
      size: size,
      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();
  }
}

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/9214589741'
    : 'ca-app-pub-3940256099942544/2435281174';


  /// Loads a banner ad.
  void loadAd() async {
    // Get an AnchoredAdaptiveBannerAdSize before loading the ad.
    final size = await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(
        MediaQuery.sizeOf(context).width.truncate());

    _bannerAd = BannerAd(
      adUnitId: adUnitId,
      request: const AdRequest(),
      size: size,
      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();
  }
}

একটি বিজ্ঞাপন রিফ্রেশ করুন

আপনি যদি রিফ্রেশ করার জন্য আপনার বিজ্ঞাপন ইউনিট কনফিগার করেন, বিজ্ঞাপনটি লোড হতে ব্যর্থ হলে আপনাকে অন্য বিজ্ঞাপনের অনুরোধ করতে হবে না। Google মোবাইল বিজ্ঞাপন SDK আপনার AdMob UI-তে নির্দিষ্ট করা যেকোনো রিফ্রেশ রেটকে সম্মান করে। আপনি যদি রিফ্রেশ সক্ষম না করে থাকেন তবে একটি নতুন অনুরোধ জারি করুন৷ বিজ্ঞাপন ইউনিট রিফ্রেশ সম্পর্কে আরও বিশদ বিবরণের জন্য, যেমন একটি রিফ্রেশ রেট সেট করা, ব্যানার বিজ্ঞাপনের জন্য স্বয়ংক্রিয় রিফ্রেশ ব্যবহার করুন দেখুন।

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

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

AdWidget Flutter's Widget ক্লাস থেকে উত্তরাধিকারসূত্রে প্রাপ্ত এবং অন্য যেকোনো উইজেটের মতো ব্যবহার করা যেতে পারে। 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() কলব্যাকে।

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

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

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

GitHub এ সম্পূর্ণ উদাহরণ

banner_example- এ এই পৃষ্ঠায় ব্যানার ইন্টিগ্রেশনের একটি সম্পূর্ণ উদাহরণ দেখুন।

অন্যান্য ব্যানার প্রকার সম্পর্কে জানুন

আপনার ফ্লটার অ্যাপ্লিকেশনের জন্য এই বিভাগে সংজ্ঞায়িত অন্যান্য ধরণের ব্যানারগুলির সাথে নিজেকে পরিচিত করুন৷

ইনলাইন অভিযোজিত ব্যানার

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

সংকোচনযোগ্য ব্যানার

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