简体   繁体   English

插页式iAd实施

[英]Interstitial iAd implementation

I am facing problems with iAd fullscreen ad. 我在使用iAd全屏广告时遇到问题。 I implement iAd like: 我实施iAd的方式如下:

 -(void)showFullScreenAd {
     //Check if already requesting ad
     if (requestingAd == NO) {
         [ADInterstitialAd release];
          interstitial = [[ADInterstitialAd alloc] init];
          interstitial.delegate = self;
          self.interstitialPresentationPolicy = ADInterstitialPresentationPolicyManual;
         [self requestInterstitialAdPresentation];
         NSLog(@"interstitialAdREQUEST");
         requestingAd = YES;
     }//end if
 }

 -(void)interstitialAd:(ADInterstitialAd *)interstitialAd didFailWithError:(NSError *)error {
     interstitial = nil;
     [interstitialAd release];
     [ADInterstitialAd release];
     requestingAd = NO;
     NSLog(@"interstitialAd didFailWithERROR");
     NSLog(@"%@", error);
 }

  -(void)interstitialAdDidLoad:(ADInterstitialAd *)interstitialAd {
     NSLog(@"interstitialAdDidLOAD");
     if (interstitialAd != nil && interstitial != nil && requestingAd == YES)      {
         [interstitial presentFromViewController:self];
         NSLog(@"interstitialAdDidPRESENT");
     }//end if
 }

 -(void)interstitialAdDidUnload:(ADInterstitialAd *)interstitialAd {
     interstitial = nil;
     [interstitialAd release];
     [ADInterstitialAd release];
     requestingAd = NO;
     NSLog(@"interstitialAdDidUNLOAD");
 }

 -(void)interstitialAdActionDidFinish:(ADInterstitialAd *)interstitialAd {
     interstitial = nil;
[interstitialAd release];
 [ADInterstitialAd release];
  requestingAd = NO;
  NSLog(@"interstitialAdDidFINISH");
  }

I am calling "showFullScreenAd" to present ad. 我正在呼叫“ showFullScreenAd”来展示广告。 But after calling it for 10 times i get this message, even if I dismiss this View Controller and setting interstitial = nill,: 但是,即使调用了10次,我仍然收到此消息,即使我关闭了该View Controller并将interstitial = nill设置为:

WARNING: More than 10 instances of ADBannerView or ADInterstitialView currently exist. 警告:当前存在10个以上的ADBannerView或ADInterstitialView实例。 This is a misuse of the iAd API, and ad performance will suffer as a result. 这是对iAd API的滥用,因此会降低广告效果。 This message is printed only once. 该消息仅打印一次。

Problem is with dismissing interstitial i guess. 我想问题是消除插页式广告。 Because statement interstitial = [[ADInterstitialAd alloc] init]; 因为语句interstitial = [[ADInterstitialAd alloc] init];

every time makes new instance of interstitial. 每次都会产生插页式广告的新实例。

I seen few topics about this, but no answer how to properly dismiss those instances. 我没有看到与此相关的主题,但没有回答如何正确消除这些实例的答案。

You need to call method in viewDidLoad . 您需要在viewDidLoad调用方法。

-(void)viewDidLoad 
{ 
  [self showFullScreenAd];
}

I had this problem when I called the method in viewWillLayoutSubviews . 当我在viewWillLayoutSubviews调用方法时遇到了这个问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM