ব্যানার বিজ্ঞাপন সেট-আপ করা

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

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

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

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

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

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

Android

ca-app-pub-3940256099942544/9214589741

iOS

ca-app-pub-3940256099942544/2435281174

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

বিজ্ঞাপনের সাইজ জানা

বড় অ্যাডাপ্টিভ ব্যানার আরও বড় ফর্ম্যাট প্রদান করে যা স্ক্রল করা যায় না এমন লেআউটের জন্য ডিজাইন করা হয়েছে। স্ট্যান্ডার্ড অ্যাঙ্কর করা অ্যাডাপ্টিভ ব্যানারের তুলনায়, এই ব্যানারগুলি আরও বেশি উচ্চতার (স্ক্রিনের উচ্চতার ২০% পর্যন্ত, ৫০ থেকে ১৫০ ডিপি-র মধ্যে) অনুমতি দেয়। এই বর্ধিত স্পেস ভিডিও কন্টেন্টের জন্য অপ্টিমাইজ করা হয়েছে।

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

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

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

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

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

নিম্নলিখিত উদাহরণটি একটি ব্যানার বিজ্ঞাপন লোড করে:

void _loadAd() async {
  // Get an AnchoredAdaptiveBannerAdSize before loading the ad.
  final size = await AdSize.getLargeAnchoredAdaptiveBannerAdSize(
    MediaQuery.sizeOf(context).width.truncate(),
  );

  if (size == null) {
    // Unable to get width of anchored banner.
    return;
  }

  unawaited(
    BannerAd(
      adUnitId: "_adUnitId",
      request: const AdRequest(),
      size: size,
      listener: BannerAdListener(
        onAdLoaded: (ad) {
          // Called when an ad is successfully received.
          debugPrint('Ad was loaded.');
          setState(() {
            _bannerAd = ad as BannerAd;
          });
        },
        onAdFailedToLoad: (ad, err) {
          // Called when an ad request failed.
          debugPrint('Ad failed to load with error: $err');
          ad.dispose();
        },
      ),
    ).load(),
  );
}

_adUnitId-এর জায়গায় আপনার বিজ্ঞাপন ইউনিটের আইডি লিখুন।

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

onAdOpened: (Ad ad) {
  // Called when an ad opens an overlay that covers the screen.
  debugPrint('Ad was opened.');
},
onAdClosed: (Ad ad) {
  // Called when an ad removes an overlay that covers the screen.
  debugPrint('Ad was closed.');
},
onAdImpression: (Ad ad) {
  // Called when an impression occurs on the ad.
  debugPrint('Ad recorded an impression.');
},
onAdClicked: (Ad ad) {
  // Called when a click event occurs on the ad.
  debugPrint('Ad was clicked.');
},
onAdWillDismissScreen: (Ad ad) {
  // iOS only. Called before dismissing a full screen view.
  debugPrint('Ad will be dismissed.');
},

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

আপনি যদি রিফ্রেশ করার জন্য আপনার বিজ্ঞাপন ইউনিট কনফিগার করে থাকেন, তাহলে বিজ্ঞাপন লোড না হলে আপনাকে অন্য বিজ্ঞাপনের জন্য অনুরোধ করতে হবে না। AdMob UI-তে আপনার উল্লেখ করা যেকোনও রিফ্রেশ রেট Google Mobile Ads Flutter Plugin মেনে চলে। আপনি রিফ্রেশ করার সুবিধা চালু না করে থাকলে, নতুন অনুরোধ করুন। বিজ্ঞাপন ইউনিট রিফ্রেশ করার ব্যাপারে আরও জানতে, যেমন রিফ্রেশ রেট সেট করা, দেখুন ব্যানার বিজ্ঞাপনের জন্য অটোমেটিক রিফ্রেশ ব্যবহার করুন।

ব্যানার বিজ্ঞাপন দেখানো

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

AdWidget Flutter-এর 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() কলব্যাকে।

ব্যস, এটুকুই যথেষ্ট! আপনার অ্যাপ এখন ব্যানার বিজ্ঞাপন দেখানোর জন্য রেডি।

Android 9 এবং তার আগের ভার্সনে স্ক্রল করার ক্ষেত্রে সীমাবদ্ধতা

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

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

সম্পূর্ণ উদাহরণ দেখতে, API ডেমো দেখুন।

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

আপনার Flutter অ্যাপ্লিকেশনের জন্য এই বিভাগে সংজ্ঞায়িত অন্যান্য ধরনের ব্যানার সম্পর্কে জানুন।

ইনলাইন অ্যাডাপ্টিভ ব্যানার

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

আড়াল করা যায় এমন ব্যানার

আড়াল করা যায় এমন ব্যানার বিজ্ঞাপন হল এমন ব্যানার বিজ্ঞাপন যা প্রথমে বড় ওভারলে হিসেবে দেখানো হয়, এতে বিজ্ঞাপনটি ছোট করার জন্য একটি বোতাম থাকে। আপনার পারফর্ম্যান্স আরও অপ্টিমাইজ করতে এই ব্যানার ব্যবহার করার কথা বিবেচনা করুন। আরও জানতে, আড়াল করা যায় এমন ব্যানার বিজ্ঞাপন দেখুন।