নেটিভ বিজ্ঞাপন হল বিজ্ঞাপন অ্যাসেট যা প্ল্যাটফর্মের নেটিভ UI কম্পোনেন্টের মাধ্যমে ব্যবহারকারীদের দেখানো হয়। যে ধরনের ভিউ ব্যবহার করে আপনি আগে থেকেই লেআউট তৈরি করছেন, সেই একই ধরনের ভিউ ব্যবহার করে এগুলি দেখানো হয় এবং আপনার অ্যাপের ভিজ্যুয়াল ডিজাইনের সাথে ম্যাচ করানোর জন্য এগুলি ফর্ম্যাট করা যায়।
কোনও নেটিভ বিজ্ঞাপন লোড হলে, আপনার অ্যাপ একটি বিজ্ঞাপন অবজেক্ট পায় যার মধ্যে অ্যাসেট থাকে, এবং Google Mobile Ads SDK (Legacy)-এর পরিবর্তে অ্যাপ—সেগুলি দেখানোর জন্য দায়ী।
মোটামুটিভাবে, নেটিভ বিজ্ঞাপন সফলভাবে প্রয়োগ করার দুটি অংশ আছে: SDK ব্যবহার করে বিজ্ঞাপন লোড করা এবং তারপর আপনার অ্যাপে বিজ্ঞাপন কন্টেন্ট দেখানো।
এই পৃষ্ঠা থেকে কীভাবে SDK ব্যবহার করে নেটিভ বিজ্ঞাপন লোড করতে হয় তা জানতে পারবেন। পরামর্শ: আমাদের নেটিভ বিজ্ঞাপন প্লেবুক থেকে নেটিভ বিজ্ঞাপন সম্পর্কে আরও জানুন।
এছাড়াও, আপনি গ্রাহকদের সাফল্যের কিছু গল্প দেখতে পারেন: কেস স্টাডি ১, কেস স্টাডি ২।
পূর্বশর্ত
চালিয়ে যাওয়ার আগে, Google Mobile Ads SDK (Legacy) সেট-আপ করুন।
সবসময় টেস্ট বিজ্ঞাপন দিয়ে পরীক্ষা করুন
আপনার অ্যাপ তৈরি ও পরীক্ষা করার সময়, লাইভ, প্রোডাকশন বিজ্ঞাপনের পরিবর্তে পরীক্ষামূলক বিজ্ঞাপন ব্যবহার করছেন কিনা তা ভালো করে দেখে নিন।
টেস্ট বিজ্ঞাপন লোড করার সবচেয়ে সহজ উপায় হল Android-এ নেটিভ বিজ্ঞাপনের জন্য আমাদের নির্দিষ্ট টেস্ট বিজ্ঞাপন ইউনিট আইডি ব্যবহার করা:
ca-app-pub-3940256099942544/2247696110
প্রতিটি অনুরোধের জন্য টেস্ট বিজ্ঞাপন দেখানোর জন্য এটি বিশেষভাবে কনফিগার করা হয়েছে এবং আপনি কোডিং, টেস্টিং এবং ডিবাগিং করার সময় এটি আপনার নিজের অ্যাপে ব্যবহার করতে পারেন। তবে, আপনার অ্যাপ প্রকাশ করার আগে, আপনার নিজের বিজ্ঞাপন ইউনিট আইডি দিয়ে এটি পরিবর্তন করতে ভুলবেন না।
Google Mobile Ads SDK (Legacy)পরীক্ষামূলক বিজ্ঞাপন সম্পর্কে বিস্তারিত জানতে, পরীক্ষামূলক বিজ্ঞাপন চালু করুন।
বিজ্ঞাপন লোড করা
নেটিভ বিজ্ঞাপন
AdLoader ক্লাস সহ লোড করা হয়,
যেটির নিজস্ব
Builder
ক্লাস আছে যা তৈরি করার সময় কাস্টমাইজ করা যায়। AdLoader
অ্যাপ তৈরি করার সময় তাতে লিসনার যোগ করার মাধ্যমে, অ্যাপ নির্দিষ্ট করে যে সেটি কোন ধরনের নেটিভ বিজ্ঞাপন
গ্রহণ করার জন্য প্রস্তুত। AdLoader তারপরে শুধু সেইসব ধরনের অনুরোধ করে।
AdLoader তৈরি করা
নিম্নলিখিত কোড থেকে কীভাবে AdLoader তৈরি করতে হয় তা জানতে পারবেন যা নেটিভ
বিজ্ঞাপন লোড করতে পারে:
Java
Kotlin
আপনার টেস্ট ডিভাইসের আইডি দিয়ে AD_UNIT_ID পাল্টে দিন।
NativeAd ফর্ম্যাটের জন্য AdLoader প্রস্তুত করার দায়িত্ব
forNativeAd()
পদ্ধতির।
কোনও বিজ্ঞাপন সফলভাবে লোড করা হলে, লিসনার অবজেক্টের onNativeAdLoaded()
মেথড কল করা হয়।
AdLoader-এর সাথে AdListener সেট-আপ করা (ঐচ্ছিক)
AdLoader তৈরি করার সময়, the
withAdListener
ফাংশনটি
লোডার-এর জন্য
AdListener সেট করে। এই পদ্ধতিতে একটি AdListener প্যারামিটার হিসেবে নেওয়া হয়, যা বিজ্ঞাপন লাইফসাইকেল ইভেন্ট ঘটলে AdLoader থেকে
কলব্যাক পায়:
Java
adLoaderBuilder.withAdListener(
// Override AdListener callbacks here.
new AdListener() {});
Kotlin
adLoaderBuilder.withAdListener(
// Override AdListener callbacks here.
object : AdListener() {}
)
বিজ্ঞাপনের অনুরোধ করুন
AdLoader তৈরি করা হয়ে গেলে, বিজ্ঞাপন অনুরোধ করার জন্য এটি ব্যবহার করার সময় এসে গেছে।
এর জন্য দুটি পদ্ধতি উপলভ্য: loadAd() এবং loadAds().
loadAd()
এই পদ্ধতিতে একটি বিজ্ঞাপনের জন্য অনুরোধ পাঠানো হয়।
Java
adLoader.loadAd(new AdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdRequest.Builder().build())
loadAds()
এই পদ্ধতিতে একাধিক বিজ্ঞাপনের (সর্বাধিক পাঁচটি) জন্য অনুরোধ পাঠানো হয়:
Java
// Load three native ads.
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
// Load three native ads.
adLoader.loadAds(AdRequest.Builder().build(), 3)
দুটি পদ্ধতিতেই প্রথম প্যারামিটার হিসেবে একটি
AdRequest
অবজেক্ট নেওয়া হয়। এটি সেই একই
AdRequest ক্লাস যা ব্যানার ও ইন্টারস্টিশিয়াল বিজ্ঞাপন
ব্যবহার করে এবং আপনি AdRequest ক্লাসের পদ্ধতি ব্যবহার করে
টার্গেটিং সংক্রান্ত তথ্য যোগ করতে পারবেন, ঠিক যেভাবে
অন্যান্য বিজ্ঞাপন ফর্ম্যাটের ক্ষেত্রে করেন।
একাধিক বিজ্ঞাপন লোড করা (ঐচ্ছিক)
loadAds() পদ্ধতিতে একটি অতিরিক্ত প্যারামিটার থাকে: SDK-কে
অনুরোধের জন্য যতগুলি বিজ্ঞাপন লোড করার চেষ্টা করতে হবে সেই সংখ্যা। এই সংখ্যাটি সর্বাধিক পাঁচ পর্যন্ত হতে পারে এবং SDK অনুরোধ করা বিজ্ঞাপনের সঠিক সংখ্যা রিটার্ন করবে
এমন কোনও গ্যারান্টি নেই।
রিটার্ন করা সব Google বিজ্ঞাপন একে অপরের থেকে আলাদা হবে, যদিও রিজার্ভ করা ইনভেনটরি বা থার্ড-পার্টি ক্রেতাদের বিজ্ঞাপন অনন্য হবে এমন গ্যারান্টি দেওয়া হয় না।
আপনি মধ্যস্থতা ব্যবহার করলে, loadAds() পদ্ধতি ব্যবহার করবেন না, কারণ মধ্যস্থতার জন্য কনফিগার করা বিজ্ঞাপন ইউনিট আইডির ক্ষেত্রে
একাধিক নেটিভ বিজ্ঞাপনের অনুরোধ কাজ করে না।
কলব্যাক
loadAd()-এ কল করার পরে, নেটিভ বিজ্ঞাপন অবজেক্ট ডেলিভার করতে বা কোনও সমস্যার রিপোর্ট করতে, আগে থেকে সংজ্ঞায়িত
লিসনার পদ্ধতিতে একটি কলব্যাক করা হয়।
loadAds()-এ কল করার পরে, এই ধরনের একাধিক কলব্যাক করা হয় (অন্তত একটি,
এবং অনুরোধ করা বিজ্ঞাপনের সংখ্যার বেশি নয়)। একাধিক বিজ্ঞাপনের অনুরোধ করা অ্যাপগুলিকে
লোড করার প্রসেস সম্পূর্ণ হয়েছে কিনা তা নির্ধারণ করতে
তাদের কলব্যাক ইমপ্লিমেন্টেশনে AdLoader.isLoading() কল করতে হবে।
isLoading() কীভাবে চেক করতে হয় তা এই উদাহরণে দেখানো হয়েছে
onNativeAdLoaded() কলব্যাক:
Java
adLoaderBuilder
.forNativeAd(
nativeAd -> {
// This callback is invoked when a native ad is successfully loaded.
})
.build();
Kotlin
adLoaderBuilder
.forNativeAd { nativeAd ->
// This callback is invoked when a native ad is successfully loaded.
}
.build()
রিসোর্স রিলিজ করা
লোড করা নেটিভ বিজ্ঞাপনের ক্ষেত্রে destroy() পদ্ধতি ব্যবহার করতে ভুলবেন না। এর ফলে
ব্যবহৃত রিসোর্স রিলিজ হয়ে যায় এবং মেমরি লিক প্রতিরোধ করা যায়।
আপনার অ্যাক্টিভিটির
onDestroy() পদ্ধতিতে সব NativeAd রেফারেন্স ধ্বংস করা হয়েছে কিনা তা যাচাই করুন।
আপনার onNativeAdLoaded কলব্যাকে, আগে থেকে থাকা যেকোনও
নেটিভ বিজ্ঞাপন যা ডিরেফারেন্স করা হবে তা ধ্বংস করতে ভুলবেন না।
আরেকটি গুরুত্বপূর্ণ চেক হল, অ্যাক্টিভিটি ধ্বংস করা হয়েছে কিনা এবং যদি হয়ে থাকে, তাহলে ফিরে আসা বিজ্ঞাপনে destroy() কল করুন
এবং অবিলম্বে ফিরে আসুন:
Java
nativeAd.destroy();
Kotlin
nativeAd.destroy()
পেশাদার পদ্ধতি
বিজ্ঞাপন লোড করার সময় এইসব নিয়ম মেনে চলুন।
তালিকায় নেটিভ বিজ্ঞাপন ব্যবহার করে এমন অ্যাপকে বিজ্ঞাপনের তালিকা আগে থেকে ক্যাশে করে রাখতে হবে।
বিজ্ঞাপন প্রি-ক্যাশিং করার সময়, ক্যাশে মুছে দিন এবং এক ঘণ্টা পরে আবার লোড করুন।
- প্রথম অনুরোধ লোড হওয়া সম্পূর্ণ না হওয়া পর্যন্ত
loadAd()বাloadAds()AdLoader-এ কল করবেন না।
শুধুমাত্র প্রয়োজনীয় নেটিভ বিজ্ঞাপনই ক্যাশে করুন। যেমন, প্রি-ক্যাশিংয়ের সময়, শুধুমাত্র সেইসব বিজ্ঞাপনই ক্যাশে করুন যেগুলি স্ক্রিনে অবিলম্বে দেখা যাচ্ছে। নেটিভ বিজ্ঞাপন অনেক বেশি মেমরি ব্যবহার করে এবং নেটিভ বিজ্ঞাপনকে ধ্বংস না করে ক্যাশে করলে মেমরি অতিরিক্ত ব্যবহার হয়।
ব্যবহার করা না হলে নেটিভ বিজ্ঞাপন সরিয়ে দিন।
ভিডিও বিজ্ঞাপনের জন্য হার্ডওয়্যার অ্যাক্সিলারেশন
আপনার নেটিভ বিজ্ঞাপন ভিউতে ভিডিও বিজ্ঞাপন সঠিকভাবে দেখাতে, হার্ডওয়্যার অ্যাক্সিলারেশন চালু থাকতে হবে।
হার্ডওয়্যার অ্যাক্সিলারেশন ডিফল্ট হিসেবে চালু থাকে, তবে কিছু অ্যাপ এটি বন্ধ করার বিকল্প বেছে নিতে পারে। আপনার অ্যাপের ক্ষেত্রে এটি প্রযোজ্য হলে, আমরা বিজ্ঞাপন ব্যবহার করে এমন অ্যাক্টিভিটি ক্লাসের জন্য হার্ডওয়্যার অ্যাক্সিলারেশন চালু করার সাজেশন দিই।
হার্ডওয়্যার অ্যাক্সিলারেশন চালু করা
আপনার অ্যাপ যদি গ্লোবালি হার্ডওয়্যার অ্যাক্সিলারেশন চালু করার পরে সঠিকভাবে কাজ না করে, তাহলে আপনি আলাদা আলাদা অ্যাক্টিভিটির জন্যও এটি নিয়ন্ত্রণ করতে পারবেন। হার্ডওয়্যার অ্যাক্সিলারেশন চালু বা
বন্ধ করতে, আপনার 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 অ্যাক্সিলারেশন গাইড দেখুন। মনে রাখবেন অ্যাক্টিভিটি বন্ধ থাকলে, হার্ডওয়্যার অ্যাক্সিলারেশনের জন্য স্বতন্ত্র বিজ্ঞাপন ভিউ চালু করা যাবে না, তাই অ্যাক্টিভিটিতে হার্ডওয়্যার অ্যাক্সিলারেশন চালু থাকতে হবে।
আপনার বিজ্ঞাপন দেখানো
আপনি বিজ্ঞাপন লোড করার পরে, সেটি ব্যবহারকারীদের দেখানোই বাকি থাকে। কীভাবে করবেন তা জানতে আমাদের নেটিভ অ্যাডভান্স গাইড দেখুন।