# Unityのバナー広告単位APIへの移行

> SDK の初期化、広告フォーマットの定義、バナー広告のロードと表示に広告単位 ID を使用することによって、LevelPlay バナー広告単位 API に遷移します。

このガイドでは、現在の実装から LevelPlay バナー API (広告単位 ID を使用) に遷移し、バナー広告をロードしてディスプレイする方法について説明します。

## 前提条件##prerequisites

* サポートされている最小 SDK は 8.6.0 です。最新の SDK は[ここ](/grow/levelplay/sdk/unity/package-integration.md)からダウンロードできます。
* LevelPlay 初期化 API を使用して SDK を初期化していることを確認します。
* LevelPlay ダッシュボードで 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

| **古い機能**         | **広告単位(新規)**                                    | **Dimensions in dp**.                  |
| ---------------- | ----------------------------------------------- | -------------------------------------- |
| **ISBannerSize** | **LevelPlayAdSize**                             | **(幅 X 高さ)**                           |
| バナー              | バナー                                             | 320×50                                 |
| 大規模              | 大規模                                             | 320 x 90                               |
| 矩形               | MEDIUM\_RECTANGLE                               | 300 x 250                              |
| スマート             | Adaptive Ad Size (適応型広告サイズ) に置き換えられました (以下を参照)。 | 広告を自動的にレンダリングして、モバイルおよびタブレットのサイズと向きを調整 |

広告サイズを作成するには、以下のいずれかのオプションに従います。 

**画面幅に合わせて調整できる適応型広告サイズ（推奨）：**
このオプションは、デバイス タイプに応じてバナーまたは LeaderBOARD を返します。適応特徴をサポートするネットワーク (Google、Yandex) は、最適化ロジックに基づいて高ささを返します。

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

**特定のバナーサイズ：**
このオプションでは、バナーサイズを明確に設定できます。バナー、LARGE、MEDIUM＿矩形。

```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 広告情報##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 （デフォルト値は false） にして **LevelPlayBannerAd** オブジェクトを作成します。

```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!**

これで、新しい複数の広告単位 API を使用してアプリケーションでバナー広告を配信する設定が完了しました。
