[Unity] 유니티 애즈 보상형 광고 적용하기 (Unity Ads Rewarded)

Posted by Dev Park
2019. 6. 16. 17:45 Unity

 

유니티 애즈를 사용하려면 먼서 유니티 프로젝트 ID를 생성해야 합니다. 

프로젝트 ID는 유니티 상에서 바로 생성 할 수도 있고 이미 생성해둔 ID를 사용할 수도 있습니다. 

 

유니티에서 Windows -> General -> Services 를 선택합니다. 

 

먼저 Services 활성화 해야 하는데 프로젝트를 선택 후 Create 버튼을 눌러줍니다. 

 

서비스를 활성화 하면 위 스샷처럼 유니티 서비스 항목들을 볼 수 있게 됩니다. 

 

유니티 애즈를 선택합니다. 

 

오른쪽 버튼을 통해서 애즈를 활성화 해줍니다. 

 

13세 이하 어린이를 타겟으로 하는 앱인지를 물어봅니다. 

맞다면 체크박스에 체크 후 Continue 를 눌러주면 되고 아니면 그냥 Continue를 눌러주시면 됩니다. 

 

 

유니티 애즈를 활성화시키면 위 스샷처럼 보이게 됩니다. 

중간쯤에 있는 테스트 모드를 통해서 테스트 광고가 보이게 할지 실제 광고가 보이게 할지를 선택 할 수 있습니다. 

 

그럼 이제 유니티 애즈를 사용 할 준비는 모두 끝났으니 코드를 작성합니다. 

 

using UnityEngine;
using UnityEngine.Advertisements;

public class UnityAdsManager : MonoBehaviour
{
    private void HandleShowResult(ShowResult result)
    {
        switch (result)
        {
            case ShowResult.Finished:
                {
                    Debug.Log("The ad was successfully shown.");
                    // 여기에 보상 처리 
                }
                break;
            case ShowResult.Skipped:
                Debug.Log("The ad was skipped before reaching the end.");
                break;
            case ShowResult.Failed:
                Debug.LogError("The ad failed to be shown.");
                break;
        }
    }

    public void ShowRewarded()
    {
        if (Advertisement.IsReady())
        {
            var options = new ShowOptions { resultCallback = HandleShowResult };
            Advertisement.Show("rewardedVideo", options);
        }
        else
        {
            Debug.Log("AD FAIL");
        }
    }
}

 

HandleShowResult(ShowResult result) 부분의 ShowResult.Finished 에 영상을 보고난 이후에 줄 보상에 대한 처리를 해주면 됩니다. 

 

ShowRewarded() 를 통해 광고를 원하는 타이밍에 보여지도록 호출 합니다. 

 

 

유니티 상에서 플레이를 했을때 위 스샷과 같은 로그가 출력되면 정상적으로 적용된 것입니다. 

 

 

간단하게 테스트용 버튼을 만들고 위 스샷과 같이 동영상 광고를 시청한 후에 보상을 받는 형태로 합니다. 

유니티 애즈는 유니티에서 지원하는 광고이기 때문에 유니티 상에서 바로 테스트 광고가 나오는지 확인 할 수 있습니다. 

 

플레이 후 버튼을 눌러보면 

 

 

위 스샷과 같이 바로 테스트 광고가 나오는 것을 볼 수 있습니다. 

 

참고로 코드를 통해 불러오는 광고의 종류는 Advertisement.Show("rewardedVideo", options) 이 부분에 

rewardedVideo 이 이름을 통해서 불러오게 됩니다. 

해당 광고를 설정하거나 이름을 변경하고 싶거나 할때는 유니티 대쉬보드에서 수정이 가능합니다.

유니티 대쉬보드에 Monetization -> Placements 에 보면 rewardedVideo 가 있습니다. 

 

 

 

rewardedVideo 는 기본형으로 만들어져 있는 보상형 광고 입니다. 

다른 타입을 추가하고 싶으면 Add Placements 를 사용해서 새로운 광고 타입을 생성하면 됩니다.