首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iAd横幅不在iOS 9上工作

iAd横幅不在iOS 9上工作
EN

Stack Overflow用户
提问于 2015-12-12 10:52:51
回答 3查看 543关注 0票数 13

在模拟器和设备上运行时,我在控制台中获得didFailToReceiveAdWithError消息。

在运行iAd 8时,iOS横幅显示成功。在iOS 9上运行时,iAd横幅无法接收广告。

.h

代码语言:javascript
复制
#import <iAd/iAd.h>
@interface ViewController : UIViewController <ADBannerViewDelegate>

@property (retain, nonatomic) IBOutlet ADBannerView *adBanner;

.m

代码语言:javascript
复制
-(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

EN

回答 3

Stack Overflow用户

发布于 2015-12-21 19:46:16

我无法重现你的问题。对您的国家进行测试时,iAd网络可能已经关闭,您可能位于一个iAd不支持的国家,或者您在开发设备/模拟器上将iAd测试填充率设置为0%。转到Settings>Developer>Fill Rate>并检查在您的开发设备/模拟器上是否将填充率设置为100%。

我建议在error中打印您正在接收的didFailToReceiveAdWithError,这样您就可以找到ADBannerView失败的原因。

代码语言:javascript
复制
-(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并根据他们的回答更新你的问题,或者如果他们能帮你解决的话,发布一个答案。

票数 6
EN

Stack Overflow用户

发布于 2015-12-12 13:08:08

尝试在项目的plist文件中添加应用程序传输安全性。

票数 1
EN

Stack Overflow用户

发布于 2015-12-19 11:03:17

我找到了这个这里

检查我的故事板,我注意到,32的高度约束是为ADBannerView设置的- 32在那个方向上不是一个有效的高度。删除高度限制删除了错误“广告库存不可用”,并从那时起,它工作得很好。

看看这对你有用吗。

另外,请与iAD变更量g联系,看看是否有什么需要您担心的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34238980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档