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

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

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

পূর্বশর্ত

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

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

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

/21775744923/example/adaptive-banner

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

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

বিজ্ঞাপনের দৃশ্য নির্ধারণ করুন

XML লেআউট

আপনার অ্যাঙ্করড অ্যাডাপটিভ ব্যানার বিজ্ঞাপনের কন্টেইনার হিসেবে কাজ করার জন্য আপনার লেআউট XML ফাইলে একটি ভিউ যোগ করুন:

<!-- Ad view container that fills the width of the screen and adjusts its
    height to the content of the ad. -->
<FrameLayout
        android:id="@+id/ad_view_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_alignParentBottom="true" />

জেটপ্যাক কম্পোজ

  1. JetpackComposeDemo/compose-util মডিউলটি অন্তর্ভুক্ত করুন। এই মডিউলটিতে AdView অবজেক্ট এবং সম্পদ রচনার জন্য সহায়ক অন্তর্ভুক্ত রয়েছে।

  2. compose-util মডিউল থেকে একটি BannerAd ক্লাস রচনা করুন:


// Place the ad view at the bottom of the screen.
Column(modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Bottom) {
  Box(modifier = modifier.fillMaxWidth()) { AdManagerBannerAd(adView, modifier) }
}

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

AdSize একটি নির্দিষ্ট প্রস্থ সহ একটি অ্যাঙ্করড অ্যাডাপটিভ ব্যানার টাইপে সেট করুন:

জাভা

// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360));

কোটলিন

// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360))

জেটপ্যাক কম্পোজ


// Set the adaptive banner ad size with a given width.
val adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(LocalContext.current, 360)
adView.setAdSize(adSize)

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

আপনার অ্যাপের লেআউটে বিজ্ঞাপনের আকার যোগ করার জন্য একটি AdManagerAdView তৈরি করুন:

জাভা


// Create a new ad view.
adView = new AdManagerAdView(this);
adView.setAdUnitId(AD_UNIT);
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360));

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

কোটলিন


// Create a new ad view.
val adView = AdManagerAdView(this)
adView.adUnitId = AD_UNIT_ID
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360))
this.adView = adView

// Replace ad container with new ad view.
binding.adViewContainer.removeAllViews()
binding.adViewContainer.addView(adView)

জেটপ্যাক কম্পোজ


val adView = remember { AdManagerAdView(context) }

// Setup and load the adview.
// Set the unique ID for this specific ad unit.
adView.adUnitId = ADMANANGER_ADAPTIVE_BANNER_AD_UNIT_ID

// Set the adaptive banner ad size with a given width.
val adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(LocalContext.current, 360)
adView.setAdSize(adSize)

// Place the ad view at the bottom of the screen.
Column(modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Bottom) {
  Box(modifier = modifier.fillMaxWidth()) { AdManagerBannerAd(adView, modifier) }
}

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

AdManagerAdView একবার তৈরি হয়ে গেলে, পরবর্তী ধাপ হল একটি বিজ্ঞাপন লোড করা। এটি AdManagerAdView ক্লাসে loadAd() পদ্ধতি ব্যবহার করে করা হয়। এটির জন্য একটি AdManagerAdRequest প্যারামিটার লাগে, যা একটি বিজ্ঞাপন অনুরোধ সম্পর্কে রানটাইম তথ্য, যেমন টার্গেটিং তথ্য ধারণ করে।

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

জাভা

AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build();
adView.loadAd(adRequest);

কোটলিন

val adRequest = AdManagerAdRequest.Builder().build()
adView.loadAd(adRequest)

সফল হলে, আপনার অ্যাপটি ব্যানার বিজ্ঞাপন প্রদর্শনের জন্য প্রস্তুত।

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

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

একটি বিজ্ঞাপন রিসোর্স প্রকাশ করুন

যখন আপনি একটি ব্যানার বিজ্ঞাপন ব্যবহার শেষ করবেন, তখন আপনি ব্যানার বিজ্ঞাপনের রিসোর্সগুলি প্রকাশ করতে পারবেন।

বিজ্ঞাপনের রিসোর্স প্রকাশ করতে, আপনাকে ভিউ হায়ারার্কি থেকে বিজ্ঞাপনটি সরিয়ে ফেলতে হবে এবং এর সমস্ত রেফারেন্স বাদ দিতে হবে:

জাভা

public void destroyBanner() {
  // Remove banner from view hierarchy.
  if (adView != null) {
    View parentView = (View) adView.getParent();
    if (parentView instanceof ViewGroup) {
      ((ViewGroup) parentView).removeView(adView);
    }

    // Destroy the banner ad resources.
    adView.destroy();
  }

  // Drop reference to the banner ad.
  adView = null;
}

কোটলিন

fun destroyBanner() {
  // Remove banner from view hierarchy.
  val parentView = adView?.parent
  if (parentView is ViewGroup) {
    parentView.removeView(adView)
  }

  // Destroy the banner ad resources.
  adView?.destroy()

  // Drop reference to the banner ad.
  adView = null
}

বিজ্ঞাপন ইভেন্ট

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

জাভা

if (adView != null) {
  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(@NonNull 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() কোনও ব্যবহারকারী যখন কোনও বিজ্ঞাপনের গন্তব্য URL দেখার পরে অ্যাপে ফিরে আসে তখন onAdClosed() পদ্ধতিটি ব্যবহার করা হয়। আপনার অ্যাপটি স্থগিত ক্রিয়াকলাপগুলি পুনরায় শুরু করতে বা ইন্টারঅ্যাকশনের জন্য নিজেকে প্রস্তুত করার জন্য প্রয়োজনীয় অন্য কোনও কাজ সম্পাদন করতে এটি ব্যবহার করতে পারে।
onAdFailedToLoad() onAdFailedToLoad() পদ্ধতিতেই একমাত্র প্যারামিটার থাকে। LoadAdError ধরণের ত্রুটি প্যারামিটারটি কী ত্রুটি ঘটেছে তা বর্ণনা করে। আরও তথ্যের জন্য, ডিবাগিং বিজ্ঞাপন লোড ত্রুটি ডকুমেন্টেশন দেখুন।
onAdImpression() যখন কোনও বিজ্ঞাপনের জন্য কোনও ইম্প্রেশন রেকর্ড করা হয় তখন onAdImpression() পদ্ধতিটি ব্যবহার করা হয়।
onAdLoaded() কোনও বিজ্ঞাপন লোড হওয়া শেষ হলে onAdLoaded() পদ্ধতিটি কার্যকর করা হয়। উদাহরণস্বরূপ, যদি আপনি নিশ্চিত না হন যে কোনও বিজ্ঞাপন লোড হবে, তাহলে আপনার কার্যকলাপ বা অংশে AdManagerAdView যোগ করা বিলম্বিত করতে চান, তাহলে আপনি এখানে তা করতে পারেন।
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>

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

ম্যানুয়াল ইম্প্রেশন গণনা

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

কোন ইম্প্রেশন কখন রেকর্ড করা উচিত তার জন্য যদি আপনার বিশেষ শর্ত থাকে, তাহলে আপনি ম্যানুয়ালি বিজ্ঞাপন ম্যানেজারে ইম্প্রেশন পিং পাঠাতে পারেন:

জাভা

if (adManagerAdView != null) {
  adManagerAdView.setManualImpressionsEnabled(true);
}

কোটলিন

adManagerAdView?.setManualImpressionsEnabled(true)

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

জাভা

if (adManagerAdView != null) {
  adManagerAdView.recordManualImpression();
}

কোটলিন

adManagerAdView?.recordManualImpression()

অ্যাপ ইভেন্ট

অ্যাপ ইভেন্টগুলি আপনাকে এমন বিজ্ঞাপন তৈরি করতে দেয় যা তাদের অ্যাপ কোডে বার্তা পাঠাতে পারে। এরপর অ্যাপটি এই বার্তাগুলির উপর ভিত্তি করে পদক্ষেপ নিতে পারে।

আপনি AppEventListener ব্যবহার করে বিজ্ঞাপন ম্যানেজার নির্দিষ্ট অ্যাপ ইভেন্টগুলি শুনতে পারেন। এই ইভেন্টগুলি বিজ্ঞাপনের জীবনচক্রের যেকোনো সময় ঘটতে পারে, এমনকি onAdLoaded() কল করার আগেও।

আপনার AdManagerAdViewAppEventListener সেট করুন:

জাভা

if (adManagerAdView != null) {
  adManagerAdView.setAppEventListener(this);
}

কোটলিন

adManagerAdView?.appEventListener = this

রঙের নামের অ্যাপ ইভেন্টের উপর নির্ভর করে আপনার অ্যাপের ব্যাকগ্রাউন্ডের রঙ কীভাবে পরিবর্তন করবেন তা দেখানোর একটি উদাহরণ এখানে দেওয়া হল:

জাভা

@Override
public void onAppEvent(@NonNull String name, @NonNull String info) {
  if (name.equals("color")) {
    switch (info) {
      case "green":
        // Set background color to green.
        break;
      case "blue":
        // Set background color to blue.
        break;
      default:
        // Set background color to black.
        break;
    }
  }
}

কোটলিন

override fun onAppEvent(name: String, info: String) {
  if (name == "color") {
    when (info) {
      "green" -> {
        // Set background color to green.
      }
      "blue" -> {
        // Set background color to blue.
      }
      else -> {
        // Set background color to black.
      }
    }
  }
}

এবং, এখানে সংশ্লিষ্ট সৃজনশীলটি রয়েছে যা শ্রোতাদের কাছে রঙিন অ্যাপ ইভেন্ট বার্তা পাঠায়:

<html>
<head>
  <script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
  <script>
    document.addEventListener("DOMContentLoaded", function() {
      // Send a color=green event when ad loads.
      admob.events.dispatchAppEvent("color", "green");

      document.getElementById("ad").addEventListener("click", function() {
        // Send a color=blue event when ad is clicked.
        admob.events.dispatchAppEvent("color", "blue");
      });
    });
  </script>
  <style>
    #ad {
      width: 320px;
      height: 50px;
      top: 0px;
      left: 0px;
      font-size: 24pt;
      font-weight: bold;
      position: absolute;
      background: black;
      color: white;
      text-align: center;
    }
  </style>
</head>
<body>
  <div id="ad">Carpe diem!</div>
</body>
</html>

API ডেমো অ্যাপে অ্যাপ ইভেন্ট বাস্তবায়নের জন্য বিজ্ঞাপন ম্যানেজার অ্যাপ ইভেন্টের উদাহরণ দেখুন।

জাভা কোটলিন জেটপ্যাক কম্পোজ

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

কলাপসিবল ব্যানার

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

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

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

অন্যান্য বিষয়গুলি অন্বেষণ করুন