编辑:似乎每次尝试加载AdColony奖励广告时都会出现此错误:
W / AdColonyMediationAdapter:100:AdColony SDK返回失败回调
以及针对Facebook的此错误:
W / FacebookAdapter:无法加载奖励广告:1203:广告请求中的显示格式与为此展示位置指定的显示格式不匹配。每个展示位置只能使用一种显示格式。您可以创建多个展示位置以使用多种显示格式。
Adcolony使用全屏奖励广告,facebook使用Interstitial,因为没有奖励广告格式。
由于某种原因,我已经实现了admob,facebook广告和adcolony广告的所有代码和SDK。我遵循了有关如何执行所有操作的google指南,在测试模式下它似乎可以正常工作,但是当我随后发布该应用程序时,则不会出现广告。我检查了不同的设备,似乎广告仅在测试模式下可以正常工作。
public class summonSimulator extends AppCompatActivity implements RewardedVideoAdListener {
RewardedVideoAd mAd;
TextView getSummons;
protected void onCreate(Bundle savedInstanceState) {
Thread.setDefaultUncaughtExceptionHandler(new DefaultExceptionHandler(this));
super.onCreate(savedInstanceState);
setContentView(R.layout.summon_simulator);
AdColony.configure(this, "/*APPID*/", "/*ZONEID*/");
AdColonyAppOptions appOptions = AdColonyMediationAdapter.getAppOptions();
appOptions.setGDPRConsentString("1");
appOptions.setGDPRRequired(true);
AudienceNetworkAds.initialize(this);
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
mAd = MobileAds.getRewardedVideoAdInstance(this);
mAd.setRewardedVideoAdListener(this);
mAd.loadAd("/*The ad unit id, double checked and is correct*/)", new AdRequest.Builder().build());
getSummons = findViewById(R.id.loadAd);
getSummons.setVisibility(View.INVISIBLE);
getSummons.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mAd.isLoaded()){
mAd.show();
} else {
Toast.makeText(summonSimulator.this, "Ad failed to load, have 10 summons on me", Toast.LENGTH_SHORT).show();
}
}
});
}
然后显示完整的广告代码
@Override
public void onRewardedVideoAdLoaded() {
Log.i("tag", "onRewardedVideoAdLoaded");
getSummons.setVisibility(View.VISIBLE);
}
@Override
public void onRewardedVideoAdOpened() {
Log.i("tag", "onRewardedVideoAdOpened");
getSummons.setVisibility(View.INVISIBLE);
}
@Override
public void onRewardedVideoStarted() {
Log.i("tag", "onRewardedVideoStarted");
}
@Override
public void onRewardedVideoAdClosed() {
Log.i("tag", "onRewardedVideoAdClosed");
mAd.loadAd("/*The ad unit id, double checked and is correct*/", new AdRequest.Builder().build());
}
@Override
public void onRewarded(RewardItem rewardItem) {
Log.i("tag", "onRewarded");
Toast.makeText(summonSimulator.this, "You received " + rewardItem.getAmount() + " " + rewardItem.getType(), Toast.LENGTH_SHORT).show();
summonsLeft = summonsLeft + 20;
summonsLeftText.setText("Summons Left: " + summonsLeft);
SharedPreferences.Editor editor = settings2.edit();
editor.putInt("summonsLeft", summonsLeft);
editor.apply();
}
@Override
public void onRewardedVideoAdLeftApplication() {
Log.i("tag", "onRewardedVideoAdLeftApplication");
}
@Override
public void onRewardedVideoAdFailedToLoad(int i) {
Log.i("tag", "onRewardedVideoAdFailedToLoad");
mAd.loadAd("/*The ad unit id, double checked and is correct*/", new AdRequest.Builder().build());
getSummons.setVisibility(View.VISIBLE);
}
@Override
public void onRewardedVideoCompleted() {
Log.i("tag", "onRewardedVideoCompleted");
}