# Android 向けバナーインテグレーション

> SDKの初期化、初期化後のバナー広告オブジェクトの作成、適切な広告サイズと位置の設定によってバナー広告を統合します。

バナーは、システムによって開始される長方形の広告で、静的またはアニメーションにすることができ、ライブアコンテンツ定されたエリアに配信されます。

> **Note:**
>
> このドキュメントは SDK 8.9.0 以降に関連するものです。

## 前提条件##prerequisites

* LevelPlay SDK がアプリケーションに正しく統合されていることを確認します。インテグレーションの概要は[こちら](/grow/levelplay/sdk/android/integration-checklists.md)です。
* LevelPlay 初期化 API を使用して SDK を初期化してください。
* LevelPlay ダッシュボードで AdUnitID を見つけます。

## バナー広告オブジェクトの作成とサイズの設定##create-banner-ad-object-and-set-size

バナー広告オブジェクトの作成は、**onInitSuccess** コールバックの受信後に行う必要があります。

1. **Java**

   ```java
   // 広告設定の作成 - 任意
   LevelPlayAdSize adSize = LevelPlayAdSize.BANNER;
   LevelPlayBannerAdView.Config adConfig = new LevelPlayBannerAdView.Config.Builder()
      .setAdSize(adSize)
      .setPlacementName("placementName")
      .build();
   // バナービューの作成と広告単位 ID の設定
   LevelPlayBannerAdView levelPlayBanner = new LevelPlayBannerAdView(context, "adUnitId", adConfig);
   ```

2. **Kotlin**

   ```kotlin
   // 広告設定の作成 - 任意
   val adSize = LevelPlayAdSize.BANNER
   val adConfig = LevelPlayBannerAdView.Config.Builder()
   .setAdSize(adSize)
   .setPlacementName("placementName")
   .build()
   // バナービューの作成と広告単位 ID の設定
   val levelPlayBanner = LevelPlayBannerAdView(context, "adUnitId", adConfig)
   ```

### バナーサイズ##banner-sizes

| LevelPlayAdSize   | 説明                                     | 寸法 (dp) (幅 X 高さ) |
| ----------------- | -------------------------------------- | ---------------- |
| バナー               | 標準バナー                                  | 320×50           |
| 大規模               | Large バナー                              | 728 x 90         |
| MEDIUM\_RECTANGLE | 中矩形 (MREC)                             | 300 x 250        |
| 適応型               | 広告を自動的にレンダリングして、モバイルおよびタブレットのサイズと向きを調整 | デバイスの幅 X 推奨の高高さ  |

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

### 画面幅に合わせて調整できる適応型広告サイズ（推奨）##adaptive-ad-size-that-adjusts-to-the-screen-width-(recommended)

このオプションは、デバイス タイプに応じてバナーまたは LeaderBOARD を返します。適応特徴をサポートするネットワーク (Google、Yandex) は、最適化ロジックに基づいて高ささを返します。

1. **Java**

   ```java
    LevelPlayAdSize adSize = LevelPlayAdSize.createAdaptiveAdSize(context);
   ```

2. **Kotlin**

   ```kotlin
   val adSize = createAdaptiveAdSize(context)
   ```

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

1. **Java**

   ```java
   levelPlayBanner.setAdSize(LevelPlayAdSize.MEDIUM_RECTANGLE);
   ```

2. **Kotlin**

   ```kotlin
   levelPlayBanner.setAdSize(LevelPlayAdSize.MEDIUM_RECTANGLE) 
   ```

### Placements##placements

バナーの[プレースメントは](/grow/levelplay/platform/best-practices/placement.md)、レポートの目的でのみサポートされます。プレースメントは\*\*、loadAd\*\* の前に設定して、リロードされたすべての広告に影響を与える必要があります。

1. **Java**

   ```java
   // 配置名を設定します
   levelPlayBanner.setPlacementName("placementName");
   ```

2. **Kotlin**

   ```kotlin
   // 配置名を設定します
   levelPlayBanner.setPlacementName("placementName")	 
   ```

## バナーの設定##set-banner-listener

コードに **LevelPlayBannerAdViewListener** を実装して、広告の配信に関する情報を取得します。

* バナー広告をロードする前にリスナーを設定することをお勧めします。
* バナー広告ごとに独自のリスナーを実装する必要があります。
* コールバックはメインスレッドで実行されます。
* コールバックがすべてのネットワークでサポートされていない場合は、任意としてマークされます。

1. **Java**

   ```java
   levelPlayBanner.setBannerListener(new LevelPlayBannerAdViewListener() {
   @Override
   public void onAdLoaded(@NonNull LevelPlayAdInfo adInfo) {
   // 広告が正常にロードされました 
   }
   @Override
   public void onAdLoadFailed(@NonNull LevelPlayAdError error) {
   // 広告ロード失敗
   }
   @Override
   public void onAdDisplayed(@NonNull LevelPlayAdInfo adInfo) {
   // 広告が画面に表示されました
   }
   @Override
   public void onAdDisplayFailed(@NonNull LevelPlayAdInfo adInfo, @NonNull LevelPlayAdError error) {
   // Optional.Ad failed to be displayed on screen(画面に広告を表示できませんでした) 
   }
   @Override
   public void onAdClicked(@NonNull LevelPlayAdInfo adInfo) {
   // 広告がクリックされました
   }
   @Override
   public void onAdExpanded(@NonNull LevelPlayAdInfo adInfo) {
   // Optional.広告が全画面で開かれる 
   }
   @Override
   public void onAdCollapsed(@NonNull LevelPlayAdInfo adInfo) {
   // Optional.広告が元のサイズに復元される 
   }
   @Override
   public void onAdLeftApplication(@NonNull LevelPlayAdInfo adInfo) 
   // Optional.ユーザーが広告をクリックし、アプリケーション外に移動した 
   }
   ); 
   ```

2. **Kotlin**

   ```kotlin
   levelPlayBanner.setBannerListener(object:LevelPlayBannerAdViewListener {
   override fun onAdLoaded(adInfo:LevelPlayAdInfo) {
   // 広告が正常にロードされました 
   }
   override fun onAdLoadFailed(error:LevelPlayAdError) {
   // 広告ロード失敗
   }
   override fun onAdDisplayed(adInfo:LevelPlayAdInfo) {
   // 広告が画面に表示されました
   }
   override fun onAdDisplayFailed(adInfo:LevelPlayAdInfo、エラー:LevelPlayAdError) {
   // Optional.Ad failed to be displayed on screen(画面に広告を表示できませんでした) 
   }
   override fun onAdClicked(adInfo:LevelPlayAdInfo) {
   // 広告がクリックされました
   }
   オーバーライド fun onAdExpanded(adInfo:LevelPlayAdInfo) {
   // Optional.広告が全画面で開かれる
   }
   override fun onAdCollapsed(adInfo:LevelPlayAdInfo) {
   // Optional.広告が元のサイズに復元される 
   }
   override fun onAdLeftApplication(adInfo:LevelPlayAdInfo) {
   // Optional.ユーザーが広告をクリックし、アプリケーション外に移動した 
   }
   })	 
   ```

### LevelPlay 広告情報##levelplay-ad-info

**LevelPlayAdInfo** パラメーターには、ロードされた広告に関する情報が含まれます。

## ロードバナー広告##load-banner-ad

バナー広告をロードするには、**loadAd** を使用します。

1. **Java**

   ```java
   // バナー広告のロード
   levelPlayBanner.loadAd();
   ```

2. **Kotlin**

   ```kotlin
   // バナー広告のロード
   levelPlayBanner.loadAd()
   ```

## バナー更新の一時停止と再開##pause-and-resume-banner-refresh

プラットフォームで更新値が定義されている場合は、コードのバナー更新を一時停止できます。バナー広告の自動更新を停止するか、一時停止後に再度有効にするには、以下の方法を使用します。

> **Note:**
>
> バナーが再度表示されると、バナーが一時停止されてから更新までの時間が完了します。

* **pauseAutoRefresh** - バナー広告の自動更新を一時停止します。
* **resumeAutoRefresh** - バナー広告が一時停止された後、自動更新を再開します。

1. **Java**

   ```java
   // 更新一時停止
   levelPlayBanner.pauseAutoRefresh();
   // 更新を再開
   levelPlayBanner.resumeAutoRefresh();
   ```

2. **Kotlin**

   ```kotlin
   // 更新一時停止
   levelPlayBanner.pauseAutoRefresh()
   // 更新を再開
   levelPlayBanner.resumeAutoRefresh()
   ```

## バナー広告の破棄##destroy-banner-ad

バナーを破棄するには、 **destroy** メソッドを呼び出します。

破棄されたバナーは再度表示できなくなります。さらに広告を表示するには、新しい **LevelPlayBannerAdView** オブジェクトを作成します。

1. **Java**

   ```java
   levelPlayBanner.destroy()
   ```

2. **Kotlin**

   ```kotlin
   levelPlayBanner.destroy();
   ```

## バナー広告の完全な実装例##full-implementation-example-of-banner-ads

適応型バナーサイズを使用してバナー広告を作成およびロードする例を示します。

1. **Java**

   ```java
   public void createAndLoadBanner() {
   // 広告設定の作成 - 任意
   LevelPlayAdSize adSize = LevelPlayAdSize.BANNER;
   LevelPlayBannerAdView.Config adConfig = new LevelPlayBannerAdView.Config.Builder()
      .setAdSize(adSize)
      .setPlacementName("placementName")
      .build();

   // Create the banner view and set the ad unit id
   LevelPlayBannerAdView levelPlayBanner = new LevelPlayBannerAdView(context, "adUnitId", adConfig);

   // Add the banner view to the container
   ViewGroup adContainer = findViewById(android.R.id.adContainer);
   adContainer.addView(levelPlayBanner);
   levelPlayBanner.setBannerListener(new LevelPlayBannerAdViewListener() {
      @Override
      public void onAdLoaded(@NonNull LevelPlayAdInfo adInfo) {
          // Ad was loaded successfully 
      }
      @Override
      public void onAdLoadFailed(@NonNull LevelPlayAdError error) {
          // Ad load failed
      }
      @Override
      public void onAdDisplayed(@NonNull LevelPlayAdInfo adInfo) {
          // Ad was displayed and visible on screen
      }
      @Override
      public void onAdDisplayFailed(@NonNull LevelPlayAdInfo adInfo, @NonNull LevelPlayAdError error) {
          // Ad failed to be displayed on screen
      }
      @Override
      public void onAdClicked(@NonNull LevelPlayAdInfo adInfo) {
          // Ad was clicked
      }
      @Override
      public void onAdExpanded(@NonNull LevelPlayAdInfo adInfo) {
          // Ad is opened on full screen
      }
      @Override
      public void onAdCollapsed(@NonNull LevelPlayAdInfo adInfo) {
          // Ad is restored to its original size
      }
      @Override
      public void onAdLeftApplication(@NonNull LevelPlayAdInfo adInfo) {
          // User pressed on the ad and was navigated out of the app 
      }
   });

   // Load the banner ad
   levelPlayBanner.loadAd();

   // To get actual banner layout size (either custom/standard size or adaptive)
   int height = adSize.getHeight();
   int width = adSize.getWidth();
   }
   ```

2. **Kotlin**

   ```kotlin
   public fun createAndLoadBanner() {
   // 広告設定の作成 - 任意
   val adSize = LevelPlayAdSize.BANNER
   val adConfig = LevelPlayBannerAdView.Config.Builder()
   .setAdSize(adSize)
   .setPlacementName("placementName")
   .build()
   // バナービューの作成と広告単位 ID の設定
   val levelPlayBanner = LevelPlayBannerAdView(context, "adUnitId", adConfig)

   // Add the banner view to the container
   val adContainer = findViewById<ViewGroup>(R.id.adContainer)
   adContainer.addView(levelPlayBanner)
   levelPlayBanner.setBannerListener(object:LevelPlayBannerAdViewListener {
   override fun onAdLoaded(adInfo:LevelPlayAdInfo) {
      // Ad was loaded successfully 
   }
   override fun onAdLoadFailed(error:LevelPlayAdError) {
      // Ad load failed
   }
   override fun onAdDisplayed(adInfo:LevelPlayAdInfo) {
      // Ad was displayed and visible on screen
   }
   override fun onAdDisplayFailed(adInfo:LevelPlayAdInfo、エラー:LevelPlayAdError) {
      // Ad failed to be displayed on screen
   }
   override fun onAdClicked(adInfo:LevelPlayAdInfo) {
      // Ad was clicked
   }
   オーバーライド fun onAdExpanded(adInfo:LevelPlayAdInfo) {
      // Ad is opened on full screen
   }
   override fun onAdCollapsed(adInfo:LevelPlayAdInfo) {
      // Ad is restored to its original size
   }
   override fun onAdLeftApplication(adInfo:LevelPlayAdInfo) {
      // User pressed on the ad and was navigated out of the app 
   }
   })

   // Load the banner ad
   levelPlayBanner.loadAd()

   // Get width and height for the container
   val width = adSize.getWidth()
   val height = adSize.getHeight()
   }
   ```

## LevelPlay Mediation デモアプリケーション##levelplay-mediation-demo-app

インテグレーション Demo (インテグレーションデモ) アプリケーションは、バナー広告単位 API をアプリケーションに統合する方法を示します。

[Androidデモアプリケーションのダウンロード](https://github.com/ironsource-mobile/Mediation-Demo-Apps)

[インテグレーションテストスイート](/grow/levelplay/sdk/android/integration-test-suite.md)とのインテグレーションを確認します。

## 次のステップ##next-steps

インテグレーションガイドに従って、追加のバナー広告ネットワークのインテグレーションや追加の広告フォーマットの設定を行います。

* [メディエーションネットワークの追加](/grow/levelplay/sdk/android/mediation-networks.md)
* [リワード広告](/grow/levelplay/sdk/android/rewarded-ads-integration.md)
* [インタースティシャル広告](/grow/levelplay/sdk/android/interstitial-integration.md)
* [ネイティブ広告](/grow/levelplay/sdk/android/native-ads-integration.md)
