[unity] 모듈 제작 : 광고 시스템(Admob, UnityAds) 만들기(1)
Unity에서 사용하는 수익 구조 중 광고(Admob, UnityAds) 모듈을 제작하는 방법 및 사용하는 방법에 대해 알아보자. (1편)
게임 앱 개발에 있어 수익화는 무엇보다 중요하다.
대부분의 게임은 인앱 결제를 통해 수익을 창출하지만, 광고를 적절히 사용하면 부가적인 광고 수익도 창출할 수 있다.
여러 가지 광고 플랫폼을 사용해 보았지만, 결국 유니티에서 활용할만한 광고 플랫폼은 구글의 Admob과 Unity에서 자체적으로 제공하는 UnityAds가 접근 방법 및 수익이 괜찮았다.
다양한 광고 형태(배너, 전면, 보상형)를 붙이고 싶다면 Admob을 선정하는 것이 좋으며, 보상형 광고 위주로 수익화를 하고 싶을 때는 UnityAds가 좋다. (UnityAds는 전면, 배너 광고에 대한 노출률이 너무 떨어진다.)
해당 기능은 아래와 같은 버전을 사용하였다.
Unity : 2019.4.33f1
Admob : v7.1.0
UnityAds : 4.2.1
사전 준비로는 Admob 사이트 가입 및 프로젝트 생성 등이 필요하다.
(여기서 Admob에 대한 가입 및 프로젝트 생성에 대한 부분은 따로 작성하지 않으니, 가입이 안된 분은 아래 링크를 통해 가입 및 프로젝트 생성을 하면 된다.)
1. Admob 라이브러리 임포트
Admob 라이브러리는 아래 깃허브 링크를 통해서 패키지 파일을 받을 수 있다. 받는 기준으로 최신 버전으로 받으면 좋다.
GoogleMobileAds-v7.1.0.unitypackage 패키지를 다운로드한 후 Unity에 임포트를 하면, 아래 그림처럼 3가지 폴더에 패키지가 압축 해제된다.
압축 해제된 폴더로 사용해도 무방하나. 깔끔하게 모듈로 관리하기 위해 Moduls 폴더에 AdSystem이라는 폴더를 만든 후 UnityAds 관련 폴더들을 모아서 관리해주는 것이 좋다.
Assets -> Google Mobile Ads -> Settings 항목을 선택한 뒤 Admob 사이트에서 만든 App ID를 입력한다.
2. UnityAds 패키지 다운로드
UnityAds는 Unity -> Window -> Package Manager를 선택 후 Advertisement 항목을 검색하여 설치해준다.
Window-> General -> Services 항목에 들어간 후
Ads 항목을 Enable 해준다.
3. Script 작성 : Adbase.cs
Admob과 UnityAds의 기반의 추상 클래스인 Adbase 클래스를 제작해보자.
Scripts 폴더를 생성 후 Adbase.cs c# 스크립트를 생성 후 아래와 같이 작성해주자.
해당 추상 클래스는 광고 초기화, 동영상 광고 시청, 전면광고 시청 등의 추상 함수를 가지고 있다.
using UnityEngine;
namespace Modules.Ads
{
public abstract class Adbase : MonoBehaviour
{
[SerializeField]
protected bool isBannerUse = true;
[SerializeField]
protected bool isInterstitialUse = true;
[SerializeField]
protected bool isRewardUse = true;
protected System.Action<AdResultType> OnRewardResult = null;
[SerializeField]
protected Advertiser advertiser;
public Advertiser Type
{
get { return advertiser; }
}
//광고모듈 초기화 함수.
public abstract void OnInitialize();
//동영상 광고 시청 함수.
public abstract void ShowRewardVideo(System.Action<AdResultType> result);
//전면광고 시청 함수.
public abstract void ShowInterstitial();
}
}
4. Script 작성 : AdType.cs
호출하는 광고가 UnityAds 인지, Admob 인지 구분이 필요하다.
AdType.cs 클래스를 생성 후 아래와 같이 작성해주자.
namespace Modules.Ads
{
public enum AdResultType
{
Sucess,
Fail
}
public enum Advertiser
{
/// <summary>
/// Admob 광고.
/// /// </summary>
Admob,
/// <summary>
/// 유니티 광고
/// </summary>
Unity
}
}
AdResultType 은 동영상 광고를 끝까지 시청 완료했는지에 따른 결과로 사용하며, Advertiser는 광고 플랫폼을 구분하기 위해 구성하였다.
스크립트 수가 많아지는 만큼 다음편이 이어서 작성해보자.
댓글