我遇到了iAd全屏广告的问题。我像这样实现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");
}
我打电话给"showFullScreenAd"来展示广告。但是在调用它 10 次后,即使我关闭此视图控制器并设置插页式 = nill,我也会收到此消息:
警告:当前存在 10 多个 ADBannerView 或 ADInterstitialView 实例。这是对iAd API的滥用,广告性能将因此受到影响。此消息仅打印一次。
我想问题在于忽略插页式广告。因为声明 插页式广告 = [[ADInterstitialAd alloc] init];
每次都会产生新的插页式广告实例。
我看到的关于此的主题很少,但没有答案如何正确消除这些实例。
你需要在viewDidLoad
中调用方法。
-(void)viewDidLoad
{
[self showFullScreenAd];
}
当我在 viewWillLayoutSubviews
中调用该方法时,我遇到了这个问题。