因此,我想在我的应用中实施插页式广告。我开始使用测试广告进行测试,但它们无法正常工作。我从onAdFailedToLoad()方法收到错误代码3。此外,我还尝试从此示例显示插页式广告,但它https://github.com/googleads/googleads-mobile-android-examples也无法正常工作。我试图从nougat os btw
运行它这是我的代码:
setupAds()方法在onCreate()中调用
private void setupAds() {
//MobileAds.initialize(this, "ca-app-pub-8285809885442873~1312963043");
MobileAds.initialize(this,
"ca-app-pub-3940256099942544~3347511713");
mInterstitial=new InterstitialAd(this);
mInterstitial.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
mInterstitial.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
Toast.makeText(PopupActivity.this, "onAdlOOADED", Toast.LENGTH_SHORT).show();
}
@Override
public void onAdFailedToLoad(int errorCode) {
Toast.makeText(PopupActivity.this, "onAdfailedtoload" + errorCode, Toast.LENGTH_SHORT).show();
}
@Override
public void onAdOpened() {
Toast.makeText(PopupActivity.this, "onAdOpened", Toast.LENGTH_SHORT).show();
}
@Override
public void onAdLeftApplication() {
Toast.makeText(PopupActivity.this, "onAdleftaplication", Toast.LENGTH_SHORT).show();
}
@Override
public void onAdClosed() {
Toast.makeText(PopupActivity.this, "onAdcLOASED", Toast.LENGTH_SHORT).show();
}
});
AdRequest request = new AdRequest.Builder().
addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
mInterstitial.loadAd(request);
((Button) mView.findViewById(R.id.test_ad_button)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mInterstitial.isLoaded()){
mInterstitial.show();
}
}
});
}
我在这里展示广告:
if (!isFirstStarted()){
if (mInterstitial.isLoaded()){
mInterstitial.show();
}
}
这是清单的一小段:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher_round"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-8285809885442873~1312963043"/>
答案 0 :(得分:0)
此代码对我有用!
注意::在此示例中,我使用了测试广告ID和插页式ID。
MobileAds.initialize(LoginActivity.this, "ca-app-pub-3940256099942544~3347511713");
mInterstitialAd = new InterstitialAd(LoginActivity.this);
mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
mInterstitialAd.loadAd(new AdRequest.Builder()
//.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build());
mInterstitialAd.setAdListener(new com.google.android.gms.ads.AdListener() {
@Override
public void onAdLoaded() {
mInterstitialAd.show();
super.onAdLoaded();
}
});
答案 1 :(得分:0)
选中此Link。
ERROR_CODE_NO_FILL
:广告请求成功,但由于缺少广告资源而没有退回任何广告。
答案 2 :(得分:0)
错误代码3 表示AdMob无法满足您的广告请求。
根据 onAdFailedToLoad()方法的document,错误有4种。
错误代码0 :ERROR_CODE_INTERNAL_ERROR-内部发生了某些事情;例如,从广告服务器收到无效的响应。
错误代码1 :ERROR_CODE_INVALID_REQUEST-广告请求无效;例如广告单元ID不正确。
错误代码2 :ERROR_CODE_NETWORK_ERROR-由于网络连接,广告请求失败。
错误代码3 :ERROR_CODE_NO_FILL-广告请求成功,但由于缺少广告资源而未返回任何广告。 AdMob Help Community认为,违反政策还会导致错误代码3 。
情况1 仅由粗心的开发人员执行。它不应该发生。它不是用户可触发的。
当用户使用AD阻止程序或网络连接断开时,发生情况2 。它是用户可触发的。
开发人员无法控制情况0 ,情况2 和情况3 。我建议您需要在应用程序中处理这些情况。