Unity Adsの広告をスキップしたか見終わったかを検知する方法

プログラミング

Unity Adsは簡単に広告を表示してくれるサービスです。本来は数行コードを書けば広告を表示できますが、少しだけコードを付け足せば、広告の終了を検知することができます。

この記事では、Unity Adsの終了・スキップ検知の仕方を紹介していきます。

すでにUnity Adsを導入している前提で話を進めます。

まだの方は以下の記事を参考にUnity Adsを有効にしてください。

【初心者向け】Unityゲームに広告を付けて簡単に収益を得る方法(Android/iOS)
はじめにUnityには、ゲーム内に広告を表示して収益を得ることができるUnity Adsというサービスがあります。他の広告配信サービスと比べて、とても簡単に広告を実装できることがUnity Adsの大きなメリットです。...

はじめに

スクリプトの準備をします。”rewardedVideo”というユニットを作成し、すでに以下のコードを用意しているものとします。

Unity ダッシュボード
using UnityEngine.Advertisements;

public class Game : MonoBehaviour
{
    public void RewardAd()
    {
        if (Advertisement.IsReady("rewardedVideo"))
        {
            Advertisement.Show("rewardedVideo");
        }
    }
}

スキップ・準備・開始・終了を検知

まず、クラスにインターフェイスを継承させます。IUnityAdsListenerを追加。

public class Game : MonoBehaviour, IUnityAdsListener

次に、クラス内に関数を追加します。

    public void OnUnityAdsReady(string placementId)
    {

    }

    public void OnUnityAdsDidError(string message)
    {

    }

    public void OnUnityAdsDidStart(string placementId)
    {

    }

    public void OnUnityAdsDidFinish(string placementId, ShowResult showResult)
    {

    }
  • OnUnityAdsReady : Unity Adsが準備完了になったとき
  • OnUnityAdsDidError : エラーが発生したとき
  • OnUnityAdsDidStart : 広告が開始されたとき
  • OnUnityAdsDidFinish : 広告が終了したとき

OnUnityAdsDidFinish()に着目します。showResultは、終了時の情報を持っています。(例えばスキップされた、完了した、など)

    public void OnUnityAdsDidFinish(string placementId, ShowResult showResult)
    {
        //rewardedVideo以外の広告はこれを無視
        if (placementId != "rewardedVideo") return;
		
        if (showResult == ShowResult.Finished)
        {
            //広告を見終わったとき
        }
        else if (showResult == ShowResult.Skipped)
        {
			//スキップされたとき
        }
        else if (showResult == ShowResult.Failed)
        {
            //失敗したとき(途中切れなど)
        }

    }

コード中にコメントアウトした通り、showResultを用いて枝分かれを作ることができます。

スキップされたときや失敗したときは警告文を出し、無事完了したときは報酬を与える、という形が一般的な使い方です。

では(@^^)/~~~

コメント

タイトルとURLをコピーしました