質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

982閲覧

[Unity] AdMobで動画がリロードされない

kanro1

総合スコア12

AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2018/09/23 02:29

編集2018/09/23 02:33

【開発環境】
Unity2018.2.2f1
Google Mobile Ads Unity Plugin v3.15.1

Unityで開発したアプリにAdMobの動画リワード・インタースティシャルの広告を実装しました。
広告IDはテストIDを使用しています。
初回のテスト広告は表示されるのですが、2回目以降の広告が表示されません。

※Unity2017.3.1で同様の実装をした際は全く問題ありませんでした

using System.Collections; using UnityEngine; using GoogleMobileAds.Api; using System; public class AdManager : MonoBehaviour { public static AdManager instance; private RewardBasedVideoAd rewardBasedVideo; private InterstitialAd interstitial; void Awake() { if (instance != null){ Destroy(this.gameObject); }else if (instance == null){ instance = this; } DontDestroyOnLoad(this.gameObject); } void Start() { #if UNITY_ANDROID string appId = "xxxxxxxxxx"; #elif UNITY_IPHONE string appId = "xxxxxxxxxx"; #else string appId = "unexpected_platform"; #endif MobileAds.Initialize(appId); this.rewardBasedVideo = RewardBasedVideoAd.Instance; rewardBasedVideo.OnAdFailedToLoad += HandleRewardBasedVideoFailedToLoad; rewardBasedVideo.OnAdOpening += HandleRewardBasedVideoOpened; rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded; rewardBasedVideo.OnAdClosed += HandleRewardBasedVideoClosed; RequestInterstitial(); RequestRewardBasedVideo(); } // Interstitial private void RequestInterstitial() { #if UNITY_ANDROID string adUnitId = "xxxxx"; #elif UNITY_IPHONE string adUnitId = "xxxxx"; #else string adUnitId = "unexpected_platform"; #endif interstitial = new InterstitialAd(adUnitId); interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad; interstitial.OnAdOpening += HandleOnAdOpened; interstitial.OnAdClosed += HandleOnAdClosed; AdRequest request = new AdRequest.Builder().Build(); interstitial.LoadAd(request); } public void HandleOnAdOpened(object sender, EventArgs args) { //広告が表示されたらポーズする AudioManager.audioSource.Pause(); } public void HandleOnAdClosed(object sender, EventArgs args) { //広告を閉じたらポーズを解除する AudioManager.audioSource.UnPause(); interstitial.Destroy(); RequestInterstitial(); } public void ShowInterstitial() { if (interstitial.IsLoaded()){ interstitial.Show(); } } // RewardedVideo private void RequestRewardBasedVideo() { #if UNITY_ANDROID string adUnitId = "xxxxxxxxxx"; #elif UNITY_IPHONE string adUnitId = "xxxxxxxxxx"; #else string adUnitId = "unexpected_platform"; #endif AdRequest request = new AdRequest.Builder().Build(); this.rewardBasedVideo.LoadAd(request, adUnitId); } public void HandleRewardBasedVideoOpened(object sender, EventArgs args) { //広告が表示されたらポーズする AudioManager.audioSource.Pause(); } public void HandleRewardBasedVideoClosed(object sender, EventArgs args) { //広告を閉じたらポーズを解除する AudioManager.audioSource.UnPause(); this.RequestRewardBasedVideo(); } public void HandleRewardBasedVideoRewarded(object sender, Reward args) { string type = args.Type; double amount = args.Amount; /* リワード付与をここに記述 */ } public void ShowRewardedVideo(string rewardType) { if (rewardBasedVideo.IsLoaded()){ //ロードが完了している時、動画を表示する rewardBasedVideo.Show(); }else{ /* 完了していない場合、「読み込み中」のテキストを表示 */ } } }

GUIボタンをタップするとリワードが表示される仕組みですが、読み込まれていない場合はきちんと「読み込み中」が表示されますので、
イベント周りの不具合ではないかと思われます。
プラグインのバージョンを1つ、2つと落としてみましたが、そちらでも変わりありません。

ご教示いただければ幸いです。

--追記
テストデバイスはAndroidスマホ・タブレットです。
こちらを参考に、少し経過してからリクエストするように追加し試しましたが、そちらでも取得できませんでした。
https://teratail.com/questions/82446

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

こちらはiOSでのケースですが
「広告をクローズしたところで再度設定し直していますが、これを入れないとユーザーが最後まで見ずに終わった場合、再起動するまでこの広告を再開できないためです」
とありますので
再ロードだけでなく再設定してみてはどうでしょうか
リンク内容

投稿2018/09/25 02:24

aja

総合スコア3733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kanro1

2018/09/30 04:06

ご回答いただきありがとうございます。確認が遅れてすみません。 上記内容で再確認いたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問