এই নির্দেশিকা থেকে আপনি জানতে পারবেন কীভাবে Unity অ্যাপে AdMob নেটিভ বিজ্ঞাপন প্রয়োগ করার জন্য নেটিভ বিজ্ঞাপন অ্যাড-অন ব্যবহার করতে হয় এবং সেই সাথে কিছু গুরুত্বপূর্ণ বিষয়ও জানতে পারবেন।
নেটিভ বিজ্ঞাপনগুলি ব্যবহারকারীর অভিজ্ঞতার ফর্ম ও ফাংশন, দু'টির সাথেই ম্যাচ করে, যেখানে সেগুলি প্লেস করা হয়। এছাড়াও, এগুলি যে অ্যাপের মধ্যে থাকে সেটির ভিজ্যুয়াল ডিজাইনের সাথেও ম্যাচ করে। AdMob-এর নেটিভ বিজ্ঞাপন ফর্ম্যাট প্রকাশকদের এমন বিজ্ঞাপন রেন্ডার করতে দেয় যা কন্টেন্টের সাথে নির্বিঘ্নে কাজ করে। Unity অ্যাপে নেটিভ কোডের সম্পূর্ণ সুবিধা গ্রহণ করে অত্যন্ত কাস্টম রেন্ডারিং প্রয়োগ করতে আপনি এই প্রযুক্তি ব্যবহার করতে পারবেন।
নেটিভ বিজ্ঞাপন সেই একই ধরনের GameObjects ব্যবহার করে দেখানো হয়, যেগুলি দিয়ে আপনি
আগে থেকেই অ্যাপ তৈরি করছেন এবং সেগুলি এমনভাবে ফর্ম্যাট করা যায় যাতে সেগুলি
ব্যবহারকারীর অভিজ্ঞতার ভিজ্যুয়াল ডিজাইনের সাথে ম্যাচ করে। কোনও নেটিভ বিজ্ঞাপন লোড হলে, আপনার অ্যাপ
একটি নেটিভ অবজেক্ট পায় যার মধ্যে অ্যাসেট ও Unity অ্যাপ থাকে (SDK-এর পরিবর্তে
) এবং সেগুলি দেখানো হয়।
পূর্বশর্ত
- Google Mobile Ads Unity প্লাগ-ইন ভার্সন 7.0.0 বা তার পরের যেকোনও ভার্সন।
- শুরু করার নির্দেশিকা সম্পূর্ণ করুন।
- নেটিভ বিজ্ঞাপন অ্যাড-অন ডাউনলোড করে ইনস্টল করুন।
নেটিভ বিজ্ঞাপন ফর্ম্যাট লোড করা
নেটিভ বিজ্ঞাপন AdLoader ক্লাসের মাধ্যমে লোড করা হয়, যার নিজস্ব
AdLoader.Builder ক্লাস আছে যা তৈরি করার সময় কাস্টমাইজ করা যায়। ForNativeAd()
পদ্ধতিটি নেটিভ বিজ্ঞাপন ম্যানেজ করার জন্য AdLoader কনফিগার করে।
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
}
AdLoader বিজ্ঞাপন ইভেন্টের জন্য রেজিস্টার করা
কোনও নেটিভ বিজ্ঞাপন সফলভাবে লোড হলে বা লোড করা না গেলে সেই বিষয়ে বিজ্ঞপ্তি পেতে, নিচে তালিকাভুক্ত ইভেন্টের জন্য AdLoader ক্লাসে
প্রতিনিধি যোগ করুন।
OnNativeAdLoaded
নেটিভ বিজ্ঞাপন সফলভাবে লোড করা হলে এটি ইনভোক করা হয়। লোড করা বিজ্ঞাপন অ্যাক্সেস করতে হলে এই ইভেন্টের জন্য ডেলেগেট থাকতে হবে।
OnAdFailedToLoad
নেটিভ বিজ্ঞাপন লোড করা না গেলে এটি ইনভোক করা হয়।
বিজ্ঞাপন লোড করা
AdLoader তৈরি করা হয়ে গেলে, বিজ্ঞাপন অনুরোধ করতে এর LoadAd() মেথডকে
কল করুন:
adLoader.LoadAd(new AdRequest.Builder().Build());
বিজ্ঞাপনের অনুরোধ একসাথে রাখুন
নিচের কোড স্নিপেট থেকে কীভাবে এমন একটি AdLoader তৈরি করতে হয় তা জানতে পারবেন যা নেটিভ বিজ্ঞাপনের অনুরোধ করার জন্য
কনফিগার করা হয়, সফল ও ব্যর্থ বিজ্ঞাপন
লোডের জন্য ডেলিগেট সেট করে এবং বিজ্ঞাপনের অনুরোধ করে।
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
adLoader.OnNativeAdLoaded += this.HandleNativeAdLoaded;
adLoader.OnAdFailedToLoad += this.HandleAdFailedToLoad;
adLoader.LoadAd(new AdRequest.Builder().Build());
}
বিজ্ঞাপন লোড করা না গেলে কী করতে হবে
OnAdFailedToLoad ইভেন্টটি EventHandle<AdFailedToLoadEventArgs> ধরনের।
এই ইভেন্ট থেকে বিজ্ঞাপন লোড না হওয়ার কারণ পার্স করা নিচে দেখানো হল।
private void RequestNativeAd() {
...
adLoader.OnAdFailedToLoad += this.HandleNativeAdFailedToLoad;
}
private void HandleNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) {
Debug.Log("Native ad failed to load: " + args.Message);
}
নেটিভ বিজ্ঞাপন দেখানো
নেটিভ বিজ্ঞাপন লোড হলে, সংশ্লিষ্ট বিজ্ঞাপন ফর্ম্যাটের জন্য বিজ্ঞাপন ইভেন্ট আহ্বান করা হয়। তারপরে, আপনার অ্যাপের দায়িত্ব হল বিজ্ঞাপন দেখানো, যদিও এটি অবশ্যই সঙ্গে সঙ্গে করতে হবে না।
বিজ্ঞাপন লোড ম্যানেজ করা
OnNativeAdLoaded ইভেন্টটি EventHandler<NativeAdEventArgs> ধরনের। NativeAd অবজেক্টে এনক্যাপসুলেট করা বিজ্ঞাপনটি
NativeAdEventArgs থেকে
নিচে দেখানো পদ্ধতিতে পাওয়া যেতে পারে:
private NativeAd nativeAd;
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
}
নেটিভ বিজ্ঞাপন অ্যাসেট রিট্রিভ করা
বিজ্ঞাপন লোড হয়ে গেলে, নিচে দেখানো পদ্ধতিতে সেগুলির অ্যাসেট অ্যাক্সেস করা যাবে। গ্রাফিক্যাল
অ্যাসেট Texture2D অবজেক্ট হিসেবে এবং টেক্সট অ্যাসেট string অবজেক্ট হিসেবে
ফেরত দেওয়া হয়।
private bool nativeAdLoaded;
private NativeAd nativeAd;
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for the icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
// Get string for headline asset of native ad.
string headline = this.nativeAd.GetHeadlineText();
}
}
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}
মনে রাখবেন, বিজ্ঞাপন অ্যাসেট শুধুমাত্র মূল থ্রেডে অ্যাক্সেস করা উচিত, যেমন,
Unity স্ক্রিপ্টের Update() পদ্ধতি থেকে। এছাড়াও, মনে রাখবেন যে নিম্নলিখিত অ্যাসেট সবসময়
উপস্থিত থাকবে এমন গ্যারান্টি নেই এবং সেগুলি দেখানোর
আগে চেক করে নিতে হবে:
GetStarRating()GetStore()GetPrice()GetAdvertiser()GetIconTexture()
AdChoices অ্যাসেট
নেটিভ বিজ্ঞাপনের অংশ হিসেবে AdChoices বিজ্ঞাপন অ্যাসেট দেখানো বাধ্যতামূলক। এছাড়াও, AdChoices বিজ্ঞাপন অ্যাসেট যাতে সহজে দেখা যায় তা গুরুত্বপূর্ণ, তাই ব্যাকগ্রাউন্ডের রঙ ও ছবি উপযুক্তভাবে বেছে নিন।
বিজ্ঞাপন অ্যাসেটের জন্য GameObjects রেজিস্টার করা
আপনার Unity অ্যাপে বিজ্ঞাপন অ্যাসেট দেখাতে হলে আপনাকে অবশ্যই GameObject রেজিস্টার করতে হবে।
রেজিস্ট্রেশন সফল হলে, GameObject রেজিস্টার করার জন্য ব্যবহৃত পদ্ধতি একটি bool রিটার্ন করে।
List<GameObject>-এর জন্য, এই পদ্ধতি একটি
int রিটার্ন করে যা সফলভাবে রেজিস্টার করা GameObject-এর সংখ্যা নির্দেশ করে।
বিজ্ঞাপন অ্যাসেট রেজিস্ট্রেশন করা না গেলে, সংশ্লিষ্ট নেটিভ বিজ্ঞাপনে ইম্প্রেশন ও ক্লিক শনাক্ত করা যাবে না।
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register the icon ad asset.
}
বিজ্ঞাপন অ্যাসেটের জন্য রেজিস্টার করা GameObject-এ অবশ্যই একটি কনভেক্স কোলাইডার
কম্পোনেন্ট থাকতে হবে যা GameObject-এর সাইজ ও আকৃতির প্রতিনিধিত্ব করে। যদি
GameObject বিজ্ঞাপন অ্যাসেটের সাথে রেজিস্টার করা অবজেক্টে Collider কম্পোনেন্ট না থাকে
অথবা ভুলভাবে কনফিগার করা থাকে, তাহলে নেটিভ বিজ্ঞাপন সঠিকভাবে কাজ করবে না।
নিচের কোড স্নিপেটে, BoxCollider-এর সাথে GameObject যোগ করা হয়েছে যা নেটিভ বিজ্ঞাপনের শিরোনাম বিজ্ঞাপন অ্যাসেট দেখাতে
TextMesh ব্যবহার করে। GameObject-এর সাথে
BoxCollider অ্যাটাচ করা হলে, TextMesh কম্পোনেন্টের টেক্সটকে
অ্যাকোমোডেট করার জন্য এটি অটোমেটিক স্কেল হয়ে যাবে।
// Create GameObject that will display the headline ad asset.
GameObject headline = new GameObject();
headline.AddComponent<TextMesh>();
headline.GetComponent<TextMesh>().characterSize = 0.5 f;
headline.GetComponent<TextMesh>().anchor = TextAnchor.MiddleCenter;
headline.GetComponent<TextMesh>().color = Color.black;
// Get string of the headline asset.
string headlineText = this.nativeAd.GetHeadlineText();
headline.GetComponent<TextMesh>().text = headlineText;
// Add box collider to the GameObject which will automatically scale.
headline.AddComponent<BoxCollider>();
ডেমো
নিচের কোডটি দেখায় যে কীভাবে সফলভাবে লোড করা নেটিভ বিজ্ঞাপনের আইকন অ্যাসেট
রিট্রিভ করতে হয়, Quad-এর টেক্সচার সেট করে আইকন বিজ্ঞাপন অ্যাসেট দেখাতে হয়
এবং অ্যাসেট দেখানোর জন্য GameObject রেজিস্টার করতে হয়। অ্যাপে দেখানো প্রতিটি অ্যাসেটের জন্য,
বিজ্ঞাপন অ্যাসেট রিট্রিভ করা এবং নেটিভ বিজ্ঞাপন ক্লাসের সাথে তা রেজিস্টার করার এই প্রসেস
পুনরাবৃত্তি করতে হবে।
private GameObject icon;
private bool nativeAdLoaded;
private NativeAd nativeAd;
...
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
icon = GameObject.CreatePrimitive(PrimitiveType.Quad);
icon.transform.position = new Vector3(1, 1, 1);
icon.transform.localScale = new Vector3(1, 1, 1);
icon.GetComponent<Renderer>().material.mainTexture = iconTexture;
// Register GameObject that will display icon asset of native ad.
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register ad asset.
}
}
}
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}