유니티 플러그인의 보상형 동영상 광고 연동

시작하기 전에 읽어주세요

레벨플레이 유니티 플러그인 및 광고 네트워크 아답터가 앱에 올바르게 연동되었는지 확인해 주세요. 연동에 대한 설명은 여기에 있습니다.

1단계. 보상형 동영상 광고 이벤트 구현하기

아이언소스 유니티 플러그인은 광고 준비 상태 전달을 위해 여러가지 이벤트를 송출합니다.

아래의 코드를 추가하여 이벤트들을 등록해 주세요:

//Add AdInfo Rewarded Video Events
IronSourceRewardedVideoEvents.onAdOpenedEvent += RewardedVideoOnAdOpenedEvent;
IronSourceRewardedVideoEvents.onAdClosedEvent += RewardedVideoOnAdClosedEvent;
IronSourceRewardedVideoEvents.onAdAvailableEvent += RewardedVideoOnAdAvailable;
IronSourceRewardedVideoEvents.onAdUnavailableEvent += RewardedVideoOnAdUnavailable;
IronSourceRewardedVideoEvents.onAdShowFailedEvent += RewardedVideoOnAdShowFailedEvent;
IronSourceRewardedVideoEvents.onAdRewardedEvent += RewardedVideoOnAdRewardedEvent;
IronSourceRewardedVideoEvents.onAdClickedEvent += RewardedVideoOnAdClickedEvent;

해당 플러그인은 아래의 가능한 모든 이벤트 발생 정보를 리스너에 전달합니다:


/************* RewardedVideo AdInfo Delegates *************/
// Indicates that there’s an available ad.
// The adInfo object includes information about the ad that was loaded successfully
// This replaces the RewardedVideoAvailabilityChangedEvent(true) event
void RewardedVideoOnAdAvailable(IronSourceAdInfo adInfo) {
}

// Indicates that no ads are available to be displayed
// This replaces the RewardedVideoAvailabilityChangedEvent(false) event
void RewardedVideoOnAdUnavailable() {
}

// The Rewarded Video ad view has opened. Your activity will loose focus.
void RewardedVideoOnAdOpenedEvent(IronSourceAdInfo adInfo){
}

// The Rewarded Video ad view is about to be closed. Your activity will regain its focus.
void RewardedVideoOnAdClosedEvent(IronSourceAdInfo adInfo){
}

// The user completed to watch the video, and should be rewarded.
// The placement parameter will include the reward data.
// When using server-to-server callbacks, you may ignore this event and wait for the ironSource server callback.
void RewardedVideoOnAdRewardedEvent(IronSourcePlacement placement, IronSourceAdInfo adInfo){
}

// The rewarded video ad was failed to show.
void RewardedVideoOnAdShowFailedEvent(IronSourceError error, IronSourceAdInfo adInfo){
}
// Invoked when the video ad was clicked.
// 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.
void RewardedVideoOnAdClickedEvent(IronSourcePlacement placement, IronSourceAdInfo adInfo){
}

에러코드

아이언소스는 연동 과정 또는 서비스 제공 중 발생할 수 있는 에러들에 대해서 어떤 에러인지 확인할 수 있도록 에러 코드 메커니즘을 제공합니다. 이 가이드 문서를 참고 부탁 드립니다.

네트워크 연결 상태

아이언소스 Network Change Status 기능을 통해 사용자 기기의 인터넷 연결 상태를 확인 및 관찰할 수 있습니다. 본 기능을 활성화하면 아이언소스 SDK는 네트워크 변경사항에 따라 보상형 동영상 광고 준비상태가 변경됩니다. 예를들어, 기기가 인터넷에 연결되지 않은 경우 보상형 동영상 광고 준비상태는 FALSE로 변경됩니다. 본 기능의 기본값은 false, 즉 기본적으로 비활성화 되어 있습니다. 만약 네트워크 연결상태 변경을 수신하려면, 아이언소스 SDK 초기화 이전에 아래 구문을 통해 활성화 해 주세요:

IronSource.Agent.shouldTrackNetworkState (true);

2단계. 사용자에게 보상형 동영상 광고를 보여주기

광고 준비상태

onAdAvailableEvent 이벤트들을 통해 보상형 동영상 광고 준비 상태를 수신할 수 있습니다.

또는 아래의 코드를를 호출하여 직접 보상형 동영상 광고 준비 여부를 확인합니다:

bool available = IronSource.Agent.isRewardedVideoAvailable();

보상형 동영상 광고 송출하기

광고 네트워크에서 보상형 동영상 광고가 준비되었으면, 사용자에게 영상을 표시할 준비가 된 것입니다. 광고를 표시하기 전에, 반드시 오디오 등을 비롯한 모든 게임 동작을 일시정지해서 사용자에게 최상의 경험을 제공할 수 있도록 하세요. IronSource.Agent 인스턴스의 showRewardedVideo() 메서드를 호출해서 사용자들에게 광고를 보여주세요:

IronSource.Agent.showRewardedVideo();

광고 플레이스먼트

아이언소스 광고 플레이스먼트 도구를 사용하여, 보상형 동영상 광고 경험을 최적화하고 커스터마이즈 할 수 있습니다. 이 도구를 사용해서 보상에 따라 다양한 광고 게재 위치에서 사용자에게 보상형 영상을 제공할 수 있습니다. 아래의 함수를 사용하여 광고를 표시할 플레이스먼트를 지정할 수 있습니다. 자세한 정보는 광고 플레이스먼트 문서에서 찾아보실 수 있습니다. 플레이스먼트의 보상 설정은 아이언소스 서버에서 가져오게 됩니다:

IronSource.Agent.showRewardedVideo("YOUR_PLACEMENT_NAME");

각 광고 플레이스먼트 별 연계된 특정 보상에 대한 자세한 정보를 얻으려면, 아래와 같이 호출해 주세요:

Placement placement = IronSource.Agent.getPlacementInfo(placementName);
//Placement can return null if the placementName is not valid.
if(placement != null)
{
    String rewardName = placement.getRewardName();
    int rewardAmount = placement.getRewardAmount();
}
Note: 플레이스먼트 명칭을 위 예제와 같이 파라미터로 사용 시 반드시 레벨플레이 플랫폼 상에서 정의된대로 사용해 주세요.

횟수 제한 및 빈도 제한

아이언소스 SDK는 앱 상의 광고 횟수 및 빈도를 광고 유닛, 플레이스먼트, 또는 두 기준 모두 사용하여 제한할 수 있는 기능을 제공합니다. 두 기준을 모두 사용하면 더 엄격한 설정이 적용됩니다.

광고 유닛으로 설정: 이 방법으로 한 사용자의 전체 세션 동안 전송되는 보상형 동영상 광고의 양을 조절할 수 있습니다. 최대 횟수에 다다른 경우, 광고 로딩을 시도했을 때 광고 준비 및 로드 성공 알림을 받지 못합니다. 

플레이스먼트로 설정: 이 방법을 사용하면 앱 상의 각기 다른 위치에 있는 광고들이 최적화된 횟수만큼 제공되도록 할 수 있습니다. 만약 보상형 동영상 광고에서 플레이스먼트에 의한 횟수 제한 도는 빈도 제한 도구를 사용할 경우, 아래 메서드를 호출해서 해당 플레이스먼트가 광고 한계에 다다랐는지 먼저 확인해 주시는 것이 좋습니다. 이는 광고 플레이스먼트가 빈도 또는 횟수 제한에 걸려 있을 때 보상형 동영상 비디오 시작 버튼을 표시하지 않게하여 광고가 제공되지 않게 하기 위함입니다.

bool isRewardedVideoPlacementCapped(string placementName);

횟수 제한 및 빈도 제한에 대한 더 자세한 사항은 여기를 읽어주세요.

동적 사용자 ID

동적 사용자 ID는 AdRewarded 콜백 통신을 확인하는 용도의 파라미터이며, 세션 중간에 변경될 수 있습니다. 해당 파라미터를 서버 간 콜백을 통해 수신하려면, showRewardedVideo() 메서드 호출 이전에 동적 ID가 아래와 같이 설정되어야 합니다. 설정하게 되면 콜백 URL에서 상세 보상 정보와 함께 dynamicUserId 파라미터를 수신하게 됩니다.

boolean setDynamicUserId(String dynamicUserID);

3단계. 사용자에게 보상 전달하기

아이언소스 SDK는 사용자가 성공적으로 보상형 동영상 광고 시청을 완료할 때마다 onAdRewardedEvent 이벤트를 송출합니다.

Note: onAdRewardedEventonAdClosedEvent 이벤트들은 서로 비동기적입니다. onAdClosedEvent 이벤트 이후에 onAdRewardedEvent 이벤트가 발생해도 보상을 제공할 수 있도록 리스너를 설정해 주세요.
void RewardedVideoOnAdRewardedEvent(IronSourcePlacement placement, IronSourceAdInfo adInfo){
    //TODO - here you can reward the user according to the reward name and amount
    placement.getPlacementName();
    placement.getRewardName();
    placement.getRewardAmount();
}
Note: 아이언소스 계정의 기본 설정은 앱 내의 클라이언트에서 정의된 IronSourceAdRewardedEvent 콜백을 통해 유저의 동영상 시청 완료 / 보상 상황을 전달하도록 되어 있습니다. 추가로, 만약 백엔드 서버에서 해당 사항에 대한 통지를 직접 받도록 하려면 서버간 콜백 기능을 켜시면 됩니다.

서버간 콜백

서버간 콜백 기능을 켜실 경우, 반드시 아이언소스 SDK 초기화 이전에 사용자 ID를 설정하여 사용자들이 보상을 받을 수 있도록 하고, 반드시 사용자가 동일한 영상 시청 완료에 대해서는 단 한번만 보상을 받도록 합니다.

아이언소스 레벨플레이 (미디에이션 SDK)는 클라이언트로의 콜백과 서버간 콜백을 동시에 송출합니다. 다시말해, 한 번의 완료 이벤트마다 두 개의 통지를 받게 됩니다.

서버간 콜백의 이용에 대해서는 여기를 읽어주세요.

완료했습니다!
이제 앱에 보상형 동영상 광고를 송출할 준비가 모두 완료되었습니다!

최초 연동을 위한 팁
처음으로 앱에 아이언소스 SDK를 연동하는 경우라면, 해당 앱은 아이언소스 대시보드 상에서 테스트 모드로 기본 설정되어 있습니다. 앱이 테스트 모드에서 동작하면, 아이언소스 SDK는 SDK 처리 과정을 좀 더 명확하게 보여주기 위해 콘솔에 더 많은 로그를 출력합니다. 광고 인벤토리 테스트를 위해서는, 테스트 기기를 설정합니다. 상용 광고 인벤토리를 활성화 하기 전까지는 테스트 캠페인의 광고만 수신하게 되며 이 경우 수익은 발생하지 않습니다. 앱이 상용 광고 인벤토리를 사용할 준비가 되었다면, 반드시 아이언소스 플랫폼의 MONETIZE > SETTINGS > Ad Units 페이지로 진입하셔서 Go Live!를 선택하셔서 상용 광고를 수신할 수 있도록 합니다.

ironsource-go-live-with-rewarded-video


다음엔 뭘 할까요?
아래의 연동 가이드들을 따라서 아이언소스 미디에이션 플랫폼의 보상형 동영상 광고 네트워크를 추가로 연동하시거나, 다른 광고 유닛을 설정해 보세요: