2017-01-26 16 views
0

Я пытаюсь показать награжденные видеообъявления в своем приложении, и каждый раз, когда я пытаюсь загрузить объявление, он идет прямо на метод «не загружать объявление».Ошибка загрузки награжденного видеообъявления с разными ошибками для каждого устройства

Для моего телефона я получаю сообщение об ошибке:

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) 

Для эмулятора я использую, я получаю ошибку:

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

Кроме того, я предполагаю, что проблема не связана с AdMob поскольку я реализовал баннерную рекламу без проблем. Я использую chartboost как медитацию.

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()); 
    } 
} 

Я также получил другие «после награды» методы и «на спине» методы после

ответ

0

Это выглядит так, как будто вы пытаетесь инициализировать Chartboost SDK вместе с посредничеством AdMob. Это было довольно проблематично в моих собственных проектах, поскольку SDK и SDK-адаптер не очень хорошо сочетаются друг с другом.

Вам нужно использовать методы AdMob только для вызова Chartboost, пытаясь инициализировать отдельно, это приведет к сбою адаптера Chartboost.

Это немного раздражает, учитывая, что AdMob поддерживает только рекламные сети SDK, которые он вызывает (что делает загрузку активов раздражающим), но именно так разработан AdMob.

Опуская метод Chartboost startwith и заменяя их обычным методом AdMob для инициализации SDK AdMob, необходимо решить эту проблему.

+0

Это просто использование методов MobileAds? Я не уверен, как инициализировать SDK AdMob, поскольку я не могу найти что-либо onlline. Извините, я немного идиот в этом ахахе. Большое спасибо! –

+0

Да, это просто метод Google Mobileads. Согласно их документации, вызов для инициализации их SDK: 'MobileAds.initialize (getApplicationContext(),« ca-app-pub-3940256099942544 ~ 3347511713 »);' Конечно, идентификатор рекламного блока, о котором идет речь, будет вашим своя. –

+0

Спасибо! Тем не менее, тестовые объявления по-прежнему не отображаются, и по какой-то причине в панелях Chartboost и AdMob они говорят, что для рекламного блока у него около 42 «загрузок», но нет показов. Я помещаю идентификатор рекламного блока или идентификатор приложения в этот вызов? –