Burstly を使用して iAds と adMob 広告を iPhone アプリに配信しようとしています。私は彼らのガイドに従いました
http://docs.burstly.com/guides/ad-serving-quick-start-guide.html
ここに私が持っているもののスニペットがあります...
MyViewController.h
@interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, OAIAdManagerDelegate> {
OAIAdManager *adManager;
IBOutlet UIView *mainView;
}
@property (nonatomic, retain) UIView *mainView;
@end
MyViewController.m
#import "MyViewController.h"
@implementation MyViewController
@synthesize mainView;
- (void)viewDidLoad {
[super viewDidLoad];
adManager = [[OAIAdManager alloc] initWithDelegate:self];
[self.view addSubview:adManager.view];
[adManager requestRefreshAd];
}
- (UIViewController *)viewControllerForModalPresentation {
return self;
}
- (CGFloat)defaultSessionLife {
return 35.0f;
}
- (Anchor)anchor {
return Anchor_Bottom;
}
- (CGPoint)anchorPoint {
return CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height);
}
- (NSString *)publisherId {
return @"ENTER YOUR PUBLISHER ID HERE";
}
- (NSString *)getZone {
return @"ENTER YOUR ZONE ID HERE";
}
- (UIViewController *)viewControllerForModalPresentation {
return self;
}
// resize mainView (pull up) when ad is displayed
- (void)adManager:(OAIAdManager*)manager didLoad:(NSString*)aNetwork {
[UIView beginAnimations:@"AdResize" context:nil];
[UIView setAnimationDuration:0.7];
CGRect mainViewNewFrame = mainView.frame;
mainViewNewFrame.size.height = 460 - adSize;
mainViewNewFrame.size.width = 320;
mainViewNewFrame.origin.x = 0;
mainViewNewFrame.origin.y = 0;
mainView.frame = mainViewNewFrame;
[UIView commitAnimations];
}
// resize MainView when ad is not available
- (void)adManager:(OAIAdManager*)manager failedToLoad:(NSString*)aNetwork {
[UIView beginAnimations:@"AdResize" context:nil];
[UIView setAnimationDuration:0.7];
CGRect mainViewNewFrame = mainView.frame;
mainViewNewFrame.size.height = 460;
mainViewNewFrame.size.width = 320;
mainViewNewFrame.origin.x = 0;
mainViewNewFrame.origin.y = 0;
mainView.frame = mainViewNewFrame;
[UIView commitAnimations];
}
ビューを再配置する必要があるため、広告がいつ表示されているかを正確に把握できないという問題があります。画面の下部に接するテーブル ビューがあるため、広告が表示されたときにテーブル ビューを引き上げる (ビューのサイズを変更する) 必要があります。
OAIAdManagerDelegateProtocol "adManager:didLoad:" メソッドを使用してみましたが、さまざまな結果が得られました。このメソッドは、admanager が広告があると判断したときに常に呼び出されますが、広告が表示されない場合があります (特に iAd の最初の呼び出し)。そのため、そのメソッドが呼び出されたときに広告用のスペースを確保するために常にメイン ビューのサイズを変更していますが、広告が表示されない場合があるため、広告のサイズの空白を表示することになります。
「adManager:didLoadView:」メソッドも使用してみましたが、呼び出されません。
では、adManager.view が画面に表示されたときに通知を受けて、ビューのサイズを変更するタイミングを知る方法は他にありますか?