my application is designed in such a way that new AdView is created in my java code each time before the ad is to be shown. In other words I don't have admob AdView element in my xml layout but call this code periodicaly after a certain timeout:
AdView adMob = new AdView(activity);
adMob.setAdListener(this);
adMob.setRequestInterval(0);
and in the on开发者_Go百科Received callback of the AdView I add the received ad to the layout via the handler:
public void onReceiveAd(AdView adView) {
Log.d(AdHandlerUtils.TAG, "AdMob success");
myActivity.handler.post(new ViewAdRunnable(adContainer, adView));
}
I am able to observer test ads and sometimes real ads. Moreover admob statistics shows the figures for both requests and fillrate columns. But the problem is very low, about 15-20% with my refresh rate set to 30 seconds. I have about 100k requests and 20k impressions.
The question is, could the call to new AdView(activity); be the reason for low fillrate? Does admob send some sort of config(any hashcodes?) info in the first request so that real ads are not always returned from server?
Unfortunately, part of it is the fact that adMob is terrible. A lot of people consistently complain about admob's fillrate - personally each day is its own roller coaster, i get as high as 90% and as low as 10%.
精彩评论