2011-12-02 18 views
7

ネットワークに接続したときに問題なく表示されるiAdがあります。 iOSシミュレータやデバイスでのテストで、アプリを開くと、iAdを見て、設定に行き、飛行機モードをオンにして、アプリに戻ると、バナーが画面外にスライドします。すばらしいです。今、飛行機モードをオフに戻すと(ネットワークがオン)、10-15分待ってからiAdが再表示されません。ネットワーク切断後の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は、広告が更新されたときに期待していたように、1分ごとに表示されるのではなく、1回だけ表示されます。

答えて

2

1-はい、ライブ広告のようにいくつかの時間は全く広告なしで、時間がかかることがあります。リフレッシュサイクルは3分だと思うけど、アップルはそれを変えることができると思う。 2時には、これが自動的に起こることはありません。私は広告付きのアプリを持っており、ネットワークを切り替えるときや飛行機の設定を使うときに正しく動作する

飛行機の設定については、このスレッド:iAds Loading Throttled After Re-Launching App From Background (Also Happens In iAdSuite)を参照してくださいが、私は最終的な答えはありません。多分NSLogをdidFailでNSLog(@ "%@"、エラー)に変更して、もっと正確に何を確認するか調べることができます。 ああ、実際には、実際の広告がアプリストアで承認されるまでテストする方法はありません。

+0

提案していただきありがとうございます。私が困惑しているのは、iPhoneとinterent接続でxcodeを使ってアプリケーションを起動することです。予想通り、60秒ごとにログ "AdWin"を取得します。飛行機モードをオンにした場合を除いて、同じ方法でアプリを起動すると、ログに「AdLose」が一度だけ表示されます。私はそれが60秒ごとに失敗すると予想していたでしょう。 「エラードメイン= ADErrorDomainコード= 1」操作を完了できませんでした(ADErrorDomainエラー1)。「 –

+0

私はその時点でもスタックされています。私のテストで私はNSURLエラーを受け取り、明らかにNSURLエラーがうまく処理されるADErrorです。私は、次のようなロジックを含めることをお勧めします:エラーが発生し、ADErrorxxxがバナーを強制終了し、再度開始する(つまり、viewDidLoadのようにrelease + realloc)。 – gregory

+0

私はこれを最も受け入れられた答えとしてマークします。アップルのサンプルプログラム「iAdSuite」をダウンロードして、同じ条件で同じエラーが発生していることが判明しました。ありがとう –

関連する問題