2017-01-26 1 views
0

Ich versuche, belohnte Videoanzeigen in meiner App zu zeigen, und jedes Mal, wenn ich versuche, die Anzeige zu laden, geht es direkt zur Methode "nicht geladene Anzeige".Fehler beim Laden der belohnten Videoanzeige mit unterschiedlichen Fehlern für jedes Gerät

Für mein Handy bekomme ich den Fehler:

W/Ads: Fail to instantiate adapter com.google.ads.mediation.chartboost.ChartboostAdapter 
     android.os.RemoteException 
      at com.google.android.gms.internal.zzgy.zzbx(Unknown Source) 
      at com.google.android.gms.internal.zzgy.zzbw(Unknown Source) 
      at com.google.android.gms.internal.zzgy.zzbu(Unknown Source) 
      at com.google.android.gms.internal.zzgz$zza.onTransact(Unknown Source) 
      at android.os.Binder.transact(Binder.java:387) 
      at com.google.android.gms.ads.internal.mediation.client.d.a(:com.google.android.gms.DynamiteModulesA:94) 
      at com.google.android.gms.ads.internal.reward.c.b(:com.google.android.gms.DynamiteModulesA:220) 
      at com.google.android.gms.ads.internal.reward.mediation.j.a(:com.google.android.gms.DynamiteModulesA:1140) 
      at com.google.android.gms.ads.internal.util.b.run(:com.google.android.gms.DynamiteModulesA:19) 
      at com.google.android.gms.ads.internal.util.y.call(:com.google.android.gms.DynamiteModulesA:1055) 
      at com.google.android.gms.ads.internal.util.z.run(:com.google.android.gms.DynamiteModulesA:75) 
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423) 
      at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
      at java.lang.Thread.run(Thread.java:818) 

Für den Emulator ich verwende ich den Fehler:

There was a problem getting an ad response. ErrorCode: 0 

Auch ich gehe davon aus, dass das Problem nicht mit AdMob wie ich Banner-Anzeigen ohne Problem implementiert habe. Ich benutze Chartboost als Meditation.

import com.google.ads.mediation.admob.AdMobAdapter; 
import com.google.android.gms.ads.AdRequest; 
import com.google.android.gms.ads.AdView; 
import com.google.android.gms.ads.MobileAds; 
import com.google.android.gms.ads.reward.RewardItem; 
import com.google.android.gms.ads.reward.RewardedVideoAd; 
import com.google.android.gms.ads.reward.RewardedVideoAdListener; 
import com.chartboost.sdk.Chartboost; 
import com.chartboost.sdk.CBLocation; 
import com.chartboost.sdk.ChartboostDelegate; 

public class Settings extends AppCompatActivity 
     implements NavigationView.OnNavigationItemSelectedListener, RewardedVideoAdListener { 

    SharedPreferences data; 
    final String filename = "Data"; 

    Button btnAds; 
    Button btnResetData; 
    Button btnHelp; 
    long adtime; 

    private RewardedVideoAd mAd; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     Chartboost.startWithAppId(this, "I have insterted my app id here", "and my app signature here"); 
     Chartboost.onCreate(this); 

     setContentView(R.layout.activity_settings); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     btnAds = (Button) findViewById(R.id.btnAds); 
     btnResetData = (Button) findViewById(R.id.btnResetData); 
     btnHelp = (Button) findViewById(R.id.btnHelp); 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
       this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
     drawer.setDrawerListener(toggle); 
     toggle.syncState(); 

     NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
     navigationView.setNavigationItemSelectedListener(this); 

     btnAds.setText("Loading ad..."); 

     // Load an ad into the AdMob banner view. 
     AdView adView = (AdView) findViewById(R.id.adView); 
     AdRequest adRequest = new AdRequest.Builder() 
       .setRequestAgent("android_studio:ad_template").build(); 
     adView.loadAd(adRequest); 

     mAd = MobileAds.getRewardedVideoAdInstance(this); 
     mAd.setRewardedVideoAdListener(this); 
     loadRewardedVideoAd(); 
    } 
    private void loadRewardedVideoAd() { 
      mAd.loadAd("I have inserted my app unit id here", new AdRequest.Builder().build()); 
    } 
} 

Ich habe auch die anderen „nach Belohnung“ Methoden und „auf dem Rücken“ Methoden nach

Antwort

0

Es sieht aus, als ob Sie versuchen, das Chartboost SDK neben der AdMob Mediation zu initialisieren. Dies hat sich in meinen eigenen Projekten als ziemlich problematisch herausgestellt, da das SDK und der SDK-Adapter nicht gut miteinander spielen.

Sie müssen nur die AdMob-Methoden verwenden, um Chartboost aufzurufen. Wenn Sie versuchen, die Datei separat zu initialisieren, führt dies zum Fehlschlagen des Chartboost-Adapters.

Das ist ein bisschen ärgerlich, da AdMob nur Ad-Netzwerk-SDKs verwendet, wie sie aufgerufen werden (was das Herunterladen von Assets zum Ärgernis macht), aber so wird AdMob entworfen.

Wenn Sie die Methoden chartboost start mit Methoden auslassen und sie mit der normalen AdMob-Methode zum Initialisieren des AdMob SDK ersetzen, sollte dieses Problem gelöst werden.

+0

Verwendet das nur die MobileAds-Methoden? Ich bin mir nicht sicher, wie ich das AdMob SDK initialisieren soll, da ich nichts online finde. Tut mir leid, ich bin ein bisschen ein Idiot in diesem Ahah. Vielen Dank! –

+0

Ja, das ist nur die Google Mobileads-Methode. Laut ihrer Dokumentation ist der Aufruf, ihr SDK zu initialisieren: 'MobileAds.initialize (getApplicationContext()," ca-app-pub-3940256099942544 ~ 3347511713 ");' Natürlich ist die betreffende Anzeigenblock-ID Ihre besitzen. –

+0

Danke! Testanzeigen werden jedoch immer noch nicht angezeigt. Aus irgendeinem Grund geben beide Nutzer in den Chartboost- und AdMob-Dashboards an, dass für den Anzeigenblock etwa 42 "Starts", aber keine Impressionen vorhanden sind. Platziere ich die Anzeigenblock-ID oder die App-ID in diesen Anruf? –

Verwandte Themen