기본 설정
이 페이지에서는 앱에 피드 지면을 표시하고 광고를 할당하는 방법 등 피드 지면을 연동하기 위한 기본적인 설정을 확인할 수 있습니다.
준비 사항
- 시작하기 적용 완료
- 피드 지면에 사용할 Unit ID (이하
YOUR_FEED_UNIT_ID
)
피드 지면 초기화하기
BZVConfig
에 BZVFeedConfig
를 추가하세요.
- Swift
- Objective-C
import BuzzAdBenefit
@main
final class AppDelegateSwift: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
let config = BZVConfig { builder in
builder.appId = "YOUR_APP_ID"
builder.defaultFeedConfig = BZVFeedConfig { builder in
builder.unitId = "YOUR_FEED_UNIT_ID"
builder.title = "YOUR_TITLE"
}
}
BuzzAdBenefit.initialize(with: config)
return true
}
}
@import BuzzAdBenefit;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
BZVConfig *config = [BZVConfig configWithBlock:^(BZVConfigBuilder * _Nonnull builder) {
builder.appId = @"YOUR_APP_ID";
builder.defaultFeedConfig = [BZVFeedConfig configWithBlock:^(BZVFeedConfigBuilder * _Nonnull builder) {
builder.unitId = @"YOUR_FEED_UNIT_ID";
builder.title = @"YOUR_TITLE";
}];
}];
[BuzzAdBenefit initializeWithConfig:config];
return YES;
}
@end
✏️ 참고
BZVFeedConfig
및BZVBuzzAdFeedTheme
를 사용해 피드 지면의 기능과 디자인을 변경할 수 있습니다. 자세한 내용은 고급 설정과 디자인 커스터마이징 토픽을 참고하세요.
피드 지면 표시하기
피드 지면은 navigationController
사용 여부에 따라 내비게이션 스택의 탑 뷰 컨트롤러 또는 모달 뷰 컨트롤러로 나타납니다.
광고를 할당 받지 않은 상태에서 피드 지면이 사용자에게 표시되면 광고가 자동으로 할당됩니다.
- Swift
- Objective-C
import BuzzAdBenefit
final class ViewController: UIViewController {
let buzzAdFeed = BZVBuzzAdFeed { builder in }
override func viewDidLoad() {
super.viewDidLoad()
}
// navigationController를 사용하는 경우
private func pushFeedViewController() {
let feedViewController = buzzAdFeed.viewController
self.navigationController?.pushViewController(feedViewController, animated: true)
}
// navigationController를 사용하지 않는 경우
private func presentFeedViewController() {
let feedViewController = buzzAdFeed.viewController
self.present(feedViewController, animated: true, completion: nil)
}
}
@import BuzzAdBenefit;
@interface ViewController ()
@property (nonatomic, strong, readonly) BZVBuzzAdFeed *buzzAdFeed;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_buzzAdFeed = [BZVBuzzAdFeed feedWithBlock:^(BZVBuzzAdFeedBuilder * _Nonnull builder) {}];
}
// navigationController를 사용하는 경우
- (void)pushFeedViewController {
BZVFeedViewController *feedViewController = [_buzzAdFeed viewController];
[self.navigationController pushViewController:feedViewController animated:YES];
}
// navigationController를 사용하지 않는 경우
- (void)presentFeedViewController {
BZVFeedViewController *feedViewController = [_buzzAdFeed viewController];
[self presentViewController:feedViewController animated:YES completion:nil];
}
@end
⚠️ 주의
[_buzzAdFeed viewController]
를 반복해서 호출하더라도 광고는 갱신되지 않으며 동일한 광고가 호출됩니다.
새로운 광고를 할당받으려면[_buzzAdFeed reset]
을 호출하여 광고를 갱신하거나,[_buzzAdFeed load]
를 다시 호출해야 합니다.
✏️ 참고
사용자에게 다른 형태로 피드 지면을 제공하려면 하위 뷰 컨트롤러로 피드 연동하기 토픽을 참고하세요.
기본 설정 이외의 피드 표시하기
DefaultFeedConfig
로 설정한 BZVFeedConfig
를 사용하여 기본 설정을 적용한 피드 이외에, 다른 설정이 적용된 피드를 표시할 수 있습니다. 이를 위해서는 BuzzAdFeed
에 새로운 BZVFeedConfig
를 등록해야 합니다.
다음의 예시를 참고하세요.
✏️ 참고
DefaultFeedCofig
를 삭제하지 않아도 됩니다.
- Swift
- Objective-C
let buzzAdFeed = BZVBuzzAdFeed { builder in
builder.config = BZVFeedConfig { builder in
builder.unitId = "SECOND_FEED_UNIT_ID"
}
}
let feedViewController = buzzAdFeed.viewController
self.present(feedViewController, animated: true, completion: nil)
_buzzAdFeed = [BZVBuzzAdFeed feedWithBlock:^(BZVBuzzAdFeedBuilder * _Nonnull builder) {
builder.config = [BZVFeedConfig configWithBlock:^(BZVFeedConfigBuilder * _Nonnull builder) {
builder.unitId = @"SECOND_FEED_UNIT_ID";
}];
}];
BZVFeedViewController *feedViewController = [_buzzAdFeed viewController];
[self presentViewController:feedViewController animated:YES completion:nil];
광고 할당 및 표시하기
BZVBuzzAdFeed
인스턴스의 load
를 호출하면 광고가 할당됩니다. load
를 반복해서 호출하면 광고가 갱신되어 새로운 광고가 할당됩니다.
다음은 광고 할당 후 피드 지면을 표시하는 예시입니다. 다음과 같이 구현하면 사용자가 피드 지면에 진입하기 전에 광고가 할당되어 “참여할 수 있는 광고가 없습니다“라는 안내 문구가 나타나지 않습니다.
- Swift
- Objective-C
buzzAdFeed.load {
let feedTotalReward = self.buzzAdFeed.availableRewards // 적립 가능한 총 포인트 금액
let feedViewController = self.buzzAdFeed.viewController
self.present(feedViewController, animated: true, completion: nil)
} onFailure: { error in
// 광고가 없을 경우 호출됩니다. error를 통해 원인을 알 수 있습니다.
}
[_buzzAdFeed loadOnSuccess:^{
NSInteger feedTotalReward = self.buzzAdFeed.availableRewards; // 적립 가능한 총 포인트 금액
BZVFeedViewController *feedViewController = self.buzzAdFeed.viewController;
[self presentViewController:feedViewController animated:YES completion:nil];
} onFailure:^(NSError * _Nonnull error) {
// 광고가 없을 경우 호출됩니다. error를 통해 원인을 알 수 있습니다.
}];