在模拟器和设备上运行时,我在控制台中获得didFailToReceiveAdWithError消息。
在运行iAd 8时,iOS横幅显示成功。在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。
发布于 2015-12-21 19:46:16
我无法重现你的问题。对您的国家进行测试时,iAd网络可能已经关闭,您可能位于一个iAd不支持的国家,或者您在开发设备/模拟器上将iAd测试填充率设置为0%。转到Settings>Developer>Fill Rate>并检查在您的开发设备/模拟器上是否将填充率设置为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");
}如果你仍然有这个问题,你应该直接联系人iAd并根据他们的回答更新你的问题,或者如果他们能帮你解决的话,发布一个答案。
发布于 2015-12-12 13:08:08
尝试在项目的plist文件中添加应用程序传输安全性。

https://stackoverflow.com/questions/34238980
复制相似问题