网络断开后iAd刷新

时间:2011-12-02 09:20:50

标签: iphone ios ios-simulator iad

我有一个iAd,在连接到网络时显示正常。在iOS模拟器上或在我的设备上进行测试,如果我打开我的应用程序,请参阅iAd,然后转到设置并打开飞行模式,然后返回到应用程序,横幅滑出屏幕。大。现在,如果我关闭飞机模式(网络打开),即使等待10-15分钟后,iAd也不会重新出现。

所以,这是我的问题:

  1. iAd测试广告是否刷新自己与真正的iAd相同(每分钟左右)?

  2. 当检测到网络时,有没有办法强制iAd刷新并请求新广告?

  3. 我无法在任何地方找到有关测试广告行为的信息,在将应用程序上传到App Store之前,我无法使用真实广告进行测试(对吗?)

    继承我的代码:

    创建iAd的位置:

    - (void)viewDidLoad
    {
        adView = [[ADBannerView alloc] initWithFrame:CGRectMake(0, 410, 320, 50)];
        adView.frame = CGRectOffset(adView.frame, 0, 50);
        adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];
        adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
        [self.view addSubview:adView];
        adView.delegate=self;
        self.bannerIsVisible=NO;
        [super viewDidLoad];
    }
    

    委托方法:

    - (void)bannerViewDidLoadAd:(ADBannerView *)banner
    {
        NSLog(@"AdWin");
        if (!self.bannerIsVisible)
        {
            [UIView beginAnimations:@"animateAdBannerOn" context:NULL];
            banner.frame = CGRectOffset(banner.frame, 0, -50);
            [UIView commitAnimations];
            self.bannerIsVisible = YES;
        }
    }
    
    - (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
    {
        NSLog(@"AdLose");
        if (self.bannerIsVisible)
        {
            [UIView beginAnimations:@"animateAdBannerOff" context:NULL];
            banner.frame = CGRectOffset(banner.frame, 0, 50);
            [UIView commitAnimations];
            self.bannerIsVisible = NO;
        }
    }
    

    委托方法NSLog只会出现一次 - 而不是每分钟,就像广告得到刷新一样。

1 个答案:

答案 0 :(得分:2)

1-是和现场广告一样,有些时候没有广告,可能是几个小时。我相信刷新周期是3分钟,但似乎苹果可以改变它 2-你不应该,当正确设置时,这会自动发生。我有一个广告应用,在切换网络或使用飞机设置时行为正确

现在,似乎有关于飞机设置的内容,请参阅此主题:iAds Loading Throttled After Re-Launching App From Background (Also Happens In iAdSuite),但我没有最终答案。也许你可以通过将didFail中的NSLog更改为NSLog(@“%@”,错误)来检查更多信息。 啊,确实没有办法用真实广告进行测试,直到它在appstore中被接受为止。