2011-12-02 87 views
7

我有一個連接到網絡時顯示正常的iAd。在iOS模擬器上或在我的設備上測試,如果我打開我的應用程序,看到iAd,然後進入設置並打開飛行模式,並返回到應用程序,橫幅滑出屏幕。大。現在,如果我關閉飛行模式(網絡打開),則iAd不會重新出現 - 即使在等待10-15分鐘後。網絡斷開後的iAd刷新

所以,這裏是我的問題:

  1. 是否iAd的測試公告會(每分鐘左右)刷新本身一樣作爲一個真正的iAd?

  2. 當檢測到網絡時,是否有辦法強制iAd刷新並請求新廣告?

我只是找不到在測試廣告的行爲信息的任何地方,我不能與真正的廣告測試,直到我上傳應用程序在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調用只出現一次 - 不是每一分鐘,就像我期望廣告得到刷新一樣。

回答

2

1-是和類似的實時廣告有一些時候沒有廣告,它可以是幾個小時。我相信刷新週期是3分鐘,但它看起來像蘋果可以改變它,因爲他們將不會需要,當正確設置這會自動發生。我有一個廣告應用程序,它切換網絡或使用飛機設置時表現正確

現在,似乎有關於飛機設置,請參閱此線程:iAds Loading Throttled After Re-Launching App From Background (Also Happens In iAdSuite),但我沒有最終答案。也許你可以通過改變NSLog在didFail ...到NSLog(@「%@」,錯誤)來檢查更多內容,以檢查它的確切含義。 啊,事實上沒有辦法測試真正的廣告,直到它被appstore接受。

+0

感謝您的建議。讓我感到困惑的是,我在iPhone上使用interent連接啓動應用程序(使用xCode),並按預期每60秒獲得一次「AdWin」日誌。如果我以相同的方式啓動應用程序,除了啓用飛行模式之後,我只在我的日誌中獲得「AdLose」一次。我預計它會每60秒失敗一次。它給出的錯誤是:'錯誤域= ADErrorDomain代碼= 1「操作無法完成。(ADErrorDomain錯誤1。)」' –

+0

我被困在這一點,我相信的關鍵是你收到一個ADError,在我的測試中,我收到一個NSURL錯誤,顯然NSURL錯誤處理得很好。我會建議包括一個邏輯,如:當錯誤是和ADErrorxxx殺死橫幅並重新開始它(即釋放+ realloc在viewDidLoad)。 – gregory

+0

我打算將其標記爲已接受的答案,因爲這是最有幫助的。我很滿意我的工作,因爲我下載了蘋果示例程序'iAdSuite',並發現它在相同的條件下給出了相同的錯誤。謝謝 –