[英]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.