2011-12-02 49 views
7

Tôi có một iAd hiển thị tốt khi kết nối với Mạng. Trên trình mô phỏng iOS hoặc thử nghiệm trên thiết bị của tôi, nếu tôi mở ứng dụng của mình, hãy xem iAd, sau đó chuyển đến cài đặt và bật chế độ trên máy bay và quay lại ứng dụng, biểu ngữ trượt khỏi màn hình. Tuyệt quá. Bây giờ, nếu tôi tắt chế độ trên máy bay (mạng đang BẬT), iAd sẽ không xuất hiện lại - ngay cả sau khi đợi 10-15 phút.Làm mới iAd sau khi ngắt kết nối mạng

Vì vậy, đây là những câu hỏi của tôi:

  1. Liệu iAd thử nghiệm Quảng cáo làm mới bản thân giống như một iAd thực sẽ (mỗi phút hoặc lâu hơn)?

  2. Có cách nào để buộc iAd làm mới và yêu cầu quảng cáo mới khi mạng được phát hiện không?

Tôi chỉ không thể tìm thấy thông tin về hành vi của các bảng quảng cáo thử nghiệm bất cứ nơi nào, và tôi không thể thử nghiệm với bảng quảng cáo thực cho đến khi tôi tải lên các ứng dụng trên App Store (phải không?)

Heres mã của tôi:

Trường hợp iAd được tạo ra:

- (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]; 
} 

Và các đại biểu phương pháp:

- (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; 
    } 
} 

Phương thức ủy quyền NSLog cuộc gọi chỉ xuất hiện một lần - không phải mỗi phút, như tôi mong đợi nếu Quảng cáo đã được làm mới.

Trả lời

2

1- có và giống như quảng cáo trực tiếp, có một số lần không có quảng cáo nào cả, có thể là hàng giờ. Tôi tin rằng chu kỳ làm mới là 3 phút nhưng có vẻ như táo có thể thay đổi nó khi họ sẽ 2 - bạn không cần phải, khi thiết lập đúng cách điều này xảy ra tự động. Tôi có một ứng dụng có quảng cáo và ứng dụng hoạt động chính xác khi chuyển mạng hoặc sử dụng cài đặt máy bay

Hiện tại, có vẻ như cài đặt máy bay, xem chủ đề này: iAds Loading Throttled After Re-Launching App From Background (Also Happens In iAdSuite) nhưng tôi không có câu trả lời cuối cùng. Có lẽ bạn có thể khám phá nhiều hơn bằng cách thay đổi NSLog của bạn trong didFail ... thành NSLog (@ "% @", lỗi) để kiểm tra xem nó chính xác nói gì. Ah và thực sự không có cách nào để thử nghiệm với quảng cáo thực cho đến khi được chấp nhận trong cửa hàng ứng dụng.

+0

Cảm ơn các đề xuất. Điều mà câu đố tôi là đó là tôi bắt đầu ứng dụng (sử dụng xCode) trên iPhone của tôi với một kết nối interent và tôi nhận được đăng nhập của tôi "AdWin" mỗi 60 giây, như mong đợi. Nếu tôi bắt đầu ứng dụng theo cùng một cách, ngoại trừ với Chế độ trên máy bay, tôi nhận được "AdLose" trong nhật ký của mình chính xác một lần. Tôi đã mong đợi nó sẽ thất bại sau mỗi 60 giây. Lỗi mà nó đưa ra là: 'Error Domain = ADErrorDomain Code = 1" Không thể hoàn tất thao tác. (ADErrorDomain error 1.) "' –

+0

Tôi cũng bị kẹt ở điểm đó, điều quan trọng tôi tin là bạn nhận được một ADError trong các thử nghiệm của tôi, tôi nhận được một lỗi NSURL và dường như lỗi NSURL được xử lý tốt. Tôi sẽ đề nghị bao gồm một logic như: khi lỗi và ADErrorxxx giết các biểu ngữ và bắt đầu lại tất cả (ví dụ: release + realloc như trong viewDidLoad). – gregory

+0

Tôi sẽ đánh dấu đây là câu trả lời được chấp nhận, bởi vì nó hữu ích nhất. Tôi hài lòng rằng tôi sẽ làm việc bởi vì tôi đã tải về chương trình mẫu của Apple 'iAdSuite', và thấy nó đã cho cùng một lỗi trong cùng điều kiện. Cảm ơn –

Các vấn đề liên quan