ইউনিটি গেমে এডমব যুক্ত করা

ফ্রি গেম মানিটাইজেশনের জন্য এডমব দারুণ একটা এড নেটওয়ার্ক। ইউনিটি গেমে এডমব যুক্ত করা অনেক সহজ। প্রথমে Mobile Ads Unity plugin ডাউনলোড করতে হবে।

এরপর এসেট হিসেবে এই প্লাগইনটা ইম্পোর্ট করতে হবে। তা করা যাবে Assets > Import Package > Custom Package থেকে।

এরপর AdMob app ID সেট করতে হবে। তার জন্য এডমবে একটা অ্যাপ তৈরি করে নিতে হবে। অ্যান্ড্রয়েড এবং আইওএস দুইটা প্লাটফর্মে গেম রিলিজ দিতে চাইলে দুইটা অ্যাপ তৈরি করে নিতে হবে এডমবে। এরপর অ্যাপ আইডি সেট করতে হবে। তা করা যাবে Assets > Google Mobile Ads > Settings থেকে।

এবার একটা ইম্পটি গেম অবজেক্ট তৈরি করে নিতে হবে। এবং একটা স্ক্রিপ্ট তৈরি করে নিতে হবে। গেম অবজেক্টের সাথে স্ক্রিপ্টটা যুক্ত করে দিব। যেমন AdManager.cs। প্রথমে দেখি কিভাবে ব্যানার দেখানো যায়ঃ

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;

public class AdManager : MonoBehaviour
{
    static private BannerView bannerView;
    static private InterstitialAd interstitial;
    void Start()
    {
        MobileAds.Initialize(initStatus => { });
        RequestBanner();
      
    }


    private void RequestBanner()
    {

        #if UNITY_ANDROID
             string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
             string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
             string adUnitId = "unexpected_platform";
        #endif

        bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom);
        AdRequest request = new AdRequest.Builder().Build();
        bannerView.LoadAd(request);


    }


    static public void ShowBanner()
    {
        bannerView.Show();
    }

}

তিনটা ধাপ। প্রথমে আমাদের মোবাইল এড ইনিশিয়ালাইজ করে নিতে হবে। এরপর আমরা এড রিকোয়েস্ট করব। এড রিকোয়েস্ট করার পর আমরা এড দেখাতে পারব।

ব্যানারটা কোথায় দেখাবে তা আমরা সেট করে দিতে পারি AdPosition.Bottom অথবা AdPosition.Top এর মাধ্যমে।

এখন আমরা যে কোন জায়গা থেকে ShowBanner() কল করলে ব্যানার এড দেখাবে। আমরা এই স্ক্রিপ্টের Start() মেথডেও কল করতে পারি। আমরা যদি শুধু একটা প্লাটফর্মের জন্য গেম তৈরি করি, তাহলে উপরে if else দিয়ে ব্যানার আইডি সেট না করে ব্যবহার করতে পারি। তাহলে সিম্পল ভাবে তাহলে নিচের মত লিখতে পারি স্ক্রিপ্টটাঃ

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;

public class AdManager : MonoBehaviour
{
    static private BannerView bannerView;
    static private InterstitialAd interstitial;
    void Start()
    {
        MobileAds.Initialize(initStatus => { });
        RequestBanner();
        ShowBanner();
    }


    private void RequestBanner()
    {
       string adUnitId = "ca-app-pub-3940256099942544/6300978111";
      
        bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom);
        AdRequest request = new AdRequest.Builder().Build();
        bannerView.LoadAd(request);

    }


    static public void ShowBanner()
    {
        bannerView.Show();
    }

  
}

এছাড়া আমরা ShowBanner() এর ভেতর কোড লিখে চেক করতে পারি ব্যনার লোড হয়েছে কিনা। যদি না হয়, তাহলে আবার ব্যানার লোড হওয়ার জন্য রিকোয়েস্ট করতে পারি।

এছাড়া ব্যানার যদি গেম প্লেতে দেখাই, তাহলে কেমন হবে না? তাই আমরা চাইলে গেম চলা কালে ব্যনার হাইড করতে পারি। তা করতে পারি bannerView.Hide() এর মাধ্যমে। এ জন্য একটা মেথড লিখে কল করতে পারি।

Interstitial Ads

Interstitial Ads এর জন্য এভাবে কোড লিখতে পারিঃ

    static private void RequestInterstitial()
    {
        #if UNITY_ANDROID
               string adUnitId = "ca-app-pub-3940256099942544/1033173712";
        #elif UNITY_IPHONE
               string adUnitId = "ca-app-pub-3940256099942544/4411468910";
        #else
               string adUnitId = "unexpected_platform";
        #endif

        interstitial = new InterstitialAd(adUnitId);
        AdRequest request = new AdRequest.Builder().Build();
        interstitial.LoadAd(request);
    }


    static public void ShowIntersitial()
    {
        if (interstitial.IsLoaded())
        {
            interstitial.Show();
        }
        else
        {
            RequestInterstitial();
        }
    }

এরপর যে কোন জায়গা থেকেই আমরা ShowIntersitial() কল করতে পারব। যেমন গেম ওভার হয়ে গেলে মেনু দেখানোর পূর্বে আমরা কল করতে পারি।

সম্পূর্ণ AdManager.cs:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;

public class AdManager : MonoBehaviour
{
    static private BannerView bannerView;
    static private InterstitialAd interstitial;
    void Start()
    {
        MobileAds.Initialize(initStatus => { });
        RequestBanner();
        RequestInterstitial();
        ShowBanner();
    }


    private void RequestBanner()
    {

        #if UNITY_ANDROID
             string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
             string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
             string adUnitId = "unexpected_platform";
        #endif

        bannerView = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Bottom);

        AdRequest request = new AdRequest.Builder().Build();

        bannerView.LoadAd(request);


    }


    static public void ShowBanner()
    {
        bannerView.Show();

    }

    static public void HideBanner()
    {
        bannerView.Hide();
    }



    static private void RequestInterstitial()
    {
        #if UNITY_ANDROID
               string adUnitId = "ca-app-pub-3940256099942544/1033173712";
        #elif UNITY_IPHONE
               string adUnitId = "ca-app-pub-3940256099942544/4411468910";
        #else
               string adUnitId = "unexpected_platform";
        #endif

        interstitial = new InterstitialAd(adUnitId);
        AdRequest request = new AdRequest.Builder().Build();
        interstitial.LoadAd(request);
    }


    static public void ShowIntersitial()
    {
        if (interstitial.IsLoaded())
        {
            interstitial.Show();
        }
        else
        {
            RequestInterstitial();
        }
    }

}

এই একই কোড বার বার সকল গেমে ব্যবহার করতে পারি। Unity 2D গেম ডেভেলপমেন্ট নিয়ে এই ব্লগে কিছু লেখা রয়েছে, যেমনঃ

 

 

 

এছাড়া যারা জাভা ডেভেলপার, তারা চাইলে LibGDX ব্যবহার করে গেম ডেভেলপ করতে পারেন। এই ব্লগে কিছু লেখা রয়েছে LibGDX নিয়েও। যেমনঃ

One thought to “ইউনিটি গেমে এডমব যুক্ত করা”

Leave a Reply

Your email address will not be published. Required fields are marked *