유니티 플러그인의 인터스티셜(전면) 광고 연동
유니티 레벨플레이 인터스티셜(전면)광고는 전체화면을 사용하는 광고 단위로,일반적으로 앱 생명주기 안에서 장면간 전환 시에 송출하는 광고입니다.
인터스티셜 광고 객체 생성
인터스티셜 광고 객체 생성은 OnInitSuccess 콜백 수신 이후에 실행해야 합니다.
// Create interstitial ad object
interstitialAd = new LevelPlayInterstitialAd(interstitialAdUnitId);
인터스티셜 이벤트 함수 등록
코드 상에 LevelPlayInterstitialAdListener를 구현하여 광고 전송 및 송출 관련 정보를 수신할 수 있도록 합니다.
- 이벤트 수신 리스너는 인터스티셜 광고를 로드하기 전에 설정하는 것이 좋습니다.
- 각 인터스티셜 객체별로 리스너를 구현해야 설정해주어야 합니다.
- 콜백은 유니티 메인스레드에서 실행됩니다.
// Register to interstitial events
interstitialAd.OnAdLoaded += InterstitialOnAdLoadedEvent;
interstitialAd.OnAdLoadFailed += InterstitialOnAdLoadFailedEvent;
interstitialAd.OnAdDisplayed += InterstitialOnAdDisplayedEvent;
interstitialAd.OnAdDisplayFailed += InterstitialOnAdDisplayFailedEvent;
interstitialAd.OnAdClicked += InterstitialOnAdClickedEvent;
interstitialAd.OnAdClosed += InterstitialOnAdClosedEvent;
interstitialAd.OnAdInfoChanged += InterstitialOnAdInfoChangedEvent;
// Implement the events
void InterstitialOnAdLoadedEvent(LevelPlayAdInfo adInfo){}
void InterstitialOnAdLoadFailedEvent(LevelPlayAdError error){}
void InterstitialOnAdDisplayedEvent(LevelPlayAdInfo adInfo){}
void InterstitialOnAdDisplayFailedEvent(LevelPlayAdDisplayInfoError infoError){}
void InterstitialOnAdClickedEvent(LevelPlayAdInfo adInfo){}
void InterstitialOnAdClosedEvent(LevelPlayAdInfo adInfo){}
void InterstitialOnAdInfoChangedEvent(LevelPlayAdInfo adInfo){}
레벨플레이 Ad Info
LevelPlayAdInfo 파라미터는 로드된 광고에 대한 정보가 포함되어 있습니다.
해당 클래스의 구현 및 사용 가능한 필드들에 대한 정보는 여기를 참고해 주세요.
인터스티셜 광고 로드
LoadAd API를 사용하여 인터스티셜 광고를 로드합니다.
// Load interstitial ad
interstitialAd.LoadAd();
인터스티셜 광고 송출
LevelPlayInterstitialAdListener API를 통해 OnAdLoaded 콜백을 수신한 후, 로드된 인터스티셜 광고를 송출합니다.
- 플레이스먼트를 지정하여 사용할 경우, 아래의 플레이스먼트 섹션에서 설명된 것과 같이 플레이스먼트 명칭을 ShowAd API의 인자로 입력하여 전달합니다.
- 광고가 사용자에게 성공적으로 송출이 된 후에는, 이전 인터스티셜 광고 로드 단계를 다시 실행해 다른 인터스티셜 광고를 로드할 수 있습니다.
// Show ad without placement
interstitialAd.ShowAd();
// Show ad with placement
interstitialAd.ShowAd(placementName: "placementName");
광고 송출 준비 상태 확인
송출 실패를 피하고 광고가 올바르게 송출되도록 하기 위해서는, ShowAd API 호출 전에 아래의 API를 사용하여 송출 준비 상태를 확인하는 것이 좋습니다.
IsAdReady – 광고가 성공적으로 로드되었고 광고 유닛이 송출 한도 제한에 걸리지 않은 상태일 경우 true가 반환되며, 그렇지 않을 경우에는 false가 반환됩니다.
IsPlacementCapped – 인자로 입력된 플레이스먼트가 유효한 플레이스먼트이며 송출 한도 제한이 유효한 경우에는 true가 반환됩니다. 플레이스먼트가 유효하지 않거나 송출 한도 제한이 걸려있지 않은 경우에는 API에서 false가 반환됩니다.
// Check that ad is ready and that the placement is not capped
if (interstitialAd.IsAdReady() && !LevelPlayInterstitialAd.IsPlacementCapped(placementName))
{
interstitialAd.ShowAd(placementName);
}
플레이스먼트(지면)
레벨플레이 상에서 인터스티셜 광고의 플레이스먼트 및 송출 한도 및 빈도를 설정할 수 있습니다.
인터스티셜 광고용으로 플레이스먼트가 구성되어 있을 경우, ShowAd 메서드에 특정 플레이스먼트 명칭을 인자로 전달해 해당 플레이스먼트 설정으로 광고가 송출되도록 할 수 있습니다.
// Check that ad is ready and that the placement is not capped
if (interstitialAd.IsAdReady() && !LevelPlayInterstitialAd.IsPlacementCapped(placementName))
{
interstitialAd.ShowAd(placementName);
}
인터스티셜 광고 연동 코드 전체 예제
public class InterstitialAdSample {
private LevelPlayInterstitialAd interstitialAd
void CreateInterstitialAd() {
//Create InterstitialAd instance
interstitialAd= new LevelPlayInterstitialAd("interstitialAdUnitId");
//Subscribe InterstitialAd events
interstitialAd.OnAdLoaded += InterstitialOnAdLoadedEvent;
interstitialAd.OnAdLoadFailed += InterstitialOnAdLoadFailedEvent;
interstitialAd.OnAdDisplayed += InterstitialOnAdDisplayedEvent;
interstitialAd.OnAdDisplayFailed += InterstitialOnAdDisplayFailedEvent;
interstitialAd.OnAdClicked += InterstitialOnAdClickedEvent;
interstitialAd.OnAdClosed += InterstitialOnAdClosedEvent;
interstitialAd.OnAdInfoChanged += InterstitialOnAdInfoChangedEvent;
}
void LoadInterstitialAd() {
//Load or reload InterstitialAd
interstitialAd.LoadAd();
}
void ShowInterstitialAd() {
//Show InterstitialAd, check if the ad is ready before showing
if (interstitialAd.IsAdReady()) {
interstitialAd.ShowAd();
}
}
void DestroyInterstitialAd() {
//Destroy InterstitialAd
interstitialAd.DestroyAd();
}
//Implement InterstitialAd events
void InterstitialOnAdLoadedEvent(LevelPlayAdInfo adInfo) { }
void InterstitialOnAdLoadFailedEvent(LevelPlayAdError ironSourceError) { }
void InterstitialOnAdClickedEvent(LevelPlayAdInfo adInfo) { }
void InterstitialOnAdDisplayedEvent(LevelPlayAdInfo adInfo) { }
void InterstitialOnAdDisplayFailedEvent(LevelPlayAdDisplayInfoError adInfoError) { }
void InterstitialOnAdClosedEvent(LevelPlayAdInfo adInfo) { }
void InterstitialOnAdInfoChangedEvent(LevelPlayAdInfo adInfo) { }
}
레벨프레이 미디에이션 데모 앱
연동 데모 앱은 인터스티셜 Ad Unit API를 활용해 인터스티셜 광고를 연동하는 방법에 대한 예시를 제공합니다.
완료했습니다!
이제 앱에서 인터스티셜 광고를 송출할 준비가 다 되었습니다. 연동 Test Suite를 사용해 연동이 올바르게 되었는지 확인하세요.
아래 연동 가이드를 따라 인터스티셜 광고를 제공할 수 있는 광고 네트워크를 미디에이션에 추가하거나, 다른 형태의 광고도 연동해 보세요: