# Android용 배너 통합

> SDK를 초기화하고 배너 광고 객체를 초기화 후에 생성하고 적절한 광고 크기와 포지션을 설정하여 배너 광고를 통합할 수 있습니다.

배너는 정적 광고 또는 애니메이션 광고 중 하나일 수 있는 직사각형 시스템 기반 광고로, 라이브 앱 콘텐츠 주위에 지정된 영역 게재됩니다.

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

## 필수 조건##prerequisites

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

## 배너 광고 오브젝트 생성 및 크기 설정##create-banner-ad-object-and-set-size

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

1. **Java**

   ```java
   // 광고 설정 만들기 - 선택 사항
   LevelPlayAdSize adSize = LevelPlayAdSize. 배너;
   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. 배너
   val adConfig = LevelPlayBannerAdView.Config.Builder()
   .setAdSize(adSize)
   .setPlacementName("placementName")
   .build()
   // 배너 뷰를 만들고 광고 유닛 ID를 설정합니다.
   val levelPlayBanner = LevelPlayBannerAdView(context, "adUnitId", adConfig)
   ```

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

| LevelPlayAdSize   | 설명                                                 | dp 단위의 측정 항목(너비 X 높이) |
| ----------------- | -------------------------------------------------- | --------------------- |
| 배너                | 표준 배너                                              | 320 x 50              |
| 대규모               | 대형 배너                                              | 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)
   ```

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

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
   공용 void onAdDisplayFailed(@NonNull LevelPlayAdInfo adInfo, @NonNull LevelPlayAdError 오류) {
   // 선택 사항 광고가 화면에 표시되지 못함 
   }
   @Override
   public void onAdClicked(@NonNull LevelPlayAdInfo adInfo) {
   // 광고가 클릭되었습니다.
   }
   @Override
   public void onAdExpanded(@NonNull LevelPlayAdInfo adInfo) {
   // 선택 사항 광고가 전체 화면으로 열립니다. 
   }
   @Override
   public void onAdCollapsed(@NonNull LevelPlayAdInfo adInfo) {
   // 선택 사항 광고가 원본의, 원래의 크기로 복원됨 
   }
   @Override
   public void onAdLeftApplication(@NonNull LevelPlayAdInfo adInfo) 
   // 선택 사항 사용자 광고를 누르고 앱 밖으로 이동 
   }
   ); 
   ```

2. **Kotlin**

   ```kotlin
   levelPlayBanner.setBannerListener(object: LevelPlayBannerAdViewListener {
   override fun onAdLoaded(adInfo: LevelPlayAdInfo) {
   // 광고가 성공적으로 로드되었습니다. 
   }
   오버라이드 fun onAdLoadFailed(오류: LevelPlayAdError) {
   // 광고 로드 실패
   }
   override fun onAdDisplayed(adInfo: LevelPlayAdInfo) {
   // 광고가 표시되고 화면에 표시되었습니다.
   }
   override fun onAdDisplayFailed(adInfo: LevelPlayAdInfo, error: LevelPlayAdError) {
   // 선택 사항 광고가 화면에 표시되지 못함 
   }
   override fun onAdClicked(adInfo: LevelPlayAdInfo) {
   // 광고가 클릭되었습니다.
   }
   override fun onAdExpanded(adInfo: LevelPlayAdInfo) {
   // 선택 사항 광고가 전체 화면으로 열립니다.
   }
   override fun onAdCollapsed(adInfo: LevelPlayAdInfo) {
   // 선택 사항 광고가 원본의, 원래의 크기로 복원됨 
   }
   override fun onAdLeftApplication(adInfo: LevelPlayAdInfo) {
   // 선택 사항 사용자 광고를 누르고 앱 밖으로 이동 
   }
   })	 
   ```

### 레벨플레이 광고 정보##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

배너를 파괴하려면 **파괴** 메서드를 호출합니다.

삭제된 배너 더 이상 표시할 수 없습니다. 더 많은 광고를 표시하려면 새 **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. 배너;
   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. 배너
   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 
   }
   오버라이드 fun onAdLoadFailed(오류: LevelPlayAdError) {
      // Ad load failed
   }
   override fun onAdDisplayed(adInfo: LevelPlayAdInfo) {
      // Ad was displayed and visible on screen
   }
   override fun onAdDisplayFailed(adInfo: LevelPlayAdInfo, error: LevelPlayAdError) {
      // Ad failed to be displayed on screen
   }
   override fun onAdClicked(adInfo: LevelPlayAdInfo) {
      // Ad was clicked
   }
   override 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()
   }
   ```

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

통합 데모 애플리케이션 앱에 배너 배너 유닛 API를 통합하는 방법을 보여 줍니다.

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

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

## 다음 단계##next-steps

배너 광고 네트워크를 추가로 연동하거나 추가 광고 형식을 설정 Unity 통합 가이드를 따르십시오.

* [Mediation Networks 추가](/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)
