모바일 애플리케이션에 광고를 통합하여 수익을 창출할 수 있도록 도와주는 플랫폼입니다.
글이 운영하며, 모바일 애플리케이션 개발자들이 광고 수익을 올리기 위해 사용하는 SDK를 말합니다.
많은 유니티 엔진의 모바일 게임들이 구글 애드몹을 활용하여 광고를 출력하고, 그것을 그것을 이용하여 돈을 벌고 있습니다.
배너 광고 : 앱 화면의 특정 위치에 작은 사각형 형태의 광고를 표시합니다. 주로 화면 하단에 배치하여 사용자에게 방해가 되지 않으면서도 시각적으로 눈에 띄게 표시됩니다.
전면 광고 : 앱의 자연스러운 전환 지점, 예를 들어 앱 실행 중 중요한 시점에서 전체 화면을 차지하는 광고를 표시합니다. 사용자는 광고를 닫거나 상호작용을 한 후에 앱 사용을 계속할 수 있습니다.
리워드 광고 : 사용자가 광고를 시청하고 보상을 받을 수 있는 광고 형식입니다. 보상은 주로 게임 내 가상 화폐, 아이템, 추가 생명 등이 될 수 있습니다.
네이티브 광고 : 앱의 UI/UX에 자연스럽게 통합되는 형태의 광고로, 앱의 디자인과 일치하도록 커스터마이징할 수 있습니다. 텍스트, 이미지, 비디오 등 다양한 형식을 지원합니다
리워드 광고는 플레이어가 광고를 시청하고, 광고 종료 후에 보상을 받는 형식을 가집니다.
배틀레드 프로젝트의 메뉴 창을 새로 만들어서, 광고 시청 후 리워드를 받을 수 있도록 기능을 추가하여 해당 기능에 대한 영상을 걸어둔 링크입니다.
리워드 광고가 실제로 구동되는 사진입니다.
다만, 실제 광고 id가 아닌. test용 id를 사용하였기 때문에, 상단의 그림과 같은 테스트 img가 출력됩니다.
실제 프로젝트를 출시한다면, test용 id가 아닌.
프로젝트의 id를 사용하여 광고를 출력할 것입니다.
(애드몹에서 추가한 프로젝트의 앱 설정에 들어가 실제 ID를 확인합니다.)
구글 애드몹 for Unity SDK를 import하기 위해서, github에서 최신 버전의 패키지를 다운 받습니다.

패키지를 추가한다면,
구글 애드몹 SDK의 연결이 끝납니다.
코드의 구현은
구글에서 제공하는 for Unity 애드몹 문서를 참고하여 만들었습니다.
보상형 광고 문서에서 제공하는 test key값을 id로 사용하고,
sdk 연동을 컴포넌트의 start단계에서 set해줍니다.
LoadRewardedAd() 함수는 보상형 광고를 로드해줍니다.
광고 로드가 정상적으로 끝난다면, RegisterEventHandlers(ad)와 RegisterReloadHandler(ad) 함수를 호출하여 광고의 이벤트 핸들러들을 등록합니다.
RegisterEventHandlers(RewardedAd ad) 함수는 보상형 광고에서 발생하는 이벤트 핸들러들을 등록합니다.
RegisterReloadHandler(RewardedAd ad) 함수는 전체 화면 광고 콘텐츠가 닫힐 때와 열리지 못했을 때를 처리하며, 광고를 다시 로드하는 역할을 합니다.

ShowRewardedAd 함수는 Start에서 인스턴스되고 등록이 끝난 RewardedAd를 호출하여 보상형 광고를 표시합니다. 광고가 표시된 후, 광고 시청 완료 이벤트가 발생하면 HandleUserEarnedReward 콜백 함수가 호출됩니다.
이렇게 광고 출력을 위한 기본적인 세팅이 끝나면,
다음은 UI버튼을 클릭할 시에 광고가 출력될 수 있도록 기능을 구현하는 부분입니다.
퀘스트 출력과 마찬가지로 UI클래스의 하위 클래스로서, MenuClass를 생성하고, 최초 게임 로드시에 객체를 인스턴스화하여, 메뉴 기능을 사용할 수 있도록 해줍니다.
AddFunction은 리워드 광고와 보상 출력을 위한 코드가 실질적으로 구현된 메서드입니다.
총 세 가지의 리워드가 주어지는데
첫 번째 육성아이템, 광물, 혹은 음식 보상
두 번째 무기 혹은 성유믈 보상
세 번째 모라(인게임 재화) 보상
이는 위와 같습니다.
이때 아이템은 각 아이템의 등급(Grade) 값에 가중치를 두어서, 값이 높을수록 낮은 확률로 리턴되도록 하였습니다.
각 아이템의 가중치 계산:
아이템 1: 1.0 / 1 = 1.0
아이템 2: 1.0 / 2 = 0.5
아이템 3: 1.0 / 3 = 0.3333...
아이템 4: 1.0 / 4 = 0.25
아이템 5: 1.0 / 5 = 0.2
전체 가중치의 합: 1.0 + 0.5 + 0.3333... + 0.25 + 0.2 = 2.2833...
각 아이템의 확률 계산:
확률 = (아이템의 가중치) / (전체 가중치 합)
확률 계산:
아이템 1: 1.0 / 2.2833... ≈ 0.4372 (약 43.72%)
아이템 2: 0.5 / 2.2833... ≈ 0.2186 (약 21.86%)
아이템 3: 0.3333... / 2.2833... ≈ 0.1462 (약 14.62%)
아이템 4: 0.25 / 2.2833... ≈ 0.1095 (약 10.95%)
아이템 5: 0.2 / 2.2833... ≈ 0.0876 (약 8.76%)
최종 확률값:
grade가 1인 아이템의 선택 확률: 약 43.72%
grade가 2인 아이템의 선택 확률: 약 21.86%
grade가 3인 아이템의 선택 확률: 약 14.62%
grade가 4인 아이템의 선택 확률: 약 10.95%
grade가 5인 아이템의 선택 확률: 약 8.76%
다만, 랜덤으로 선택한 객체의 Tag가 "기타"에 해당하는 경우는 제외하고 다시 선택합니다.
선택한 리워드를 UI적으로 출력하고,
실제 데이터를 User 데이터에 추가하는 메서드입니다.