【问题标题】:iAds not working in Simulator and deviceiAd 在模拟器和设备中不起作用
【发布时间】:2011-11-24 09:42:17
【问题描述】:

当我运行我的应用程序时,我会收到这条关于 iAd 横幅视图的消息。什么意思?

Error Domain=ADErrorDomain Code=3 "无法执行该操作 完全的。广告资源不可用” UserInfo=0x60455a0 {ADInternalErrorCode=3, NSLocalizedFailureReason=广告库存 不可用}

这是我的代码:

#pragma mark -
#pragma mark create BannerView:
- (void)createAdBannerView {
    Class classAdBannerView = NSClassFromString(@"ADBannerView");
    if (classAdBannerView != nil) {
        self.adBannerView = [[[classAdBannerView alloc] initWithFrame:CGRectZero] autorelease];
        [adBannerView setRequiredContentSizeIdentifiers:[NSSet setWithObjects: ADBannerContentSizeIdentifierPortrait, ADBannerContentSizeIdentifierLandscape, nil]];
        if (UIInterfaceOrientationIsLandscape([UIDevice currentDevice].orientation)) {
            [adBannerView setCurrentContentSizeIdentifier:ADBannerContentSizeIdentifierLandscape];
        } else {
            [adBannerView setCurrentContentSizeIdentifier:ADBannerContentSizeIdentifierPortrait];            
        }
        [adBannerView setFrame:CGRectOffset([adBannerView frame], 0, -[self getBannerHeight])];
        [adBannerView setDelegate:self];

        [self.view addSubview:adBannerView];        
    }
}

- (void)fixupAdView:(UIInterfaceOrientation)toInterfaceOrientation {
    if (adBannerView != nil) {        
        if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) {
            [adBannerView setCurrentContentSizeIdentifier:ADBannerContentSizeIdentifierLandscape];
        } else {
            [adBannerView setCurrentContentSizeIdentifier:ADBannerContentSizeIdentifierPortrait];
        }          
        [UIView beginAnimations:@"fixupViews" context:nil];
        if (adBannerViewIsVisible) {
            CGRect adBannerViewFrame = [adBannerView frame];
            adBannerViewFrame.origin.x = 0;
            adBannerViewFrame.origin.y = 0;
            [adBannerView setFrame:adBannerViewFrame];
            CGRect contentViewFrame = contentView.frame;
            contentViewFrame.origin.y = [self getBannerHeight:toInterfaceOrientation];
            contentViewFrame.size.height = self.view.frame.size.height - [self getBannerHeight:toInterfaceOrientation];
            contentView.frame = contentViewFrame;
        } else {
            CGRect adBannerViewFrame = [adBannerView frame];
            adBannerViewFrame.origin.x = 0;
            adBannerViewFrame.origin.y = -[self getBannerHeight:toInterfaceOrientation];
            [adBannerView setFrame:adBannerViewFrame];
            CGRect contentViewFrame = contentView.frame;
            contentViewFrame.origin.y = 0;
            contentViewFrame.size.height = self.view.frame.size.height;
            contentView.frame = contentViewFrame;            
        }
        [UIView commitAnimations];
    }   
}





#pragma mark -
#pragma mark ADBannerViewDelegate

- (void)bannerViewDidLoadAd:(ADBannerView *)banner {
    if (!adBannerViewIsVisible) {                
        adBannerViewIsVisible = YES;
        [self fixupAdView:[UIDevice currentDevice].orientation];
    }
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    NSLog(@"the failed error is %@",error); 
    if (adBannerViewIsVisible)
    {        
        adBannerViewIsVisible = NO;
        [self fixupAdView:[UIDevice currentDevice].orientation];
    }
    //NSLog(@"bannerView:didFailToReceiveAdWithError: %@",[error localizedDescription]);

}


how to solve this problem 

【问题讨论】:

    标签: iphone objective-c


    【解决方案1】:

    您将在模拟器或设备中随机收到此错误消息,以便您可以在没有 iAd 可用时测试您的应用及其行为(隐藏 AdView,使用其他广告提供商...)。但这不是模拟器 / iAd 框架 / iAd 网络的错误:它是一个可以进行更好测试的功能。

    此外,在测试设备上以测试模式部署应用时,您无法获得“真正的”iAd。它必须经过 Apple 审核并从 AppStore 下载。

    【讨论】:

      【解决方案2】:

      “广告资源不可用”是指...没有可用的广告。看起来好像工作正常。

      iAd 易于实施,但填充率低(即许多请求未得到满足),而且在许多国家/地区根本不可用。

      【讨论】:

        【解决方案3】:

        从您的设备中删除该应用,然后从 XCode 重新安装。这为我解决了问题。

        【讨论】:

          猜你喜欢
          • 2015-01-08
          • 1970-01-01
          • 1970-01-01
          • 2023-03-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多