如何知道何时显示视图? - 使用Burstly进行广告整合

时间:2010-09-15 14:17:28

标签: iphone iad

我正在尝试使用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:”方法,它给出了混合结果。当广告管理员认为它有广告时,始终会调用该方法,但有时会显示广告(尤其是第一次调用iAd)。所以,我总是调整主视图的大小,以便在调用该方法时为广告腾出空间,但有时广告无法显示,因此我最终会显示与广告大小相同的空白区域。

我也尝试过使用“adManager:didLoadView:”方法,但它永远不会被调用。

那么,当屏幕上显示adManager.view时,是否还有其他方式可以通知我,以便知道何时调整视图大小?

1 个答案:

答案 0 :(得分:2)

这是亚历克斯与Burstly。这实际上是我们的代码和iOS 4.1的问题。我们已经解决了这个问题,您可以在github上找到更新的SDK:http://github.com/burstly/Burstly-iPhone/downloads