নেটিভ বিজ্ঞাপন হল বিজ্ঞাপন সম্পদ যা ব্যবহারকারীদের কাছে UI উপাদানের মাধ্যমে উপস্থাপন করা হয় যা প্ল্যাটফর্মের নেটিভ। সেগুলি একই ধরণের ভিউ ব্যবহার করে দেখানো হয় যার সাহায্যে আপনি ইতিমধ্যে আপনার লেআউট তৈরি করছেন এবং আপনার অ্যাপের ভিজ্যুয়াল ডিজাইনের সাথে মেলে ফর্ম্যাট করা যেতে পারে৷
যখন একটি নেটিভ বিজ্ঞাপন লোড হয়, তখন আপনার অ্যাপ একটি বিজ্ঞাপন অবজেক্ট পায় যাতে এর সম্পদ থাকে এবং অ্যাপটি—Google মোবাইল বিজ্ঞাপন SDK-এর পরিবর্তে—তাহলে সেগুলি দেখানোর জন্য দায়ী৷
বিস্তৃতভাবে বলতে গেলে, নেটিভ বিজ্ঞাপনগুলি সফলভাবে বাস্তবায়নের দুটি অংশ রয়েছে: SDK ব্যবহার করে একটি বিজ্ঞাপন লোড করা এবং তারপরে আপনার অ্যাপে বিজ্ঞাপন সামগ্রী প্রদর্শন করা।
এই পৃষ্ঠাটি দেখায় কিভাবে নেটিভ বিজ্ঞাপন লোড করতে SDK ব্যবহার করতে হয়। টিপ: আমাদের নেটিভ বিজ্ঞাপন প্লেবুকে নেটিভ বিজ্ঞাপন সম্পর্কে আরও জানুন।
আপনি কিছু গ্রাহকের সাফল্যের গল্পও দেখতে পারেন: কেস স্টাডি 1 , কেস স্টাডি 2 ।
পূর্বশর্ত
- শুরু করুন গাইডটি সম্পূর্ণ করুন।
সর্বদা পরীক্ষার বিজ্ঞাপন দিয়ে পরীক্ষা করুন
আপনার অ্যাপ তৈরি এবং পরীক্ষা করার সময়, নিশ্চিত করুন যে আপনি লাইভ, প্রোডাকশন বিজ্ঞাপনের পরিবর্তে পরীক্ষামূলক বিজ্ঞাপন ব্যবহার করছেন।
টেস্ট বিজ্ঞাপন লোড করার সবচেয়ে সহজ উপায় হল Android-এ নেটিভ বিজ্ঞাপনের জন্য আমাদের ডেডিকেটেড টেস্ট অ্যাড ইউনিট আইডি ব্যবহার করা:
ca-app-pub-3940256099942544/2247696110
প্রতিটি অনুরোধের জন্য পরীক্ষার বিজ্ঞাপনগুলি ফেরত দেওয়ার জন্য এটি বিশেষভাবে কনফিগার করা হয়েছে এবং আপনি কোডিং, পরীক্ষা এবং ডিবাগ করার সময় এটি আপনার নিজের অ্যাপে ব্যবহার করতে পারেন৷ আপনার অ্যাপ প্রকাশ করার আগে শুধু নিশ্চিত করুন যে আপনি এটিকে আপনার নিজের বিজ্ঞাপন ইউনিট আইডি দিয়ে প্রতিস্থাপন করেছেন।
Google মোবাইল বিজ্ঞাপন SDK-এর পরীক্ষার বিজ্ঞাপনগুলি কীভাবে কাজ করে সে সম্পর্কে আরও তথ্যের জন্য, পরীক্ষা বিজ্ঞাপনগুলি দেখুন।
লোড বিজ্ঞাপন
নেটিভ বিজ্ঞাপনগুলি AdLoader
ক্লাসের সাথে লোড করা হয়, যার নিজস্ব Builder
ক্লাস রয়েছে যা তৈরি করার সময় এটি কাস্টমাইজ করতে পারে। এটি তৈরি করার সময় AdLoader
শ্রোতাদের যোগ করে, একটি অ্যাপ নির্দিষ্ট করে যে এটি কোন ধরনের নেটিভ বিজ্ঞাপনগুলি গ্রহণ করতে প্রস্তুত। The AdLoader
then requests just those types.
একটি অ্যাডলোডার তৈরি করুন
নিম্নলিখিত কোডটি দেখায় কিভাবে একটি AdLoader
তৈরি করতে হয় যা নেটিভ বিজ্ঞাপন লোড করতে পারে:
জাভা
AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// Show the ad.
}
})
.withAdListener(new AdListener() {
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Handle the failure by logging, altering the UI, and so on.
}
})
.withNativeAdOptions(new NativeAdOptions.Builder()
// Methods in the NativeAdOptions.Builder class can be
// used here to specify individual options settings.
.build())
.build();
কোটলিন
val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110}")
.forNativeAd { ad : NativeAd ->
// Show the ad.
}
.withAdListener(object : AdListener() {
override fun onAdFailedToLoad(adError: LoadAdError) {
// Handle the failure.
}
})
.withNativeAdOptions(NativeAdOptions.Builder()
// Methods in the NativeAdOptions.Builder class can be
// used here to specify individual options settings.
.build())
.build()
forNativeAd()
পদ্ধতি NativeAd
ফরম্যাটের জন্য AdLoader
প্রস্তুত করার জন্য দায়ী। একটি বিজ্ঞাপন সফলভাবে লোড হলে, শ্রোতা বস্তুর onNativeAdLoaded()
পদ্ধতি বলা হয়।
AdLoader এর সাথে একটি AdListener সেট আপ করুন (ঐচ্ছিক)
AdLoader
তৈরি করার সময়, withAdListener
ফাংশন লোডারের জন্য একটি AdListener
সেট করে। পদ্ধতিটি একটি AdListener
তার একমাত্র প্যারামিটার হিসাবে নেয়, যেটি AdLoader
থেকে কলব্যাক গ্রহণ করে যখন বিজ্ঞাপনের জীবনচক্রের ঘটনা ঘটে:
জাভা
.withAdListener(new AdListener() {
// AdListener callbacks can be overridden here.
})
কোটলিন
.withAdListener(object : AdListener() {
// AdListener callbacks can be overridden here.
})
বিজ্ঞাপনের জন্য অনুরোধ করুন
একবার আপনি একটি AdLoader
তৈরি করা শেষ করলে, এটি বিজ্ঞাপনের অনুরোধ করার জন্য এটি ব্যবহার করার সময়। এর জন্য দুটি পদ্ধতি উপলব্ধ: loadAd()
এবং loadAds()
।
loadAd()
এই পদ্ধতিটি একটি একক বিজ্ঞাপনের জন্য একটি অনুরোধ পাঠায়।
জাভা
adLoader.loadAd(new AdRequest.Builder().build());
কোটলিন
adLoader.loadAd(AdRequest.Builder().build())
loadAds()
এই পদ্ধতিটি একাধিক বিজ্ঞাপনের জন্য একটি অনুরোধ পাঠায় (পাঁচটি পর্যন্ত):
জাভা
adLoader.loadAds(new AdRequest.Builder().build(), 3);
কোটলিন
adLoader.loadAds(AdRequest.Builder().build(), 3)
উভয় পদ্ধতি তাদের প্রথম প্যারামিটার হিসাবে একটি AdRequest
অবজেক্ট গ্রহণ করে। এটি একই AdRequest
ক্লাস ব্যানার এবং ইন্টারস্টিশিয়াল দ্বারা ব্যবহৃত হয়, এবং আপনি লক্ষ্য করার তথ্য যোগ করতে AdRequest
ক্লাসের পদ্ধতিগুলি ব্যবহার করতে পারেন, ঠিক যেমন আপনি অন্যান্য বিজ্ঞাপন ফর্ম্যাটের সাথে করবেন৷
একাধিক বিজ্ঞাপন লোড করুন (ঐচ্ছিক)
loadAds()
পদ্ধতিতে একটি অতিরিক্ত প্যারামিটার লাগে: অনুরোধের জন্য SDK-এর যতগুলি বিজ্ঞাপন লোড করার চেষ্টা করা উচিত। এই সংখ্যাটি পাঁচটিতে সীমাবদ্ধ, এবং এটি নিশ্চিত নয় যে SDK অনুরোধ করা বিজ্ঞাপনের সঠিক সংখ্যাটি ফিরিয়ে দেবে।
প্রত্যাবর্তিত Google বিজ্ঞাপনগুলি একে অপরের থেকে আলাদা হবে, যদিও সংরক্ষিত ইনভেন্টরি বা তৃতীয় পক্ষের ক্রেতাদের বিজ্ঞাপনগুলি অনন্য হওয়ার নিশ্চয়তা নেই৷
আপনি যদি মধ্যস্থতা ব্যবহার করেন তবে loadAds()
পদ্ধতিটি ব্যবহার করবেন না, কারণ একাধিক নেটিভ বিজ্ঞাপনের অনুরোধ বর্তমানে মধ্যস্থতার জন্য কনফিগার করা বিজ্ঞাপন ইউনিট আইডিগুলির জন্য কাজ করে না।
কলব্যাক
loadAd()
এ কল করার পর, নেটিভ বিজ্ঞাপন অবজেক্ট ডেলিভার করতে বা একটি ত্রুটি রিপোর্ট করার জন্য পূর্বে সংজ্ঞায়িত শ্রোতা পদ্ধতিতে একটি একক কলব্যাক করা হয়।
loadAds()
এ একটি কল করার পর, এই ধরনের একাধিক কলব্যাক করা হয় (অন্তত একটি, এবং অনুরোধ করা বিজ্ঞাপনের সংখ্যার বেশি নয়)। যে অ্যাপগুলি একাধিক বিজ্ঞাপনের অনুরোধ করছে তাদের লোডিং প্রক্রিয়া শেষ হয়েছে কিনা তা নির্ধারণ করতে তাদের কলব্যাক বাস্তবায়নে AdLoader.isLoading()
কল করা উচিত।
onNativeAdLoaded()
কলব্যাকে কীভাবে isLoading()
চেক করতে হয় তা এখানে একটি উদাহরণ রয়েছে:
জাভা
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
...
// some code that displays the ad.
...
if (adLoader.isLoading()) {
// The AdLoader is still loading ads.
// Expect more adLoaded or onAdFailedToLoad callbacks.
} else {
// The AdLoader has finished loading ads.
}
}
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);
কোটলিন
lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd {
...
// some code that displays the ad.
...
if (adLoader.isLoading) {
// The AdLoader is still loading ads.
// Expect more adLoaded or onAdFailedToLoad callbacks.
} else {
// The AdLoader has finished loading ads.
}
}.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)
রিলিজ সম্পদ
লোড করা নেটিভ বিজ্ঞাপনগুলিতে destroy()
পদ্ধতি ব্যবহার করতে ভুলবেন না। এটি ব্যবহৃত সম্পদ প্রকাশ করে এবং মেমরি লিক প্রতিরোধ করে।
আপনার কার্যকলাপের onDestroy()
পদ্ধতিতে সমস্ত NativeAd
রেফারেন্স ধ্বংস করা হয়েছে তা নিশ্চিত করুন।
আপনার onNativeAdLoaded
কলব্যাকে, যে কোনো বিদ্যমান নেটিভ বিজ্ঞাপনগুলিকে ডিরেফারেন্স করা হবে তা ধ্বংস করতে ভুলবেন না।
আরেকটি মূল চেক হল কার্যকলাপ ধ্বংস হয়ে গেছে কিনা এবং যদি তাই হয়, তাহলে প্রত্যাবর্তিত বিজ্ঞাপনে destroy()
কল করুন এবং অবিলম্বে ফিরে আসুন:
জাভা
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed()` is a method on Activity.
if (isDestroyed()) {
nativeAd.destroy();
return;
}
...
}
}).build();
কোটলিন
lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd { nativeAd ->
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed` is a method on Activity.
if (isDestroyed) {
nativeAd.destroy()
return@forNativeAd
}
...
}.build()
সর্বোত্তম অনুশীলন
বিজ্ঞাপন লোড করার সময় এই নিয়মগুলি অনুসরণ করুন।
যে অ্যাপগুলি একটি তালিকায় নেটিভ বিজ্ঞাপনগুলি ব্যবহার করে সেগুলিকে বিজ্ঞাপনের তালিকা প্রিক্যাচ করা উচিত৷
বিজ্ঞাপন প্রচার করার সময়, আপনার ক্যাশে সাফ করুন এবং এক ঘন্টা পরে পুনরায় লোড করুন।
প্রথম অনুরোধ লোডিং শেষ না হওয়া পর্যন্ত একটি
AdLoader
এloadAd()
বাloadAds()
কল করবেন না।নেটিভ অ্যাড ক্যাশিং শুধুমাত্র যা প্রয়োজন তা সীমিত করুন। যেমন প্রিক্যাচিং করার সময়, শুধুমাত্র সেই বিজ্ঞাপনগুলিকে ক্যাশে করুন যেগুলি স্ক্রিনে অবিলম্বে দৃশ্যমান। নেটিভ বিজ্ঞাপনগুলির একটি বড় মেমরি ফুটপ্রিন্ট থাকে এবং নেটিভ বিজ্ঞাপনগুলিকে ধ্বংস না করে ক্যাশে করার ফলে অতিরিক্ত মেমরি ব্যবহার হয়৷
আর ব্যবহার না হলে নেটিভ বিজ্ঞাপনগুলি ধ্বংস করুন।
ভিডিও বিজ্ঞাপনের জন্য হার্ডওয়্যার ত্বরণ
আপনার নেটিভ বিজ্ঞাপন দৃশ্যে ভিডিও বিজ্ঞাপনগুলি সফলভাবে দেখানোর জন্য, হার্ডওয়্যার ত্বরণ সক্ষম করতে হবে।
হার্ডওয়্যার ত্বরণ ডিফল্টরূপে সক্ষম থাকে, তবে কিছু অ্যাপ এটিকে নিষ্ক্রিয় করতে বেছে নিতে পারে। এটি আপনার অ্যাপে প্রযোজ্য হলে, আমরা বিজ্ঞাপন ব্যবহার করে এমন কার্যকলাপের ক্লাসের জন্য হার্ডওয়্যার ত্বরণ সক্ষম করার পরামর্শ দিই।
হার্ডওয়্যার ত্বরণ সক্ষম করা হচ্ছে
যদি আপনার অ্যাপটি বিশ্বব্যাপী হার্ডওয়্যার ত্বরণ চালু করার সাথে সঠিকভাবে আচরণ না করে, তাহলে আপনি পৃথক কার্যকলাপের জন্যও এটি নিয়ন্ত্রণ করতে পারেন। হার্ডওয়্যার ত্বরণ সক্ষম বা অক্ষম করতে, আপনার 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>
হার্ডওয়্যার ত্বরণ নিয়ন্ত্রণের বিকল্পগুলি সম্পর্কে আরও তথ্যের জন্য HW ত্বরণ নির্দেশিকা দেখুন। মনে রাখবেন যে কার্যকলাপটি অক্ষম থাকলে হার্ডওয়্যার ত্বরণের জন্য পৃথক বিজ্ঞাপন দৃশ্যগুলি সক্ষম করা যাবে না, তাই ক্রিয়াকলাপ নিজেই হার্ডওয়্যার ত্বরণ সক্ষম থাকতে হবে৷
আপনার বিজ্ঞাপন প্রদর্শন করুন
একবার আপনি একটি বিজ্ঞাপন লোড করার পরে, যা অবশিষ্ট থাকে তা হল আপনার ব্যবহারকারীদের কাছে এটি প্রদর্শন করা। কিভাবে দেখতে আমাদের নেটিভ অ্যাডভান্সড গাইডে যান।