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

প্ল্যাটফর্ম বেছে নিন: Android iOS Unity Flutter Android (Legacy)

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

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

অ্যাঙ্কর করা অ্যাডাপ্টিভ ব্যানার বিজ্ঞাপন হল নির্দিষ্ট অ্যাস্পেক্ট রেশিও বিজ্ঞাপন, এগুলি নির্দিষ্ট সাইজের বিজ্ঞাপন নয়। অ্যাস্পেক্ট রেশিও হল ৩২০x৫০-এর মতো। উপলভ্য সম্পূর্ণ প্রস্থ উল্লেখ করার পরে, 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.');
},

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

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

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

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 অ্যাপ্লিকেশনের জন্য এই বিভাগে সংজ্ঞায়িত অন্যান্য ধরনের ব্যানার সম্পর্কে জানুন।

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

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

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

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