我在模拟器和设备上运行时在控制台中收到didFailToReceiveAdWithError
消息。
iAd横幅会成功显示。在iOS 9上运行时,iAd横幅无法接收广告。
·H
#import <iAd/iAd.h>
@interface ViewController : UIViewController <ADBannerViewDelegate>
@property (retain, nonatomic) IBOutlet ADBannerView *adBanner;
.m
-(void)viewDidLoad {
self.adBanner = [[ADBannerView alloc]initWithFrame:CGRectMake(0,[UIScreen mainScreen].bounds.size.height-100, [UIScreen mainScreen].bounds.size.width, 50)];
self.adBanner.delegate=self;
[self.adBanner setBackgroundColor:[UIColor clearColor]];
[self.view addSubview:self.adBanner];
}
-(void)bannerViewWillLoadAd:(ADBannerView *)banner {
NSLog(@"bannerViewWillLoadAd");
}
-(void)bannerViewDidLoadAd:(ADBannerView *)banner {
// Show the ad banner.
NSLog(@"bannerViewDidLoadAd");
[UIView animateWithDuration:0.5 animations:^{
self.adBanner.alpha = 1.0;
}];
}
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error {
NSLog(@"didFailToReceiveAdWithError");
// Hide the ad banner.
[UIView animateWithDuration:0.5 animations:^{
self.adBanner.alpha = 0.0;
}];
}
-(void)bannerViewActionDidFinish:(ADBannerView *)banner {
NSLog(@"Ad did finish");
}
在iOS 9上运行时,控制台每次都会打印didFailToReceiveAdWithError
。
答案 0 :(得分:6)
我无法重新创建您的问题。在测试时,您的国家/地区的iAd网络可能已关闭,您可能位于iAd不支持的国家/地区,或者您可能在开发设备/模拟器上将iAd测试填充率设置为0%。转到设置&gt;开发人员&gt;填充率&gt;并检查开发设备/模拟器上的填充率是否设置为100%。
我建议您在error
打印您收到的didFailToReceiveAdWithError
,以便了解ADBannerView
失败的原因。
-(void)viewDidLoad {
// The ADBannerView will size itself based on the device it is being displayed on
// Only setting the position is sufficient
self.adBanner = [[ADBannerView alloc]initWithFrame:CGRectMake(0, [UIScreen mainScreen].bounds.size.height-100, 0, 0)];
self.adBanner.delegate=self;
// Removed setBackgroundColor
// Set alpha to 0.0 initially
self.adBanner.alpha = 0.0;
[self.view addSubview:self.adBanner];
}
-(void)bannerViewWillLoadAd:(ADBannerView *)banner {
NSLog(@"bannerViewWillLoadAd");
}
-(void)bannerViewDidLoadAd:(ADBannerView *)banner {
NSLog(@"bannerViewDidLoadAd");
[UIView animateWithDuration:0.5 animations:^{
self.adBanner.alpha = 1.0;
}];
}
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error {
// Changed NSLog to print the error that is received
NSLog(@"didFailToReceiveAdWithError: %@", error);
[UIView animateWithDuration:0.5 animations:^{
self.adBanner.alpha = 0.0;
}];
}
-(void)bannerViewActionDidFinish:(ADBannerView *)banner{
NSLog(@"bannerViewActionDidFinish");
}
如果您仍然遇到此问题,请直接contact iAd根据他们的回复更新您的问题,或者如果他们能够为您解决问题,请回复。
答案 1 :(得分:1)
答案 2 :(得分:0)
我发现了here:
检查我的故事板我注意到,为ADBannerView设置了32的高度约束 - 32在该方向上不是有效高度。删除该高度限制会删除错误“广告资源不可用”,从那时起它就能很好地发挥作用。
检查这是否适合你。
同时查看iAD Changelog,看看是否有任何您可能需要担心的问题。