ব্যানার বিজ্ঞাপন

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

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

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

পূর্বশর্ত

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

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

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

ca-app-pub-3940256099942544/9214589741

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

মোবাইল বিজ্ঞাপন SDK-এর পরীক্ষার বিজ্ঞাপনগুলি কীভাবে কাজ করে সে সম্পর্কে আরও তথ্যের জন্য, পরীক্ষা বিজ্ঞাপনগুলি দেখুন।

লেআউটে AdView যোগ করুন

একটি ব্যানার প্রদর্শনের দিকে প্রথম পদক্ষেপ হল Activity বা Fragment লেআউটে AdView স্থাপন করা যেখানে আপনি এটি প্রদর্শন করতে চান:

জাভা

private AdSize getAdSize() {
  // Determine the screen width (less decorations) to use for the ad width.
  Display display = getWindowManager().getDefaultDisplay();
  DisplayMetrics outMetrics = new DisplayMetrics();
  display.getMetrics(outMetrics);

  float density = outMetrics.density;

  float adWidthPixels = adContainerView.getWidth();

  // If the ad hasn't been laid out, default to the full screen width.
  if (adWidthPixels == 0) {
    adWidthPixels = outMetrics.widthPixels;
  }

  int adWidth = (int) (adWidthPixels / density);
  return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}

private void loadBanner() {
  
  // Create a new ad view.
  AdView adView = new AdView(this);
  adView.setAdSizes(getAdSize());
  adView.setAdUnitId("ca-app-pub-3940256099942544/9214589741");

  // Replace ad container with new ad view.
  adContainerView.removeAllViews();
  adContainerView.addView(adView);

  // Start loading the ad in the background.
  AdRequest adRequest = new AdRequest.Builder().build();
  adView.loadAd(adRequest);
}

কোটলিন


// Determine the screen width (less decorations) to use for the ad width.
// If the ad hasn't been laid out, default to the full screen width.
private val adSize: AdSize
  get() {
    val display = windowManager.defaultDisplay
    val outMetrics = DisplayMetrics()
    display.getMetrics(outMetrics)

    val density = outMetrics.density

    var adWidthPixels = binding.adViewContainer.width.toFloat()
    if (adWidthPixels == 0f) {
      adWidthPixels = outMetrics.widthPixels.toFloat()
    }

    val adWidth = (adWidthPixels / density).toInt()
    return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
  }

private fun loadBanner() {
  
  // Create a new ad view.
  val adView = AdView(this)
  adView.adSizes = adSize
  adView.adUnitId = "ca-app-pub-3940256099942544/9214589741"

  // Create an ad request.
  val adRequest = AdRequest.Builder().build()

  // Start loading the ad in the background.
  adView.loadAd(adRequest)
}

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

অ্যাডভিউ চালু হয়ে গেলে, পরবর্তী ধাপ হল একটি বিজ্ঞাপন লোড করা। এটি AdView ক্লাসে loadAd() পদ্ধতির মাধ্যমে করা হয়েছে। এটি একটি AdRequest প্যারামিটার লাগে, যেটিতে রানটাইম তথ্য থাকে, যেমন টার্গেটিং তথ্য, একটি একক বিজ্ঞাপন অনুরোধ সম্পর্কে।

এখানে একটি উদাহরণ রয়েছে যা দেখায় কিভাবে একটি Activity onCreate() পদ্ধতিতে একটি বিজ্ঞাপন লোড করতে হয়:

জাভা

private void loadBanner() {
  // Create a new ad view.
  adView = new AdView(this);
  adView.setAdUnitId(AD_UNIT);
  adView.setAdSize(getAdSize());
  
  // Replace ad container with new ad view.
  adContainerView.removeAllViews();
  adContainerView.addView(adView);

  // Start loading the ad in the background.
  AdRequest adRequest = new AdRequest.Builder().build();
  adView.loadAd(adRequest);
}

কোটলিন

private fun loadBanner() {
  // This is an ad unit ID for a test ad. Replace with your own banner ad unit ID.
  adView.adUnitId = "/6499/example/banner"
  adView.setAdSize(adSize)
  
  // Create an ad request.
  val adRequest = AdRequest.Builder().build()

  // Start loading the ad in the background.
  adView.loadAd(adRequest)
}

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

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

বিজ্ঞাপন ঘটনা

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

জাভা

AdView.setAdListener(new AdListener() {
    @Override
    public void onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    @Override
    public void onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
});

কোটলিন

AdView.adListener = object: AdListener() {
    override fun onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
      // Code to be executed when an ad request fails.
    }

    override fun onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    override fun onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    override fun onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
}

AdListener এর প্রতিটি ওভাররিডেবল পদ্ধতি একটি বিজ্ঞাপনের জীবনচক্রের একটি ইভেন্টের সাথে মিলে যায়।

ওভাররিডেবল পদ্ধতি
onAdClicked() একটি বিজ্ঞাপনের জন্য একটি ক্লিক রেকর্ড করা হলে onAdClicked() পদ্ধতিটি চালু করা হয়।
onAdClosed() onAdClosed() পদ্ধতিটি চালু করা হয় যখন একজন ব্যবহারকারী বিজ্ঞাপনের গন্তব্য URL দেখার পরে অ্যাপে ফিরে আসেন। আপনার অ্যাপ স্থগিত ক্রিয়াকলাপগুলি পুনরায় শুরু করতে বা নিজেকে ইন্টারঅ্যাকশনের জন্য প্রস্তুত করতে প্রয়োজনীয় অন্য কোনও কাজ করতে এটি ব্যবহার করতে পারে। Android API ডেমো অ্যাপে বিজ্ঞাপন শ্রোতা পদ্ধতি বাস্তবায়নের জন্য AdMob AdListener উদাহরণ দেখুন।
onAdFailedToLoad() onAdFailedToLoad() পদ্ধতিটি একমাত্র যা একটি প্যারামিটার অন্তর্ভুক্ত করে। LoadAdError টাইপের ত্রুটির প্যারামিটার বর্ণনা করে কী ত্রুটি ঘটেছে। আরও তথ্যের জন্য, ডিবাগিং অ্যাড লোড ত্রুটি ডকুমেন্টেশন পড়ুন।
onAdImpression() onAdImpression() পদ্ধতিটি চালু করা হয় যখন একটি বিজ্ঞাপনের জন্য একটি ইম্প্রেশন রেকর্ড করা হয়।
onAdLoaded() একটি বিজ্ঞাপন লোড করা শেষ হলে onAdLoaded() পদ্ধতিটি কার্যকর করা হয়। আপনি যদি বিজ্ঞাপন লোড হবে বলে নিশ্চিত না হওয়া পর্যন্ত আপনার কার্যকলাপ বা খণ্ডে AdView যোগ করতে দেরি করতে চান, উদাহরণস্বরূপ, আপনি এখানে তা করতে পারেন।
onAdOpened() onAdOpened() পদ্ধতিটি চালু করা হয় যখন একটি বিজ্ঞাপন একটি ওভারলে খোলে যা স্ক্রীনকে কভার করে।

ভিডিও বিজ্ঞাপনের জন্য হার্ডওয়্যার ত্বরণ

আপনার ব্যানার বিজ্ঞাপন দৃশ্যে ভিডিও বিজ্ঞাপনগুলি সফলভাবে দেখানোর জন্য, হার্ডওয়্যার ত্বরণ সক্ষম করতে হবে।

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

হার্ডওয়্যার ত্বরণ সক্ষম করা হচ্ছে

যদি আপনার অ্যাপটি বিশ্বব্যাপী হার্ডওয়্যার ত্বরণ চালু করার সাথে সঠিকভাবে আচরণ না করে, তাহলে আপনি পৃথক কার্যকলাপের জন্যও এটি নিয়ন্ত্রণ করতে পারেন। হার্ডওয়্যার ত্বরণ সক্ষম বা অক্ষম করতে, আপনি আপনার AndroidManifest.xml<application> এবং <activity> উপাদানগুলির জন্য android:hardwareAccelerated বৈশিষ্ট্যটি ব্যবহার করতে পারেন। নিম্নলিখিত উদাহরণটি সম্পূর্ণ অ্যাপের জন্য হার্ডওয়্যার ত্বরণ সক্ষম করে কিন্তু একটি কার্যকলাপের জন্য এটি অক্ষম করে:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

হার্ডওয়্যার ত্বরণ নিয়ন্ত্রণের বিকল্পগুলি সম্পর্কে আরও তথ্যের জন্য হার্ডওয়্যার ত্বরণ নির্দেশিকা দেখুন। মনে রাখবেন যে ক্রিয়াকলাপটি অক্ষম থাকলে হার্ডওয়্যার ত্বরণের জন্য পৃথক বিজ্ঞাপন দৃশ্যগুলি সক্ষম করা যাবে না, তাই ক্রিয়াকলাপে অবশ্যই হার্ডওয়্যার ত্বরণ সক্ষম থাকতে হবে।

অতিরিক্ত সম্পদ

গিটহাবের উদাহরণ

  • অ্যাঙ্কর করা অভিযোজিত ব্যানার বিজ্ঞাপনের উদাহরণ: Java | কোটলিন

পরবর্তী পদক্ষেপ

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

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

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

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

অন্যান্য বিষয় অন্বেষণ