사용자가 광고에 참여하는데 사용하는 인앱브라우저를 변경할 수 있습니다. 인앱 브라우저는 커스텀 런처를 통해 동작합니다. 인앱 브라우저를 사용하기 위해서는 아래 3개의 설정을 모두 적용해야 합니다.
인앱 브라우저 구현
BuzzAd iOS SDK에서 제공하는 browserViewController
를 사용하여 인앱브라우저를 구현해야 합니다. 사용하지 않을 경우, 일부 광고가 정상적으로 동작하지 않을 수 있습니다.
다음은 인앱 브라우저를 구현하는 예시입니다.
@interface CustomBrowserViewController: UIViewController
@end
@implementation CustomBrowserViewController {
UIViewController *_browserViewController;
}
- (void)viewDidLoad {
[super viewDidLoad];
_browserViewController = [BuzzAdBrowser.sharedInstance browserViewController];
[self.view addSubview:_browserViewController.view];
[_browserViewController didMoveToParentViewController:self];
...
}
@end
class CustomBrowserViewController {
private lazy var browserViewController: UIViewController = {
BuzzAdBrowser.sharedInstance().browserViewController()
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(browserViewController)
browserViewController.didMove(toParent: self)
...
}
}
커스텀 런처 구현
구현한 인앱 브라우저를 사용하는 커스텀 런처를 구현합니다. 커스텀 런처에서 광고와 컨텐츠에 따라 동작을 달리 할 수 있습니다. 컨텐츠의 sourceUrl
은 URL 혹은 Universal Link 가 내려올 수 있습니다.
다음은 커스텀 런처를 구현하는 예시입니다.
@interface BABCustomLauncher : NSObject <BABLauncher>
@end
@implementation BABCustomLauncher
- (void)openWithLaunchInfo:(BABLaunchInfo *)launchInfo {
[self openWithLaunchInfo:launchInfo delegate:nil];
}
- (void)openWithLaunchInfo:(BABLaunchInfo *)launchInfo delegate:(nullable id<BABLauncherEventDelegate>)delegate {
// 광고 또는 컨텐츠인지 미리 판단하고 싶을 경우, 다음을 이용하여 확인
if (launchInfo.ad != nil) {
// 광고
} else if (launchInfo.article != nil){
// 컨텐츠
NSString *sourceUrl = launchInfo.article.sourceUrl;
}
// Custom Browser 실행
CustomBrowserViewController *vc = [[CustomBrowserViewController alloc] init];
[rootViewController presentViewController:vc animated:YES completion:nil];
}
@end
커스텀 런처 설정
BuzzAdBenefit
에 구현한 커스텀 런처를 설정합니다.
다음은 커스텀 런처를 설정하는 예시입니다.