title: Interstitial ads using iAds on iPhone
body: <p>It seems there are 2 options for displaying interstitial ads using iAds on iPhone. The documentation on interstitials is out of date, but according to the <a href="https://developer.apple.com/library/ios/documentation/iAd/Reference/UIViewController_iAd_Additions/Reference/Reference.html#//apple_ref/occ/instm/UIViewController/requestInterstitialAdPresentation" rel="nofollow noreferrer">iAds Additions Reference</a> all one needs to do to set up is: </p>
  
  <pre><code>[UIViewController prepareInterstitialAds];
  [self setInterstitialPresentationPolicy:ADInterstitialPresentationPolicyManual];
  </code></pre>
  
  <p>followed by: </p>
  
  <pre><code>[self requestInterstitialAdPresentation]
  </code></pre>
  
  <p>(which returns a bool if successful) whenever you'd like to display an ad. </p>
  
  <p>The other options is to manually create an interstitial ad object:</p>
  
  <pre><code>ADInterstitialAd *interstitial;
  </code></pre>
  
  <p>Then: </p>
  
  <pre><code>interstitial = [[ADInterstitialAd alloc] init];
  interstitial.delegate = self;
  </code></pre>
  
  <p>And when you want to show an ad: </p>
  
  <pre><code>if (interstitial.isLoaded) {
      [interstitial presentFromViewController:self];
  }
  </code></pre>
  
  <p>However PresentViewController: is deprecated, and using presentInView:self.view means the ad doesn't have a close button. The compiler also suggests requestInterstitalAdPresentation. </p>
  
  <p>So one would assume option 1 is the preferred approach. I'm a little confused by the answer to <a href="https://stackoverflow.com/questions/20741622/iads-interstitial-adverts-on-iphone">this question</a> as it uses a combination of the 2, but it seems requestInterstitalAdPresentation doesn't trigger the delegate methods of the ADInterstitialAd instance and using both is pointless. </p>
  
  <p>So my question is - is the first approach really sufficient? I've found it only displays one ad, and then fails to display any more. I read in another question that the ADInterstitialAd instance needs to be assigned to nil in order to request a new ad, but then requestInterstitialAdPresentation ignores this instance anyway. Is requestInterstitialAdPresentation just simulating low fill rates? Or am I missing a step? </p>