2016-07-04 10 views
4

I firebase-広告を使用しています:9.2.0 APIレベル24AdMobのRewardedVideoAd.loadAdは常に「広告の読み込みに失敗し、エラーコード:0」

と団結 - 広告AARモジュールを追加することにより、インポートされます私のbuild.gradleにコンパイルします(名前: 'unity-ads'、ext: 'aar')。

UnityAds APIを直接使用するとすべてがうまく行きます。

しかし、私はこのようにAdMobのでユニティ広告を統合しよう:

mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this); 

    mRewardedVideoAd.setRewardedVideoAdListener(new RewardedVideoAdListener() { 
     @Override 
     public void onRewardedVideoAdLoaded() { 
      logger.debug("onRewardedVideoAdLoaded"); 
     } 

     @Override 
     public void onRewardedVideoAdOpened() { 
      logger.debug("onRewardedVideoAdOpened"); 
     } 

     @Override 
     public void onRewardedVideoStarted() { 
      logger.debug("onRewardedVideoStarted"); 
     } 

     @Override 
     public void onRewardedVideoAdClosed() { 
      logger.debug("onRewardedVideoAdClosed"); 
     } 

     @Override 
     public void onRewarded(RewardItem rewardItem) { 
      logger.debug("onRewarded"); 
     } 

     @Override 
     public void onRewardedVideoAdLeftApplication() { 
      logger.debug("onRewardedVideoAdLeftApplication"); 
     } 

     @Override 
     public void onRewardedVideoAdFailedToLoad(int i) { 
      Toast.makeText( 
       getApplicationContext(), 
       "onRewardedVideoAdFailedToLoad", 
       Toast.LENGTH_SHORT).show(); 
     } 
    }); 

    AdRequest adRewardRequest = new AdRequest.Builder() 
     .addTestDevice("E921B48960E16DA3ABD13C4AFB7052A4") 
     .build(); 

    mRewardedVideoAd.loadAd( 
     getResources().getString(R.string.reward_ad_unit_id), 
     adRewardRequest); 

それは常に

を返す広告レスポンスを取得中に問題がありましたが。 ErrorCode:0
は、広告の読み込みに失敗しました:0

は、私は間違った方法でそれをやったものはありますか?

また、いくつかの手順を忘れましたか?

は、ここに私のAdMobページのスクリーンショットです:私は間質広告を使用してい

AdMob page

答えて

0

、私はそれが同じ問題であると考えています。 Googleはときどき動作しないコードを提供しますが、私にはなぜそのことを尋ねません。

あなたmRewardedVideoAd.loadAd()メソッドの後にこれを追加します。

mRewardedVideoAd.setAdListener(new AdListener() { 
     @Override 
     public void onAdLoaded() { 
      //your code when Ad is loaded 
      //you can show your ad immediately, but I don't suggest it 
      if (mRewardedVideoAd.isLoaded()) { 
       mRewardedVideoAd.show(); //this shows ad immediately 
      } 
     } 

     @Override 
     public void onAdClosed() { 
     } 
    }); 

それともAdListenerを設定することができ、すぐにそれを表示するのではなく、新しい方法をしない:

public static void displayAd() { 
    if (mRewardedVideoAd.isLoaded()) { 
     mRewardedVideoAd.show(); 
    } 
} 

そしてこのようにして、このメソッドを任意のアクティビティから呼び出すことができます。このアクティビティは、既にロードされているため、広告を直ちに表示するため、再度ロードする必要はありません。

+0

)私はすでにリスナーを追加しましたし、私はmRewardedVideoAd.loadAd(と呼ばれた後、それは()onRewardedVideoAdFailedToLoadと呼ばれます。 したがって、mRewardedVideoAd.isLoaded()は常にfalseです。 –

+0

それ以外のところに問題があります。私が言ったように、私は報われたビデオ広告を使用しなかったので、それは似ているかもしれないと思った。 Googleのコードを行単位でチェックし、行が見つからないかどうか確認してください。 – leonz

+0

もう1つ質問がありますが、モバイル広告を初期化しましたか?私のアプリでは、MobileAds.initialize(getApplicationContext()、 "")を書く必要があります。他のすべての前に。アプリでもこれをやったのですか?そうでない場合は、追加してください。広告ユニットIDはAdMobアカウントで確認できます。 – leonz

4

わかりました。解決策が見つかりました。

最初に、プロジェクトにアダプタを含めなかったことがあります。

私はここadpatersをダウンロードする必要があります。

Third-party network adapters

とのlibsフォルダにそれを置きます。 これらのアダプターはSDKに含まれていません(githubからダウンロードする場合)。

第2に、このコードをコードから削除する必要があります。

.addTestDevice("E921B48960E16DA3ABD13C4AFB7052A4") 

AdMobのテストデバイスとして、このデバイスを扱う場合と同様に、(少なくとも私の場合)、ダウンロードすべき任​​意の動画広告があるだろうと思われます。

私はAVDを使用することを選択した場合と同じことが起こり、これらのエミュレータでテスト広告を表示することが強制されます。

私はGenymotionに変更し、addTestDevice()を削除してから動作します。

+0

.'addTestDevice'を使わずにAdmob Rewards広告をテストするにはどうすればよいですか?ありがとう – anunixercoder

+0

あなたはGenymotionかあなたの電話を使用しなければなりません。広告ネットワークの設定ページでテストモードの機能を見つけることができます。 http://i.imgur.com/D1mLbYk.png –

3

通常、これは新しく作成された広告で発生するため、1時間待ってから もう一度お試しください。

のpublic static final int型ERROR_CODE_INTERNAL_ERROR

何かが内部で起こりました。たとえば、無効な応答が広告サーバーから受信されました。

定数値:0

出典:Google Developers

+0

Admobが提供するテスト広告ユニットを使用していますが、読み込みに失敗しています。 – CopsOnRoad

関連する問題