Admobs有时会在不同位置出现两次

时间:2012-12-28 01:29:58

标签: objective-c ios cocoa-touch admob iad

我们正在为没有admobs的国家/地区添加iAd作为备用广告系统。但有时广告会出现两次,第二种广告有时位于屏幕中间,比其他广告高100-200 px。看来第二个广告只在访问已有广告的视图时才会显示。有点像广告调用是viewDidAppear而不是viewDidLoad,但我们没有。或didFailToReceiveAdWithError在外部viewDidLoad拨打电话 - 呼叫广告。有人对此有所了解吗?

修改 它们可以同时出现,而无需重新访问已有广告的视图。

修改(代码) 基本上是:

-(void) viewDidLoad
{
    [self createAdBannerView];
    [self.view addSubview:bannerView];
}

-(void) createAdBannerView
{
    bannerView = [[AdBannerView alloc] initWithFrame:CGRectZero];
    CGRect bannerFrame = bannerView.frame;
    bannerView.frame = bannerFrame;
    bannerView.delegate = self;
    bannerView.requiredContentSizeIdentifiers = [NSSet setWithObjects:ADBannerContentSizeIdentifiersPortrait,AdBannerContentSizeIdentifierLandscape,nil];
}

-(void)bannerView:(AdBannerView*)banner didFailToReceiveAdWithError:(NSError *)error
{
    [self.bannerView removeFromSuperview];
    GbannerView = [[GADBannerView alloc] initWithFrame:CGRectMake(0.0, self.view.frame.size.height-99, 320,50)];
    self.GbannerView.adUnitID=@"xxxxxxx";
    self.GbannerView.rootViewController = self;
    [self.view addSubview:self.GbannerView];
    [self.GbannerView loadRequest:[GADRequest request]];
}

另外,如果有人知道:在包含tableViews的视图中,admobs的位置是错误的。它被卡在标签栏后面,即使该位置考虑到了这一点。这在普通的UIView中不会发生。 whatz ..

1 个答案:

答案 0 :(得分:1)

我建议你将tableView问题解决为自己的问题。有一个如何执行此操作的示例here,但我不知道这是否满足您的具体情况。)

您是否有理由不在此处使用AdMob mediation?他们支持iAd,并且使用客户端代码进行设置非常简单。

对于您的具体情况,我想知道即使从您的超级视图中删除bannerView:didFailToReceiveAdWithError后,AdBannerView:是否仍在不断调用。为什么不在GADBannerView:开头创建一个AdBannerViewviewDidLoad,然后在实例化任何新的之前检查它是否存在?