Unityで作成したアプリでAdMobを使用しています。
エディタでは広告が読めるのですがAndroidのテスト機では広告のロードがうまくいかず困っております。
エディタの場合は「rewardedAd.OnAdLoaded」イベントが発動するのですが なぜかAndroidのテスト機では「rewardedAd.OnAdFailedToLoad」もありません。
ログを確認すると「 rewardedAd.LoadAd(request);」に対しての反応がありませんでした。
・アプリはプレイストアで広告が出るようにリリースされていますが、改良してアップデートしてリリースする時に不具合に気付きました。インタースティショナル広告に関しても同様で「interstitial.LoadAd(request);」に関しての反応がございません。
★試したこと、詳細
・広告ユニットの再作成。
・AdMob広告のテストコードの試用
・「GoogleMobileAds-v5.4.0.unitypackage」の再インポート(アプリ IDもセット)。(asset>GoogleMobileAdsの削除後)
・始まった後しばらく放置してから広告を見たり手動で「CreateAndLoadRewardedAd()」をしてみたりしました。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using GoogleMobileAds.Api; 5using System; 6 7public class Ad_Mob_Reward_SC : MonoBehaviour 8{ 9 private bool rewardeFlag = false;//報酬付与用 初期値はfalse 10 private RewardedAd rewardedAd;//RewardedAd型の変数 rewardedAdを宣言 11 private string adUnitId; 12 13 //******************************************************************************************************************** 14 //******************************************************************************************************************** 15 //******************************************************************************************************************** 16 // 外部より呼ばれる スタート 17 public void flow() { ShowAdMobReward(); } 18 //******************************************************************************************************************** 19 //******************************************************************************************************************** 20 //******************************************************************************************************************** 21 22 23 24 //リワード広告を表示する関数 25 public void ShowAdMobReward() 26 { 27 //広告の読み込みが完了していたら広告表示 28 if (rewardedAd.IsLoaded()) { 29 rewardedAd.Show(); 30 Debug.Log("★★★★リワード広告表示"); 31 } 32 else 33 { 34 Debug.Log("★★★★リワード広告_Load_未完了でした"); 35 36 37 } 38 } 39 40 41 private void Update() 42 { 43 //広告を見た後にrewardeFlagをtrueにしている //広告を見たらこの中の処理が実行される 44 if (rewardeFlag == true) 45 { 46 rewardeFlag = false;//報酬付与用のフラグをfalseへ戻す 47 48 Reword_Get(); // 報酬ゲット 49 50 } 51 52 } 53 54 55 private void Start() 56 { 57 58#if UNITY_ANDROID 59 60 adUnitId = "ca-app-pub-3940256099942544/1033173712";// ★ テストコード 61#elif UNITY_IPHONE 62#else 63 adUnitId = "unexpected_platform"; 64#endif 65 CreateAndLoadRewardedAd(); //リワード広告_Lord 66 } 67 68 69 //リワード広告読み込む関数 70 public void CreateAndLoadRewardedAd() 71 { 72 //リワード広告初期化 73 rewardedAd = new RewardedAd(adUnitId); 74 75 //RewardedAd型の変数 rewardedAdの各種状態 に関数を登録 76 rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;// 77 rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad; 78 rewardedAd.OnAdClosed += HandleRewardedAdClosed;// 79 rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;// 80 81 82 AdRequest request = new AdRequest.Builder().Build(); 83 84 Debug.Log("<color=red>1・広告をロード依頼</color>"); 85 rewardedAd.LoadAd(request); 86 } 87 88 89 90 //-------------------------------------------------------- 91 //-------------------------------------------------------- 92 //・1 リワード読み込み完了 となった時に起動する関数 93 public void HandleRewardedAdLoaded(object sender, EventArgs args) 94 { 95 Debug.Log("リワード広告_Load_成功_Load_ok"); 96 } 97 98 99 //・1 リワード読み込み失敗 となった時に起動する関数 広告のロードが失敗すると呼び出されます。 100 public void HandleRewardedAdFailedToLoad(object sender, AdErrorEventArgs args) 101 { 102 Debug.Log("★★★★リワード広告_lord_失敗" + args.Message);//args.Message:エラー内容 103 } 104 //--------------------------------------------------------- 105 //--------------------------------------------------------- 106 107 108 109 110 111 112 113 //・2 途中でリワード広告閉じられた時に起動する関数 => //リワード広告を再度読み込む関数 114 public void HandleRewardedAdClosed(object sender, EventArgs args) 115 { 116 Debug.Log("・2 ★★★★リワード広告閉じたら次回の広告を取り込む"); 117 CreateAndLoadRewardedAd(); //次の広告再読み込み //リワード広告読み込む関数 118 } 119 120 121 //・2 最後まで広告を見た時に起動する関数 122 public void HandleUserEarnedReward(object sender, Reward args) 123 { 124 Debug.Log("・2 ★★★★★★★★報酬受け取り"); 125 rewardeFlag = true; 126 } 127 //******************************************************** 128 //******************************************************** 129 //******************************************************** 130 //******************************************************** 131 132 133 public void 解放リワード広告_終了メソッド_報酬別() // 報酬 無し 失敗。 成功したら 別で報酬ゲットメソッドも通る 134 { 135 Debug.Log("<color=red>◆途中で中断</color>"); 136 } 137 138 public void Reword_Get() // 報酬 有り 139 { 140 Debug.Log("<color=blue>◆最後まで見た</color>"); 141 // 広告の報酬の処理 142 //○○○○ 143 } 144}
結果
・エディタの時
1・広告をロード依頼 リワード広告_Load_成功_Load_ok ★★★★リワード広告表示
・Androidの時
1・広告をロード依頼 ★★★★リワード広告表示しようとしたけど_Load_未完了でした
新しいSDKを入れて見たりコードを変えて見たりするも 広告が作動せず10日ほど立ち往生しております。
とても困っております。
どなたか少しでも何かアドバイスなど頂けませんでしょうか。
宜しくお願い致します。
Windows
Unity 2019.4.31f1
GoogleMobileAds-v5.4.0.unitypackage
2022/0617
KomoriGameDevさんに教えて頂いた「Android Logcat」で確認すると画面では表示されていない「HandleRewardedAdFailedToLoadイベント」が表示されていました。
いろいろ調べてみましたがおります。
また現在プロカードは無しの状態です。
該当箇所を記載します。
・Androidの操作
log
1 2Info Unity <color=red>・広告をロード依頼</color> 3Info Unity Ad_Mob_Reward_SC:CreateAndLoadRewardedAd() 4Info DynamiteModule Considering local module com.google.android.gms.ads.dynamite:0 and remote module com.google.android.gms.ads.dynamite:221310604 5Info DynamiteModule Selected remote version of com.google.android.gms.ads.dynamite, version >= 221310604 6Verbose DynamiteModule Dynamite loader version >= 2, using loadModule2NoCrashUtils 7Info Ads Updating ad debug logging enablement. 8Info Ads Use RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("487C4CBD940FD390951190066A8B740A")) to get test ads on this device. 9Warn ConnectionStatusConfig Dynamic lookup for intent failed for action: com.google.android.gms.leibniz.events.service.START 10Warn GmsClient unable to connect to service: com.google.android.gms.leibniz.events.service.START on com.google.android.gms 11Error WebViewFactory getProvider,my debug,uid=10228 12Debug ApplicationLoaders ignored Vulkan layer search path /data/app/com.android.chrome-2/lib/arm64:/data/app/com.android.chrome- 13* 14* 15* 16中略 17* 18* 19 20Error chromium [ERROR:simple_version_upgrade.cc(152)] Failed to write a new fake index. 21Error libEGL validate_display:99 error 3008 (EGL_BAD_DISPLAY) 22Warn cr_media Requires BLUETOOTH permission 23Error libEGL validate_display:99 error 3008 (EGL_BAD_DISPLAY) 24Info Ads Ad failed to load : 3 25Info Ads Ad failed to load : 3 26 27 28 29 30 31//HandleRewardedAdFailedToLoadイベント (args.Message => No fill) 32 33Info Unity Ad_Mob_Reward_SC:HandleRewardedAdFailedToLoad(Object, AdErrorEventArgs) 34Info Unity System.EventHandler`1:Invoke(Object, TEventArgs) 35Info Unity System.EventHandler`1:Invoke(Object, TEventArgs) 36Info Unity System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) 37Info Unity UnityEngine.AndroidJavaProxy:Invoke(String, Object[]) 38Info Unity UnityEngine._AndroidJNIHelper:InvokeJavaProxyMethod(AndroidJavaProxy, IntPtr, IntPtr) 39Info Unity 40Info Unity (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 39) 41Info Unity 42Info Unity 広告_Lord_失敗No fill 43Info Unity System.EventHandler`1:Invoke(Object, TEventArgs) 44Info Unity System.EventHandler`1:Invoke(Object, TEventArgs) 45Info Unity System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) 46Info Unity UnityEngine.AndroidJavaProxy:Invoke(String, Object[]) 47Info Unity UnityEngine._AndroidJNIHelper:InvokeJavaProxyMethod(AndroidJavaProxy, IntPtr, IntPtr) 48Info Unity 49Info Unity (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 39) 50Info Unity 51Verbose BoostFramework mAcquireFunc method = public int com.qualcomm.qti.Performance.perfLockAcquire(int,int[]) 52Verbose BoostFramework mReleaseFunc method = public int com.qualcomm.qti.Performance.perfLockRelease() 53Verbose BoostFramework mAcquireTouchFunc method = public int com.qualcomm.qti.Performance.perfLockAcquireTouch(android.view.MotionEvent,android.util.DisplayMetrics,int,int[]) 54Verbose BoostFramework mIOPStart method = public int com.qualcomm.qti.Performance.perfIOPrefetchStart(int,java.lang.String) 55Verbose BoostFramework mIOPStop method = public int com.qualcomm.qti.Performance.perfIOPrefetchStop() 56Verbose BoostFramework BoostFramework() : mPerf = com.qualcomm.qti.Performance@24d2d7 57 58Info Unity ★★★★リワード広告表示しようとしたけど_Load_未完了でした 59Info Unity Ad_Mob_Reward_SC:ShowAdMobReward() 60Info Unity UnityEngine.Events.UnityAction:Invoke() 61Info Unity UnityEngine.Events.UnityEvent`1:Invoke(T0) 62Info Unity UnityEngine.EventSystems.EventTrigger:Execute(EventTriggerType, BaseEventData) 63Info Unity UnityEngine.EventSystems.EventFunction`1:Invoke(T1, BaseEventData) 64Info Unity UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1) 65Info Unity UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchPress(PointerEventData, Boolean, Boolean) 66Info Unity UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchEvents() 67Info Unity UnityEngine.EventSystems.StandaloneInputModule:Process() 68Info Unity 69Info Unity (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 39) 70Info Unity 71 72 73 74 75
//質問には載せていませんでしたがインタースティショナル広告でも同様のエラーになっていました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。