---
description: 모바일 앱의 스플래시 화면(Splash Screen) 내 광고를 송출하는 형태입니다.
---

# 스플래시 광고



## 1. 메인 activity 설정

스플래시 화면이 되는 activity를 생성한 뒤, 안드로이드 12부터 제공하는 기본 스플래시 화면 뒤에 바로 노출되도록 스플래시 activity를 아래와 같이 메인 activity로 설정합니다.

```xml
<activity 
  android:name=".SplashActivity"
  android:clearTaskOnLaunch="true"
  android:configChanges="orientation|screenSize"
  android:exported="true"
  android:theme="@style/Theme.AppCompat">
  <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
</activity>
```



## 2. 스플래시 광고 인스턴스 생성

아래 코드를 추가하여 네이티브 광고 인스턴스를 생성 합니다.

{% tabs %}
{% tab title="JAVA" %}
```javascript
public class SplashActivity extends Activity{
    private AdPopcornSSPSplashAd splashAd;
     	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    	splashAd = (AdPopcornSSPSplashAd) findViewById(R.id.splash_ad);
    }
}
```
{% endtab %}

{% tab title="Kotlin" %}
```kotlin
private var splashAd : AdPopcornSSPSplashAd? = null
    	
override fun onCreate(savedInstanceState: Bundle?) {
	// Layout xml 사용할 경우
	splashAd = findViewById(R.id.splash_ad)
}
```
{% endtab %}
{% endtabs %}



## 3. 스플래시 광고 Placement ID 설정

아래 코드를 추가하여 스플래시광고  PLACEMENT ID 를 설정합니다. 스플래시광고 PLACEMENT ID 는 [애드팝콘 SSP 콘솔](https://www.console.adpopcorn.com/)에서 생성이 가능합니다.

{% tabs %}
{% tab title="JAVA" %}
```java
splashAd.setPlacementId("스플래시_PlacementId");
```
{% endtab %}

{% tab title="Kotlin" %}
```kotlin
splashAd?.setPlacementId("스플래시PlacementId")
```
{% endtab %}
{% endtabs %}



## 4. 스플래시 광고 타입 설정

<mark style="color:red;">`setFullScreenSplash()`</mark> API를 추가하여 스플래시 광고의 타입을 설정 합니다.

{% tabs %}
{% tab title="JAVA" %}
```java
splashAd.setFullScreenSplash(false); // 기본값 : 일반모드(false)
```
{% endtab %}

{% tab title="Kotlin" %}
```kotlin
splashAd?.setFullScreenSplash(false) // 기본값 : 일반모드(false)
```
{% endtab %}
{% endtabs %}



지원 하는 형태의 광고는 총 2가지 이며, 아래 예시와 같이 노출됩니다.

<table><thead><tr><th width="172">광고 타입</th><th>설명</th><th>예시 이미지</th></tr></thead><tbody><tr><td>일반 모드(<mark style="color:red;"><code>false</code></mark>)</td><td>정사각형 형태의 광고가 노출됩니다. 이에 로고 하단에 노출시켜줍니다.</td><td><img src="https://50533756-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fqmkw7pJLtjFGD5fwChbN%2Fuploads%2FTsfGA44BIya9MzGZuS8v%2Fimage.png?alt=media&#x26;token=d90dfb17-86c1-464a-b5c2-7506bb13ed6a" alt="" data-size="original"></td></tr><tr><td>전체  화면 모드(<mark style="color:red;"><code>true</code></mark>)</td><td>전체 화면을 채우는 형태의 광고가 노출됩니다.</td><td><img src="https://50533756-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fqmkw7pJLtjFGD5fwChbN%2Fuploads%2FczQy1pYklIe3z7aGslmA%2Fimage.png?alt=media&#x26;token=b4cc0ac9-3e48-4c8c-9296-1bfac1a1e745" alt="" data-size="original"></td></tr></tbody></table>



## 5. 스플래시 광고 요청

<mark style="color:red;">`loadAd()`</mark>API를 호출하여 스플래시 광고를 요청합니다.

{% tabs %}
{% tab title="JAVA" %}
```java
splashAd.loadAd();
```
{% endtab %}

{% tab title="Kotlin" %}
```kotlin
splashAd?.loadAd();
```
{% endtab %}
{% endtabs %}

{% hint style="warning" %}
`loadAd` 호출에 대한 결과로 광고 수신에 실패한 경우에는 `loadAd` 재호출을 하시면 안됩니다. 과도한 광고 요청 api 호출은 block 사유가 됩니다.
{% endhint %}



## 6. 스플래시 광고 종료

<mark style="color:red;">`destory()`</mark> API를 통해서스플래시 activity가 destroy 될 때 추가하여 종료 처리 합니다.

{% tabs %}
{% tab title="JAVA" %}
```kotlin
splashAd.destory();
```
{% endtab %}

{% tab title="Kotlin" %}
```kotlin
splashAd?.destory();
```
{% endtab %}
{% endtabs %}



## 7. 스플래시 광고 이벤트 리스너

스플래시 광고에서 발생하는 이벤트를 받고자 할 경우 , 이벤트 리스너를 생성하여 전달해 줍니다.

이벤트 리스너를 통해 들어오는 이벤트들을 아래와 같습니다.

<table><thead><tr><th width="275">이벤트 리스너</th><th>설명</th></tr></thead><tbody><tr><td>onSplashAdLoadSuccess</td><td>스플래시 광고 요청 성공 시</td></tr><tr><td>onSplashAdLoadFailed</td><td>스플래시 광고 요청 실패 시. <a href="undefined-10">에러코드 값</a></td></tr><tr><td>onImpression</td><td>스플래시 광고가 화면에 노출되었을 때</td></tr></tbody></table>

{% tabs %}
{% tab title="JAVA" %}
```java
splashAd.setSplashAdEventCallbackListener(new ISplashAdEventCallbackListener() {
    @Override
    public void onSplashAdLoadSuccess() {
    }

    @Override
    public void onSplashAdLoadFailed(SSPErrorCode errorCode) {
    }

    @Override
    public void onImpression() {
    }
});
```
{% endtab %}

{% tab title="Kotlin" %}
```kotlin
splashAd?.setSplashAdEventCallbackListener(object: ISplashAdEventCallbackListener{
    override fun onSplashAdLoadSuccess() {
    }

    override fun onSplashAdLoadFailed(errorCode: SSPErrorCode) {
    }

    override fun onImpression () {
    }

})
```
{% endtab %}
{% endtabs %}



## 8. 스플래시 광고 이벤트 처리

아래 코드와 같이 광고 요청에 성공한 경우에는 원하는 시간 만큼 delay 후 MainActivity로 전환시키며, 광고 요청 실패 이벤트를 받을 경우 바로 MainActivity로 전환시켜 줍니다.

{% tabs %}
{% tab title="JAVA" %}
```java
splashAd.setSplashAdEventCallbackListener(new ISplashAdEventCallbackListener() {
    @Override
    public void onSplashAdLoadSuccess() {
        new Handler().postDelayed(new Runnable() {
	    @Override
	    public void run() {
	        Intent intent = new Intent(SplashActivity.this, MainActivity.class);
	        startActivity(intent);
	        finish();
	    }
	}, 3000);
    }

    @Override
    public void onSplashAdLoadFailed(SSPErrorCode errorCode) {
	Intent intent = new Intent(SplashActivity.this, MainActivity.class);
	startActivity(intent);
	finish();
    }

    @Override
    public void onImpression() {
    }
});
```
{% endtab %}

{% tab title="Kotlin" %}
```kotlin
splashAd?.setSplashAdEventCallbackListener(object: ISplashAdEventCallbackListener{
    override fun onSplashAdLoadSuccess() {
	Handler(Looper.getMainLooper()).postDelayed({
	    val nextIntent = Intent(this, MainActivity::class.java)
	    startActivity(nextIntent)
	    finish();
	}, 3000)
    }

    override fun onSplashAdLoadFailed(errorCode: SSPErrorCode) {
	    val nextIntent = Intent(this, MainActivity::class.java)
	    startActivity(nextIntent)
	    finish();
    }

    override fun onImpression () {
    }

})
```
{% endtab %}
{% endtabs %}







