# 3-2. 전면 광고

## 전면 광고 인스턴스 생성 <a href="#id-01.sdk" id="id-01.sdk"></a>

```java
private OAMInterstitial interstitial;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
 
    interstitial = new OAMInterstitial( this );
}
```

## **전면 광고 PLACEMENT ID 설정** <a href="#id-01.sdk-placementid" id="id-01.sdk-placementid"></a>

ONE AdMax 콘솔에서 발급 받은 PLACEMENT ID를 다음과 같이 적용합니다.

```java
interstitial.setPlacementId( PLACEMENT_ID );
```

## **전면 광고 요청** <a href="#id-01.sdk" id="id-01.sdk"></a>

```java
interstitial.load();
```

{% hint style="danger" %} <mark style="color:red;">과도한 load() api 호출은 block 사유가 됩니다.</mark>&#x20;
{% endhint %}

## **전면 광고 노출** <a href="#id-01.sdk" id="id-01.sdk"></a>

전면 광고를 화면에 표시합니다.

```java
interstitial.show();
```

## **전면 광고 노출 Activity 지정** <a href="#id-01.sdk-activity" id="id-01.sdk-activity"></a>

기본적으로 전면 광고는 load api 를 호출한 Activity에서 표시됩니다. \
전면 광고의 load api 를 호출한 Activity 가 아닌 다른 Activity에서 나타내고자  해당 Activity 객체를 setCurrentActivity 메소드의 argument로 전달해줍니다.&#x20;

```java
interstitial.setCurrentActivity( activity );
```

## **전면 광고 로드 여부 확인** <a href="#id-01.sdk" id="id-01.sdk"></a>

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

```java
interstitial.isLoaded();
```

## **전면 광고** 이벤트 리스너 설정 <a href="#id-01.sdk" id="id-01.sdk"></a>

배너를 불러올 때 발생하는 이벤트에 대한 리스너를 설정합니다.&#x20;

```java
interstital.setEventListener( new IOAMInterstitialEventListener(){
    @Override
    public void onLoaded(){                         // 전면 광고 loading 성공
        Log.d( Tag, "interstital load success" );
    }
 
    @Override
    public void onLoadFailed( OAMError error ){     // 전면 광고 loading 실패
        Log.d( Tag, "interstitial load failed " + error.toString() );
    }
 
    @Override
    public void onOpened(){                         // 전면 광고 open 성공
        Log.d( Tag, "interstital open success" );
    }
 
    @Override
    public void onOpenFailed( OAMError error ){     // 전면 광고 open 실패
        Log.d( Tag, "interstitial open failed " + error.toString() );
    }
 
    @Override
    public void onClosed( OAMCloseEvent event ){    // 전면 광고 종료
        // 전면 광고 닫기닫기 이벤트가 발생한 방법에 따라 closeEvent를 전달해 줍니다.
        // 단, 미디에이션 광고의 경우에는 확인할 수 없이 Unknown으로 전달됩니다.
 
        /* public enum OAMCloseEvent {
            UNKNOWN, CLICK_CLOSE_BTN, PRESSED_BACK_KEY, AUTO_CLOSE    
        }*/
 
        Log.d( Tag, "interstital closed " + event );
    }
 
    @Override
    public void onClicked(){                        // 전면 광고 클릭
        Log.d( Tag, "interstital clicked" );
    }
} );
```

{% content-ref url="../oamerror" %}
[oamerror](https://one-admax-organization.gitbook.io/one-admax-sdk/oamerror)
{% endcontent-ref %}

## 전면 광고 커스텀 옵션 <a href="#id-01.sdk" id="id-01.sdk"></a>

{% code fullWidth="false" %}

```java
BACKGROUND_COLOR            : 배경색 및 투명도 변경. Color 값
 
HIDE_CLOSE_BTN              : 우측 상단 닫기 버튼 노출 여부 설정. default : false
 
CLOSE_BTN_MARGIN_FROM_EDGE  : 중앙 광고 이미지를 기준으로 마진을 주고 싶은 경우 false로 변경하여 사용. default true.
CLOSE_BTN_LEFT_MARGIN       : 닫기 버튼 좌측 마진. default : -28dp
CLOSE_BTN_TOP_MARGIN        : 닫기 버튼 상단 마진. default : 20dp
CLOSE_BTN_RIGHT_MARGIN      : 닫기 버튼 우측 마진. default : 20dp
CLOSE_BTN_BOTTOM_MARGIN     : 닫기 버튼 하단 마진. default : 0
 
DISABLE_BACK_BTN            : 백키 종료 사용 안함. deault : false
 
IS_ENDING_AD                : 종료 메시지 노출 여부. default : false
ENDING_TEXT                 : 종료 메시지. default : "뒤로가기를 한 번 더 누르시면 종료됩니다."
ENDING_TEXT_SIZE            : 종료 메시지 size. default : 11sp
ENDING_TEXT_COLOR           : 종료 메시지 test color. default : white
ENDING_TEXT_GRAVITY         : 종료 메시지 gravity. default : RIGHT
```

{% endcode %}

## 전면 광고 샘플 코드 <a href="#id-01.sdk" id="id-01.sdk"></a>

```java
HashMap map = new HashMap<>();
map.put( OAMInterstitial.CustomExtraData.BACKGROUND_COLOR, Color.TRANSPARENT );
map.put( OAMInterstitial.CustomExtraData.DISABLE_BACK_BTN, true );
map.put( OAMInterstitial.CustomExtraData.HIDE_CLOSE_BTN, true );
 
// 전면광고를 Ending 배너로 사용하실 경우
map.put(OAMInterstitial.CustomExtraData.IS_ENDING_AD, true);
map.put(OAMInterstitial.CustomExtraData.ENDING_TEXT, "백키를 누르시면 종료됩니다. 감사합니다\n");
map.put(OAMInterstitial.CustomExtraData.ENDING_TEXT_SIZE, 14);
map.put(OAMInterstitial.CustomExtraData.ENDING_TEXT_COLOR, Color.parseColor("#ffffff"));
map.put(OAMInterstitial.CustomExtraData.ENDING_TEXT_GRAVITY, Gravity.RIGHT);
 
interstital.setCustomExtras( map );
interstital.load();
```
