전면 광고
전면광고는 화면 전체를 덮는 형태의 광고입니다. 다음을 참고하여 전면광고를 연동합니다.
1. 전면 광고 인스턴스 생성
아래 코드를 추가하여 전면 광고 인스턴스를 생성합니다.
private AdPopcornSSPInterstitialAd interstitialAd;
@Override
rotected void onCreate(Bundle savedInstanceState) {
interstitialAd = new AdPopcornSSPInterstitialAd(context);
}
2. 전면 PLACEMENT ID 설정
아래 코드를 추가하여 전면광고의 PLACEMENT ID 를 설정합니다. 전면광고 PLACEMENT ID 는 애드팝콘 SSP 페이지에서 생성이 가능합니다.
interstitialAd.setPlacementId("전면_PlacementId");
3. 전면 광고 요청
전면 광고 노출을 원하는 시점에 loadAd()
API 를 호출하여 서버에 광고를 요청합니다.
interstitialAd.loadAd();
loadAd 호출에 대한 결과로 광고 수신에 실패한 경우에는 loadAd 재호출을 하시면 안됩니다. 과도한 광고 요청 api 호출은 block 사유가 됩니다.
4. 전면 광고 노출
전면 광고 노출 시점에 아래 API 를 추가하여 광고를 노출합니다.
interstirialAd.showAd();
5. 전면 광고가 노출될 activity 지정
아래 코드를 추가하여 전면 광고의 Load API 를 호출한 activity 가 아닌 다른 곳에서 show 를 하고자 할 경우, 현재의 activity 에서 호출합니다.
interstitialAd.setCurrentActivity(this);
6. 전면 광고 로드 여부 체크
전면 광고 로드 시 광고 유/무를 파악할 때 호출 합니다. (리턴 true = 광고 로드 성공 , false = 광고 로드 실패)
interstitialAd.isLoaded();
7. 이벤트 리스너
전면 광고를 불러올 때 발생하는 이벤트에 대한 리스너를 설정합니다. 제공되는 리스너와 구현 예시는 다음과 같습니다.
OnInterstitialLoaded : 전면 광고 로딩 성공
OnInterstitialReceiveFailed : 전면 광고 로딩 실패 (전달되는 에러코드는 하단의 테이블 참고)
OnInterstitialOpened : 전면 광고 열기
OnInterstitialOpenFailed : 전면 광고 열기 실패
OnInterstitialClosed : 전면 광고 닫기닫기 이벤트가 발생한 방법에 따라 closeEvent를 전달해 줍니다. 단 , 미디에이션 광고의 경우에는 SSP에서 확인할 수 없이 Unknown으로 전달되어 집니다.
OnInterstitialClicked : 전면 광고 클릭 시
interstitialAd.setInterstitialEventCallbackListener(new IInterstitialEventCallbackListener() {
@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();
}
@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;
// AUTO_CLOSE = 3;
}
@Override
public void OnInterstitialClicked() {
}
});
8. 전면 광고 커스텀 옵션
전면 광고 노출시 아래와 같은 커스텀 옵션을 제공합니다. (InterstitialAd.CustomExtraData 에 정의되어 있는 값 사용)
필요한 옵션 설정 후 "endingInterstitialAd.setCustomExtras(extras);"
API 를 호출합니다.
ONESTORE_AD_BACKGROUND_COLOR 전면 광고 배경색 및 투명도 변경(Int 형) -> Default : Black , 투명도 : 0 (#ff000000)
ONESTORE_AD_HIDE_CLOSE_BTN 전면 광고 우측 상단 닫기 버튼 노출 여부 설정 (Boolean 형) -> Default : false
ONESTORE_AD_CLOSE_BTN_MARGIN_FROM_EDGE 기본 값은 true , 중앙 광고 이미지를 기준으로 마진을 주고 싶은 경우 false로 변경하여 사용
ONESTORE_AD_CLOSE_BTN_LEFT_MARGIN : ONESTORE 전면 광고 닫기 버튼 좌측 마진 -> Default : -28dp
ONESTORE_AD_CLOSE_BTN_RIGHT_MARGIN : ONESTORE 전면 광고 닫기 버튼 우측 마진 -> Default : 20dp
ONESTORE_AD_CLOSE_BTN_TOP_MARGIN : ONESTORE 전면 광고 닫기 버튼 상단 마진 -> Default : 20dp
ONESTORE_AD_CLOSE_BTN_BOTTOM_MARGIN : ONESTORE 전면 광고 닫기 버튼 하단 마진 -> Default : 0
ONESTORE_AD_DISABLE_BACK_BTN ONESTORE 전면 광고 백키 종료 사용 안함(Boolean형) -> Default : false
IS_ENDING_AD : 전면 광고에 종료 메시지 노출 여부 (Boolean 형) -> Default : false
ENDING_TEXT 종료 광고 메시지 변경 (String 형) -> Default : 뒤로가기를 한 번 더 누르시면 종료됩니다.
ENDING_TEXT_SIZE : 종료 광고 메시지 크기 변경 (Int 형) -> Default : 11sp
ENDING_TEXT_COLOR : 종료 광고 메시지 색상 변경 (Int 형) -> Default : White
ENDING_TEXT_GRAVITY : 종료 광고 메시지 정렬 위치 변경 (Int 형) -> Default : 우측 정렬
endingInterstitialAd = new AdPopcornSSPInterstitialAd (this);
endingInterstitialAd.setPlacementId(TEST_INTERSTITIAL_PLACEMENT_ID);
HashMap extras = new HashMap<>();
// Option1. 배경색 변경
extras.put(AdPopcornSSPInterstitialAd.CustomExtraData.ONESTORE_AD_BACKGROUND_COLOR, Color.parseColor("#ff0000"));
// Option2. 배경색 + 투명도 변경
extras.put(AdPopcornSSPInterstitialAd.CustomExtraData.ONESTORE_AD_BACKGROUND_COLOR, Color.parseColor("#11000000"));
extras.put(AdPopcornSSPInterstitialAd.CustomExtraData.ONESTORE_AD_HIDE_CLOSE_BTN , true);
// 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.ONESTORE_AD_CLOSE_BTN_LEFT_MARGIN , -28); // 영향 받지 않음
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.ONESTORE_AD_CLOSE_BTN_RIGHT_MARGIN , 50);
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.ONESTORE_AD_CLOSE_BTN_TOP_MARGIN , 50);
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.ONESTORE_AD_CLOSE_BTN_BOTTOM_MARGIN , 0); // 영향 받지 않음
interstitialAd.setCustomExtras(customExtra);
// Option5. 중앙 광고물의 Close 버튼 우측 상단 기준 커스텀
// - 광고물 기준으로 커스텀 진행 시 디바이스 가로 , 세로 길이와 광고물의 가로 , 세로 길이에 따라 영향 받는 옵션 값이 달라짐.
// - 광고물이 전체 화면에 노출 되는 경우
//ONESTORE_AD_CLOSE_BTN_RIGHT_MARGIN, IGAW_AD_CLOSE_BTN_TOP_MARGIN 영향 받음.
// - 디바이스 화면이 광고물 보다 더 큰 경우
//ONESTORE_AD_CLOSE_BTN_LEFT_MARGIN, IGAW_AD_CLOSE_BTN_BOTTOM_MARGIN 영향 받음.
HashMap customExtras = new HashMap<>();
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.ONESTORE_AD_CLOSE_BTN_MARGIN_FROM_EDGE , false);
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.ONESTORE_AD_CLOSE_BTN_LEFT_MARGIN , -28);
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.ONESTORE_AD_CLOSE_BTN_RIGHT_MARGIN , 50);
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.ONESTORE_AD_CLOSE_BTN_TOP_MARGIN , 50);
customExtras.put(AdPopcornSSPInterstitialAd.CustomExtraData.ONESTORE_AD_CLOSE_BTN_BOTTOM_MARGIN , 0);
interstitialAd.setCustomExtras(customExtra);
Last updated
Was this helpful?