I've built my app this way and everything seems to be working more or less. After hearing about the notoriously low iAd fill rate I decided that this would be the best method, but I tried googling it and i couldnt find record of anyone else implementing ads in their app like this. Does this violate the TOS?
I have iAds and Admob.
I highly recommending loading an iAd first and if you dont get an Ad use admob. iAd has a much higher ECPM than admob if you get an ad. Remember that iAd refreshes every 30s so the did not get ad method will be called several times.
My app has been approved you can get it, Octopus Oracle. http://kurl.ws/Ay
Why not use Adwhirl. Its great sdk that enables you to do exactly what you need. You can set priority settings for different ad networks which can be changed on the fly if you find one network performing better than others etc.
It handles all the logic for which ad to show based on request failure or priority without you needing to worry about it. All you do is create an adwhirl view and request an ad. Adwhirl does the rest, including appropriate refreshing. If an iAd fails first time, and then shows an admob, but the next iAd loads successfully, it will be shown instead of the admob, assuming you set iAd as a higher priority network.
I was trying to use iAd and AdWhirl and switch between them manually in my code, when the iAd is not available. Here is the senario: -Application starts, shows an iAd and hides the AdWhirl panel. -After a while iAd doesn't get impression, it hides and I show AdWhirl.
The problem is when AdWhirls comes up, the iAd never shows up again! - (void)bannerViewDidLoadAd:(ADBannerView *)banner Never happens again.
How can I fix it? Another question is: If I put iAd banners through AdWhirl, Is it going to show iAd as much as I am getting them now? Am I going to have same Impression rate in the States as I have now (with direct iAd), or AdWhirl will give some of it to AdMob and others? Thanks