前提・実現したいこと
UnityでAdMobのリワード広告を表示したのですが、
Androidで広告を閉じることができません。
発生している問題・エラーメッセージ
UnityでAdMobのリワード広告を表示したのですが、 Androidで広告を閉じることができません。 テスト用のAdMobAppIDをGoogleMobileAdsのSettingsに設定しています。 リワード用のIDもテスト用のIDを使用しています。 iOSでは問題なく表示できるのですが、Androidでは右上に表示される×ボタンを 押しても何も反応しません。 よろしくお願いします。
該当のソースコード
public class ResultScene : SceneObjectBase, FadeManager.IListener { BUTTON_ID m_clickButton; bool m_isRewardLoadFailed; private RewardedAd rewardedAd; public enum BUTTON_ID { BTN_NONE = -1, BTN_RETRY = 0, BTN_TITLE, }; // Start is called before the first frame update void Start() { m_isRewardLoadFailed = false; m_clickButton = BUTTON_ID.BTN_NONE; LoadReward(); } // Update is called once per frame void Update() { } public void clicked(BUTTON_ID bid) { switch (bid) { case BUTTON_ID.BTN_RETRY: { m_clickButton = bid; StartCoroutine("OpenReward"); break; } } } void LoadReward() { //動画広告(AdMob) { string adUnitId = ""; #if PLATFORM_IOS adUnitId = "ca-app-pub-3940256099942544/1712485313"; #elif PLATFORM_ANDROID #if DEBUG adUnitId = "ca-app-pub-3940256099942544/5224354917"; #else #endif this.rewardedAd = new RewardedAd(adUnitId); // 広告の読み込みが完了すると呼び出されます。 this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded; // 広告の読み込みが失敗したときに呼び出されます。提供された AdErrorEventArgs の Message プロパティは、発生した障害のタイプを示します。 this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad; // 広告がデバイスの画面いっぱいに表示されると呼び出されます。必要に応じて、アプリの音声出力やゲームループを一時停止することができます。 this.rewardedAd.OnAdOpening += HandleRewardedAdOpening; // 広告が表示されないときに呼び出されます。提供された AdErrorEventArgs の Message プロパティは、発生した障害のタイプを示します。 this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow; // ユーザーが動画の視聴に対して報酬を受け取る必要があるときに呼び出されます。Reward パラメータは、ユーザーに提示される報酬を説明しています。 this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward; // ユーザーが「閉じる」アイコンまたは「戻る」ボタンをタップして、動画リワード広告を閉じたときに呼び出されます。アプリで音声出力やゲームループを一時停止している場合は、ここで再開すると効果的です this.rewardedAd.OnAdClosed += HandleRewardedAdClosed; // Create an empty ad request. AdRequest request = new AdRequest.Builder().Build(); // Load the rewarded ad with the request. this.rewardedAd.LoadAd(request); } } //リワード表示開始 private IEnumerator OpenReward() { while (true) { if (this.rewardedAd.IsLoaded()) { this.rewardedAd.Show(); break; } else if(m_isRewardLoadFailed) { CloseStart(); break; } yield return new WaitForSeconds(0.2f); } } // 広告の読み込みが完了すると呼び出されます。 public void HandleRewardedAdLoaded(object sender, EventArgs args) { } // 広告の読み込みが失敗したときに呼び出されます。提供された AdErrorEventArgs の Message プロパティは、発生した障害のタイプを示します。 public void HandleRewardedAdFailedToLoad(object sender, AdErrorEventArgs args) { } // 広告がデバイスの画面いっぱいに表示されると呼び出されます。必要に応じて、アプリの音声出力やゲームループを一時停止することができます。 public void HandleRewardedAdOpening(object sender, EventArgs args) { } // 広告が表示されないときに呼び出されます。提供された AdErrorEventArgs の Message プロパティは、発生した障害のタイプを示します。 public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args) { } // ユーザーが「閉じる」アイコンまたは「戻る」ボタンをタップして、動画リワード広告を閉じたときに呼び出されます。アプリで音声出力やゲームループを一時停止している場合は、ここで再開すると効果的です public void HandleRewardedAdClosed(object sender, EventArgs args) { //MonoBehaviour.print("HandleRewardedAdClosed event received"); } // ユーザーが動画の視聴に対して報酬を受け取る必要があるときに呼び出されます。Reward パラメータは、ユーザーに提示される報酬を説明しています。 public void HandleUserEarnedReward(object sender, Reward args) { } }
試したこと
補足情報(FW/ツールのバージョンなど)
Mac環境でビルドしています。
UNITY 201.2.5f1
端末
403SH
OS
Android 5.0.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。