유니티 배너 광고 연동

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

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

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

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

// Create the banner object and set the ad unit id 
bannerAd = new LevelPlayBannerAd(bannerAdUnitId);
  • Light theme
  • Dark theme
  • Copy to clipboard

배너 사이즈

LevelPlayAdSize 상세 설명 dp 기준 크기
(폭 x 높이)
BANNER 표준 배너 320 x 50
LARGE 대형 배너 320 x 90
MEDIUM_RECTANGLE 중간 사각형 배너 (MREC) 300 x 250
Adaptive 휴대폰 및 태블릿 기기의 화면 방향 및 사이즈에 따라 크기가 조정되는 사이즈
기기 화면 폭 X 및 이에따라 최적화된 높이로 설정됨.

아래 중 한 가지 방법을 따라 배너 광고 사이즈를 지정합니다:

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

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

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

LevelPlayAdSize adSize = LevelPlayAdSize.BANNER;
  • Light theme
  • Dark theme
  • Copy to clipboard

플레이스먼트

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

// Set the placement name
LevelPlayBannerAd bannerAd = new LevelPlayBannerAd("bannerAdUnitId", LevelPlayAdSize.BANNER, placementName:"placementName");
  • Light theme
  • Dark theme
  • Copy to clipboard

배너 이벤트 구현

코드 상에서 콜백 리스너를 등록하여 LevelPlayBannerAd 이벤트를 수신합니다. 아이언소스 SDK는 아래의 이벤트들이 발생 시 콜백을 호출합니다.

  • 배너 광고 로드 전에 리스너를 설정하는 것이 좋습니다.
  • 각 배너 광고 Ad Unit 객체 별로 리스너가 구현 및 할당되어야 합니다.
  • 콜백 함수는 유니티 메인 스레드에서 실행됩니다.
// 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 ironSourceError) {}
void BannerOnAdClickedEvent(LevelPlayAdInfo adInfo) {}
void BannerOnAdDisplayedEvent(LevelPlayAdInfo adInfo) {}
void BannerOnAdDisplayFailedEvent(LevelPlayAdDisplayInfoError adInfoError) {}
void BannerOnAdCollapsedEvent(LevelPlayAdInfo adInfo) {}
void BannerOnAdLeftApplicationEvent(LevelPlayAdInfo adInfo) {}
void BannerOnAdExpandedEvent(LevelPlayAdInfo adInfo) {}
  • Light theme
  • Dark theme
  • Copy to clipboard

LevelPlay Ad Info

Ad Info

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

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

배너 광고 로드

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

bannerAd.LoadAd();
  • Light theme
  • Dark theme
  • Copy to clipboard

배너 갱신 일시 정지 및 재개

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

Note:

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

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

배너 숨기기 및 다시 펼치기 

배너 객체를 생성한 후, 배너 광고를 백그라운드에서 로드하고 필요한 상황에서만 표시하도록 구현할 수 있습니다. 아래 API들을 사용해 배너 로드 후 화면 표시 여부를 제어할 수 있습니다: 

  • ShowAd – 배너가 화면상에 표시됩니다
  • HideAd – 배너가 화면에서 숨겨집니다
// Show ad 
bannerAd.ShowAd(); 
// Hide ad 
bannerAd.HideAd();
  • Light theme
  • Dark theme
  • Copy to clipboard

디스플레이 컷아웃 영역 표시 (안드로이드만 해당)

안드로이드 기기의 디스플레이 컷아웃 영역은 카메라, 센서, 스피커 등과 같은 필수 부속을 위해 할당된 공간을 뜻하며, 스마트폰 및 여타 edge-to-edge 디스플레이를 지원하는 기기에서 주로 사용됩니다. 이 컷아웃(표시 영역 제한)은 잠재적으로 게임 화면 크기를 제한할 수 있으며, 나아가 화면 상에서 배너 광고의 게재 위치에도 영향을 줄 수 있습니다. 배너 광고 영역과 디스플레이 컷아웃 영역의 겹침을 피하려면, LevelPlayBannerAd 객체를 생성한 후 respectSafeArea 값을 true로 설정해 주세요.

구글의 디스플레이 컷아웃 대응 방법 안내에 대해서는 여기를 참고 부탁 드립니다.

안드로이드 컷아웃 영역을 지원하려면, LevelPlayBannerAd 객체를 respectSafeArea 값을 true로 설정하여 생성합니다. (기본값은 false입니다).

bannerAd = new LevelPlayBannerAd(bannerAdUnitId, respectSafeArea:true);
  • Light theme
  • Dark theme
  • Copy to clipboard

배너 광고 삭제

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

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

bannerAd.DestroyAd();
  • Light theme
  • Dark theme
  • Copy to clipboard

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

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

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 BannAd Events
    void BannerOnAdLoadedEvent(LevelPlayAdInfo adInfo) {}
    void BannerOnAdLoadFailedEvent(LevelPlayAdError ironSourceError) {}
    void BannerOnAdClickedEvent(LevelPlayAdInfo adInfo) {}
    void BannerOnAdDisplayedEvent(LevelPlayAdInfo adInfo) {}
    void BannerOnAdDisplayFailedEvent(LevelPlayAdDisplayInfoError adInfoError) {}
    void BannerOnAdCollapsedEvent(LevelPlayAdInfo adInfo) {}
    void BannerOnAdLeftApplicationEvent(LevelPlayAdInfo adInfo) {}
    void BannerOnAdExpandedEvent(LevelPlayAdInfo adInfo) {}
}
  • Light theme
  • Dark theme
  • Copy to clipboard

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

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

유니티 데모 앱 다운로드

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


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