# 인터스티셜 광고 통합

> SDK를 초기화하고, 인터스티셜 광고 광고 오브젝트 포스트 초기화를 생성하고, 리스너를 구현하여 광고 이벤트를 처리하여 Unity 인터스티셜 광고 통합합니다.

Unity 레벨플레이 인터스티셜 광고 전체 화면 광고 유닛으로, 일반적으로 앱 라이프사이클 동안 자연스러운 전환 지점에서 게재됩니다.

> **Note:**
>
> 이 기술 자료는 SDK 8.4.0 이상에 해당합니다.

## 필수 조건##prerequisites

* 레벨플레이 SDK를 애플리케이션 올바르게 연동했는지 확인합니다. 통합은 [여기](/grow/levelplay/sdk/unity/package-integration.md) 설명되어 있습니다.
* 레벨플레이 초기화 API 사용하여 SDK를 초기화해야 합니다.
* 레벨플레이 대시보드에서 AdUnitID를 찾습니다.

## 인터스티셜 광고 오브젝트 생성##create-interstitial-ad-object

인터스티셜 광고 오브젝트의 생성은 **OnInitSuccess** 콜백을 수신한 후에 수행해야 합니다.

오브젝트 세션 전체에 걸쳐 여러 로드와 표시를 처리할 수 있는 재사용 가능한 인스턴스. 생성 후에는 동일한 광고 유닛의 광고를 로드하고 표시하는 데 사용해야 합니다.

더 고급 구현을 위해 필요한 경우 여러 개의 인터스티셜 광고 객체를 생성할 수 있습니다.

다음을 호출하여 오브젝트 생성할 수 있습니다.

```cs
// Create Interstitial Ad object
LevelPlayInterstitialAd interstitialAd = new LevelPlayInterstitialAd(interstitialAdUnitId);
```

> **Note:**
>
> `LevelPlayInterstitialAd` 생성자는 선택적 `Config` 파라미터도 지원합니다.
>
> ```cs
> // Use optional Config parameter
> LevelPlayInterstitialAd(string adUnitId, Config config = null)
> ```
>
> 특별한 설정이 필요하지 않으면 `Config` 파라미터를 생략하고 `adUnitId`만 전달할 수 있습니다.

### 단가 기준으로 제작##creating-with-a-price-floor

광고 요청에 대한 선택적인 가격 하한을 설정하려면 `LevelPlayInterstitialAd`를 생성할 때 `Config` 오브젝트를 통해 전달하십시오(자세한 내용은 [여기](/grow/levelplay/sdk/unity/advanced-settings.md#price-floor-configuration) 참조).

```cs
// Create Interstitial Ad object with Price Floor in config.
var configBuilder = new LevelPlayInterstitialAd.Config.Builder();
configBuilder.SetBidFloor(1.0); // Minimum bid price in USD
var isConfig = configBuilder.Build();

LevelPlayInterstitialAd InterstitialAd = 새로운 LevelPlayInterstitialAd(InterstitialAdUnitId, isConfig);
```

## 인터스티셜 광고 이벤트 등록##register-to-interstitial-events

코드에 **LevelPlayInterstitialAdListener를 구현**하여 광고 전송에 대해 알 수 있습니다.

* 인터스티셜 광고 광고를 로드하기 전에 리스너를 설정하는 것이 좋습니다.
* 각 인터스티셜 광고 광고에는 고유한 리스너 구현이 있어야 합니다.
* 콜백은 메인 스레드 실행됩니다.

```cs
// Register to interstitial events
interstitialAd.OnAdLoaded += InterstitialOnAdLoadedEvent;
interstitialAd.OnAdLoadFailed += InterstitialOnAdLoadFailedEvent;
interstitialAd.OnAdDisplayed += InterstitialOnAdDisplayedEvent;
interstitialAd.OnAdDisplayFailed += InterstitialOnAdDisplayFailedEvent;
interstitialAd.OnAdClicked += InterstitialOnAdClickedEvent;
interstitialAd.OnAdClosed += InterstitialOnAdClosedEvent;
interstitialAd.OnAdInfoChanged += InterstitialOnAdInfoChangedEvent;

// Implement the events
void InterstitialOnAdLoadedEvent(LevelPlayAdInfo adInfo){}
void InterstitialOnAdLoadFailedEvent(LevelPlayAdError error){}
void InterstitialOnAdDisplayedEvent(LevelPlayAdInfo adInfo){}
void InterstitialOnAdDisplayFailedEvent(LevelPlayAdInfo adInfo, LevelPlayAdError error){}
void InterstitialOnAdClickedEvent(LevelPlayAdInfo adInfo){}
void InterstitialOnAdClosedEvent(LevelPlayAdInfo adInfo){}
void InterstitialOnAdInfoChangedEvent(LevelPlayAdInfo adInfo){}
```

### 레벨플레이 광고 정보##levelplay-ad-info

**LevelPlayAdInfo** 파라미터에는 로드된 광고에 대한 정보가 포함되어 있습니다.

구현 방법과 사용 가능한 필드에 대해 자세히 알아보세요[. 여기](/grow/levelplay/sdk/unity/levelplay-listener-adinfo-integration.md)

## 인터스티셜 광고 로드##load-interstitial-ad

인터스티셜 광고를 로드하려면 **LoadAd를** 사용합니다.

```cs
// Load interstitial ad
interstitialAd.LoadAd();
```

## 인터스티셜 광고 표시##show-interstitial-ad

**LevelPlayInterstitialAdListener** API를 사용하여 **OnAdLoaded** 콜백을 수신한 후 인터스티셜 광고를 표시합니다.

* 플레이스먼트를 사용하는 경우 아래의 플레이스먼트 섹션에 표시된 대로 **ShowAd** API에서 플레이스먼트 이름을 전달합니다.
* 광고가 사용자 성공적으로 표시되면 로딩 단계를 반복하여 다른 광고를 로드할 수 있습니다. 

```cs
// Show ad without placement
interstitialAd.ShowAd();
// Show ad with placement
interstitialAd.ShowAd(placementName: "placementName");
```

### 광고가 준비되었는지 확인##check-ad-is-ready

표시 실패를 방지하고 광고가 올바르게 표시되었는지 확인하기 위해 **ShowAd** API를 호출하기 전에 다음 API를 사용하는 것이 좋습니다.

**IsAdReady** – 광고가 성공적으로 로드되고 광고 유닛이 제한되지 않거나 거짓이 아닌 경우 true를 반환합니다.

**IsPlacementCapped** – 유효한 플레이스먼트가 제한되면 true를 반환합니다. 플레이스먼트가 유효하지 않거나 제한이 없는 경우 이 API false를 반환합니다.

```cs
// Check that ad is ready and that the placement is not capped
if (interstitialAd.IsAdReady() && !LevelPlayInterstitialAd.IsPlacementCapped(placementName))
{
    interstitialAd.ShowAd(placementName);
}
```

### Placements##placements

레벨플레이 대시보드에서 인터스티셜 광고의 [플레이스먼트](/grow/levelplay/platform/settings/placements.md) 속도와 한도를 지원합니다. 

인터스티셜 광고를 위한 플레이스먼트가 설정된 경우 특정 플레이스먼트에 광고를 게재하려면 **ShowAd** 메서드를 호출합니다.

```cs
// Check that ad is ready and that the placement is not capped
if (interstitialAd.IsAdReady() && !LevelPlayInterstitialAd.IsPlacementCapped(placementName))
{
    interstitialAd.ShowAd(placementName);
}
```

## 인터스티셜 광고 전체 구현 예시##full-implementation-example-of-interstitial-ads

```cs
public class InterstitialAdSample {
    private LevelPlayInterstitialAd interstitialAd;
    void CreateInterstitialAd() {
	      //Create InterstitialAd instance
        interstitialAd= new LevelPlayInterstitialAd("interstitialAdUnitId");

        //Subscribe InterstitialAd events
        interstitialAd.OnAdLoaded += InterstitialOnAdLoadedEvent;
        interstitialAd.OnAdLoadFailed += InterstitialOnAdLoadFailedEvent;
        interstitialAd.OnAdDisplayed += InterstitialOnAdDisplayedEvent;
        interstitialAd.OnAdDisplayFailed += InterstitialOnAdDisplayFailedEvent;
        interstitialAd.OnAdClicked += InterstitialOnAdClickedEvent;
        interstitialAd.OnAdClosed += InterstitialOnAdClosedEvent;
        interstitialAd.OnAdInfoChanged += InterstitialOnAdInfoChangedEvent;
    }
    void LoadInterstitialAd() {
        //Load or reload InterstitialAd 	
        interstitialAd.LoadAd();
    }
    void ShowInterstitialAd() {
	       //Show InterstitialAd, check if the ad is ready before showing
        if (interstitialAd.IsAdReady()) {
   		      interstitialAd.ShowAd();
        }
    }
  
    //Implement InterstitialAd events
    void InterstitialOnAdLoadedEvent(LevelPlayAdInfo adInfo) { }
    void InterstitialOnAdLoadFailedEvent(LevelPlayAdError ironSourceError) { }
    void InterstitialOnAdClickedEvent(LevelPlayAdInfo adInfo) { }
    void InterstitialOnAdDisplayedEvent(LevelPlayAdInfo adInfo) { }
    void InterstitialOnAdDisplayFailedEvent(LevelPlayAdInfo adInfo, LevelPlayAdError error) { }
    void InterstitialOnAdClosedEvent(LevelPlayAdInfo adInfo) { }
    void InterstitialOnAdInfoChangedEvent(LevelPlayAdInfo adInfo) { }
}
```

## 레벨플레이 Mediation 데모 앱##levelplay-mediation-demo-app

통합 데모 애플리케이션 앱에 인터스티셜 광고 광고 유닛 API를 통합하는 방법을 보여 줍니다.

[Unity 데모 애플리케이션 다운로드](https://github.com/ironsource-mobile/Mediation-Demo-Apps)

[통합 테스트 제품군](/grow/levelplay/sdk/unity/integration-test-suite.md)과의 통합 여부 확인

에디터 내에서 통합을 테스트할 수 있습니다. Unity 에디터에서 Mock Ads를 미리 보려면 [미리보기 모형 광고 가이드](/grow/levelplay/sdk/unity/preview-mock-ads-in-editor.md)를 참조하십시오.

## 다음 단계##next-steps

추가 인터스티셜 광고 광고 네트워크를 연동하거나 추가 광고 형식을 설정 Unity 통합 가이드를 따르십시오.

* [Mediation Networks 추가](/grow/levelplay/sdk/unity/mediation-networks.md)
* [보상형 광고](/grow/levelplay/sdk/unity/rewarded-ad-integration-package.md)
* [배너 광고](/grow/levelplay/sdk/unity/banner-integration.md)
