본문으로 건너뛰기

기본 설정

이 페이지에서는 앱에 피드 지면을 표시하고 광고를 할당하는 방법 등 피드 지면을 연동하기 위한 기본적인 설정을 확인할 수 있습니다.

준비 사항

  • 시작하기 적용 완료
  • 피드 지면에 사용할 Unit ID (이하 YOUR_FEED_UNIT_ID)

피드 지면 초기화하기

BZVConfigBZVFeedConfig를 추가하세요.

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
  }
}

BZVFeedConfigBZVBuzzAdFeedTheme를 사용해 피드 지면의 기능과 디자인을 변경할 수 있습니다. 자세한 내용은 고급 설정디자인 커스터마이징 토픽을 참고하세요.

피드 지면 표시하기

피드 지면은 navigationController 사용 여부에 따라 내비게이션 스택의 탑 뷰 컨트롤러 또는 모달 뷰 컨트롤러로 나타납니다.

광고를 할당 받지 않은 상태에서 피드 지면이 사용자에게 표시되면 광고가 자동으로 할당됩니다.

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)
  }
}

[_buzzAdFeed viewController]를 반복해서 호출하더라도 광고는 갱신되지 않으며 동일한 광고가 호출됩니다.
새로운 광고를 할당받으려면 [_buzzAdFeed reset]을 호출하여 광고를 갱신하거나, [_buzzAdFeed load]를 다시 호출해야 합니다.

✏️  참고
사용자에게 다른 형태로 피드 지면을 제공하려면 하위 뷰 컨트롤러로 피드 연동하기 토픽을 참고하세요.

기본 설정 이외의 피드 표시하기

DefaultFeedConfig로 설정한 BZVFeedConfig를 사용하여 기본 설정을 적용한 피드 이외에, 다른 설정이 적용된 피드를 표시할 수 있습니다. 이를 위해서는 BuzzAdFeed에 새로운 BZVFeedConfig를 등록해야 합니다.
다음의 예시를 참고하세요.

✏️  참고
DefaultFeedCofig를 삭제하지 않아도 됩니다.

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)

zzAdFeed인스턴스의load를 호출하면 광고가 할당됩니다. load`를 반복해서 호출하면 광고가 갱신되어 새로운 광고가 할당됩니다.

다음은 광고 할당 후 피드 지면을 표시하는 예시입니다. 다음과 같이 구현하면 사용자가 피드 지면에 진입하기 전에 광고가 할당되어 “참여할 수 있는 광고가 없습니다“라는 안내 문구가 나타나지 않습니다.

buzzAdFeed.load {
  let feedTotalReward = self.buzzAdFeed.availableRewards // 적립 가능한 총 포인트 금액

  let feedViewController = self.buzzAdFeed.viewController
  self.present(feedViewController, animated: true, completion: nil)
} onFailure: { error in
  // 광고가 없을 경우 호출됩니다. error를 통해 원인을 알 수 있습니다.
}