Calling interstitial iAd works only one time - ios

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

Related

How does Apple count impressions of iAd banners?

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.

iAd Interstitial: Determining if ad was shown?

I'm showing interstitials by using destinationVC.interstitialPresentationPolicy = ADInterstitialPresentationPolicy.Automatic before I actually show the destintion view controller.
How am I supposed to detect if an interstitial loaded? I need to know so I can know if I should reset a timer that let's me show interstitials every few minutes.
It's weird - even with 100% fill rate enabled in my developer settings, my interstitial doesn't always show...
I tried implementing ADInterstitialDelegate but it seems interstitialDidLoad doesn't actually execute?
For the fillrate, are you talking about test ads or live ads? iAd has a very low live ads fill rate and is even not supported at all in many countries...
For the delegate, did you assign the delegate e.g.
self.interstitial.delegate = self;
Assign it and do an NSLog for example in the delegate methods like in interstitialDidLoad to test if it s called...
P.S. A timer to fire ads isn t really a good idea... Ads should be fired after an action by a user, at a specific time regarding the app lifecycle / usage and should not interrupt, what would obviously happen if you use a timer...

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 do I put Admob interstitials on a timer for ios?

I am trying to implement Admob interstitials into my Xcode project and I want to set it so an ad pops up every 70 seconds or so while a user is using the app. If anyone could explain how to do this, or respond with a link to a guide it would be much appreciated.
Load the ad when starting the app/activity/scene. Keep a timer of 70 seconds after which show the ad.
The ad will be displayed. If user presses it or cancels it, in both cases you will have to create new adRequest for the ad to be shown after 140 seconds. Maybe you can have a loop. But i am not sure this is the recommended way to use interstitials. I think they should be shown once during one screen. Show it at a stage when the user will definitely read the ad.

Setting up full page ads

I am using Admob Mediation service with an Interstitial ad type for a full page ad.
Documentation here: https://developers.google.com/mobile-ads-sdk/docs/admob/advanced#ios
I am trying to replicate the full page ad setup in Words with Friends and other game apps. Where the full screen ad is shown then a delayed close button is shown. Can this be completed with the above setup?
In an ideal world I would like to delay the close button being shown and also randomly place the close button in one of the four corners.
Yes, the setup displayed in the GADInterstitial documentation should create and display an interstitial ad such as you describe. You shouldn't have to do anything special to make the close box show up after a delay -- that's something that the ad will implement if it's what the advertiser wants. Just follow the directions in the docs -- wait for the ad to finish loading, and then call:
[interstitial_ presentFromRootViewController:self];
(Substitute your own variable name if you use something other than interstitial_, of course).
In an ideal world I would like to delay the close button being shown and also randomly place the close button in one of the four corners.
You shouldn't try to control the placement or display of ad controls like the close button. Again, the ad itself will manage that. I'm sure your goal is to increase your app's click-through rate, or more generally to maximize your advertising income. But there's a reason beyond ease of use that ad networks make their SDK's very simple to integrate: they don't want you to mess with the way ads are displayed. At all. Not even a little bit.
You can add a timer that creates and adds a button to your view after x-time

Resources