애드팝콘 SSP SDK 연동가이드
애드팝콘 홈페이지애드팝콘 SSP 콘솔 바로가기
  • 개요
  • Android
    • 기본 설정
    • 배너 광고
    • 전면 광고
    • 전면 비디오 광고
    • 리워드 비디오 광고
    • 비디오 믹스 광고
    • 보상형 광고 플러스 연동(v1.0)
    • 보상형 광고 플러스 연동(v1.5)
    • 네이티브 광고
      • 네이티브 광고 레이아웃 구성 가이드
        • 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 설치
      • 수동 설치
    • 배너 광고
    • 전면 광고
    • 전면 비디오 광고
    • 리워드 비디오 광고
    • 비디오 믹스 광고
    • 보상형 광고 플러스 연동(1.0)
    • 보상형 광고 플러스 연동(v1.5)
    • 네이티브 광고
      • 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)
      • 기본 설정
      • 배너 광고
      • 전면 광고
      • 리워드 비디오 광고
      • 비디오 믹스 광고
      • 네이티브 광고
      • 보상형 광고 플러스 연동(v1.0)
      • 보상형 광고 플러스 연동(v1.5)
      • 미디에이션 Unity Android
    • Unity (iOS)
      • 기본 설정
      • 배너 광고
      • 전면 광고
      • 리워드 비디오 광고
      • 비디오 믹스 광고
      • 네이티브 광고
      • 보상형 광고 플러스 연동(v1.0)
      • 보상형 광고 플러스 연동(v1.5)
      • 미디에이션 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. 네이티브 레이아웃 구성
  • 1) Placement ID 변경
  • 3. 네이티브 광고 요청
  • 4. 네이티브 광고 중단
  • 5. No Ad 시, 광고 영역 처리
  • 6. 델리게이트 설정

Was this helpful?

  1. iOS

네이티브 광고

네이티브 광고는 광고가 게재되는 사용자 환경의 형식 및 기능에 맞춰 자동으로 최적화되어 출력됩니다.

Previous보상형 광고 플러스 연동(v1.5)NextNativeAdView layout

Last updated 1 month ago

Was this helpful?

1. 인스턴스 생성

AdPopcornSSPNativeAd를 생성합니다. storyboard에 AdPopcornSSPNativeAd 영역 지정 후 아래 스크린샷과 같이 Outlet 연결합니다.

#import <AdPopcornSSP/AdPopcornSSPNativeAd.h>

@property (strong, nonatomic) IBOutlet AdPopcornSSPNativeAd *adPopcornSSPNativeAd;
class ViewController: UIViewController, APSSPNativeAdDelegate
{	
    // AdPopcornSSPNativeAd
    var apSSPNativeAdRenderer: APSSPNativeAdRenderer!
    @IBOutlet var adPopcornSSPNativeAd: AdPopcornSSPNativeAd!
    @IBOutlet var apSSPIconImageView: UIImageView!
    @IBOutlet var apSSPTitleView: UILabel!
    @IBOutlet var apSSPDescView: UILabel!
    @IBOutlet var apSSPMainImageView: UIImageView!
    @IBOutlet var apSSPNativeAdView: UIView!
}

ViewController.m을 수정하여 생성한 인스턴스에 setPlacementInfoWithAppkey API를 이용하여 아래와 같이 AppKey , PlacementId , ViewController를 설정 합니다.

@implementation AdPopcornSSPNativeViewController	
	- (void)viewDidLoad
	{	
		[super viewDidLoad];	
		[_adPopcornSSPNativeAd setPlacementInfoWithAppKey:@“발급받은앱키” placementId:@“발급받은 네이티브 PlacementId” viewController:self]; 
		_adPopcornSSPNativeAd.delegate = self;
	}
@end

ViewController.swift을 수정하여 생성한 인스턴스에 setPlacementInfoWithAppkey API를 이용하여 아래와 같이 AppKey , PlacementId , ViewController를 설정 합니다.

class ViewController: UIViewController, APSSPNativeAdDelegate
{	
    // AdPopcornSSPNativeAd
    var apSSPNativeAdRenderer: APSSPNativeAdRenderer!
    @IBOutlet var adPopcornSSPNativeAd: AdPopcornSSPNativeAd!
    @IBOutlet var apSSPIconImageView: UIImageView!
    @IBOutlet var apSSPTitleView: UILabel!
    @IBOutlet var apSSPDescView: UILabel!
    @IBOutlet var apSSPMainImageView: UIImageView!
    @IBOutlet var apSSPNativeAdView: UIView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
	adPopcornSSPNativeAd.setPlacementInfoWithAppKey("YOUR_APP_KEY", 
	placementId: "YOUR_PLACEMENT_Id", viewController: self)
        adPopcornSSPNativeAd.delegate = self

        apSSPNativeAdRenderer = APSSPNativeAdRenderer.init()
        apSSPNativeAdRenderer.apSSPNativeAdView = apSSPNativeAdView
        apSSPNativeAdRenderer.titleLabel = apSSPTitleView
        apSSPNativeAdRenderer.descLabel = apSSPDescView
        apSSPNativeAdRenderer.mainImageView = apSSPMainImageView
        apSSPNativeAdRenderer.iconImageView = apSSPIconImageView
        adPopcornSSPNativeAd.setApSSPRenderer(apSSPNativeAdRenderer, superView: apSSPNativeAdView)   
    }
}

2. 네이티브 레이아웃 구성

네이티브 레이아웃의 구성은 미디에이션 사용 여부에 따라 달라지게 됩니다.

아래 두 링크를 참고하여서 레이아웃을 구성 부탁 드립니다.

[네이티브 광고 레이아웃 구성 가이드]

[네이티브 광고 미디에이션 레이아웃 구성 가이드]

애드팝콘 SSP v2.3.2 버전부터는 Admob v8.10.0 과 호환성을 유지하기 위해 애드몹 native 레이아웃을 구성하는 내용이 변경되었습니다. 이에 미디에이션 레이아웃 구성 가이드 내 AdMob 부분을 반드시 체크해 주시기 바랍니다.

1) Placement ID 변경

네이티브 인스턴스 생성 시 사용한 placementID를 변경하고자 할 경우, 아래와 같은 방식으로 변경합니다.

_adPopcornSSPNativeAd.placementId = @"변경하고자 할 ID";
adPopcornSSPNativeAd.placementId = "변경하고자 할 ID"

3. 네이티브 광고 요청

네이티브 인스턴스와 asset의 적절한 배치가 완료 된 경우 , 광고 요청 loadRequest API를 호출 하여 광고를 받아 옵니다.

[_sspNativeAd loadRequest];
adPopcornSSPNativeAd.loadRequest()

loadRequst 호출에 대한 결과로 광고 수신에 실패한 경우에는 loadAd 재호출을 하시면 안됩니다. 과도한 광고 요청 api 호출은 block 사유가 됩니다.

광고 수신이 정상적으로 완료 된 경우 아래 스크린샷과 같이 광고가 노출 됩니다.

4. 네이티브 광고 중단

네이티브 광고 노출을 중단하고자 할 경우, stopAd API를 호출해 주며, 광고 영역을 hidden 처리해 줍니다.

[_sspNativeAd stopAd];
_sspNativeAd.hidden = YES;
adPopcornSSPNativeAd.stopAd()

5. No Ad 시, 광고 영역 처리

기본적으로 애드팝콘 SDK에서는 네이티브 광고 No Ad 시, view 영역을 hidden 시켜줍니다.

이러한 기능이 필요하지 않을 경우, 아래 API를 통해 hidden 되지 않도록 설정하여 줍니다.

[_adPopcornSSPNativeAd noAdViewHidden:NO];
adPopcornSSPNativeAd.noAdViewHidden(true)

6. 델리게이트 설정

네이티브광고에서 발생하는 이벤트에 대한 델리게이트를 제공합니다.

델리게이트를 사용하기 위해서는 APSSPNativeAdDelegate를 추가하여야 합니다.

_sspNativeAd 인스턴스에 delegate를 설정하고 구현하여야 합니다.

delegate
설명

APSSPNativeAdLoadSuccess

네이티브 광고 로드 성공

APSSPNativeAdLoadFail, error

APSSPNativeAdImpression

네이티브 광고 화면 노출

APSSPNativeAdClicked

네이티브 광고 클릭

APSSPNativeAdHidden

네이티브 광고를 닫았을 경우(NAM 미디에이션 광고일 경우에만 발생)

adPopcornSSPNativeAd 인스턴스에 delegate를 설정하고 구현하여야 합니다.

delegate
설명

apsspNativeAdLoadSuccess

네이티브 광고 로드 성공

apsspNativeAdLoadFail(error)

apsspNativeAdImpression

네이티브 광고 화면 노출

apsspNativeAdClicked

네이티브 광고 클릭

apsspNativeAdHidden

네이티브 광고를 닫았을 경우(NAM 미디에이션 광고일 경우에만 발생)

#import <AdPopcornSSP/AdPopcornSSPNativeAd.h>	
@interface AdPopcornSSPNativeViewController () <APSSPNativeAdDelegate>	
{	
} 
@property (strong, nonatomic) IBOutlet AdPopcornSSPNativeAd *adPopcornSSPNativeAd; 

@end	
@implementation AdPopcornSSPNativeViewController	

- (void)viewDidLoad
{	
    [super viewDidLoad];	
    [_adPopcornSSPNativeAd setPlacementInfoWithAppKey:@"발급받은앱키" placementId:@"발급받은 네이티브 PlacementId" viewController:self]; 
    _adPopcornSSPNativeAd.delegate = self; 
} 

#pragma AdPopcornSSPNativeAdDelegate 
- (void)AdPopcornSSPLoadNativeAdFailedWithError:(AdPopcornSSPError *)error 
{ 
} 

- (void)APSSPNativeAdLoadSuccess:(AdPopcornSSPNativeAD *)native Ad 
{ 
} 

- (void)APSSPNativeAdLoadFail:(AdPopcornSSPNativeAD *)nativeAd error:(AdPopcornSSPError) error 
{ 		
}

- (void)APSSPNativeAdImpression:(AdPopcornSSPNativeAd *)nativeAd 
{ 
}

- (void)APSSPNativeAdClicked:(AdPopcornSSPNativeAd *)nativeAd 
{ 
}

- (void)APSSPNativeAdHidden:(AdPopcornSSPNativeAd *)nativeAd 
{ 
}
@end
class ViewController: UIViewController, APSSPNativeAdDelegate
{	
    // AdPopcornSSPNativeAd
    var apSSPNativeAdRenderer: APSSPNativeAdRenderer!
    @IBOutlet var adPopcornSSPNativeAd: AdPopcornSSPNativeAd!
    @IBOutlet var apSSPIconImageView: UIImageView!
    @IBOutlet var apSSPTitleView: UILabel!
    @IBOutlet var apSSPDescView: UILabel!
    @IBOutlet var apSSPMainImageView: UIImageView!
    @IBOutlet var apSSPNativeAdView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
        adPopcornSSPNativeAd.setPlacementInfoWithAppKey("YOUR_APP_KEY", 
	placementId: "YOUR_PLACEMENT_Id", viewController: self)
	adPopcornSSPNativeAd.delegate = self

        apSSPNativeAdRenderer = APSSPNativeAdRenderer.init()
        apSSPNativeAdRenderer.apSSPNativeAdView = apSSPNativeAdView
        apSSPNativeAdRenderer.titleLabel = apSSPTitleView
        apSSPNativeAdRenderer.descLabel = apSSPDescView
        apSSPNativeAdRenderer.mainImageView = apSSPMainImageView
        apSSPNativeAdRenderer.iconImageView = apSSPIconImageView
        adPopcornSSPNativeAd.setApSSPRenderer(apSSPNativeAdRenderer, superView: apSSPNativeAdView)   
    }

    // Native Delegate
    func apsspNativeAdLoadSuccess(_ nativeAd: AdPopcornSSPNativeAd!) {
    }
    func apsspNativeAdLoadFail(_ nativeAd: AdPopcornSSPNativeAd!, error: AdPopcornSSPError!) {
    }
    func apsspNativeAdImpression(_ nativeAd: AdPopcornSSPNativeAd!) {
    }
    func apsspNativeAdClicked(_ nativeAd: AdPopcornSSPNativeAd!) {
    }
    func apsspNativeAdHiden(_ nativeAd: AdPopcornSSPNativeAd!) {
    }
}

네이티브 광고 로드 실패.

네이티브 광고 로드 실패.

에러코드 값
에러코드 값
AdPopcornSSPNativeAd 생성