見出し画像

Unityで遊ぶ 広告を実装する(UnityAds)

Unityで遊んでます。

広告の実装方法についてのnoteです。

こんな方はぜひ。

・ゲームが好き
・プログラミングに興味がある
・Unityで広告を実装したい
・ゲームエンジンに興味がある
・インディゲームクリエイターに興味がある

広告にも種類があります。
今回はUnityAdsの広告実装です。
広告の種類については、こちらのnoteで書いてます。


UnityAdsのバナー広告を実装する


UnityAdsのバナー広告を実装する方法について、以下に手順とサンプルコードを示します。

UnityAdsのバナー広告を実装するには、以下のような手順で行います。

1.Unity Adsを設定する

まずは、Unity Adsを設定します。Unity Adsのサイトにアクセスし、アカウントを作成します。そして、UnityプロジェクトにUnity Ads SDKをインポートします。

https://unityads.jp/

・Unityでの設定
Unityを起動し、 Window > General > Service 
「Create」ボタンを押下する。
サービスの一覧が表示されるので「Ads」を選択して有効にする。
13歳未満を対象にするかを聞かれるので、子供向けのゲームの場合はチェックをいれる。
(子供向けのゲームで大人向けの広告が表示されないようにするため)
「Continue」ボタンを押下するとUnity Adsがインポートされる。

インポートが終わったら「Go to Dashboard」ボタンでダッシュボードを開く。

・ダッシュボードでの設定
「Set Mediation Partner」ボタンを押下する。

Unity Ads以外の広告サービスを利用しているか聞かれるので、Admobなどを同時に利用する場合は設定する。
今回は、Unity Ads しか使わないので、右側を選択。右下の「OK」ボタンを押下。

Ad Units画面で自分のGame IDとAd Unit IDを確認する。
「Game ID」:アプリを識別するID
「Ad Unit ID」:広告の種類を識別するID

2.バナー広告を実装する

次に、バナー広告を実装します。以下のスクリプトを作成し、Canvasにアタッチします。

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Advertisements;

public class UnityAdsBanner : MonoBehaviour, IUnityAdsBannerListener
{
    public string gameId = "YOUR_GAME_ID";
    public string placementId = "BANNER_PLACEMENT_ID";

    public Button showBannerButton;
    public Button hideBannerButton;

    private void Start()
    {
        // Initialize Unity Ads
        Advertisement.Initialize(gameId, true);

        // Set the banner listener
        Advertisement.Banner.SetBannerListener(this);

        // Load the banner
        Advertisement.Banner.Load(placementId);
    }

    public void OnUnityAdsBannerLoaded(string placementId, BannerLoadOptions bannerLoadOptions)
    {
        // Show the banner when it is loaded
        Advertisement.Banner.Show(placementId);
    }

    public void OnUnityAdsBannerClick(string placementId, BannerClickOptions bannerClickOptions)
    {
        // Handle banner click event
    }

    public void OnUnityAdsBannerFailedToLoad(string placementId, BannerLoadOptions bannerLoadOptions, BannerErrorInfo bannerErrorInfo)
    {
        // Handle banner load failure event
    }

    public void OnUnityAdsBannerScreenDismissed(string placementId, BannerErrorInfo bannerErrorInfo)
    {
        // Handle banner dismissed event
    }

    public void OnUnityAdsBannerScreenShow(string placementId, BannerOptions bannerOptions)
    {
        // Handle banner shown event
    }

    public void ShowBanner()
    {
        // Show the banner
        Advertisement.Banner.Show(placementId);
    }

    public void HideBanner()
    {
        // Hide the banner
        Advertisement.Banner.Hide(false);
    }
}

上記スクリプトでは、UnityAdsBannerクラス内で下記を行います。
・Unity Adsの設定
・バナー広告のロードと表示
・イベントハンドラの設定 など

具体的には、StartメソッドでUnity Adsを初期化し、バナー広告のリスナーを設定し、バナー広告をロードします。
また、バナー広告のロードが完了したら、OnUnityAdsBannerLoadedメソッドが呼び出されてバナー広告を表示します。
その他のイベントハンドラ(OnXXXの名称のメソッド)では、バナー広告の表示やクリック、ロード失敗、非表示などのイベントを処理します。

3.ビルドと実行を行う

最後に、Unityプロジェクトをビルドし、実行します。

すると、画面下部にUnity Adsのバナー広告が表示されるはずです。
なお、実際にバナー広告を表示するには、広告ユニットIDを設定する必要があります。また、広告の位置やサイズ、表示されるタイミングなども細かく設定できますので、必要に応じて調整してください。

UnityでUnityAdsのインタースティシャル広告を実装する

Unity Adsのインタースティシャル広告を実装する方法について、以下に手順とサンプルコードを示します。

UnityAdsのインタースティシャル広告を実装するには、以下のような手順で行います。

1.Unity Adsを設定する

まずは、Unity Adsを設定します。Unity Adsのサイトにアクセスし、アカウントを作成します。そして、UnityプロジェクトにUnity Ads SDKをインポートします。

https://unityads.jp/

2.インタースティシャル広告を実装する

次に、インタースティシャル広告を実装します。
以下のスクリプトを作成し、任意のシーンにアタッチします。

csharpCopy codeusing UnityEngine;
using UnityEngine.Advertisements;

public class UnityAdsInterstitial : MonoBehaviour, IUnityAdsInterstitialListener
{
    public string gameId = "YOUR_GAME_ID";
    public string placementId = "INTERSTITIAL_PLACEMENT_ID";

    private void Start()
    {
        // Initialize Unity Ads
        Advertisement.Initialize(gameId, true);

        // Set the interstitial listener
        Advertisement.AddListener(this);

        // Load the interstitial
        Advertisement.Load(placementId);
    }

    public void OnUnityAdsInterstitialLoaded(string placementId)
    {
        // Interstitial ad is loaded and ready to be displayed
    }

    public void OnUnityAdsInterstitialShowStart(string placementId)
    {
        // Interstitial ad has started to show
    }

    public void OnUnityAdsInterstitialShowComplete(string placementId, ShowResult showResult)
    {
        // Interstitial ad has finished showing
        if (showResult == ShowResult.Finished)
        {
            // Reward the player for watching the ad
        }
    }

    public void OnUnityAdsInterstitialClick(string placementId)
    {
        // Player clicked on the interstitial ad
    }

    public void OnUnityAdsInterstitialFailed(string placementId, AdError error)
    {
        // Interstitial ad failed to load
    }

    public void ShowInterstitial()
    {
        if (Advertisement.IsReady(placementId))
        {
            // Show the interstitial
            Advertisement.Show(placementId);
        }
    }
}

上記スクリプトでは、UnityAdsInterstitialクラス内で以下を行います。
・Unity Adsの設定
・インタースティシャル広告のロードと表示
・イベントハンドラの設定 など
具体的には、StartメソッドでUnity Adsを初期化し、インタースティシャル広告のリスナーを設定し、インタースティシャル広告をロードします。
また、インタースティシャル広告がロードされたら、OnUnityAdsInterstitialLoadedメソッドが呼び出します。
ShowInterstitialメソッドでは、インタースティシャル広告がロードされている場合に、Advertisement.Showメソッドを呼び出してインタースティシャル広告を表示します。
その他のイベントハンドラ(OnXXXの名称のメソッド)では、インタースティシャル広告の表示やクリック、ロード失敗、再生完了などのイベントを処理しています。

3.ビルドと実行を行う

上記のスクリプトを作成したら、ビルドして実行してみましょう。
Unityエディターでビルドする場合は、Unityエディター上部のメニューバーから「File」→「Build Settings」を選択し、ビルド対象のプラットフォームを選択します。その後、「Build」ボタンをクリックしてビルドします。

ビルドが完了したら、実際のデバイス上でアプリを実行して、インタースティシャル広告が表示されるか確認してください。なお、Unity Adsのインタースティシャル広告は、Unity Adsダッシュボードから設定したテストデバイスでのみ表示される場合があります。広告の表示状況を確認するには、Unity Adsダッシュボードで広告の状態を確認することができます。

UnityでUnityAdsのリワード広告を実装する

Unity Adsのリワード広告を実装する方法について、以下に手順とサンプルコードを示します。

UnityAdsのリワード広告を実装するには、以下のような手順で行います。

  1. Unity Adsの設定を行う

  2. リワード広告を実装する

  3. ビルドと実行を行う

1.Unity Adsの設定を行う

まずは、Unity Adsを設定します。Unity Adsのサイトにアクセスし、アカウントを作成します。そして、UnityプロジェクトにUnity Ads SDKをインポートします。

https://unityads.jp/

3.リワード広告の実装

次に、リワード広告を実装します。
以下のスクリプトを作成し、任意のシーンにアタッチします。

具体的なサンプルコードを以下に示します。

using System.Collections;
using UnityEngine;
using UnityEngine.Advertisements;

public class RewardedAdScript : MonoBehaviour, IUnityAdsListener
{
    private string gameId = "your_game_id";
    private string myPlacementId = "rewardedVideo";
    private bool testMode = true;
    private int rewardAmount = 100;
    private string rewardType = "gems";
    private bool adReady = false;

    void Start()
    {
        if (Advertisement.isSupported && !Advertisement.isInitialized)
        {
            Advertisement.Initialize(gameId, testMode);
        }
        Advertisement.AddListener(this);
    }

    public void ShowRewardedAd()
    {
        if (Advertisement.IsReady(myPlacementId))
        {
            Advertisement.Show(myPlacementId);
        }
    }

    public void OnUnityAdsReady(string placementId)
    {
        if (placementId == myPlacementId)
        {
            adReady = true;
        }
    }

    public void OnUnityAdsDidError(string message)
    {
        Debug.Log("Unity Ads error: " + message);
    }

    public void OnUnityAdsDidStart(string placementId)
    {
    }

    public void OnUnityAdsDidFinish(string placementId, ShowResult showResult)
    {
        if (placementId == myPlacementId && showResult == ShowResult.Finished)
        {
            // リワード付与処理を実装
            RewardPlayer();
        }
    }

    private void RewardPlayer()
    {
        // リワード付与処理を実装
        // ここでは、100個のジェムを付与する例を示しています。
        Debug.Log("You earned " + rewardAmount + " " + rewardType + "!");
    }
}

このサンプルコードでは、リワード広告を表示するための ShowRewardedAd() メソッドが定義されています。このメソッドを呼び出すことで、myPlacementId で指定されたリワード広告を表示することができます。リワード広告が再生された場合、OnUnityAdsDidFinish メソッドが呼び出され、ShowResult.Finished が渡されます。ここで、リワード付与処理を実装することができます。

また、このサンプルコードでは、Unity AdsのSDKを初期化し、IUnityAdsListener インターフェースを実装して、リワード広告の状態を受け取るようにしています。

4.ビルドと実行を行う

上記のスクリプトを作成したら、ビルドして実行してみましょう。
Unityエディターでビルドする場合は、Unityエディター上部のメニューバーから「File」→「Build Settings」を選択し、ビルド対象のプラットフォームを選択します。その後、「Build」ボタンをクリックしてビルドします。

、、、、

時間がなくなったので、今日はここまで、すいません。
もし、つづきに興味が湧いたら、あなたのワンコインお願いします。
そのワンコインで、がんばります。

何について、詳しいか
何について、きわめたいか

何について興味を持つか
面白そうっと思えるか

最後まで読んでいただき、感謝です(ペコリ)

#Unity
#ゲーム
#ゲーム開発
#インディゲーム
#shinmr
#SHINBOK

ここから先は

0字

¥ 500

この記事が気に入ったらサポートをしてみませんか?