前提・実現したいこと
Unityで開発中のAndroidアプリ内にリワード広告を実装したいと考えています。
ユーザーに動画視聴の有無確認 → YESなら動画視聴 → 視聴後に体力回復のアイテム支給
といった流れを作成しています。
テスト用の UnitIDを使用して確認する分には問題なく表示され、問題なくアイテムも支給出来ます。
テスト用のID( ca-app-pub-3940256099942544/5224354917 )
この状態で上記テストID から AdMobで取得したUnitIDのみ変更してビルド→確認すると
動画が表示されなくなります。
ADMOBサポートに問い合わせてみた所、
広告リクエストが出てから、広告が反映されるまでに十分な時間がない
1.広告リクエストのタイミング
2.プレキャッシング導入
3.広告の配置場所
の見直しを検討してくれとの回答をいただきました。
こちらについて、リクエストタイミング(動画のロード)
AdMobReward.instance.RequestRewardBasedVideo();
は、タイトル画面、最初にゲームプレイ画面に入った時、動画視聴後にあらかじめしています。
さっぱり原因がわからず途方に暮れております。
よろしくお願いします。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
using UnityEngine; using System.Collections; using GoogleMobileAds.Api; using DG.Tweening; public class AdMobReward : MonoBehaviour { static public AdMobReward instance; public string ios_Reward; public string Android_Reward; private RewardBasedVideoAd rewardBasedVideo; bool rewardBasedEventHandlersSet = false; bool IsReworded; bool IsClosed; void Awake() { if (instance == null) { instance = this; DontDestroyOnLoad(this.gameObject); } else { Destroy(this.gameObject); } #if UNITY_ANDROID AppLovin.SetSdkKey("********************"); AppLovin.InitializeSdk(); #elif UNITY_IPHONE AppLovin.SetSdkKey("*************************"); AppLovin.InitializeSdk(); #endif RequestRewardBasedVideo(); } void Start() { } void Update() { if (IsReworded && IsClosed) { IsReworded = false; IsClosed = false; //報酬支給 Instantiate(Resources.Load<GameObject>("Prefabs/Item/Item_Power2"), new Vector3(14.02f, 0.16f, -6.4f), Quaternion.Euler(0, 0, 0)); SoundManager.Instance.PlaySE(10); } } public void RequestRewardBasedVideo() { string adUnitId; #if UNITY_EDITOR adUnitId = "unused"; #elif UNITY_ANDROID adUnitId = Android_Reward; #elif UNITY_IPHONE adUnitId = ios_Reward; #else adUnitId = "unexpected_platform"; #endif rewardBasedVideo = RewardBasedVideoAd.Instance; AdRequest request = new AdRequest.Builder().Build(); rewardBasedVideo.LoadAd(request, adUnitId); if (rewardBasedEventHandlersSet == false) { // has rewarded the user. rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded; rewardBasedVideo.OnAdClosed += HandleRewardBasedVideoRewardedClosed; rewardBasedVideo.OnAdFailedToLoad += HandleRewardBasedVideoRewardedFailed; rewardBasedEventHandlersSet = true; } } // 動画再生 public void pushAds() { if ( rewardBasedVideo.IsLoaded() ) { rewardBasedVideo.Show(); } else { GameManager.Instance._reward = false; } } //void HandleRewardBasedVideoOpened(object sender, EventArgs args) //{ // Time.timeScale = 0; //} public void HandleRewardBasedVideoRewarded(object sender, Reward args) { IsReworded = true; } public void HandleRewardBasedVideoRewardedClosed(object sender, System.EventArgs args) { RequestRewardBasedVideo(); IsClosed = true; //Time.timeScale = 1; } public void HandleRewardBasedVideoRewardedFailed(object sender, AdFailedToLoadEventArgs args) { StartCoroutine(_waitConnectReward()); } IEnumerator _waitConnectReward() { while (true) { yield return new WaitForSeconds(30.0f); if (Application.internetReachability != NetworkReachability.NotReachable) { RequestRewardBasedVideo(); break; } } } }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/21 12:07
2018/06/21 13:29