过去15天到目前为止,我的admob插页式广告单元ID总是得到太低的匹配请求。 有15000个插页式请求,我只有~1500匹配(~10%)。
我找不到根本原因。低匹配是来自admob服务器端还是客户端(这意味着我实现了错误的方式)。
有人可以帮助我,这是我实施的一些代码:
首先,我创建了插页式广告。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initUI();
// setup interstitial admob
interstitial = new InterstitialAd(this);
interstitial.setAdUnitId(interstitial_ad_unit_id);
interstitial.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
Log.d("AdListener", "onAdLoaded");
}
@Override
public void onAdFailedToLoad(int errorCode) {
super.onAdFailedToLoad(errorCode);
Log.d("AdListener", "onAdFailedToLoad");
if (isNetworkAvailable()) {
interstitial.loadAd(new AdRequest.Builder().build());
}
}
@Override
public void onAdOpened() {
super.onAdOpened();
Log.d("AdListener", "onAdOpened");
}
@Override
public void onAdClosed() {
super.onAdClosed();
Log.d("AdListener", "onAdClosed");
interstitial.loadAd(new AdRequest.Builder().build());
}
@Override
public void onAdLeftApplication() {
super.onAdLeftApplication();
Log.d("AdListener", "onAdLeftApplication");
}
});
interstitial.loadAd(new AdRequest.Builder().build());
}
然后,每当我需要展示广告时,我都称之为:
public static void displayInterstitial() {
if (interstitial.isLoaded()) {
interstitial.show();
} else {
// show another ads network instead of admob, such as StartApp
displayInterstitialStartApp();
// if interstitial is not loading then load again
if (!interstitial.isLoading()) {
interstitial.loadAd(new AdRequest.Builder().build());
}
}
}
答案 0 :(得分:1)
最佳解决方案是使用中介,以便在Admob无法投放广告时,它会回退到其他广告网络。 Admob提供此功能,只需在Admob网页上配置其他广告网络即可。