I have an app that uses iAds and I have noticed a major decline (50-60%) in the number of requests made per session since releasing an update built upon iOS 6. My average session and session length has not changed, in fact the session length has increased slightly. The structure of the app has not changed and the number of view controllers with ads has increased slightly. My assumption was that after the update I would see an increase of the number of ad requests.
The code (logic-wise) that requests ads hasn’t changed and in testing ads show up fine.
The only differences are that the new app is written in MonoTouch, and was previously an Objective-C app, and it is built on iOS 6. I won’t rule out the possibility I’ve done something foolish, but ads do appear fine in the App Store version. I can’t figure out what would cause some a steep drop in requests unless the iAd banner is just not requesting as frequently.
I wrote to iAd support and got an explanation. Simply put, in iOS 6 you absolutely need to be sharing the same iAd banner view between view controllers.
I was creating a new one in ViewDidLoad, based on some code I’d found a few years ago. The newer iAd samples (AdSuite, I think?) show how to share a banner between view controllers, but the gist is just to create a singleton class or to create the banner view in your app delegate and use it everywhere.
My app update recently hit the store using the shared banner and I immediately saw a significant jump in iAd requests. There were no other ad related changes that would have affected the requests, so I’m certain the shared banner view was the key.