Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

Version 1 Current »

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를 설정하세요.

  1. 링크를 통해 다운로드 받으세요.

  2. 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
    }
  }
}
  • No labels