How does Apple count impressions of iAd banners? - ios

How does Apple count impressions of iAd banners. I realise that this is not specifically a programming question, but it affects implementation of iAds drastically. I am using a shared banner instance-the same banner on all view controllers.
I have an app that hides the banner when a viewController modally presents another view controller. If the banner is visible, but than becomes invisible during the transition to the second view controller(only for a short period of time), is that an impression? Is there a time period that needs to pass in order for a banner to count as impression? Must that time period be contagious or am I allowed to show add for eg. 5 seconds, 3 seconds the add is invisible, than that same add is visible for another 25 seconds? Is that still an impression? How about using a shared banner instance? If I make a transition from one VC to another, that shared banner instance is not visible for a 0.5 second. Does this break causes impressions to not be generated? Are impression counted by the number of times the ad load in bannerViewDidLoadAd method?

Apple does not go into much detail on the subject.
From iAd Workbench glossary of terms:
impressions The number of times that users are exposed to your ad on
iOS devices, whether or not they tap your ad banner.
Try contacting them directly.
I'd assume that for every ADBannerView filled and displayed on screen for a minimal duration of seconds counts as an impression.

Related

iAd/AdMob mediation, banner loading error?

I use 2 view controllers. Both VC's have the same exact code for iAd/AdMob mediation. My refresh rate in Admob is 30 seconds, can't set any lower. Can't find where to set a refresh rate for iAd network anywhere.
When my 1st VC in viewDidLoad loads an iAd then the 2nd VC automatically loads iAd within 5 seconds.
When my 1st VC in viewDidLoad loads an AdMob banner then the 2nd VC loads iAd or AdMob banner in around 30 seconds.
Does this have to do with the refresh rate I set in AdMob? 30 seconds is the minimum. But I don't understand why when iAd loads first, then the next ad loads quickly, but if AdMob loads first the next ad loads in 30 seconds. Is this typical or is there a code to make AdMob/iAd banner load within specific timeframe?

Show ad after certain amount of interactions

I own a simple soundboard app, which basically plays a song when a button is pushed.
I wanted to know, if it was possible to show an ad after a certain amount of user interactions.
e.g when 20 sounds have been played, a fullscreen ad would pop-up.
I've integrated RevMob in to my app, if that makes any differences :)
Thanks!
As far as I know, with any ad provider (including RevMob), you have pretty decent control on when an ad should appear.
For RevMob, I see you can call "[[RevMobAds session] showFullscreen];" when you want to show a full screen ad (or RevMobAds.session().showFullscreen(); if you're using Swift -- you didn't specify).
So just add a counter property in your view controller and increment the number of user interactions you want to keep track of and then show the full screen ad when you're ready.

How long does an iAd banner have to be on the screen to successfully make an impression

I'm going to be using iAds in my app and I hoped to put it inside a scroll view so the user sees one only occasionally without having a clunky banner. However, I recently read that an ad has to be on the screen for a certain amount of time to make an impression. Does anyone know how long it has to be on the screen?
Thanks!
If it a small banner like 320x50 you can show it somewhere all the times (usually bottom or top).
If it is a full-screen banner, I recommend showing it not more often than 30 seconds.
Also, if it is a game, maker sure you only display it in specific states, otherwise the users will get annoyed and write bad reviews.

Calling interstitial iAd works only one time

I have spritekit game, Ad is preloaded on each start of game with [UIViewController prepareInterstitialAds]; And after gameover it should display ad with [self.view.window.rootViewController requestInterstitialAdPresentation]; and it's works okay, but only first time. The ad's shows only one time. After failing another game, ad do not show though preload. Any suggestions?
Do you have it set up to where it runs
[self.view.window.rootViewController requestInterstitialAdPresentation];
each time the game ends?
See the answer by gj15987 here...
requestInterstitialAdPresentation Works only one Time
He says there's a two minute block out period. I tried it and found it took 3min 20sec to allow another ad for me. I have fill rate set to 100% in the Developer section of Settings.
From the doc :
"The second major difference between a banner view and an full-screen advertisement is that the full-screen advertisement does not cycle through new content. An full-screen ad object loads a single advertisement; once that content expires, your app must release the ad object. Each time your app needs to show a new advertisement, it must explicitly create a new ad object."
straight from the horse's mouth :
iAd Programming Guide : Full-Screen Advertisements

iAd and other banners

In my application I'd like to show cycling iAd banners and another kind of "banners" made by myself.
The problem is that I don't know which could be the best practice.
I'd like to show iAd banner in a 5:1 ratio, that means for five of my banners I will show 1 time the iAd banner, every changes will be triggered by a timer of 10s. That means that the iAd banner will be hidden for 50 sec, shown for 10 and so on.
Will Apple complain about that? does this influence my revenue in the iAd network?
If you are artificially limiting the amount if time the iAd is shown (which is normally more than 10s), I believe you won't be paid for that impression.
A better solution would be to listen to the banner view's delegate and hide it only when it tells you it can't find an ad.

Resources