2013-09-30 22 views
5

Tôi hiện đang sử dụng Admob GADInterstitial trong ứng dụng iPhone của tôi, và muốn tận dụng lợi thế của quảng cáo trung gian cung cấp trong những bổ sung iAd UIViewController trong iOS 7.iAd & Admob kẽ Tích hợp trên iPhone

tôi đoán là Apple tỷ lệ lấp đầy sẽ không cao như vậy, vì vậy tôi muốn quay lại AdMob nếu quảng cáo không có sẵn. Rất tiếc, API cho iAd trông thực sự mờ đục và tôi không thấy cách xác định xem quảng cáo có sẵn hay không.

Có ai đã thực hiện thành công việc này hay không và nếu có thì làm cách nào?

Trả lời

5

Tôi đã bỏ lỡ phương pháp trình bày thủ công, gọi số requestInterstitialAdPresentation, trả về BOOL cho biết quảng cáo có được hiển thị hay không. Về mặt lý thuyết, tôi có thể sử dụng điều này để kiểm soát xem có nên quay trở lại admob hay không. Tôi sẽ đăng bình luận sau về việc nó có hoạt động hay không.

CHỈNH SỬA: Nó hoạt động!

Hóa ra requestInterstitialAdPresentation trả lời đúng hoặc sai. Sau đó, điều duy nhất còn lại để làm cho nó cảm thấy như các API khác là tìm ra khi VC quảng cáo bị loại bỏ. Tôi đã làm điều này bằng cách trả lời trong phương thức viewDidAppear: của trình điều khiển chế độ xem lưu trữ nếu quảng cáo đã được khởi chạy. Tôi thực sự có nó đóng gói trong một lớp AdManager, và sử dụng một NSNotification để giao tiếp viewDidAppear :, vì vậy đã có thể thả vào iAds khá sạch sẽ.

0

Để kiểm soát iAd trong điều khiển điểm của bạn, bạn có thể thiết lập một đại biểu lắng nghe iAd khẳng định:

@interface MyViewController : UIViewController <ADBannerViewDelegate> 
... 

@property (nonatomic, weak) IBOutlet ADBannerView* banner; 

@end 

sau đó trong tập tin thực thi của bạn:

@implementation MyViewController 

- (void)viewDidLoad 
{ 
    ... 
    [_banner setHidden:YES]; 
    _banner.delegate = self; 
} 

... 

#pragma mark - ADBannerViewDelegate implementation 

- (void)bannerView:(ADBannerView*)banner didFailToReceiveAdWithError:(NSError*)error 
{ 
    // iAd is not available, so we are going to hide it to get rid of ugly white rectangle 
    [_banner setHidden:YES]; 
    // Here you can add your logic to show your other ads 
} 

- (void)bannerViewDidLoadAd:(ADBannerView*)banner 
{ 
    // iAd is available, lets show it 
    [_banner setHidden:NO]; 
    // Here you can add your logic to hide your other ads 
} 

@end 

Ngoài ra tôi thường giữ chỉ là một thể hiện của ADBannerView, có nó trong App Delegate của tôi và một khi một số bộ điều khiển xem xuất hiện trên màn hình - tôi chỉ cần thêm ADBannerView đó để xem hệ thống phân cấp của bộ điều khiển xem và loại bỏ nó khi bộ điều khiển xem biến mất.

+0

Cảm ơn, nhưng tôi đang tìm quảng cáo chuyển tiếp. –

+0

Tệ của tôi. Bạn đã xem đại diện quảng cáo xen kẽ chưa? https://developer.apple.com/library/ios/documentation/iAd/Reference/ADInterstitialAdDelegate_Ref/Introduction/Introduction.html#//apple_ref/occ/intf/ADInterstitialAdDelegate – interrupt

+0

Dường như họ làm những việc khác nhau cho iPhone. Bạn không tạo AdInterstitialAd, thay vào đó, họ đã thêm phương thức vào UIViewController. Nhưng tôi nghĩ rằng tôi có một giải pháp, tôi đang chỉnh sửa câu trả lời của mình bên dưới. –

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