애드팝콘 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. 전면 Placement ID 설정
  • 3. 전면 광고 요청
  • 4. 전면 광고 노출
  • 5. 전면 광고가 노출될 activity 지정
  • 6. 전면 광고 로드 여부 체크
  • 7. 이벤트 리스너
  • 1) 전면 광고 Load 이벤트 리스너
  • 2) 전면 광고 Show 이벤트 리스너
  • 8. 전면 광고 커스텀 옵션

Was this helpful?

  1. Android

전면 광고

전면 광고는 화면 전체를 덮는 형태의 광고입니다. 다음을 참고하여 전면 광고를 연동합니다.

Previous배너 광고Next전면 비디오 광고

Last updated 11 months ago

Was this helpful?

1. 전면 광고 인스턴스 생성

아래 코드를 추가하여 전면 광고 인스턴스를 생성합니다.

private AdPopcornSSPInterstitialAd interstitialAd; 

@Override 
rotected void onCreate(Bundle savedInstanceState) { 
    interstitialAd = new AdPopcornSSPInterstitialAd(context);
}
private var interstitialAd: AdPopcornSSPInterstitialAd? = null
override fun onCreate(savedInstanceState: Bundle?) { 
		interstitialAd = AdPopcornSSPInterstitialAd(this@MainActivity)
}

2. 전면 Placement ID 설정

아래 코드를 추가하여 전면 광고의 PLACEMENT ID 를 설정합니다. 전면광고 PLACEMENT ID 는 에서 생성이 가능합니다.

interstitialAd.setPlacementId("전면_PlacementId");
interstitialAd?.setPlacementId("전면광고PlacementId")

3. 전면 광고 요청

전면 광고 노출을 원하는 시점에 loadAd() API 를 호출하여 서버에 광고를 요청합니다.

interstitialAd.loadAd();
interstitialAd?.loadAd()

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

4. 전면 광고 노출

전면 광고 노출 시점에 showAd() API 를 추가하여 광고를 노출합니다.

interstitialAd.showAd();
interstitialAd?.showAd()

5. 전면 광고가 노출될 activity 지정

아래 코드를 추가하여 전면 광고의 Load API 를 호출한 activity 가 아닌 다른 곳에서 show 를 하고자 할 경우, 현재의 activity 에서 호출합니다.

interstitialAd.setCurrentActivity(this);
interstitialAd?.setCurrentActivity(this@MainActivity);

6. 전면 광고 로드 여부 체크

전면 광고 로드 시 광고 유/무를 파악할 때 호출 합니다.

  • true: 광고 로드 성공

  • false: 광고 로드 실패

interstitialAd.isLoaded();
interstirialAd?.showAd()

7. 이벤트 리스너

1) 전면 광고 Load 이벤트 리스너

전면 광고를 불러올 때 발생하는 이벤트에 대한 리스너를 설정합니다. 제공되는 리스너와 구현 예시는 다음과 같습니다.

이벤트 리스너
설명

OnInterstitialLoaded

전면 광고 로딩 성공

OnInterstitialReceiveFailed

interstitialAd.setInterstitialLoadEventCallbackListener(new IInterstitialLoadEventCallbackListener() { 	
	@Override 
	public void OnInterstitialLoaded() { 
		Toast.makeText(MainActivity.this, "LoadEventCallback OnInterstitialLoaded", Toast.LENGTH_SHORT).show(); 
	} 
	
	@Override 
	public void OnInterstitialReceiveFailed(SSPErrorCode errorCode) { 
		Toast.makeText(MainActivity.this, "LoadEventCallback OnInterstitialReceiveFailed", Toast.LENGTH_SHORT).show(); 
	}
});
interstitialAd?.setInterstitialLoadEventCallbackListener(object: IInterstitialLoadEventCallbackListener {
    override fun OnInterstitialLoaded() {
    }

    override fun OnInterstitialReceiveFailed(errorCode: SSPErrorCode) {
    }
})

2) 전면 광고 Show 이벤트 리스너

전면 광고 열고 닫을 경우에 대한 이벤트 리스너를 설정합니다. 제공되는 리스너와 구현 예시는 다음과 같습니다.

이벤트 리스너
설명

OnInterstitialOpened

전면 광고 열기

OnInterstitialOpenFailed

전면 광고 열기 실패

OnInterstitialClosed

전면 광고 닫기. 닫기 이벤트가 발생한 방법에 따라 closeEvent를 전달해 줍니다. 단 , 미디에이션 광고의 경우에는 SSP에서 확인할 수 없이 Unknown으로 전달되어 집니다.

OnInterstitialClicked

전면 광고 클릭 시

interstitialAd.setInterstitialShowEventCallbackListener(new IInterstitialShowEventCallbackListener() { 

	@Override 
	public void OnInterstitialOpened() { 
	} 

	@Override 
	public void OnInterstitialOpenFailed(SSPErrorCode errorCode) { 
	} 

	@Override 
	public void OnInterstitialClosed(int CloseEvent) { 
			// UNKNOWN = 0; 
			// CLICK_CLOSE_BTN = 1; 
			// PRESSED_BACK_KEY = 2; 
			// SWIPE_RIGHT_TO_LEFT = 3; 
			// SWIPE_LEFT_TO_RIGHT = 4; 
			// AUTO_CLOSE = 5; 
	}

	@Override 
	public void OnInterstitialClicked() { 
	} 
});
interstitialAd?.setInterstitialShowEventCallbackListener(object: IInterstitialShowEventCallbackListener{

    override fun OnInterstitialOpened() {
    }

    override fun OnInterstitialOpenFailed(errorCode: SSPErrorCode) {
    }

    override fun OnInterstitialClosed(CloseEvent: Int) {
    // UNKNOWN = 0;
    // CLICK_CLOSE_BTN = 1;
    // PRESSED_BACK_KEY = 2;
    // SWIPE_RIGHT_TO_LEFT = 3;
    // SWIPE_LEFT_TO_RIGHT = 4;
    // AUTO_CLOSE = 5;
    }

    override fun OnInterstitialClicked() {
    }
})

8. 전면 광고 커스텀 옵션

전면 광고 노출시 아래와 같은 커스텀 옵션을 제공합니다.

(InterstitialAd.CustomExtraData 에 정의되어 있는 값 사용)

필요한 옵션 설정 후 "endingInterstitialAd.setCustomExtras(extras);" API 를 호출합니다.

option
설명
Type
Default

APSSP_AD_BACKGROUND_COLOR

전면 광고 배경색 및 투명도 변경

int

Black , 투명도 : 0 (#ff000000)

APSSP_AD_ENABLE_SWIPE_CLOSE

Swipe 를 이용하여 전면광고 닫기 기능 추가

Boolean

false

APSSP_AD_HIDE_CLOSE_BTN

전면 광고 우측 상단 닫기 버튼 노출 여부 설정

Boolean

false

APSSP_AD_SWIPE_MIN_DISTANCE_DP

Swipe 동작을 위한 최소 swipe 거리

int

120(dp)

APSSP_AD_CLOSE_BTN_MARGIN_FROM_EDGE

광고 이미지 마진 기준. 마진을 주고 싶은 경우 false.

Boolean

true

APSSP_AD_CLOSE_BTN_LEFT_MARGIN

APSSP 전면 광고 닫기 버튼 좌측 마진

int

-28(dp)

APSSP_AD_CLOSE_BTN_RIGHT_MARGIN

APSSP 전면 광고 닫기 버튼 우측 마진

int

20(dp)

APSSP_AD_CLOSE_BTN_TOP_MARGIN

APSSP 전면 광고 닫기 버튼 상단 마진

int

20(dp)

APSSP_AD_CLOSE_BTN_BOTTOM_MARGIN

APSSP 전면 광고 닫기 버튼 하단 마진

int

0

APSSP_AD_DISABLE_BACK_BTN

전면 백키 사용 여부

Boolean

false

IS_ENDING_AD

전면 광고에 종료 메시지 노출 여부

Boolean

false

ENDING_TEXT

종료 광고 메시지 변경

string

"뒤로가기를 한 번 더 누르시면 종료됩니다."

ENDING_TEXT_SIZE

종료 광고 메시지 크기 변경

int

11(sp)

ENDING_TEXT_COLOR

종료 광고 메시지 색상 변경

int

0x9c9c9c

ENDING_TEXT_GRAVITY

종료 광고 메시지 정렬 위치 변경

int

우측 정렬

endingInterstitialAd = new InterstitialAd(this);

endingInterstitialAd.setPlacementId(TEST_INTERSTITIAL_PLACEMENT_ID);

HashMap extras = new HashMap<>();

// Option1. 배경색 변경
extras.put(AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_BACKGROUND_COLOR , Color.parseColor("#ff0000"));

// Option2. 배경색 + 투명도 변경
extras.put(AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_BACKGROUND_COLOR , Color.parseColor("#11000000"));
extras.put(AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_ENABLE_SWIPE_CLOSE , true);
extras.put(AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_HIDE_CLOSE_BTN , true);
extras.put(AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_SWIPE_MIN_DISTANCE_DP , 120);

// Option3. 전면광고를 Ending 배너로 사용하실 경우 아래 옵션을 추가합니다.
extras.put(AdPopcornSSPInterstitialAd.CustomExtraData.IS_ENDING_AD, true);
extras.put(AdPopcornSSPInterstitialAd.CustomExtraData.ENDING_TEXT, "백키를 누르시면 종료 시켜드립니다! 감사합니다\n");
extras.put(AdPopcornSSPInterstitialAd.CustomExtraData.ENDING_TEXT_SIZE, 14);
extras.put(AdPopcornSSPInterstitialAd.CustomExtraData.ENDING_TEXT_COLOR, Color.parseColor("#ffffff"));
extras.put(AdPopcornSSPInterstitialAd.CustomExtraData.ENDING_TEXT_GRAVITY, Gravity.RIGHT);

endingInterstitialAd.setCustomExtras(extras);

// Option4. Close 버튼 디바이스 우측 상단 기준 커스텀
HashMap customExtras = new HashMap<>();

customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_LEFT_MARGIN, -28); // 영향 받지 않음
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_RIGHT_MARGIN, 50);
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_TOP_MARGIN, 50);
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_BOTTOM_MARGIN, 0); // 영향 받지 않음
interstitialAd.setCustomExtras(customExtra);

// Option5. 중앙 광고물의 Close 버튼 우측 상단 기준 커스텀
// - 광고물 기준으로 커스텀 진행 시 디바이스 가로 , 세로 길이와 광고물의 가로 , 세로 길이에 따라 영향 받는 옵션 값이 달라짐.

// - 광고물이 전체 화면에 노출 되는 경우
//APSSP_AD_CLOSE_BTN_RIGHT_MARGIN, IGAW_AD_CLOSE_BTN_TOP_MARGIN 영향 받음.

// - 디바이스 화면이 광고물 보다 더 큰 경우
//APSSP_AD_CLOSE_BTN_LEFT_MARGIN, IGAW_AD_CLOSE_BTN_BOTTOM_MARGIN 영향 받음.

HashMap customExtras = new HashMap<>();
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_MARGIN_FROM_EDGE, false);
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_LEFT_MARGIN, -28);
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_RIGHT_MARGIN, 50);
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_TOP_MARGIN, 50);
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_BOTTOM_MARGIN, 0);
interstitialAd.setCustomExtras(customExtra);
endingInterstitialAd = AdPopcornSSPInterstitialAd(this@MainActivity)

var extras:HashMap<String, Any> = HashMap()

// Option1. 배경색 변경
extras[AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_BACKGROUND_COLOR] = Color.parseColor("#ff0000")

// Option2. 배경색 + 투명도 변경
extras[AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_BACKGROUND_COLOR] = Color.parseColor("#11000000")

extras[AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CANCELABLE_TIME_MILLIS] = 3000
extras[AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_ENABLE_SWIPE_CLOSE] = true
extras[AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_HIDE_CLOSE_BTN] = true
extras[AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_SWIPE_MIN_DISTANCE_DP] = 120

// Option3. 전면광고를 Ending 배너로 사용하실 경우 아래 옵션을 추가합니다.
extras[AdPopcornSSPInterstitialAd.CustomExtraData.IS_ENDING_AD] = true
extras[AdPopcornSSPInterstitialAd.CustomExtraData.ENDING_TEXT] = "백키를 누르시면 종료 시켜드립니다! 감사합니다\n"
extras[AdPopcornSSPInterstitialAd.CustomExtraData.ENDING_TEXT_SIZE] = 14
extras[AdPopcornSSPInterstitialAd.CustomExtraData.ENDING_TEXT_COLOR] = Color.parseColor("#ffffff")
extras[AdPopcornSSPInterstitialAd.CustomExtraData.ENDING_TEXT_GRAVITY] = Gravity.RIGHT

endingInterstitialAd?.setCustomExtras(extras)

// Option4. Close 버튼 디바이스 우측 상단 기준 커스텀
var customExtras:HashMap<String, Any> = HashMap()

customExtras[AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_LEFT_MARGI] = -28 // 영향 받지 않음
customExtras[AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_RIGHT_MARGIN] = 50
customExtras[AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_TOP_MARGIN] = 50
customExtras[AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_BOTTOM_MARGIN] = 0 // 영향 받지 않음
interstitialAd?.setCustomExtras(customExtras)

// Option5. 중앙 광고물의 Close 버튼 우측 상단 기준 커스텀
// - 광고물 기준으로 커스텀 진행 시 디바이스 가로 , 세로 길이와 광고물의 가로 , 세로 길이에 따라 영향 받는 옵션 값이 달라짐.

// - 광고물이 전체 화면에 노출 되는 경우
// APSSP_AD_CLOSE_BTN_RIGHT_MARGIN, APSSP_AD_CLOSE_BTN_TOP_MARGIN 영향 받음.

// - 디바이스 화면이 광고물 보다 더 큰 경우
// APSSP_AD_CLOSE_BTN_LEFT_MARGIN, APSSP_AD_CLOSE_BTN_BOTTOM_MARGIN 영향 받음.

var customExtras:HashMap<String, Any> = HashMap()
customExtras[AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_MARGIN_FROM_EDGE] = false
customExtras[AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_LEFT_MARGIN] = -28
customExtras[AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_RIGHT_MARGIN] = 50
customExtras[AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_TOP_MARGIN] = 50
customExtras[AdPopcornSSPInterstitialAd.CustomExtraData.APSSP_AD_CLOSE_BTN_BOTTOM_MARGIN] = 0
interstitialAd?.setCustomExtras(customExtras)

전면 광고 로딩 실패.

애드팝콘 SSP 콘솔
에러코드 값