iAd出现在模拟器中但不在设备上

时间:2010-09-14 18:06:28

标签: iphone objective-c cocoa-touch interface-builder iad

当我运行我的应用程序时,我可以在模拟器中看到我的iAd,它预先填充了“Test Advertisement”

但是,当我在设备上运行该应用程序时,iAd区域为空白,没有预先填充的广告。

为什么会这样?

我的iAd位于UITableViewCell:

#import "iAdCell.h"


@implementation iAdCell
@synthesize adView;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) {
        adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
        adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50];
        adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
        adView.delegate=self;
        [self.contentView addSubview:adView];
    }
    return self;
}


- (void)setSelected:(BOOL)selected animated:(BOOL)animated {

    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}


- (void)dealloc {
    [adView release];
    [super dealloc];
}


@end

2 个答案:

答案 0 :(得分:1)

在提问者添加更多信息后编辑:

如果iAd位于表格单元格内,Apple将拒绝您的应用程序。 iAd必须位于页面上的静态位置,而不是任何类型的滚动视图(包括表格视图)。这是因为iAds通过印象和点击付费,因此在表格视图单元格中使用iAd会导致它在滚动并再次在屏幕上重新加载,这可能会多次。这似乎是“点击欺诈”或类似的行为。 Apple不允许这样做。


可能是因为您的请求失败了。将断点或某些日志记录放入请求失败时发送的失败委托消息中,您将能够看到它是否被调用。

iAd请求可能由于多种原因而失败,包括您所在国家/地区无法使用iAd,没有足够的广告资源来完成请求,广告已经在此会话后显示等等。

可能是模拟器上显示的,因为模拟器实际上没有任何其位置的概念(例如,地图总是在Cupertino中显示您的位置为Apple的HQ。)

答案 1 :(得分:0)

出现同样的问题,为我解决问题的方法就是从您的设备中删除该应用并从XCode重新安装。