我想在用户单击以阅读pdf文件时展示广告。没有错误,只有插页式广告不会在pdf显示之前显示,而横幅广告则可以显示。请提前帮助我。
这是我要显示插页式广告的Java文件的代码,
package com.example.chickenfarmingurduguidebook;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import com.github.barteksc.pdfviewer.PDFView;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.InterstitialAd;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;
public class book1 extends AppCompatActivity {
private AdView mAdView;
private InterstitialAd mInterstitialAd;
PDFView book1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_book1);
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
MobileAds.initialize(this,
"ca-app-pub-3940256099942544~3347511713");
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
mInterstitialAd.loadAd(new AdRequest.Builder().build());
mInterstitialAd.loadAd(adRequest);
book1 = (PDFView) findViewById(R.id.pdfbook1);
book1.fromAsset("book1.pdf").load();
}
public void onClick(View v){
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
} else {
Log.d("TAG", "The interstitial wasn't loaded yet.");
}
}
}
答案 0 :(得分:0)
添加侦听器以查找错误。
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
@Override
public void onAdFailedToLoad(int errorCode) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdOpened() {
// Code to be executed when the ad is displayed.
}
@Override
public void onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
@Override
public void onAdLeftApplication() {
// Code to be executed when the user has left the app.
}
@Override
public void onAdClosed() {
// Code to be executed when the interstitial ad is closed.
}
});
并记录错误代码并发布。 或者自己找到错误。
如果您记下了错误代码,我可以告诉您发生了什么。。或使用下面的代码列表。 如果这有帮助,请标记为正确答案。
常见错误代码是:
错误代码0:ERROR_CODE_INTERNAL_ERROR 这表明内部发生了一些事情;例如,从广告服务器收到无效的响应。
新创建的广告单元最多可能需要2个小时才能生效(加速时间)。来自新创建的广告单元的所有广告请求在响应广告请求之前也将收到错误代码0,直到它们准备好投放实时广告为止。
该怎么办?测试广告!
错误代码1:ERROR_CODE_INVALID_REQUEST 广告请求无效;例如广告单元ID不正确。
这通常表明广告请求的实施不符合SDK的要求-开发人员文档中提供的示例代码和示例应用程序等资源可帮助正确实现功能。
错误代码2:ERROR_CODE_NETWORK_ERROR
由于网络连接,广告请求失败。
这可能是由于用户的电话交换网络或网络干扰导致应用程序与广告服务器之间的通信失真。某些电信提供商可能还会由于政策而限制特定流量,这也可能导致这种错误。
错误代码3:ERROR_CODE_NO_FILL 说明(Dev Docs链接):广告请求成功,但由于缺少广告资源而没有退回任何广告。
为什么会发生:广告商可以根据业务相关性来定位特定区域,平台和用户个人资料,这有时会导致特定区域或用户个人资料的广告可用性降低。错误代码表明该实现是正确的,并且由于在从应用发送广告请求的那个特定时间缺乏合适的广告的可用性,因此未填写广告请求。
与某些应用或广告单元相关的政策限制也将导致错误代码3响应广告请求而返回。
您可以使用
记录错误 @Override
public void onAdFailedToLoad(int errorCode) {
Log.i("myAdErrorCode",errorCode);
}