এই নির্দেশিকাটি একটি Android অ্যাপে একটি নোঙ্গর করা অভিযোজিত ব্যানার বিজ্ঞাপন লোড করাকে কভার করে৷
পূর্বশর্ত
- শুরু করুন গাইডটি সম্পূর্ণ করুন।
- ঐচ্ছিক: ব্যানার বিজ্ঞাপন বাস্তবায়নের উদাহরণের জন্য, নিম্নলিখিত নমুনা অ্যাপগুলির একটি নির্বাচন করুন:
- জাভা , কোটলিন , বা জেটপ্যাক রচনা নোঙ্গরযুক্ত অভিযোজিত ব্যানার বিজ্ঞাপনের উদাহরণ৷
- জাভা বা কোটলিন উন্নত বৈশিষ্ট্যের ডেমো।
সর্বদা পরীক্ষার বিজ্ঞাপন দিয়ে পরীক্ষা করুন
আপনার অ্যাপ তৈরি এবং পরীক্ষা করার সময়, নিশ্চিত করুন যে আপনি লাইভ, প্রোডাকশন বিজ্ঞাপনের পরিবর্তে পরীক্ষামূলক বিজ্ঞাপন ব্যবহার করছেন। এটি করতে ব্যর্থ হলে আপনার অ্যাকাউন্ট স্থগিত হতে পারে।
টেস্ট বিজ্ঞাপন লোড করার সবচেয়ে সহজ উপায় হল অ্যান্ড্রয়েড ব্যানারের জন্য আমাদের ডেডিকেটেড টেস্ট বিজ্ঞাপন ইউনিট আইডি ব্যবহার করা:
ca-app-pub-3940256099942544/9214589741
প্রতিটি অনুরোধের জন্য পরীক্ষার বিজ্ঞাপনগুলি ফেরত দেওয়ার জন্য এটি বিশেষভাবে কনফিগার করা হয়েছে এবং কোডিং, পরীক্ষা এবং ডিবাগ করার সময় আপনি এটি আপনার নিজের অ্যাপে ব্যবহার করতে পারেন৷ আপনার অ্যাপ প্রকাশ করার আগে শুধু নিশ্চিত করুন যে আপনি এটিকে আপনার নিজের বিজ্ঞাপন ইউনিট আইডি দিয়ে প্রতিস্থাপন করেছেন।
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" />
জেটপ্যাক রচনা
প্রথম ধাপ, JetpackComposeDemo/compose-util মডিউল অন্তর্ভুক্ত করুন। এই মডিউলটিতে
AdView
অবজেক্ট এবং সম্পদ রচনা করার জন্য সাহায্যকারী অন্তর্ভুক্ত রয়েছে।দ্বিতীয় ধাপ,
compose-util
মডিউল ব্যবহার করে একটিBannerAd
ক্লাস রচনা করুন:
// 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 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)
লেআউটে AdView
যোগ করুন
আপনার অ্যাপের লেআউটে যোগ করতে বিজ্ঞাপনের আকার ব্যবহার করে একটি AdView
তৈরি করুন:
জাভা
// 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 { AdView(context) }
// Setup and load the adview.
// Set the unique ID for this specific ad unit.
adView.adUnitId = 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()) { BannerAd(adView, modifier) }
}
একটি বিজ্ঞাপন লোড করুন
AdView
চালু হয়ে গেলে, পরবর্তী ধাপ হল একটি বিজ্ঞাপন লোড করা। এটি AdView
ক্লাসে loadAd()
পদ্ধতির মাধ্যমে করা হয়েছে। এটি একটি AdRequest
প্যারামিটার লাগে, যেটিতে রানটাইম তথ্য থাকে, যেমন টার্গেটিং তথ্য, একটি একক বিজ্ঞাপন অনুরোধ সম্পর্কে।
এখানে একটি উদাহরণ রয়েছে যা দেখায় কিভাবে একটি বিজ্ঞাপন লোড করতে হয়:
জাভা
AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build();
adView.loadAd(adRequest);
কোটলিন
val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)
সফল হলে, আপনার অ্যাপটি ব্যানার বিজ্ঞাপন প্রদর্শনের জন্য প্রস্তুত।
একটি বিজ্ঞাপন রিফ্রেশ করুন
আপনি যদি রিফ্রেশ করার জন্য আপনার বিজ্ঞাপন ইউনিট কনফিগার করেন, বিজ্ঞাপনটি লোড হতে ব্যর্থ হলে আপনাকে অন্য বিজ্ঞাপনের অনুরোধ করতে হবে না। Google মোবাইল বিজ্ঞাপন SDK আপনার AdMob UI-তে নির্দিষ্ট করা যেকোনো রিফ্রেশ রেটকে সম্মান করে। আপনি যদি রিফ্রেশ সক্ষম না করে থাকেন তবে একটি নতুন অনুরোধ জারি করুন৷ বিজ্ঞাপন ইউনিট রিফ্রেশ সম্পর্কে আরও বিশদ বিবরণের জন্য, যেমন একটি রিফ্রেশ রেট সেট করা, ব্যানার বিজ্ঞাপনের জন্য স্বয়ংক্রিয় রিফ্রেশ ব্যবহার করুন দেখুন।
একটি বিজ্ঞাপন সংস্থান প্রকাশ করুন
যখন আপনি একটি ব্যানার বিজ্ঞাপন ব্যবহার করা শেষ করেন, আপনি ব্যানার বিজ্ঞাপনের সংস্থানগুলি প্রকাশ করতে পারেন৷
বিজ্ঞাপনের সংস্থান প্রকাশ করতে, আপনি ভিউ হায়ারার্কি থেকে বিজ্ঞাপনটি সরিয়ে ফেলবেন এবং এর সমস্ত রেফারেন্স বাদ দেবেন:
কোটলিন
// 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
জাভা
// Remove banner from view hierarchy.
if (adView.getParent() instanceof ViewGroup) {
((ViewGroup) adView.getParent()).removeView(adView);
}
// Destroy the banner ad resources.
adView.destroy();
// Drop reference to the banner ad.
adView = null;
জেটপ্যাক রচনা
DisposableEffect(Unit) {
// Destroy the AdView to prevent memory leaks when the screen is disposed.
onDispose { adView.destroy() }
}
বিজ্ঞাপন ঘটনা
আপনি বিজ্ঞাপনের জীবনচক্রের বেশ কয়েকটি ইভেন্ট শুনতে পারেন, যার মধ্যে লোডিং, বিজ্ঞাপনের ছাপ এবং ক্লিক, সেইসাথে বিজ্ঞাপন খোলা এবং বন্ধ ইভেন্টগুলি অন্তর্ভুক্ত রয়েছে। ব্যানার লোড করার আগে কলব্যাক সেট করার পরামর্শ দেওয়া হয়।জাভা
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>
হার্ডওয়্যার ত্বরণ নিয়ন্ত্রণের বিকল্পগুলি সম্পর্কে আরও তথ্যের জন্য হার্ডওয়্যার ত্বরণ নির্দেশিকা দেখুন। মনে রাখবেন যে ক্রিয়াকলাপটি অক্ষম থাকলে হার্ডওয়্যার ত্বরণের জন্য পৃথক বিজ্ঞাপন দৃশ্যগুলি সক্ষম করা যাবে না, তাই ক্রিয়াকলাপে অবশ্যই হার্ডওয়্যার ত্বরণ সক্ষম থাকতে হবে।
পরবর্তী পদক্ষেপ
সংকোচনযোগ্য ব্যানার
সংকোচনযোগ্য ব্যানার বিজ্ঞাপনগুলি হল ব্যানার বিজ্ঞাপন যা প্রাথমিকভাবে একটি বৃহত্তর ওভারলে হিসাবে উপস্থাপিত হয়, একটি বোতাম সহ বিজ্ঞাপনটিকে ছোট আকারে ভেঙে ফেলা হয়। আপনার কর্মক্ষমতা আরও অপ্টিমাইজ করতে এটি ব্যবহার বিবেচনা করুন. আরও বিশদ বিবরণের জন্য সঙ্কুচিত ব্যানার বিজ্ঞাপনগুলি দেখুন৷
ইনলাইন অভিযোজিত ব্যানার
নোঙর করা অভিযোজিত ব্যানারের তুলনায় ইনলাইন অভিযোজিত ব্যানার বড়, লম্বা ব্যানার। এগুলি পরিবর্তনশীল উচ্চতার, এবং ডিভাইসের পর্দার মতো লম্বা হতে পারে৷ স্ক্রোলযোগ্য বিষয়বস্তুতে ব্যানার বিজ্ঞাপন রাখে এমন অ্যাপগুলির জন্য অ্যাঙ্কর করা অভিযোজিত ব্যানার বিজ্ঞাপনগুলির উপর ইনলাইন অভিযোজিত ব্যানারগুলি সুপারিশ করা হয়৷ আরও বিস্তারিত জানার জন্য ইনলাইন অভিযোজিত ব্যানার দেখুন।