এই নির্দেশিকায় একটি অ্যান্ড্রয়েড অ্যাপে অ্যাঙ্করড অ্যাডাপ্টিভ ব্যানার বিজ্ঞাপন লোড করার পদ্ধতি আলোচনা করা হয়েছে।
পূর্বশর্ত
- Google Mobile Ads SDK সেট আপ করুন ।
- ঐচ্ছিক: ব্যানার বিজ্ঞাপনের বাস্তবায়নের একটি উদাহরণ দেখতে, নিম্নলিখিত নমুনা অ্যাপগুলো থেকে একটি বেছে নিন:
- জাভা , কোটলিন বা জেটপ্যাক কম্পোজ ব্যবহার করে তৈরি অ্যাঙ্করড অ্যাডাপ্টিভ ব্যানার বিজ্ঞাপনের উদাহরণ।
- জাভা বা কোটলিনের উন্নত বৈশিষ্ট্যগুলির ডেমো।
সর্বদা টেস্ট অ্যাড দিয়ে পরীক্ষা করুন
আপনার অ্যাপ তৈরি ও পরীক্ষা করার সময়, লাইভ বা প্রোডাকশন অ্যাডের পরিবর্তে টেস্ট অ্যাড ব্যবহার করুন। এটি করতে ব্যর্থ হলে আপনার অ্যাকাউন্ট সাসপেন্ড হতে পারে।
টেস্ট বিজ্ঞাপন লোড করার সবচেয়ে সহজ উপায় হলো অ্যান্ড্রয়েড ব্যানারের জন্য আমাদের নির্দিষ্ট টেস্ট অ্যাড ইউনিট আইডি ব্যবহার করা:
ca-app-pub-3940256099942544/9214589741
প্রতিটি অনুরোধের জন্য পরীক্ষামূলক বিজ্ঞাপন দেখানোর জন্য এটি বিশেষভাবে কনফিগার করা হয়েছে, এবং আপনি কোডিং, টেস্টিং ও ডিবাগিং করার সময় আপনার নিজের অ্যাপে এটি ব্যবহার করতে পারেন। শুধু আপনার অ্যাপটি প্রকাশ করার আগে নিশ্চিত হয়ে নেবেন যে আপনি এটিকে আপনার নিজের অ্যাড ইউনিট আইডি দিয়ে প্রতিস্থাপন করেছেন।
Google Mobile Ads SDK টেস্ট অ্যাড কীভাবে কাজ করে সে সম্পর্কে আরও তথ্যের জন্য, ‘টেস্ট অ্যাড সক্ষম করুন’ দেখুন।
বিজ্ঞাপন দৃশ্য সংজ্ঞায়িত করুন
এক্সএমএল লেআউট
আপনার অ্যাঙ্কর্ড অ্যাডাপ্টিভ ব্যানার অ্যাডের কন্টেইনার হিসেবে কাজ করার জন্য আপনার লেআউট 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" />
জেটপ্যাক কম্পোজ
JetpackCompose Utilities ফোল্ডারটি অন্তর্ভুক্ত করুন। এই ফোল্ডারটিতে
AdViewঅবজেক্ট এবং অ্যাসেট কম্পোজ করার জন্য সহায়ক টুল রয়েছে।একটি
AdViewরচনা করুন :
// Place the ad view at the bottom of the screen.
Column(modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Bottom) {
Box(modifier = modifier.fillMaxWidth()) { BannerAd(adView, modifier) }
}
বিজ্ঞাপনের আকার নির্ধারণ করুন
AdSize একটি নির্দিষ্ট প্রস্থসহ অ্যাঙ্কর্ড অ্যাডাপ্টিভ ব্যানার টাইপে সেট করুন:
জাভা
// Request a large anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360));
কোটলিন
// Request a large anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360))
জেটপ্যাক কম্পোজ
// Set a large anchored adaptive banner ad size with a given width.
val adSize = AdSize.getLargeAnchoredAdaptiveBannerAdSize(LocalContext.current, 360)
adView.setAdSize(adSize)
লেআউটে AdView যোগ করুন
আপনার অ্যাপের লেআউটে যোগ করার জন্য বিজ্ঞাপনের আকার ব্যবহার করে একটি AdView তৈরি করুন:
জাভা
// Create a new ad view.
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT_ID);
// Request a large anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360));
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
কোটলিন
// Create a new ad view.
val adView = AdView(this)
adView.adUnitId = AD_UNIT_ID
// Request a large anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360))
this.adView = adView
// Replace ad container with new ad view.
binding.adViewContainer.removeAllViews()
binding.adViewContainer.addView(adView)
জেটপ্যাক কম্পোজ
val adView = remember { AdView(context) }
// Setup and load the adview.
// Set the unique ID for this specific ad unit.
adView.adUnitId = BANNER_AD_UNIT_ID
// Set a large anchored adaptive banner ad size with a given width.
val adSize = AdSize.getLargeAnchoredAdaptiveBannerAdSize(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()) { BannerAd(adView, modifier) }
}
একটি বিজ্ঞাপন লোড করুন
নিম্নলিখিত উদাহরণটি একটি AdView অবজেক্টে ৩৬০-প্রস্থের অ্যাঙ্করড অ্যাডাপ্টিভ ব্যানার বিজ্ঞাপন লোড করে:
জাভা
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
কোটলিন
val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)
একটি বিজ্ঞাপন রিফ্রেশ করুন
আপনি যদি আপনার অ্যাড ইউনিট রিফ্রেশ করার জন্য কনফিগার করে থাকেন, তাহলে বিজ্ঞাপনটি লোড হতে ব্যর্থ হলে আপনাকে অন্য কোনো বিজ্ঞাপনের জন্য অনুরোধ করতে হবে না। Google Mobile Ads SDK AdMob 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() মেথডটি কল করা হয়। আপনার অ্যাপ স্থগিত থাকা কার্যকলাপ পুনরায় শুরু করতে বা ইন্টারঅ্যাকশনের জন্য নিজেকে প্রস্তুত করতে প্রয়োজনীয় অন্য যেকোনো কাজ সম্পাদন করতে এটি ব্যবহার করতে পারে। Android API Demo অ্যাপে অ্যাড লিসেনার মেথডগুলোর বাস্তবায়নের জন্য AdMob AdListener উদাহরণটি দেখুন। |
onAdFailedToLoad() | onAdFailedToLoad() মেথডটিই একমাত্র মেথড যাতে একটি প্যারামিটার থাকে। LoadAdError টাইপের error প্যারামিটারটি বর্ণনা করে কী ত্রুটি ঘটেছে। আরও তথ্যের জন্য, Debugging Ad Load Errors ডকুমেন্টেশনটি দেখুন। |
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>
হার্ডওয়্যার অ্যাক্সিলারেশন নিয়ন্ত্রণের বিকল্পগুলো সম্পর্কে আরও তথ্যের জন্য হার্ডওয়্যার অ্যাক্সিলারেশন গাইডটি দেখুন। মনে রাখবেন, অ্যাক্টিভিটিটি ডিজেবল করা থাকলে স্বতন্ত্র অ্যাড ভিউগুলোর জন্য হার্ডওয়্যার অ্যাক্সিলারেশন এনাবল করা যায় না, তাই অ্যাক্টিভিটিটিতেই হার্ডওয়্যার অ্যাক্সিলারেশন এনাবল করা থাকতে হবে।
পরবর্তী পদক্ষেপ
ভাঁজযোগ্য ব্যানার
কলাপসিবল ব্যানার অ্যাড হলো এমন ব্যানার অ্যাড যা প্রথমে একটি বড় ওভারলে হিসেবে প্রদর্শিত হয় এবং এতে একটি বাটন থাকে যা দিয়ে অ্যাডটিকে ছোট আকারে সংকুচিত করা যায়। আপনার পারফরম্যান্স আরও অপ্টিমাইজ করতে এটি ব্যবহার করার কথা বিবেচনা করতে পারেন। আরও বিস্তারিত জানতে কলাপসিবল ব্যানার অ্যাড দেখুন।
ইনলাইন অভিযোজিত ব্যানার
অ্যাঙ্কর্ড অ্যাডাপ্টিভ ব্যানারের তুলনায় ইনলাইন অ্যাডাপ্টিভ ব্যানারগুলো আকারে বড় এবং লম্বা হয়। এগুলোর উচ্চতা পরিবর্তনযোগ্য এবং ডিভাইসের স্ক্রিনের সমান লম্বা হতে পারে। যেসব অ্যাপ স্ক্রলযোগ্য কন্টেন্টের মধ্যে ব্যানার বিজ্ঞাপন দেখায়, তাদের জন্য অ্যাঙ্কর্ড অ্যাডাপ্টিভ ব্যানার বিজ্ঞাপনের চেয়ে ইনলাইন অ্যাডাপ্টিভ ব্যানার ব্যবহার করার পরামর্শ দেওয়া হয়। আরও বিস্তারিত জানতে ইনলাইন অ্যাডাপ্টিভ ব্যানার দেখুন।