এই নির্দেশিকাটি আপনাকে দেখাবে কীভাবে গুগল মোবাইল অ্যাডস ইউনিটি প্লাগইনের 'অ্যাড প্লেসমেন্টস' ফিচারটি ব্যবহার করে আপনার অ্যাপের জন্য বিজ্ঞাপন তৈরি ও প্রদর্শন করতে হয়।
পূর্বশর্ত
ইউনিটি ২০১৭.৪ বা উচ্চতর সংস্করণ।
GMA ইউনিটি প্লাগইনের আর্লি বিল্ডটি ডাউনলোড ও ইম্পোর্ট করুন।
ইউনিটি এডিটরে আপনার AdMob অ্যাপ আইডি সেট করুন ।
Google Mobile Ads Unity Plugin শুরু করুন
বিজ্ঞাপন লোড করার আগে, একটি Action<InitializationStatus> কলব্যাক সহ MobileAds.Initialize() কল করে Google Mobile Ads Unity Plugin ইনিশিয়ালাইজ করুন। এটি শুধুমাত্র একবার করা প্রয়োজন, আদর্শগতভাবে অ্যাপ চালু করার সময়।
using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
...
public void Start()
{
// Initialize Google Mobile Ads Unity Plugin.
MobileAds.Initialize((initStatus) =>
{
// SDK initialization is complete
});
...
}
}
বিজ্ঞাপন স্থাপন তৈরি করা
গুগল মোবাইল অ্যাডস-এর মাধ্যমে ব্যানার দেখানোর প্রথম ধাপ হলো একটি অ্যাড প্লেসমেন্ট তৈরি এবং কনফিগার করা। আপনি ইউনিটি এডিটর-এর Assets > Google Mobile Ads > Ad Placements থেকে ব্যানার, ইন্টারস্টিশিয়াল বা রিওয়ার্ডেড ফরম্যাটের একটি অ্যাড প্লেসমেন্ট বেছে নিতে পারেন। এরপর তিনটি ডেমো অ্যাড প্লেসমেন্ট সেট আপ হয়ে ব্যবহারের জন্য প্রস্তুত থাকে।


নতুন বিজ্ঞাপন স্থান যোগ করতে, তালিকার শেষে থাকা 'নতুন স্থান যোগ করুন' বোতামে ক্লিক করুন। আপনি ইন্সপেক্টর ভিউ থেকে বিজ্ঞাপন স্থানটি কনফিগার করতে পারেন।
বিজ্ঞাপন বসানোর কনফিগারেশন
প্রতিটি বিন্যাসের নিম্নলিখিত বৈশিষ্ট্য রয়েছে:
- প্লেসমেন্টের নাম
- প্লেসমেন্টের নাম। কোনো দৃশ্যে বিজ্ঞাপন সেট আপ করার সময় প্লেসমেন্ট শনাক্ত করতে এটি ব্যবহৃত হয়।
- বিজ্ঞাপনের বিন্যাস
- ব্যানার, পুরস্কারযুক্ত, মধ্যবর্তী বিজ্ঞাপন। বিজ্ঞাপনের ধরণ।
- বিজ্ঞাপন ইউনিট আইডি
- অ্যান্ড্রয়েড এবং আইওএস-এর জন্য আপনার ব্যানার অ্যাড ইউনিট আইডি প্রদান করুন। আপনাকে কমপক্ষে একটি অ্যাড ইউনিট আইডি প্রদান করতে হবে।
- বিভিন্ন দৃশ্যে অবিচল
- এটি চেক করা থাকলে, দৃশ্যের পরিবর্তন নির্বিশেষে ব্যানারটি স্ক্রিনে থেকে যাবে (
DontDestroyOnLoadমতোই আচরণ)। - স্বয়ংক্রিয় লোড সক্রিয় করা হয়েছে
- এটি চেক করা থাকলে, বিজ্ঞাপন প্লেসমেন্টের সাথে যুক্ত কোনো সিন লোড হওয়ার সাথে সাথে একটি বিজ্ঞাপন স্বয়ংক্রিয়ভাবে লোড হবে।
নিচের স্ক্রিনশটটিতে 'My Awesome Banner' নামের একটি বিজ্ঞাপন স্থাপনের উদাহরণ দেখানো হয়েছে।

দৃশ্যে একটি AdGameObject যোগ করা
ইউনিটি এডিটরে GameObject > Google Mobile Ads ব্যবহার করে আপনি আপনার সিনে ব্যানার, ইন্টারস্টিশিয়াল বা রিওয়ার্ডেড ফরম্যাটের জন্য একটি AdGameObject যোগ করতে পারেন। সক্রিয় সিনে প্লেসমেন্ট যোগ করার জন্য ফরম্যাটটি নির্বাচন করুন।

একবার আপনি সিন-এ একটি AdGameObject যোগ করলে, আপনি ইউনিটি এডিটরের হায়ারার্কি ভিউতে বিজ্ঞাপনটির প্রতিনিধিত্বকারী একটি গেমঅবজেক্ট দেখতে পাবেন।

আপনি গেমঅবজেক্টটির নাম পরিবর্তন করার মাধ্যমে প্লেসমেন্টের নাম পরিবর্তন করতে পারেন। নিচের স্ক্রিনশটটিতে ব্যানার অ্যাড (Banner Ad) নামের একটি অ্যাডগেমঅবজেক্টের (AdGameObject) উদাহরণ দেখানো হয়েছে।

AdGameObject সেটিংস
আপনি ইন্সপেক্টর ভিউ থেকে অ্যাড গেম অবজেক্ট (স্ক্রিপ্ট) কম্পোনেন্টের সেটিংসে আপনার সিন-এর অ্যাডগেমঅবজেক্টটি কনফিগার করতে পারেন।
- বিজ্ঞাপন স্থাপন
কনফিগার করা প্লেসমেন্টের ড্রপ-ডাউন তালিকা থেকে বিজ্ঞাপনের স্থান নির্বাচন করুন। তালিকাটিতে শুধুমাত্র সঠিক ফরম্যাটের জন্য বিজ্ঞাপন ইউনিটগুলো থাকবে। উদাহরণস্বরূপ, ব্যানার বিজ্ঞাপন গেম অবজেক্টের জন্য ড্রপডাউনটি কেবল কনফিগার করা ব্যানার বিজ্ঞাপন প্লেসমেন্টগুলোই দেখাবে।

-
BannerAdGameObjectকনফিগারেশন (শুধুমাত্র ব্যানারের জন্য)
- আকার - আপনি যে ব্যানারটি ব্যবহার করতে চান তার আকার নির্বাচন করুন।
- অ্যাঙ্কর্ড অ্যাডাপ্টিভ ব্যানার আরও কয়েকটি বিকল্প প্রদান করে:
- অভিমুখ - বিজ্ঞাপনের উচ্চতা গণনা করতে ব্যবহৃত ডিভাইসের অভিমুখ নির্বাচন করুন।
- সম্পূর্ণ স্ক্রিন প্রস্থ ব্যবহার করুন - এটি চেক করা থাকলে, ব্যানারটি সম্পূর্ণ স্ক্রিন প্রস্থ জুড়ে থাকবে। 'সম্পূর্ণ স্ক্রিন প্রস্থ ব্যবহার করুন ' অপশনটি আনচেক করলে আপনি স্ক্রিনের প্রস্থের শতাংশ (৫০~৯৯%) সমন্বয় করতে পারবেন।
- কাস্টম বিকল্পের মাধ্যমে আপনি ব্যানারের প্রস্থ এবং উচ্চতা নির্ধারণ করতে পারবেন।
- অ্যাঙ্কর্ড অ্যাডাপ্টিভ ব্যানার আরও কয়েকটি বিকল্প প্রদান করে:
- বিজ্ঞাপনের অবস্থান - ব্যানারটি কোথায় স্থাপন করা হবে, সেই অবস্থানটি নির্বাচন করুন।
কলব্যাক
আপনি বিজ্ঞাপনের কলব্যাকগুলোর সাথে সঙ্গতিপূর্ণ ফাংশনগুলো প্রয়োগ করতে পারেন। উদাহরণস্বরূপ, যদি আপনি কোনো ব্যানার বিজ্ঞাপন লোড হতে ব্যর্থ হলে তা সামলাতে চান:
অ্যাড কলব্যাকের সাথে সামঞ্জস্যপূর্ণ একটি ফাংশন তৈরি করুন।
public void OnBannerAdFailedToLoad(string reason) { Debug.Log("Banner ad failed to load: " + reason); }উপরের ফাংশনটি সম্বলিত স্ক্রিপ্টটি সিন-এর যেকোনো গেমঅবজেক্টে সংযুক্ত করুন।
+ বোতামে ক্লিক করুন, তারপর যে গেমঅবজেক্টটিতে আপনি স্ক্রিপ্টটি সংযুক্ত করেছেন, সেটি ড্র্যাগ অ্যান্ড ড্রপ করুন।

যে ফাংশনটি আপনি অ্যাড কলব্যাকের সাথে লিঙ্ক করতে চান, সেটি নির্বাচন করুন। প্যারামিটারযুক্ত অ্যাড কলব্যাকগুলোর জন্য, ডাইনামিক ভ্যারিয়েবল গ্রহণ করার মতো ফাংশনটি নির্বাচন করুন, যাতে আপনি SDK থেকে প্যারামিটারের মান পেতে পারেন।

স্ক্রিপ্ট থেকে AdGameObject ব্যবহার করুন
স্ক্রিপ্ট থেকে AdGameObject ইনস্ট্যান্সটি নিন।
সকল AdGameObject অবজেক্টের LoadAd() একটি সুবিধাজনক মেথড রয়েছে। এটি একটি সাধারণ, টার্গেটবিহীন AdRequest ব্যবহার করে একটি বিজ্ঞাপন লোড করবে। টার্গেটিং প্রয়োগ করতে, আপনার নিজের কনফিগার করা বিজ্ঞাপন অনুরোধ ব্যবহার করে LoadAd(AdRequest adRequest) ব্যবহার করা উচিত।
প্রতিটি ফরম্যাটের জন্য একটি AdGameObject-এর ইনস্ট্যান্স পেতে নিম্নলিখিত পদ্ধতিটি ব্যবহার করুন:
ব্যানার
MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");
ফেরত আসা BannerAdGameObject অবজেক্টটিতে Hide() এবং Show() সুবিধাজনক মেথডও রয়েছে।
ইন্টারস্টিশিয়াল
MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");
ফেরত আসা InterstitialAdGameObject অবজেক্টটিতে ShowIfLoaded() একটি সুবিধাজনক মেথড রয়েছে।
পুরস্কৃত
MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");
ফেরত আসা RewardedAdGameObject অবজেক্টটিতে ShowIfLoaded() একটি সুবিধাজনক মেথড রয়েছে।
উদাহরণস্বরূপ, আপনি একটি BannerAdGameObject এর ইনস্ট্যান্স পেতে এবং নিম্নলিখিতভাবে তা লোড করতে পারেন:
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;
public class BannerTestScript : MonoBehaviour
{
BannerAdGameObject bannerAd;
void Start()
{
bannerAd = MobileAds.Instance
.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");
bannerAd.LoadAd();
...
}
...
}
যদি BannerAd নামের কোনো BannerAdGameObject থাকে, তাহলে আপনি এইভাবে সেটির একটি ইনস্ট্যান্স পেতে পারেন:
MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");
AdGameObject-এ অন্তর্নিহিত বিজ্ঞাপন অবজেক্ট অ্যাক্সেস করুন
এই কোড স্নিপেটগুলো দেখায় কিভাবে AdGameObject-এর সাথে যুক্ত অন্তর্নিহিত অ্যাড অবজেক্টটি অ্যাক্সেস করতে হয়।
ব্যানার
BannerAdGameObject bannerAd = MobileAds.Instance
.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");
// Access BannerView object
BannerView bannerView = bannerAd.BannerView;
ইন্টারস্টিশিয়াল
InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");
// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;
পুরস্কৃত
RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
.Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");
// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;
উদাহরণ
একটি মধ্যবর্তী বিজ্ঞাপন দেখান
AdGameObject ব্যবহার করে কীভাবে একটি গেমে ইন্টারস্টিশিয়াল বিজ্ঞাপন লোড ও প্রদর্শন করা যায়, তার একটি উদাহরণ এখানে দেওয়া হলো।
সিনে একটি InterstitialAdGameObject যোগ করুন এবং Auto Load Enabled ফিচারটি চালু করুন, যাতে সিন লোড হওয়ার সাথে সাথে বিজ্ঞাপনটি স্বয়ংক্রিয়ভাবে লোড হয়ে যায়।
এরপর, নিচের নির্দেশ অনুযায়ী SDK ইনিশিয়ালাইজ করেছেন কিনা তা নিশ্চিত করুন। মনে রাখবেন, আপনি যদি SDK ইনিশিয়ালাইজ করতে ভুলে যান, তাহলে AdGameObject-এর অটো লোড ফিচারটি কাজ করবে না।
এরপর, স্ক্রিন পরিবর্তনের মাঝে InterstitialAdGameObject.ShowIfLoaded() ফাংশনটি কল করে একটি ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রদর্শন করুন। নিচের কোডটিতে একটি দৃশ্য পরিবর্তনের মাঝে ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রদর্শনের একটি উদাহরণ দেখানো হয়েছে।
using UnityEngine;
using UnityEngine.SceneManagement;
using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;
public class MainScene : MonoBehaviour
{
InterstitialAdGameObject interstitialAd;
void Start()
{
interstitialAd = MobileAds.Instance
.GetAd<InterstitialAdGameObject>("interstitial");
MobileAds.Initialize((initStatus) => {
Debug.Log("Initialized MobileAds");
});
}
public void OnClickShowGameSceneButton()
{
// Display an interstitial ad
interstitialAd.ShowIfLoaded();
// Load a scene named "GameScene"
SceneManager.LoadScene("GameScene");
}
}
যেহেতু আপনি বিজ্ঞাপন প্লেসমেন্টে অটো লোড ফিচারটি চালু করেছেন, তাই আপনাকে আলাদাভাবে বিজ্ঞাপনের জন্য অনুরোধ করার প্রয়োজন নেই। দৃশ্য পরিবর্তন হলে, একটি ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রস্তুত থাকলে তা প্রদর্শিত হবে।
আপনি যদি ম্যানুয়ালি কোনো বিজ্ঞাপনের জন্য অনুরোধ করতে চান, তাহলে অ্যাড প্লেসমেন্ট ইন্সপেক্টর থেকে অটো লোড ফিচারটি নিষ্ক্রিয় করুন এবং এর পরিবর্তে InterstitialAdGameObject.LoadAd() ফাংশনটি কল করুন। নিচের কোড স্নিপেটটিতে দেখানো হয়েছে কীভাবে ম্যানুয়ালি একটি বিজ্ঞাপনের জন্য অনুরোধ করতে হয়।
public class MainScene : MonoBehaviour
{
InterstitialAdGameObject interstitialAd;
void Start()
{
interstitialAd = MobileAds.Instance
.GetAdGameObject<InterstitialAdGameObject>("interstitial");
MobileAds.Initialize((initStatus) => {
Debug.Log("MobileAds initialized");
// Load an interstitial ad after the SDK initialization is complete
interstitialAd.LoadAd();
});
}
...
}
'পুরস্কারপ্রাপ্ত বিজ্ঞাপন দেখুন' বাটনের অবস্থা পরিচালনা করুন
অ্যাড প্লেসমেন্ট ব্যবহার করে কীভাবে একটি 'পুরস্কারপ্রাপ্ত বিজ্ঞাপন দেখুন' বাটন সক্রিয় করা যায়, তার একটি উদাহরণ এখানে দেওয়া হলো।
সিন-এ একটি বাটন গেমঅবজেক্ট (এই উদাহরণে যার নাম বাটন ) যোগ করুন, যেটি একটি রিওয়ার্ডেড অ্যাড দেখানোর জন্য ব্যবহৃত হবে। আমরা এই বাটনটি শুধুমাত্র তখনই উপলব্ধ করব যখন একটি রিওয়ার্ডেড অ্যাড উপলব্ধ থাকবে।

Start() মেথডের মধ্যে, Button-এর active state-কে false এ পরিবর্তন করুন। এর ফলে বাটনটি দৃশ্য থেকে অদৃশ্য হয়ে যাবে।
public class MainScene : MonoBehaviour
{
...
void Start()
{
GameObject.Find("Button").SetActive(false);
...
}
}
দৃশ্যে একটি RewardedAdGameObject যোগ করুন এবং ড্রপডাউন থেকে AdMob Demo Rewarded Ad Ad Placement নির্বাচন করুন।
RewardedAdGameObject ইন্সপেক্টরের Callbacks সেকশনের অধীনে, On Ad Loaded() থেকে + বোতামে ক্লিক করুন, যাতে কোনো রিওয়ার্ডেড অ্যাড লোড হওয়ার সময় ফাংশনটি কল করা হয়।

পূর্ববর্তী ধাপে যোগ করা Button GameObject-টি টেনে None (Object) ফিল্ডে রাখুন। ড্রপডাউন থেকে কল করার জন্য একটি ফাংশন নির্বাচন করুন। No Function > GameObject > SetActive(bool)- এ ক্লিক করুন, তারপর চেকবক্সে ক্লিক করুন যাতে এটি প্যারামিটার হিসেবে true পাঠায় ( SetActive(true) কল করে)।

এই কলব্যাকস বিভাগে, আপনি এমন একটি ইভেন্টও লিঙ্ক করতে পারেন যা RewardedAd.OnUserEarnedReward ইভেন্টটি ফায়ার হলে কল করা হবে। আরও বিস্তারিত জানতে, এই বিভাগটি দেখুন।
এরপর, বাটনটিতে ক্লিক করলে যেন একটি রিওয়ার্ডেড বিজ্ঞাপন দেখানো হয়, তা নিশ্চিত করুন। বাটন ইন্সপেক্টরের On Click() Callbacks সেকশন থেকে, + বাটনে ক্লিক করুন এবং Rewarded Ad Placement GameObject-টি (এই উদাহরণে যার নাম Rewarded Ad ) ড্র্যাগ করে None (Object) ফিল্ডে ড্রপ করুন।

এরপরে, বাটনটির On Click() কলব্যাকে RewardedAdGameObject.ShowIfLoaded() ফাংশনটি যুক্ত করুন।

সবশেষে, SDK ইনিশিয়ালাইজ করতে ভুলবেন না। নিচের কোড স্নিপেটটি হলো এই উদাহরণে ব্যবহৃত সিন-এর সম্পূর্ণ কোড:
using UnityEngine;
using GoogleMobileAds.Api;
public class MainScene : MonoBehaviour
{
void Start()
{
GameObject.Find("Button").SetActive(false);
MobileAds.Initialize((initStatus) => {
Debug.Log("Initialized MobileAds");
});
}
}
প্রজেক্টটি রান করার পর, যখন কোনো রিওয়ার্ডেড অ্যাড লোড হয়ে দেখানোর জন্য প্রস্তুত হবে, তখন আপনি সিন-এ বাটনটি দেখতে পাবেন।
একটি RewardedAdGameObject-এর জন্য একটি রিওয়ার্ড কলব্যাক কনফিগার করুন।
এখানে একটি রিওয়ার্ডেড অ্যাড প্লেসমেন্টে রিওয়ার্ডেড কলব্যাক কনফিগার করার একটি উদাহরণ দেওয়া হলো, যাতে কোনো কলব্যাক ফাংশন কল করা হলে আপনি একজন ব্যবহারকারীকে পুরস্কার দিতে পারেন।
একটি নতুন স্ক্রিপ্ট তৈরি করুন এবং নিম্নরূপভাবে একটি ফাংশন সংজ্ঞায়িত করুন যা প্যারামিটার হিসেবে Reward গ্রহণ করে।
using UnityEngine;
using GoogleMobileAds.Api;
class RewardedTestScript : MonoBehaviour {
...
public void OnUserEarnedReward(Reward reward) {
Debug.Log("OnUserEarnedReward: reward=" +
reward.Type + ", amount=" + reward.Amount);
}
...
}
সিনের যেকোনো গেমঅবজেক্টে (অ্যাড প্লেসমেন্ট গেমঅবজেক্ট ছাড়া) RewardedTestScript স্ক্রিপ্টটি সংযুক্ত করুন। এই উদাহরণে, এটি মেইন ক্যামেরা গেমঅবজেক্টে সংযুক্ত করা হয়েছে।

সিনে একটি RewardedAdGameObject যোগ করুন। এরপর, RewardedAdGameObject ইন্সপেক্টরের Callbacks সেকশনের অধীনে, On User Earned Reward (Reward) এর + বাটনে ক্লিক করে ফাংশনটি সক্রিয় করুন, যাতে কোনো ব্যবহারকারীকে পুরস্কার দেওয়া হলে এটি কল করা হয়।

পূর্ববর্তী ধাপে যোগ করা Main Camera GameObject-টি টেনে এনে None (Object) ফিল্ডে রাখুন। ড্রপডাউন থেকে কল করার জন্য একটি ফাংশন নির্বাচন করুন। No Function > RewardedTestScript > OnUserEarnedReward-এ ক্লিক করুন।

একবার আপনি প্রজেক্টটি রান করে কোনো রিওয়ার্ডেড অ্যাড দেখলে, অ্যাডটির সাথে ইন্টারঅ্যাক্ট করার জন্য আপনাকে পুরস্কৃত করার সময় হলে RewardedTestScript.OnUserEarnedReward() কল করা হবে।