안드로이드의 인터스티셜(전면) 광고 연동

유니티 레벨플레이 인터스티셜(전면) 광고는 전체화면 광고 유닛으로, 보통 앱의 생명주기 중 자연스러운 장면 전환 시점에 게재되는 광고입니다.

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

인터스티셜 광고 객체 생성

인터스티셜 광고 객체 생성은 OnInitSuccess 콜백 메시지 수신후에 수행해야 합니다.

LevelPlayInterstitialAd mInterstitialAd = new LevelPlayInterstitialAd("adUnitId");
  • Light theme
  • Dark theme
  • Copy to clipboard

인터스티셜 리스너 구현

코드 상에 LevelPlayInterstitialAdListener 객체를 구현하여 광고 수신 및 송출 관련 이벤트를 수신합니다.

  • 인터스티셜 광고 로드 전에 리스너를 설정하는 것이 좋습니다.
  • 각 인터스티셜 광고 객체마다 리스너가 별도로 구현되어야 합니다.
  • 콜백 메서드는 메인스레드에서 실행됩니다.
// Create the interstitial ad object
LevelPlayInterstitialAd mInterstitialAd = new LevelPlayInterstitialAd("adUnitId");
mInterstitialAd.setListener(new LevelPlayInterstitialAdListener() {
    @Override
    public void onAdLoaded(LevelPlayAdInfo levelPlayAdInfo) {
        // Ad was loaded successfully
    }
    @Override
    public void onAdLoadFailed(LevelPlayAdError levelPlayAdError) {
        // Ad load failed 
    }
    @Override
    public void onAdDisplayed(LevelPlayAdInfo levelPlayAdInfo) {
        // Ad was displayed and visible on screen
    }
    @Override
    public void onAdDisplayFailed(LevelPlayAdError levelPlayAdError, LevelPlayAdInfo levelPlayAdInfo) {
        // Ad fails to be displayed
        // Optional
    }
    @Override
    public void onAdClicked(LevelPlayAdInfo levelPlayAdInfo) {
        // Ad was clicked
        // Optional
    }
    @Override
    public void onAdClosed(LevelPlayAdInfo levelPlayAdInfo) {
        // Ad was closed
        // Optional
    }
    @Override
    public void onAdInfoChanged(LevelPlayAdInfo levelPlayAdInfo) {
        // Called after the ad info is updated. Available when another interstitial ad has loaded, and includes a higher CPM/Rate
        // Optional
    }
});
  • Light theme
  • Dark theme
  • Copy to clipboard

레벨플레이 Ad Info

Ad Info

LevelPlayAdInfo 파라미터에는 로드된 광고의 정보가 포함됩니다.

LevelPlayAdInfo 클래스의 구현 및 사용가능할 필드들에 대한 더 자세한 설명은 여기를 참고해 주세요.

인터스티셜 광고 로드

loadAd API를 사용해 인터스티셜 광고를 로드합니다.

mInterstitialAd.loadAd();
  • Light theme
  • Dark theme
  • Copy to clipboard

인터스티셜 광고 표시(송출)

LevelPlayInterstitialAdListener API를 통해 onAdLoaded 콜백을 수신한 다음 인터스티셜 광고를 송출합니다.

  • 송출 시 showAd API에 Activity 객체를 전달해 공유해야 합니다.
  • 플레이스먼트를 사용하려면, 하기 Placements 섹션에서 설명된 것과 같이 플레이스먼트명을 showAd API의 인자로 전달합니다.
  • 광고가 사용자에게 성공적으로 표출된 후, 로딩 과정을 반복하여 다른 광고를 로드할 수 있습니다. 
public void showInterstitialAd() {
    // Check that ad is ready
    if (mInterstitialAd.isAdReady()) {
        // Show ad 
        mInterstitialAd.showAd(this);
    }
}
  • Light theme
  • Dark theme
  • Copy to clipboard

광고 준비 상태 확인하기

광고 송출 실패를 피하고 광고가 올바르게 표출되게 하기위해서는, showAd API 호출 전에 아래의 API를 사용하시는 것이 좋습니다.

isAdReady – 광고가 성공적으로 로드되었고 송출제한이 없는 경우 true를 반환. 그렇지 않은 경우 false를 반환.

isPlacementCapped – 플레이스먼트가 유효하고 송출제한이 걸려있는 경우 true를 반환. 플레이스먼트명이 유효하지 않거나 송출제한이 걸려있지 않은 경우에는 API에서 false가 반환됨.

// Check that ad is ready and that the placement is not capped 
if (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) {
    mInterstitialAd.showAd(this, placementName);
}
  • Light theme
  • Dark theme
  • Copy to clipboard

플레이스먼트

레벨플레이에서는 대시보드상에서 인터스티셜 광고에 플레이스먼트별 송출 횟수 제한 및 빈도 제한 설정할 수 있는 기능을 지원합니다.

showAd 메서드로 특정 플레이스먼트로 광고가 송출되도록 해당 플레이스먼트 명을 인자로 전달합니다.

public void showInterstitialAdWithPlacement() {
    // Check that ad is ready and that the placement is not capped 
    if (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) {
        // Show ad with placement 
        mInterstitialAd.showAd(this, placementName);
    }
}
  • Light theme
  • Dark theme
  • Copy to clipboard

인터스티셜 광고 연동 전체 예제

public class InterstitialAdActivity extends Activity implements LevelPlayInterstitialAdListener { 
    private LevelPlayInterstitialAd mInterstitialAd;
    void createInterstitialAd() { 
        mInterstitialAd = new LevelPlayInterstitialAd("adUnitId"); 
        mInterstitialAd.setListener(this); 
    } 
    void loadInterstitialAd() { 
        // Used to load or reload the ad 
        mInterstitialAd.loadAd(); 
    } 
    void showInterstitialAd() { 
        if (mInterstitialAd.isAdReady()) { 
            mInterstitialAd.showAd(this); 
        }
    }
    void showInterstitialAd(@NonNull String placementName) { 
        // Check that ad is ready and that the placement is not capped 
        if (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) { 
            mInterstitialAd.showAd(this, placementName); 
        } 
    }
 
    // LevelPlayInterstitialAdListener methods 
    @Override 
    public void onAdLoaded(@NonNull LevelPlayAdInfo adInfo) {} 
    @Override 
    public void onAdLoadFailed(@NonNull LevelPlayAdError error) {} 
    @Override 
    public void onAdDisplayed(@NonNull LevelPlayAdInfo adInfo) {} 
    @Override 
    public void onAdClosed(@NonNull LevelPlayAdInfo adInfo) {} 
    @Override 
    public void onAdClicked(@NonNull LevelPlayAdInfo adInfo) {} 
    @Override 
    public void onAdDisplayFailed(@NonNull LevelPlayAdError error, @NonNull LevelPlayAdInfo adInfo) {} 
    @Override 
    public void onAdInfoChanged(@NonNull LevelPlayAdInfo adInfo) {} 
}
  • Light theme
  • Dark theme
  • Copy to clipboard

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

연동 데모 앱으로 인터스티셜 Ad Unit API를 사용해 앱에 연동하는 방법을 참고하실 수 있습니다.

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

완료했습니다!
이제 앱에서 인터스티셜 광고를 앱에서 송출할 수 있습니다! 연동이 잘 되었는지를 연동 Test Suite를 사용해 검증하세요.


다음엔 뭘 할까요?
아래의 연동 가이드 문서를 따라서 추가로 인터스티셜 광고 네트워크를 연동하거나, 다른 포맷 광고를 연동해 설정해 보세요: