유니티 배너 광고 연동
배너는 사각 형태의 자동 시작형 광고이며 정적 또는 동적 컨텐츠 모두 지원됩니다. 앱 컨텐츠 주변의 지정된 위치에서 게재됩니다.
배너 광고 객체 생성 및 사이즈 설정
배너 광고 객체 생성은 OnInitSuccess콜백을 수신한 후에 수행해야 합니다.
// Create the banner object and set the ad unit id
bannerAd = new LevelPlayBannerAd(bannerAdUnitId);
배너 사이즈
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();
특정 배너 사이즈 지정:
이 옵션을 사용하면 다음 중 하나의 특정 배너 사이즈로 광고 크기를 지정할 수 있습니다: BANNER, LARGE, MEDIUM_RECTANGLE.
LevelPlayAdSize adSize = LevelPlayAdSize.BANNER;
플레이스먼트
배너 광고에서 플레이스먼트는 리포팅 용도에 한해 지원됩니다. 코드 상에서 플레이스먼트를 LoadAd 호출 전에 설정해야 최초 로딩되는 광고 및 갱신되는 광고에 대해 모두 적용할 수 있습니다.
// Set the placement name
LevelPlayBannerAd bannerAd = new LevelPlayBannerAd("bannerAdUnitId", LevelPlayAdSize.BANNER, placementName:"placementName");
배너 이벤트 구현
코드 상에서 콜백 리스너를 등록하여 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) {}
LevelPlay Ad Info
LevelPlayAdInfo 파라미터에는 로드된 광고에 관한 정보가 포함되어 있습니다.
LevelPlayAdInfo 클래스의 구현과 클래스 내 사용 가능한 필드에 대한 자세한 설명은 여기를 참고하세요.
배너 광고 로드
LoadAd API를 사용하여 배너 광고를 로드합니다.
bannerAd.LoadAd();
배너 갱신 일시 정지 및 재개
플랫폼 상에서 배너 갱신 주기 값이 정의되어 있는 경우, 코드상에서 배너 갱신을 일시 정지시킬 수 있습니다. 하기의 메서드들을 사용해 배너 광고 자동 갱신을 일시 정지시키거나, 일시정지된 배너의 자동 갱신을 재개합니다.
일시 정지되었던 배너 광고가 다시 표시되면, 배너가 일시정지될 때 시간부터 리프레시 주기까지 남았던 시간이 지난 후 배너가 갱신됩니다.
- pauseAutoRefresh – 배너 광고의 자동 갱신을 일시 정지합니다.
- resumeAutoRefresh – 일시정지된 배너 광고의 자동 갱신을 재개합니다.
// Pause refresh
bannerAd.PauseAutoRefresh();
// Resume refresh
bannerAd.ResumeAutoRefresh();
배너 숨기기 및 다시 펼치기
배너 객체를 생성한 후, 배너 광고를 백그라운드에서 로드하고 필요한 상황에서만 표시하도록 구현할 수 있습니다. 아래 API들을 사용해 배너 로드 후 화면 표시 여부를 제어할 수 있습니다:
- ShowAd – 배너가 화면상에 표시됩니다
- HideAd – 배너가 화면에서 숨겨집니다
// Show ad
bannerAd.ShowAd();
// Hide ad
bannerAd.HideAd();
디스플레이 컷아웃 영역 표시 (안드로이드만 해당)
안드로이드 기기의 디스플레이 컷아웃 영역은 카메라, 센서, 스피커 등과 같은 필수 부속을 위해 할당된 공간을 뜻하며, 스마트폰 및 여타 edge-to-edge 디스플레이를 지원하는 기기에서 주로 사용됩니다. 이 컷아웃(표시 영역 제한)은 잠재적으로 게임 화면 크기를 제한할 수 있으며, 나아가 화면 상에서 배너 광고의 게재 위치에도 영향을 줄 수 있습니다. 배너 광고 영역과 디스플레이 컷아웃 영역의 겹침을 피하려면, LevelPlayBannerAd 객체를 생성한 후 respectSafeArea 값을 true로 설정해 주세요.
구글의 디스플레이 컷아웃 대응 방법 안내에 대해서는 여기를 참고 부탁 드립니다.
안드로이드 컷아웃 영역을 지원하려면, LevelPlayBannerAd 객체를 respectSafeArea 값을 true로 설정하여 생성합니다. (기본값은 false입니다).
bannerAd = new LevelPlayBannerAd(bannerAdUnitId, respectSafeArea:true);
배너 광고 삭제
배너 광고를 삭제하려면, Destroy 메서드를 호출하려 배너 객체를 삭제합니다.
삭제된 배너 광고는 더 이상 표시가 불가능합니다. 배너 광고를 더 표시하려면, LevelPlayBannerAd 객체를 새로 생성합니다.
bannerAd.DestroyAd();
배너 광고 연동 구현 전체 예제
적응형 배너 사이즈로 배너 광고 객체를 생성하고 로드하는 예제입니다.
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) {}
}
레벨플레이 미디에이션 데모 앱
연동 데모 앱에서 배너 Ad Unit API를 사용하여 배너를 앱에 연동하는 방법 예제을 볼 수 있습니다.
완료했습니다!
이제 앱에서 배너를 송출할 준비가 끝났습니다. 연동이 잘 되었는지를 저희가 제공하는연동 Test Suite를 사용해 확인하세요.
아래의 연동 가이드를 따라서 배너 광고 네트워크를 추가하거나, 다른 광고 포맷을 설정 및 연동해 보세요: