BuzzvilSDK iOS 5.31.x 이상 NAM 연동 가이드
NAM (Naver ad Manager) 연동은 Feed 광고 사이에 들어가는 비보상 배너형 광고 입니다.
Podfile에 아래 코드를 설정하세요.
pod 'NAMSDK', '= 7.10.1'
pod 'NAMSDK/MediationNDA', '= 7.10.1'NAM Publisher ID를 발급하세요.
NAM 을 연동하기 위해서는 Publisher ID 발급이 필요합니다. 연동을 위해서는 버즈빌 담당자에게 연락하시기 바랍니다.
NAM Adapter를 설정하세요.
Adapter 파일을 다운로드 받으세요.
Adapter file을 프로젝트에 넣어주세요.
설정
Adapter 다운로드 후 어플리케이션 프로젝트에 넣어주세요.
Bridging-Header
NAM의 경우 Native를 세팅하는 과정에서 Adapter(.h)의 코드가 필요합니다. swift 파일에 추가하실 때에는 Bridging-Header를 생성해줘야합니다.
#import "NAMAdapter.h"Build Settings 에서 Objective-C Bridging Header에 Brding-Header.h 파일을 등록해줘야합니다.
AppDelegate에 아래 코드를 추가하세요.
// ...
import GFPSDK
import AdSupport
import AppTrackingTransparency
import BuzzvilSDK
import BuzzAvatyeAdCash
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
// ...
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
// initialize NAM
GFPAdManager.setup(withPublisherCd: "YOUR_NAM_CODE", target: self) { error in
if let error = error {
// error
}
}
BuzzNaverAdManager.shared.setNaverAdManagerInitializer { adCashNativeAd, nib in
guard let xibView = nib.instantiate(withOwner: nil, options: nil).first as? GFPNativeSimpleAdView else {
print("BuzzBanner setNaverAdManagerInitializer failure: xibView instantiate failed.")
return
}
let apNAMNativeAdRenderer = APNAMNativeAdRenderer()
apNAMNativeAdRenderer.namNativeSimpleAdView = xibView
adCashNativeAd.setNAMRenderer(apNAMNativeAdRenderer, superView: xibView)
}
// ...
return true
}
}
extension AppDelegate: GFPAdManagerDelegate {
func attStatus() -> GFPATTAuthorizationStatus {
if #available(iOS 14.5, *) {
func convertATTrackingStatus(_ status: ATTrackingManager.AuthorizationStatus) -> GFPATTAuthorizationStatus {
switch status {
case .authorized:
return .authorized
case .denied:
return .denied
case .notDetermined:
return .notDetermined
case .restricted:
return .restricted
@unknown default:
return .restricted
}
}
return convertATTrackingStatus(ATTrackingManager.trackingAuthorizationStatus)
} else {
if ASIdentifierManager.shared().isAdvertisingTrackingEnabled {
return .authorized
}
return .notDetermined
}
}
}BannerView 연동 코드에 NAM 설정을 추가하세요.
https://docs.buzzvil.com/docs/buzzbenefit-ios/v6/banner#%EC%9B%90%ED%95%98%EB%8A%94-%EC%9C%84%EC%B9%98%EC%97%90-%EB%B2%84%EC%A6%88%EB%B0%B0%EB%84%88-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0의 BannerView 설정 코드에 아래 NAM 설정 코드를 추가하세요.
import UIKit
import BuzzvilSDK
final class ViewController: UIViewController {
private lazy var bannerView: BuzzBannerView = {
let bannerView = BuzzBannerView(frame: .zero)
bannerView.delegate = self
return bannerView
}()
override func viewDidLoad() {
super.viewDidLoad()
let config = BuzzBannerConfig.Builder(placementId: "YOUR_PLACEMENT_ID")
.setSize(.dynamic)
.build()
bannerView.setConfig(rootViewController: self, config: config)
// NAM 연동 시 필수
bannerView.setNaverAdManagerNative()
view.addSubview(bannerView)
// ...
}
// ...
}