2016-05-10 8 views
1

Ich versuche AdMob in meinem Xamarin-Projekt zu verwenden. Ich möchte ein belohntes Video auf meiner App zeigen. Ich habe Probleme, die ich nicht lösen kann und die ich mit Ihnen teilen möchte. Hier ist meine Umgebung:Xamarin Admob BelohntVideoAdCode Fehler 0 & 3

  • Xamarin v4.0.1.96
  • Xamarin Android v6.0.1.10
  • Xamarin.GooglePlayServices.Ads v27.0.0

ich immer das Projekt ausführen auf ein echtes Gerät. Falls das Problem von der Debug-Umgebung kommt, habe ich die App im Store veröffentlicht und ich habe das gleiche Problem wie in local.

using System; 
using Android.OS; 
using Android.Views; 
using Android.Gms.Ads; 

    public class ReloadCreditActivity : AppCompatActivityBase, IRewardedVideoAdListener 
    { 
     public IRewardedVideoAd RewardedVideoAd { get; set; } 
     public Button DisplayVideoButton { get; set; } 

     private static string AD_UNIT_ID = "ca-app-pub-XXXXXXXXXXXXXX25/XXXXXXXX99"; 
     private bool _isRewardedVideoLoading; 
     private static object _lock = new object(); 
     protected IRewardedVideoAd _rewardedVideoAd; 

     protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 
      SetContentView(Resource.Layout.ReloadCreditLayout); 

      DisplayVideoButton = FindViewById<Button>(Resource.Id.tabCreditFreemieum_DisplayVideo); 

      RewardedVideoAd = MobileAds.GetRewardedVideoAdInstance(this); 
      RewardedVideoAd.RewardedVideoAdListener = this; 
      LoadRewardedVideoAd(); 

      DisplayVideoButton.Click += (o, e) => 
      { 
       ShowRewardedVideo(); 
      }; 
     } 

     public void LoadRewardedVideoAd() 
     { 
      lock (_lock) 
      { 
       if (!_isRewardedVideoLoading && !RewardedVideoAd.IsLoaded) 
       { 
        _isRewardedVideoLoading = true; 
        Bundle extras = new Bundle(); 
        extras.PutBoolean("_noRefresh", true); 
        var adMobAdapter = new AdMobAdapter(); 
        AdRequest adRequest = new AdRequest.Builder() 
         //.AddTestDevice(AdRequest.DeviceIdEmulator) 
         //.AddTestDevice("FE5692B3DAD1B4CE3BE3BDA2FF4B6103") 
         //.AddNetworkExtrasBundle(adMobAdapter.Class, extras) 
         .Build(); 
        RewardedVideoAd.UserId = "pub-74XXXXXXXXXXXXXX"; 
        RewardedVideoAd.LoadAd(AD_UNIT_ID, adRequest); 
       } 
      } 
     } 

     public void ShowRewardedVideo() 
     { 
      if (RewardedVideoAd.IsLoaded) 
      { 
       RewardedVideoAd.Show(); 
      } 
     } 

     public void OnRewarded(IRewardItem reward) 
     { 
      Toast.MakeText(this, string.Format("OnRewarded ! currency: {0} amount: {1}", reward.GetType(), reward.Amount), ToastLength.Short).Show(); 
     } 

     public void OnRewardedVideoAdClosed() 
     { 
      Toast.MakeText(this, "OnRewardedVideoAdClosed", ToastLength.Short).Show(); 
      LoadRewardedVideoAd(); 
     } 

     public void OnRewardedVideoAdFailedToLoad(int errorCode) 
     { 
      lock (_lock) 
      { 
       _isRewardedVideoLoading = false; 
      } 
      Toast.MakeText(this, "OnRewardedVideoAdFailedToLoad Code error : " + errorCode, ToastLength.Short).Show(); 
     } 

     public void OnRewardedVideoAdLeftApplication() 
     { 
      Toast.MakeText(this, "OnRewardedVideoAdLeftApplication", ToastLength.Short).Show(); 
     } 

     public void OnRewardedVideoAdLoaded() 
     { 
      lock (_lock) 
      { 
       _isRewardedVideoLoading = false; 
      } 
      Toast.MakeText(this, "OnRewardedVideoAdLoaded", ToastLength.Short).Show(); 
     } 

     public void OnRewardedVideoAdOpened() 
     { 
      Toast.MakeText(this, "OnRewardedVideoAdOpened", ToastLength.Short).Show(); 
     } 

     public void OnRewardedVideoStarted() 
     { 
      Toast.MakeText(this, "OnRewardedVideoStarted", ToastLength.Short).Show(); 
     } 
    } 

Wenn ich auf dieser Seite navigieren, die App immer die OnRewardedVideoAdFailedToLoad() Rückruf erhöhen. Ich benutzte den Fehlercode 0 zu erhalten, aber zur Zeit habe ich den Fehlercode 3.

prüfe ich den Fehler auf dem Android Geräte-Logging

05-10 11:45:31.600 I/Ads  (14764): Starting ad request. 
05-10 11:45:31.600 I/Ads  (14764): Use AdRequest.Builder.addTestDevice("FE5692B3DAD1B4CE3BE3BDA2FF4B6103") to get test ads on this device. 
    ... 
05-10 11:45:31.910 W/Ads  (14764): Could not instantiate mediation adapter: com.jirbo.adcolony.AdColonyAdapter. com.jirbo.adcolony.AdColonyAdapter 
05-10 11:45:31.910 W/Ads  (14764): Fail to instantiate adapter com.jirbo.adcolony.AdColonyAdapter 
05-10 11:45:31.910 W/Ads  (14764): android.os.RemoteException 
05-10 11:45:31.910 W/Ads  (14764): at com.google.android.gms.internal.zzel.zzag(Unknown Source) 
05-10 11:45:31.910 W/Ads  (14764): at com.google.android.gms.internal.zzel.zzae(Unknown Source) 
05-10 11:45:31.910 W/Ads  (14764): at com.google.android.gms.internal.zzem$zza.onTransact(Unknown Source) 
... 
05-10 11:45:31.910 W/Ads  (14764): Could not instantiate mediation adapter: com.fuse.mediation.FuseAdapter. com.fuse.mediation.FuseAdapter 
05-10 11:45:31.910 W/Ads  (14764): Fail to instantiate adapter com.fuse.mediation.FuseAdapter 
05-10 11:45:31.910 W/Ads  (14764): android.os.RemoteException 
05-10 11:45:31.910 W/Ads  (14764): at com.google.android.gms.internal.zzel.zzag(Unknown Source) 
05-10 11:45:31.910 W/Ads  (14764): at com.google.android.gms.internal.zzel.zzae(Unknown Source) 
... 
05-10 11:45:31.910 W/Ads  (14764): Could not instantiate mediation adapter: com.google.ads.mediation.chartboost.ChartboostAdapter. com.google.ads.mediation.chartboost.ChartboostAdapter 
05-10 11:45:31.910 W/Ads  (14764): Fail to instantiate adapter com.google.ads.mediation.chartboost.ChartboostAdapter 
05-10 11:45:31.910 W/Ads  (14764): android.os.RemoteException 
05-10 11:45:31.910 W/Ads  (14764): at com.google.android.gms.internal.zzel.zzag(Unknown Source) 
05-10 11:45:31.910 W/Ads  (14764): at com.google.android.gms.internal.zzel.zzae(Unknown Source) 
... 
05-10 11:45:31.920 W/Ads  (14764): Could not instantiate mediation adapter: com.google.ads.mediation.unity.UnityAdapter. com.google.ads.mediation.unity.UnityAdapter 
05-10 11:45:31.920 W/Ads  (14764): Fail to instantiate adapter com.google.ads.mediation.unity.UnityAdapter 
05-10 11:45:31.920 W/Ads  (14764): android.os.RemoteException 
05-10 11:45:31.920 W/Ads  (14764): at com.google.android.gms.internal.zzel.zzag(Unknown Source) 
05-10 11:45:31.920 W/Ads  (14764): at com.google.android.gms.internal.zzel.zzae(Unknown Source) 
... 
05-10 11:45:31.920 W/Ads  (14764): Could not instantiate mediation adapter: com.vungle.mediation.VungleAdapter. com.vungle.mediation.VungleAdapter 
05-10 11:45:31.920 W/Ads  (14764): Fail to instantiate adapter com.vungle.mediation.VungleAdapter 
05-10 11:45:31.920 W/Ads  (14764): android.os.RemoteException 
05-10 11:45:31.920 W/Ads  (14764): at com.google.android.gms.internal.zzel.zzag(Unknown Source) 
05-10 11:45:31.920 W/Ads  (14764): at com.google.android.gms.internal.zzel.zzae(Unknown Source) 
... 
05-10 11:45:31.920 W/Ads  (14764): Failed to load ad: 3 

sagte ich mir, dass vielleicht ist es ein Problem auf meiner admob Konfiguration mit der Werbetreibende, ist so hier meine Einstellungen:

enter image description here

Vielleicht etwas falsch zu den Einstellungen des Inserenten ich habe hier so meine Werbetreibenden sind.

AdColony: enter image description here

Chartboost: enter image description here

Vungle: enter image description here

Bitte, geben Sie mir Ihr Feedback. Vielen Dank.

+0

Niemand hat einen Kommentar abgegeben? – user1842258

Antwort

1

Ich denke, das Problem ist, dass Sie in Ihrem Xamarin-Projekt nicht die Vermittlungsadapter definiert haben. Diese werden von den verschiedenen Werbeagenturen (wie vUngle) in ihren SDKs bereitgestellt. Leider stellt derzeit keine von ihnen Xamarin-kompatible SDKs zur Verfügung, weshalb Sie die Schritte zum Importieren fremder Assemblies in Xamarin befolgen müssen. Es gibt ein paar Leute, die versuchen, dies zu tun (versuche das Xamarin-Forum zu durchsuchen), aber ich habe niemanden gesehen, der eine funktionierende Lösung veröffentlicht hat.