애드팝콘 SSP SDK 연동가이드
애드팝콘 홈페이지애드팝콘 SSP 콘솔 바로가기
  • 개요
  • Android
    • 기본 설정
    • 배너 광고
    • 전면 광고
    • 전면 비디오 광고
    • 리워드 비디오 광고
    • 보상형 광고 플러스 연동(beta)
    • 네이티브 광고
      • 네이티브 광고 레이아웃 구성 가이드
        • AdPopcornSSP NativeAdView
    • 스플래시 광고
    • 모달 광고
    • 팝콘텐츠 광고
    • 응답 에러 코드 및 샘플 프로젝트
    • 미디에이션(Android)
      • AdFit
      • Admob
      • AdForus
      • ADOP
      • GAM (Google Ad Manager)
      • Cauly
      • FAN(Facebook Audience Network)
      • MezzoMedia
      • Mintegral
      • Mobwith
      • UnityAds
      • Vungle(LiftOff)
      • Fyber
      • Pangle
      • AppLovin
      • AppLovinMax
      • NAM (Naver Ad Manager)
      • CoupangCPM
    • AppLovin Max Android Mediation 가이드
    • 릴리즈 노트
  • iOS
    • 기본 설정
      • CocoaPod 설치
      • SPM 설치
      • 수동 설치
    • 배너 광고
    • 전면 광고
    • 전면 비디오 광고
    • 리워드 비디오 광고
    • 보상형 광고 플러스 연동(beta)
    • 네이티브 광고
      • NativeAdView layout
        • 직접 설정
        • 템플릿 사용
    • 스플래시 광고
    • 모달 광고
    • 팝콘텐츠 광고
    • 응답 에러 코드 및 샘플 프로젝트
    • 미디에이션
      • NAM (Naver Ad Manager)
      • AdFit
      • AppLovin
      • AppLovinMAX
      • UnityAds
      • Vungle
      • FBAudienceNetwork (FaceBook)
      • AdMob
      • Google AdManager(GAM)
      • ADOP
      • Fyber
      • Mezzo
      • Mintegral
      • Pangle
      • Cauly
      • SDK, Mediation ver 호환성
    • AppLovin Max iOS Mediation 가이드
    • 릴리즈노트
  • Unity
    • Unity (Android)
      • 기본 설정
      • 배너 광고
      • 전면 광고
      • 리워드 비디오 광고
      • 네이티브 광고
      • 보상형 광고 플러스 연동(beta)
      • 미디에이션 Unity Android
    • Unity (iOS)
      • 기본 설정
      • 배너 광고
      • 전면 광고
      • 리워드 비디오 광고
      • 네이티브 광고
      • 보상형 광고 플러스 연동(beta)
      • 미디에이션 Unity iOS
    • 에러 코드
  • Flutter
    • 기본 설정
    • 배너 광고
    • 전면 광고
    • 전면 비디오 광고
    • 리워드 비디오 광고
    • 보상형 광고 플러스 연동(beta)
    • 네이티브 광고
    • 팝콘텐츠 광고
  • React Native(beta)
    • 기본 설정
    • 배너 광고
    • 전면 광고
    • 전면 비디오 광고
    • 리워드 비디오 광고
    • 네이티브 광고
  • Web SDK
  • 하이브리드 앱 - Web(APM + NAM)
    • 네이티브 Side 연동(Android)
    • 네이티브 Side 연동(iOS)
    • WebPage Side 연동
    • 광고 ID 수동 세팅
  • 하이브리드 앱- Web(Adfit)
    • Android
    • iOS
  • 테스트 코드
  • 리포트 API
    • 애드팝콘 SSP Report API
    • DSP Report API
    • Publisher API (Report)
    • Publisher API (Metadata)
    • Adserver Report API
    • Popcontent Report API
  • 추가 기능 연동가이드
    • Adfit Bizboard Android 연동 가이드
    • 웹 CS 페이지 연동
    • AppLovin Custom Network
      • Android
      • iOS
    • KT Library
    • 원스토어 연동가이드
      • 애드팝콘 SSP SDK for Onestore
      • 원스토어 Ads 래핑 가이드(내부용)
        • 배너 광고
        • 전면 광고
        • 전면 비디오 광고
        • 리워드 비디오 광고
        • 네이티브 광고
        • SSP 미디에이션
        • 에러 코드 및 외부 노출 함수
        • 테스트 지면 키
        • AAR 라이브러리 목록
    • 쿠팡 연동가이드
      • 쿠팡 포스트백 연동
      • 쿠팡 EP 리스트 연동
      • 쿠팡 리포트 API 연동
        • 쿠팡 일별 리포트 API
        • 쿠팡 API - Report
        • 쿠팡 API - Product list
    • Reward Banner 스크립트 연동가이드
      • Reward Banner 스크립트 Android
      • Reward Banner 스크립트 iOS
    • 차단관리 파일 가이드
    • 커스텀 타입 연동 가이드
      • 커스텀 타입(Android)
      • 커스텀 타입(iOS)
    • 쿠팡 클릭 이벤트 페이지 연동 가이드
  • 팝콘텐츠 연동가이드
    • WebView 직접 연동
    • 리워드 콜백
  • 웹 SSP
    • 쿠키 매칭
    • Web Header Bidding(WIP)
Powered by GitBook
On this page
  • 사용방법
  • 1) 설치
  • 2) 초기 셋팅
  • 3) 초기화
  • Native Layout 설정
  • 1) GFPNativeAdView
  • 2) GFPNativeSimpleAdView
  • 3) GFPNativeAdView + GFPNativeSimpleAdView

Was this helpful?

  1. iOS
  2. 미디에이션

NAM (Naver Ad Manager)

Previous미디에이션NextAdFit

Last updated 14 days ago

Was this helpful?

NAM (Naver Ad Manager)

사용방법

2) 초기 셋팅, 3)초기화 진행은 위 업체 링크에 들어가서 직접 설정하시는 것을 권장드립니다.

1) 설치

2) 초기 셋팅

iOS 9부터 도입 된 App Transport Security (ATS)는 앱이 HTTPS를 통해서만 네트워크 요청을 하도록 기본설정 되어있습니다. HTTP를 사용하는 광고파트너들의 광고동작를 허용하기 위해, Info.plist 파일에 아래내용을 추가합니다.

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

3) 초기화

NAM SDK에 ATTFramework를 통해 서비스에서 광고 추적 여부를 구현 후, GFPAdManagerDelegate를 통하여 Status를 SDK에 제공해줘야 합니다. 이에 아래 예시와 같이 초기화 API 및 Status를 제공해 주시기 바랍니다.

@import GFPSDK;
@interface AppDelegate() <APSSPSDKInitializeDelegate, GFPAdManagerDelegate>
@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    GFPAdConfiguration *configuration = [[GFPAdConfiguration alloc] init];
    [GFPAdManager setupWithPublisherCd:@"NAM_Publisher_cd" target:self configuration:configuration completionHandler:^(GFPError * _Nullable error) {
        NSLog(@"NAM Setup ERROR: %@", error);
    }];

}

- (GFPATTAuthorizationStatus)attStatus {
     if (@available(iOS 14.5, *)) {
        return ATTrackingManager.trackingAuthorizationStatus;
    } else {
        if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
            return GFPATTAuthorizationStatusAuthorized;
        }
        
        return GFPATTAuthorizationStatusNotDetermined;
    }
}

NAM SDK에 ATTFramework를 통해 서비스에서 광고 추적 여부를 구현 후, GFPAdManagerDelegate를 통하여 Status를 SDK에 제공해줘야 합니다. 이에 아래 예시와 같이 초기화 API 및 Status를 제공해 주시기 바랍니다.

import GFPSDK

// 1. PublisherCd 이용, GFPAdConfiguration(광고 설정) 없이 초기화 하는 경우.
GFPAdManager.setup(withPublisherCd: "publisherCd" target:self) { (error : GFPError?) in
    print("Setup Eror: \(String(describing: error?.description))")
}

// 2. PublisherCd 및 ServiceCd 이용, GFPAdConfiguration(광고 설정) 없이 초기화 하는 경우.
GFPAdManager.setup(withPublisherCd: nil, serviceCd: "serviceCd", target: self) { error in
    print("Setup Eror: \(String(describing: error?.description))")
}


func attStatus() -> GFPATTAuthorizationStatus {
    if #available(iOS 14.5, *) {
        return ATTrackingManager.trackingAuthorizationStatus
    } else {
        if ASIdentifierManager.shared().isAdvertisingTrackingEnabled {
            return .authorized
        }
        return .notDetermined
}


Native Layout 설정

Adapter 내부에 들어있는 Xib 파일을 project에 꼭 넣어주세요.

  • 스토리보드에 UIView 생성 후 Custom Class을 AdPopcornSSPNativeAd 설정

  • AdPopcornSSPNativeAd 변수 내부에 GfpNativeAdView, GfpNativeSimpleAdView를 포함할 수 있도록 adAMNativeSuperView 라는 UIView 를 생성, 추가해 줍니다. (중요!)

NAM 은 ViewController에 ui component 영역을 바로 생성하지 않고 xib 파일을 사용하여 view를 add합니다.

1) GFPNativeAdView

namNativeView를 AdPopcornNativeAd add해 주고 layout을 잡아 주어야 광고가 보입니다.


#import <AdPopcornSSP/AdPopcornSSPNativeAd.h>	
#import "NAMAdapter.h"

- (void)viewDidLoad {
    [super viewDidLoad];  
    // Size
    CGFloat width = [UIScreen mainScreen].bounds.size.width;
    CGFloat xibHeight = (width * 185) / 360;
    NSLog(@"width : %f, xibHeight : %f",width, xibHeight);
    CGFloat roundXibHeight = round(xibHeight * 10 )/ 10;
    NSLog(@"width : %f, height : %f",width, roundXibHeight);
    
    // 일반형
    GFPNativeAdView *namNativeAdView =
    [[NSBundle mainBundle] loadNibNamed:@"GFPNativeAdView" owner:nil options:nil].firstObject;
    namNativeAdView.frame = CGRectMake(0, 0, width, roundXibHeight);
    apNAMNativeAdRenderer.namNativeAdView = namNativeAdView;
    
    // 일반형을 담을 SuperView
    apNAMNativeAdRenderer.namNativeSuperView = adNAMNativeSuperView;
    
    [_adPopcornSSPNativeAd setNAMRenderer:apNAMNativeAdRenderer superView:_adNAMNativeSuperView];   // SuperView
}    
   private var namNativeView: GFPNativeAdView = GFPNativeAdView()
   private var adNAMNativeSuperView: UIView = UIView()
    
override func viewDidLoad() 
{
    super.viewDidLoad()
    // 일반형
    namNativeAdView = Bundle.main.loadNibNamed("GFPNativeAdView",
                             owner: nil,
                             options: nil)?.first as? GFPNativeAdView
    apNAMNativeAdRenderer.namNativeAdView = namNativeAdView
    apNAMNativeAdRenderer.namNativeSuperView = adNAMNativeSuperView

    adPopcornSSPNativeAd.setNAMRenderer(apNAMNativeAdRenderer, superView:adNAMNativeSuperView)  // SuperView
}

NAM의 경우 AdPopcornSSP, FAN, FAN Native Banner와 다르게 xib파일을 이용하여 직접 View를 생성한 뒤, 해당 xib 파일을 읽어와 renderer에 전달해 주어야 합니다.

APNAMNativeAdRenderer에 GFPNativeAdView와 superView를 세팅 후, setNAMRenderer:superView:API를 통해 render와 adNAMNativeSuperView 를 sdk에 최종적으로 전달합니다.

(adNAMNativeSuperView 를 render 설정시 넘겨 주면 SDK내부 코드에서 광고에 맞게 nativeAd, NativeSimpIeAd 를 추가하여 제공해줍니다.)

2) GFPNativeSimpleAdView

#import <AdPopcornSSP/AdPopcornSSPNativeAd.h>	
#import "NAMAdapter.h"

- (void)viewDidLoad {
    [super viewDidLoad];  
    // Size
    CGFloat width = [UIScreen mainScreen].bounds.size.width;
    CGFloat xibHeight = (width * 185) / 360;
    NSLog(@"width : %f, xibHeight : %f",width, xibHeight);
    CGFloat roundXibHeight = round(xibHeight * 10 )/ 10;
    NSLog(@"width : %f, height : %f",width, roundXibHeight);
    
    // 일반형
    GFPNativeSimpleAdView *namNativeSimpleAdView =
    [[NSBundle mainBundle] loadNibNamed:@"GFPNativeSimpleAdView" owner:nil options:nil].firstObject;

    namNativeSimpleAdView.frame = CGRectMake(0, 0, width, roundXibHeight);
    apNAMNativeAdRenderer.namNativeSimpleAdView = namNativeSimpleAdView;
    
    // 일반형을 담을 SuperView
    apNAMNativeAdRenderer.namNativeSuperView = adNAMNativeSuperView;
    
    [_adPopcornSSPNativeAd setNAMRenderer:apNAMNativeAdRenderer superView:_adNAMNativeSuperView];   // SuperView
}    
   private var namNativeSimpleAdView: GFPNativeSimpleAdView = GFPNativeSimpleAdView()
   private var adNAMNativeSuperView: UIView = UIView()
   
override func viewDidLoad() 
{
    super.viewDidLoad()
    namNativeSimpleAdView = Bundle.main.loadNibNamed("GFPNativeSimpleAdView",
                             owner: nil,
                             options: nil)?.first as? GFPNativeSimpleAdView
    apNAMNativeAdRenderer = APNAMNativeAdRenderer.init()
    apNAMNativeAdRenderer.namNativeSimpleAdView = namNativeSimpleAdView
    apNAMNativeAdRenderer.namNativeSuperView = adNAMNativeSuperView
    adPopcornSSPNativeAd.setNAMRenderer(apNAMNativeAdRenderer, superView:adNAMNativeSuperView)
}

NAM의 경우 AdPopcornSSP, FAN, FAN Native Banner와 다르게 xib파일을 이용하여 직접 View를 생성한 뒤, 해당 xib 파일을 읽어와 renderer에 전달해 주어야 합니다.

APNAMNativeAdRenderer에 GFPNativeAdView와 superView를 세팅 후, setNAMRenderer:superView:API를 통해 render와 adNAMNativeSuperView 를 sdk에 최종적으로 전달합니다.

(adNAMNativeSuperView 를 render 설정시 넘겨 주면 SDK내부 코드에서 광고에 맞게 nativeAd, NativeSimpIeAd 를 추가하여 제공해줍니다.)

3) GFPNativeAdView + GFPNativeSimpleAdView

#import <AdPopcornSSP/AdPopcornSSPNativeAd.h>	
#import "NAMAdapter.h"

- (void)viewDidLoad {
    [super viewDidLoad];  
    // Size
    CGFloat width = [UIScreen mainScreen].bounds.size.width;
    CGFloat xibHeight = (width * 185) / 360;
    NSLog(@"width : %f, xibHeight : %f",width, xibHeight);
    CGFloat roundXibHeight = round(xibHeight * 10 )/ 10;
    NSLog(@"width : %f, height : %f",width, roundXibHeight);

    // 심플형
    GFPNativeSimpleAdView *namNativeSimpleAdView =
    [[NSBundle mainBundle] loadNibNamed:@"GFPNativeSimpleAdView" owner:nil options:nil].firstObject;
    namNativeSimpleAdView.frame = CGRectMake(0, 0, width, roundXibHeight);
    APNAMNativeAdRenderer *apNAMNativeAdRenderer = [[APNAMNativeAdRenderer alloc] init];
    apNAMNativeAdRenderer.namNativeSimpleAdView = namNativeSimpleAdView;
    
    // 일반형
    GFPNativeAdView *namNativeAdView =
    [[NSBundle mainBundle] loadNibNamed:@"GFPNativeAdView" owner:nil options:nil].firstObject;
    namNativeAdView.frame = CGRectMake(0, 0, width, roundXibHeight);
    apNAMNativeAdRenderer.namNativeAdView = namNativeAdView;
    
    // 심플형 + 일반형을 담을 SuperView
    apNAMNativeAdRenderer.namNativeSuperView = adNAMNativeSuperView;
    
    [_adPopcornSSPNativeAd setNAMRenderer:apNAMNativeAdRenderer superView:_adNAMNativeSuperView];   // SuperView
}
    private var namSimpleNativeView: GFPNativeSimpleAdView = GFPNativeSimpleAdView()
    private var namNativeView: GFPNativeAdView = GFPNativeAdView()
    private var adNAMNativeSuperView: UIView = UIView()

override func viewDidLoad() 
{
    super.viewDidLoad()
    // 심플형
    namNativeSimpleAdView = Bundle.main.loadNibNamed("GFPNativeSimpleAdView",
                             owner: nil,
                             options: nil)?.first as? GFPNativeSimpleAdView
    apNAMNativeAdRenderer = APNAMNativeAdRenderer.init()
    apNAMNativeAdRenderer.namNativeSimpleAdView = namNativeSimpleAdView

    // 일반형
    namNativeAdView = Bundle.main.loadNibNamed("GFPNativeAdView",
                             owner: nil,
                             options: nil)?.first as? GFPNativeAdView
    apNAMNativeAdRenderer.namNativeAdView = namNativeAdView
    apNAMNativeAdRenderer.namNativeSuperView = adNAMNativeSuperView

    adPopcornSSPNativeAd.setNAMRenderer(apNAMNativeAdRenderer, superView:adNAMNativeSuperView)  // SuperView
}

NAM의 경우 AdPopcornSSP, FAN, FAN Native Banner와 다르게 xib파일을 이용하여 직접 View를 생성한 뒤, 해당 xib 파일을 읽어와 renderer에 전달해 주어야 합니다.

APNAMNativeAdRenderer에 GFPNativeAdView와 superView를 세팅 후, setNAMRenderer:superView:API를 통해 render와 adNAMNativeSuperView 를 sdk에 최종적으로 전달합니다.

(adNAMNativeSuperView 를 render 설정시 넘겨 주면 SDK내부 코드에서 광고에 맞게 nativeAd, NativeSimpIeAd 를 추가하여 제공해줍니다.)

ATS(App Transport Security) 설정 ->

GFPAdManagerDelegate 설정 ->

GfpNativeSimpleAdView -> 따로 커스텀 하실 필요 없습니다. GfpNativeAdView -> 해당 xib 를 커스텀 하여 사용하시면 됩니다 (mediaView, BodyLabel 필수!)

미디에이션
링크
​
링크
NAM 참조 링크
시작하기 | Naver Ad Manager SDK Guide
Logo