# Unity 배너 유닛 API 마이그레이션

> SDK를 초기화하고 광고 형식을 정의하고 광고 유닛 ID를 사용하여 배너 광고를 로드하고 표시하여 레벨플레이 배너 유닛 API 전환.

이 가이드에서는 현재 구현에서 레벨플레이 배너 API로 전환(광고 유닛 ID 사용)하여 배너 광고를 로드하고 표시하는 방법을 설명합니다.

## 필수 조건##prerequisites

* 최소 지원 SDK는 8.6.0입니다. 최신 SDK는 [여기](/grow/levelplay/sdk/unity/package-integration.md)에서 다운로드할 수 있습니다.
* 레벨플레이 초기화 API 사용하여 SDK를 초기화해야 합니다.
* 레벨플레이 대시보드에서 AdUnitID를 찾습니다. 자세히 알아보기 [여기](/grow/levelplay/platform/get-started/ad-units.md).

## **배너 광고 오브젝트 만들기** **및 크기 설정**##**create-banner-ad-object\*\*\*\*and-set-size**

배너 광고 오브젝트의 생성은 **OnInitSuccess** 콜백을 수신한 후에 수행해야 합니다.

bannerAd = new LevelPlayBannerAd(bannerAdUnitId);

```csharp
// Create the banner object and set the ad unit id
bannerAd = new LevelPlayBannerAd(bannerAdUnitId);
```

### 배너 크기##banner-sizes

| **레거시**          | **광고 단위 이름(새로운)**     | dp의 **크기**                                         |
| ---------------- | --------------------- | -------------------------------------------------- |
| **ISBannerSize** | **LevelPlayAdSize**   | **(너비 X 높이)**                                      |
| 배너               | 배너                    | 320 x 50                                           |
| 대규모              | 대규모                   | 320 x 90                                           |
| 직사각형             | MEDIUM\_RECTANGLE     | 300 x 250                                          |
| SMART            | 적응적 광고 크기로 대체됨(아래 참조) | 모바일 및 태블릿의 크기 및 방향, 방향 설정 조정하기 위해 광고를 자동으로 렌더링합니다. |

광고 크기를 생성하려면 다음 옵션 중 하나를 따르십시오. 

**화면 너비에 맞게 조정되는 적응적 광고 크기(권장):**
이 옵션은 기기 유형에 따라 배너 또는 LEADERBOARD를 반환합니다. 적응적 기능을 지원하는 네트워크(Google, Yandex)는 최적화 로직에 따라 높이를 반환합니다.

```csharp
LevelPlayAdSize adSize = LevelPlayAdSize.CreateAdaptiveAdSize();
```

**특정 배너 크기:**
이 옵션을 사용하면 배너 크기를 구체적으로 설정할 수 있습니다. BANNER, LARGE, MEDIUM\_RECTANGLE.

```csharp
LevelPlayAdSize adSize = LevelPlayAdSize.BANNER;
```

### Placements##placements

우리는 보고만을 위한 배너에 있는 [플레이스먼트를](/grow/levelplay/platform/settings/placements.md) 지원합니다. 모든 재로드된 광고에 영향을 미치도록 **LoadAd** 이전에 설정해야 합니다.

```csharp
// Set the placement name
LevelPlayBannerAd bannerAd = new LevelPlayBannerAd("bannerAdUnitId", LevelPlayAdSize.BANNER, placementName:"placementName");
```

## 배너 이벤트 구현##implement-banner-events

코드에서 **LevelPlayBannerAd** 이벤트를 듣습니다. SDK는 아래에 나열된 가능한 모든 이벤트를 알립니다.

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

```csharp
// Register to the events
bannerAd.OnAdLoaded += BannerOnAdLoadedEvent;
bannerAd.OnAdLoadFailed += BannerOnAdLoadFailedEvent;
bannerAd.OnAdDisplayed += BannerOnAdDisplayedEvent;
bannerAd.OnAdDisplayFailed += BannerOnAdDisplayFailedEvent;
bannerAd.OnAdClicked += BannerOnAdClickedEvent;
bannerAd.OnAdCollapsed += BannerOnAdCollapsedEvent;
bannerAd.OnAdLeftApplication += BannerOnAdLeftApplicationEvent;
bannerAd.OnAdExpanded += BannerOnAdExpandedEvent;

// Implement the events
void BannerOnAdLoadedEvent(LevelPlayAdInfo adInfo) {}
void BannerOnAdLoadFailedEvent(LevelPlayAdError error) {}
void BannerOnAdClickedEvent(LevelPlayAdInfo adInfo) {}
void BannerOnAdDisplayedEvent(LevelPlayAdInfo adInfo) {}
void BannerOnAdDisplayFailedEvent(LevelPlayAdInfo adInfo, LevelPlayAdError error) {}
void BannerOnAdCollapsedEvent(LevelPlayAdInfo adInfo) {}
void BannerOnAdLeftApplicationEvent(LevelPlayAdInfo adInfo) {}
void BannerOnAdExpandedEvent(LevelPlayAdInfo adInfo) {}
```

|    | 레거시                     | 광고 단위(신규)           |
| -- | ----------------------- | ------------------- |
| 청자 | LevelPlayBannerListener | LevelPlayBannerAd   |
| 콜백 | onAdLoaded              | onAdLoaded          |
|    | onAdLoadFailed          | onAdLoadFailed      |
|    | onAdClicked             | onAdClicked         |
|    | onAdScreenPresented     | onAdExpanded        |
|    | onAdScreenDismissed     | onAdCollapsed       |
|    | onAdLeftApplication     | onAdLeftApplication |
|    |                         | onAdDisplayed       |
|    |                         | onAdDisplayFailed   |

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

> **Note:**
>
> **LevelPlayAdInfo** 파라미터 로드된 광고에 대한 정보가 포함되어 있습니다. 자세히 알아보기 [여기](/grow/levelplay/sdk/unity/levelplay-listener-adinfo-integration.md).

## 배너 광고 로드##load-banner-ad

배너 광고를 로드하려면 **IronSource.loadBanner** 대신 **LoadAd를** 사용하십시오.

```csharp
bannerAd.LoadAd();
```

## 배너 새로고침 일시 정지 및 재개##pause-and-resume-banner-refresh

새로고침 값이 플랫폼에서 정의된 경우 코드에서 배너 새로고침을 일시 정지할 수 있습니다. 배너 광고의 자동 새로고침을 중지하거나, 일시 중지한 후 다시 활성화하다, 사용 가능하다. 

> **Note:**
>
> 배너 다시 표시되면 배너가 일시 정지된 시점부터 새로고침까지의 시간을 완료합니다. 

* **pauseAutoRefresh** - 배너 광고의 자동 새로고침을 일시 중지합니다.
* **resumeAutoRefresh** - 배너 광고가 일시 중지된 후 배너 광고의 자동 새로고침을 재개합니다.

```csharp
// Pause refresh
bannerAd.PauseAutoRefresh();
// Resume refresh
bannerAd.ResumeAutoRefresh();
```

## **배너 숨기기 및 표시**##**hide-and-show-banners**

배너 생성자 일부로 배너 배경에 로드하고 관련된 경우에만 화면에 공유할 수 있습니다. 로딩 후 광고 가시성을 제어하기 위해 다음 API를 사용할 수 있습니다. 

* **ShowAd –** 배너가 화면에 표시됩니다 
* **HideAd –** 배너가 숨겨집니다

bannerAd.ShowAd();
bannerAd.HideAd();

```csharp
// Show ad
bannerAd.ShowAd();
// Hide ad
bannerAd.HideAd();
```

## **디스플레이 컷아웃(Android만 해당)**##**display-cutouts-(android-only)**

Android 디바이스의 디스플레이 컷아웃은 카메라, 센서, 스피커와 같은 필수 컴포넌트를 위해 예약된 지정된 영역, 일반적으로 에지 투 에지 디스플레이가 있는 스마트폰과 디바이스에서 사용됩니다. 컷아웃은 잠재적으로 게임 뷰 제한하여 화면의 배너 배치에 영향을 미칠 수 있습니다. 배너 광고와 표시된 컷아웃의 중복을 방지하려면 **LevelPlayBannerAd를** 생성하고 **respectSafeArea를** true로 설정합니다.

디스플레이 컷아웃을 위한 Google 솔루션에 대해 자세히 알아보세요[. 여기](https://developer.android.com/guide/topics/display-cutout)에서

Android 컷아웃을 지원하려면 **respectSafeArea** 값이 true인 **LevelPlayBannerAd** 오브젝트를 생성합니다(기본값은 false).

```csharp
bannerAd = new LevelPlayBannerAd(bannerAdUnitId, respectSafeArea:true);
```

## **배너 광고 파괴**##**destroy-banner-ad**

배너를 파괴하려면 **IronSource.destroyBanner** 대신 **DestroyAd** 메서드를 호출합니다.

삭제된 배너 더 이상 표시할 수 없습니다. 더 많은 광고를 표시하려면 새 **LevelPlayBannerAd** 오브젝트를 만드십시오. 

```csharp
bannerAd.DestroyAd();
```

## **다중 광고 유닛 인터스티셜 광고 API**##**multiple-ad-unit-interstitial-apis**

|     | 레거시               | 광고 단위(신규)              |
| --- | ----------------- | ---------------------- |
| 클래스 | 아이언소스(IronSource) | LevelPlayBannerAd      |
| API | loadBanner        | LoadAd                 |
|     | destroyBanner     | DestroyAd              |
|     |                   | LevelPlayAdSize.Width  |
|     | -                 | LevelPlayAdSize.Height |
|     | -                 | PauseAutoRefresh       |
|     | -                 | ResumeAutoRefresh      |
|     | -                 | ShowAd                 |
|     | -                 | HideAd                 |

## 배너 광고의 전체 구현 예시##full-implementation-example-of-banner-ads

다음은 적응적 배너 크기를 사용하여 배너 광고를 생성하고 로드하는 예제입니다.

```csharp
public class BannerAdSample {
  private LevelPlayBannerAd bannerAd;
  void CreateBannerAd() {
    // Create banner instance
    bannerAd = new LevelPlayBannerAd("bannerAdUnitId");
    // Subscribe BannerAd events
    bannerAd.OnAdLoaded += BannerOnAdLoadedEvent;
    bannerAd.OnAdLoadFailed += BannerOnAdLoadFailedEvent;
    bannerAd.OnAdDisplayed += BannerOnAdDisplayedEvent;
    bannerAd.OnAdDisplayFailed += BannerOnAdDisplayFailedEvent;
    bannerAd.OnAdClicked += BannerOnAdClickedEvent;
    bannerAd.OnAdCollapsed += BannerOnAdCollapsedEvent;
    bannerAd.OnAdLeftApplication += BannerOnAdLeftApplicationEvent;
    bannerAd.OnAdExpanded += BannerOnAdExpandedEvent;
  }
  void LoadBannerAd() {
    // Load the banner ad
    bannerAd.LoadAd();
  }
  void ShowBannerAd() {
    // Show the banner ad, call this method only if you turned off the auto show when you created this banner instance.
    bannerAd.ShowAd();
  }
  void HideBannerAd() {
    // Hide banner
    bannerAd.HideAd();
  }
  void DestroyBannerAd() {
    // Destroy banner
    bannerAd.DestroyAd();
  }
  // Implement BannerAd Events
  void BannerOnAdLoadedEvent(LevelPlayAdInfo adInfo) {}
  void BannerOnAdLoadFailedEvent(LevelPlayAdError error) {}
  void BannerOnAdClickedEvent(LevelPlayAdInfo adInfo) {}
  void BannerOnAdDisplayedEvent(LevelPlayAdInfo adInfo) {}
  void BannerOnAdDisplayFailedEvent(LevelPlayAdInfo adInfo, LevelPlayAdError error) {}
  void BannerOnAdCollapsedEvent(LevelPlayAdInfo adInfo) {}
  void BannerOnAdLeftApplicationEvent(LevelPlayAdInfo adInfo) {}
  void BannerOnAdExpandedEvent(LevelPlayAdInfo adInfo) {}
}
```

## **완료!**##**done!**

이제 새로운 Multiple 광고 유닛 API를 사용하여 애플리케이션 배너 광고를 게재할 수 있습니다.
