안드로이드의 인터스티셜(전면) 광고 연동
유니티 레벨플레이 인터스티셜(전면) 광고는 전체화면 광고 유닛으로, 보통 앱의 생명주기 중 자연스러운 장면 전환 시점에 게재되는 광고입니다. 레벨플레이는 정지화면 및 동영상 인터스티셜 광고들 모두를 지원합니다. 또한, 유니티 레벨플레이 미디에이션 플랫폼을 통해 인터스티셜 광고를 게재할 수도 있습니다.
아이언소스 SDK가 대상 앱에 올바르게 연동이 되었는지 확인해 주세요. 여기에서 연동동과정 및 상세 사항에 대한 설명을 참조하세요.
1단계. 리스너 구현
아이언소스 SDK는 인터스티셜 동작에 대해 여러 이벤트들을 송출합니다. SDK는 아래에 열거된 가능한 모든 이벤트들에 대한 정보를 리스너를 통해 전달합니다:
IronSource.setLevelPlayInterstitialListener(new LevelPlayInterstitialListener() {
// Invoked when the interstitial ad was loaded successfully.
// AdInfo parameter includes information about the loaded ad
@Override
public void onAdReady(AdInfo adInfo) {}
// Indicates that the ad failed to be loaded
@Override
public void onAdLoadFailed(IronSourceError error) {}
// Invoked when the Interstitial Ad Unit has opened, and user left the application screen.
// This is the impression indication.
@Override
public void onAdOpened(AdInfo adInfo) {}
// Invoked when the interstitial ad closed and the user went back to the application screen.
@Override
public void onAdClosed(AdInfo adInfo) {}
// Invoked when the ad failed to show
@Override
public void onAdShowFailed(IronSourceError error, AdInfo adInfo) {}
// Invoked when end user clicked on the interstitial ad
@Override
public void onAdClicked(AdInfo adInfo) {}
// Invoked before the interstitial ad was opened, and before the InterstitialOnAdOpenedEvent is reported.
// This callback is not supported by all networks, and we recommend using it only if
// it's supported by all networks you included in your build.
@Override
public void onAdShowSucceeded(AdInfo adInfo){}
});
- 위의 콜백은 메인스레드 이외의 스레드에서 실행될 수도 있습니다. 아이언소스 콜백 결과에 영향받는 UI 상호작용이나 업데이트들은 모두 메인스레드로 넘겨진 후 실행되어야 합니다.
- 리스너는 SDK 초기화 이전에 설정해 주세요. 그렇게 해야 SDK의 모든 이벤트 관련 정보를 수신할 수 있습니다.
전체 리스너 구현은 이 문서를 참고해 주세요.
2단계. 인터스티셜 광고 로드하기
인터스티셜 광고의 경우 로딩 과정에 시간이 걸릴 수 있기 때문에 어느정도 시간을 두고 미리 로딩하는 것이 좋습니다.
인터스티셜 광고를 요청하려면 아래의 메서드를 호출해 주세요:
IronSource.loadInterstitial();
3단계. 광고 준비 상태 확인하기
2단계에서 loadInterstitial을 호출한 다음, onAdReady 메서드를 포함한 리스너를 통해 광고가 로딩되고 사용자에게 송출할 준비가 되었음이 이벤트로 전달됩니다.
public void onAdReady(AdInfo adInfo){}
또는, 아래의 함수를 직접 호출해서 광고 준비 상태를 확인할 수도 있습니다 (단, 이 경우 준비 상태 호출의 반복 호출이 너무 많으면 부하가 발생할 수 있어 리스너 활용을 권장 드립니다):
boolean isInterstitialReady();
인터스티셜 광고가 준비되면 사용자에게 광고를 송출할 수 있습니다. 이 때, 레벨플레이 광고 플레이스먼트(게재 위치)을 사용하여 인터스티셜 광고 경험을 커스터마이징 및 최적화 할 수 있습니다. 이 도구를 사용해 인터스티셜 광고를 앱 내의 각기 다른 곳(예: 앱 구동 시, 단계 사이 화면 등)에서 송출할 수 있습니다. 다음 단계의 함수를 사용해서 어느 플레이스먼트에서 광고를 송출할 지 지정할 수 있습니다. 추가로, 특정 광고 플레이스먼트의 상세 정보를 얻으려면 아래와 같이 요청하면 됩니다:
InterstitialPlacement getInterstitialPlacementInfo(String placementName)
아이언소스의 광고 플레이스먼트기능에서는 특정 플레이스먼트의 광고의 횟수 제한 및 빈도 제한 설정도 할 수 있습니다. 광고의 횟수 및 빈도 제한은 지정된 시간 동안에 게재 가능한 광고의 숫자를 제한하여 사용자의 앱 사용 경험을 향상시킵니다.
사용자에게 인터스티셜 광고를 제공하기 전에 아래와 같이 광고가 게재될 플레이스먼트가 횟수 제한이 있는지 확인해 보시기를 권장 드립니다:
IronSource.isInterstitialPlacementCapped(placementName)
광고 플레이스먼트(게재 위치) 문서로 이동하시면 상세 정보를 보실 수 있습니다.
Step 4. Show Interstitial Ad
onAdReady콜백을 수신하고 나면, 인터스티셜 광고를 사용자에게 송출할 준비가 완료된 것입니다. 사용자에게 최상의 광고 경험을 제공하기 위해서는 광고가 송출되는 동안 오디오를 비롯한 모든 게임 동작을 일시 정지해 주세요.
다음의 메서드를 호출하여 사용자에게 인터스티셜 광고를 제공하세요:
IronSource.showInterstitial(placementName);
만약 앱에 처음으로 아이언소스 SDK를 연동하는 경우라면, 이 앱은 아이언소스 대시보드에서 테스트 모드로 기본 설정되어 있을 것입니다. 앱이 테스트 모드일 때에는 아이언소스 SDK는 SDK 처리과정을 좀 더 자세히 볼 수 있도록 더 많은 로그를 콘솔에 송출합니다. 광고 인벤토리 테스트를 위해서는, 테스트 기기를 설정해 주세요. 광고 인벤토리를 라이브 (상용) 모드로 변경하기 전까지는 테스트 캠페인에서 광고를 받고 이 광고들은 수익을 발생시키지 않습니다. 상용 광고 인벤토리의 광고를 앱에 게재할 준비가 되었다면 반드시 MONETIZE > SETTINGS > Ad Units 페이지에서 Go Live!를 선택해 주세요.
완료했습니다!
이제 인터스티셜 광고를 앱에서 송출할 수 있습니다!
아래의 연동 가이드 문서를 따라서 추가로 인터스티셜 광고 네트워크를 연동하거나, 또 다른 광고 유닛을 설정해 보세요: