안드로이드의 배너 광고 연동

배너는 사각 형태의 자동으로 시작되는 광고이며 정적 또는 동적 컨텐츠 모두 지원됩니다. 앱 컨텐츠 주변의 지정된 위치에서 게재됩니다.

⚡ 시작하기 전에 읽어주세요
  • 대상 앱에 아이언소스 SDK가 올바르게 연동되었는지 먼저 확인해 주세요. 연동에 대한 설명은 여기에 있습니다.
  • 반드시 레벨플레이 초기화 API를 사용해 SDK를 초기화 해야 합니다.
  • AdUnitId는 레벨플레이 대시보드에서 확인할 수 있습니다. 자세한 사항은 여기를 참고해 주세요.
  • 이 문서는 아이언소스 SDK 8.4.0 이상 버전에 대해서만 유효합니다. 8.4.0 이전 버전의 구 배너 API에 대한 문서는 여기를 참고해 주세요.

배너 광고 객체 생성 및 사이즈 설정

배너 광고 객체 생성은 OnInitSuccess 콜백 메시지 수신후에 수행해야 합니다.

// Create the banner view and set the ad unit id
LevelPlayBannerAdView levelPlayBanner = new LevelPlayBannerAdView(context, "adUnitId");
  • Light theme
  • Dark theme
  • Copy to clipboard

배너 사이즈

LevelPlayAdSize 설명 DP 기준 크기
(폭 X 높이)
BANNER 표준 배너 320 x 50
LARGE 대형 배너 320 x 90
MEDIUM_RECTANGLE 중간 사각형 배너 (MREC) 300 x 250
적응형 휴대폰 및 태블릿 기기의 사이즈 및 방향에 따라 광고 크기를 조정
기기 폭 X에 대해 최적화된 높이로 설정

배너 사이즈 설정을 위해서는 아래 중 한 가지 방법으로 설정합니다: 

화면 폭에 따라 크기가 조정되는 적응형 배너 광고 사이즈 (권장):

이 옵션은 기기의 타입에 따라 BANNER 또는 LEADERBOARD 사이즈를 반환합니다.
그 외에 적응형 배너 사이즈를 지원하는 광고 네트워크들 (Google, Yandex)의 경우에는 네트워크의 사이즈 최적화 로직에 따라 높이가 결정되어 반환됩니다.

 LevelPlayAdSize adSize = LevelPlayAdSize.createAdaptiveAdSize(context);
  • Light theme
  • Dark theme
  • Copy to clipboard

특정 배너 사이즈 지정:
이 옵션을 사용하면 다음 중 하나의 특정 배너 사이즈로 광고 크기를 지정할 수 있습니다: BANNER, LARGE, MEDIUM_RECTANGLE.

levelPlayBanner.setAdSize(LevelPlayAdSize.MEDIUM_RECTANGLE);
  • Light theme
  • Dark theme
  • Copy to clipboard

플레이스먼트

배너 광고에서 플레이스먼트는 리포팅 용도에 한해 지원됩니다. 코드 상에서 플레이스먼트를 loadAd 호출 전에 설정되어야 최초 로딩되는 광고 및 갱신되는 광고에 대해 모두 적용할 수 있습니다.

// Set the placement name
levelPlayBanner.setPlacementName("placementName");
  • Light theme
  • Dark theme
  • Copy to clipboard

배너 리스너 설정

코드 상에 LevelPlayBannerAdViewListener를 구현해 광고 로드 및 송출 관련 정보를 수신할 수 있도록 합니다.

  • 배너 광고 로드 전에 리스너를 설정하는 것이 좋습니다.
  • 각 배너 광고 Ad Unit 객체 별로 리스너가 구현 및 할당되어야 합니다.
  • 콜백 함수는 메인 스레드에서 실행됩니다.
  • 콜백 함수가 모든 네트워크에서 지원되는 사항이 아닐 경우, 해당 콜백 함수 구현은 선택 사항입니다.
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) {
    // Optional. Ad failed to be displayed on screen 
    }
    @Override
    public void onAdClicked(@NonNull LevelPlayAdInfo adInfo) {
    // Ad was clicked
    }
    @Override
    public void onAdExpanded(@NonNull LevelPlayAdInfo adInfo) {
    // Optional. Ad is opened on full screen 
    }
    @Override
    public void onAdCollapsed(@NonNull LevelPlayAdInfo adInfo) {
    // Optional. Ad is restored to its original size 
    }
    @Override
    public void onAdLeftApplication(@NonNull LevelPlayAdInfo adInfo) 
    // Optional. User pressed on the ad and was navigated out of the app 
    }
});
  • Light theme
  • Dark theme
  • Copy to clipboard

레벨플레이 Ad Info

Ad Info

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

LevelPlayAdInfo 클래스의 구현과 클래스 내 사용 가능한 필드에 대한 자세한 설명은 여기를 참고하세요.

배너 광고 로드

loadAd API를 사용하여 배너 광고를 로드합니다.

// Load the banner ad
levelPlayBanner.loadAd();
  • Light theme
  • Dark theme
  • Copy to clipboard

배너 갱신 일시 정지 및 재개

플랫폼 상에서 배너 갱신 주기 값이 정의되어 있는 경우, 코드상에서 배너 갱신을 일시 정지시킬 수 있습니다. 하기의 메서드들을 사용해 배너 광고 자동 갱신을 일시 정지시키거나, 일시정지된 배너의 자동 갱신을 재개합니다. 

Note:

일시 정지되었던 배너 광고가 다시 표시되면, 배너가 일시정지될 때 시간부터 리프레시 주기까지 남았던 시간이 지난 후 배너가 갱신됩니다.

  • pauseAutoRefresh – 배너 광고의 자동 갱신을 일시 정지합니다.
  • resumeAutoRefresh – 일시정지된 배너 광고의 자동 갱신을 재개합니다.
// Pause refresh
levelPlayBanner.pauseAutoRefresh();
// Resume refresh
levelPlayBanner.resumeAutoRefresh();
  • Light theme
  • Dark theme
  • Copy to clipboard

배너 광고 삭제

배너 광고를 삭제하려면, destroy 메서드를 호출하려 배너 객체를 삭제합니다.

삭제된 배너 광고는 더 이상 표시가 불가능합니다. 배너 광고를 더 표시하려면, LevelPlayBannerAdView 객체를 새로 생성합니다. 

levelPlayBanner.destroy()
  • Light theme
  • Dark theme
  • Copy to clipboard

배너 광고 연동 구현 전체 예제

적응형 배너 사이즈로 배너 광고 객체를 생성하고 로드하는 예제입니다.

public void createAndLoadBanner() {
    // Create the banner view and set the ad unit id
    LevelPlayBannerAdView levelPlayBanner = new LevelPlayBannerAdView(context, "adUnitId");
    
    // Set the placement name (optional)
    levelPlayBanner.setPlacementName("placementName");
    
    // Create the adaptive ad size to support both adaptive, banner and leaderboard (recommended)  
    LevelPlayAdSize adSize = LevelPlayAdSize.createAdaptiveAdSize(context);
    
    // Required when using createAdaptiveAdSize()
    if (adSize != null) {
        levelPlayBanner.setAdSize(adSize);
    }
    
    // Add the banner view to the container
    ViewGroup adContainer = findViewById(android.R.id.adContainer);
    adContainer.addView(levelPlayBanner);
    
    // Load the banner ad
    levelPlayBanner.loadAd();
    
    // To get actual banner layout size (either custom/standard size or adaptive)
    height = adSize.getHeight();
    width = adSize.getWidth();
}
  • Light theme
  • Dark theme
  • Copy to clipboard

레벨플레이 미디에이션 데모 앱

연동 데모 앱에서 배너 Ad Unit API를 사용하여 배너를 앱에 연동하는 방법 예제를 확인할 수 있습니다.

안드로이드 데모 앱 다운로드

완료했습니다!
이제 앱에서 배너를 송출할 준비가 끝났습니다. 연동이 잘 되었는지를 저희가 제공하는 연동 Test Suite를 사용해 확인하세요.


다음은 뭘 할까요?
아래의 연동 가이드를 따라서 배너 광고 네트워크를 추가하거나, 다른 광고 포맷을 설정 및 연동해 보세요: