Unity 모바일 게임 광고 통합: AdMob 활용 🎮💰
안녕, 친구들! 오늘은 정말 재미있고 유익한 주제로 찾아왔어. 바로 Unity로 만든 모바일 게임에 AdMob을 활용해서 광고를 넣는 방법에 대해 알아볼 거야. 🚀 이 글을 읽고 나면 너도 게임에 광고를 넣어서 수익을 창출할 수 있을 거야!
먼저, 우리가 왜 이런 걸 배워야 하는지 알아볼까? 요즘 모바일 게임 시장이 얼마나 뜨거운지 알지? 수많은 개발자들이 자신만의 게임을 만들어 출시하고 있어. 하지만 게임을 만드는 것만으로는 부족해. 어떻게 수익을 낼 것인가도 중요한 문제지.
여기서 AdMob이 등장하는 거야! Google에서 만든 모바일 광고 플랫폼인 AdMob을 사용하면, 우리가 만든 게임에 쉽게 광고를 넣을 수 있어. 그럼 유저들이 게임을 즐기면서 자연스럽게 광고도 보게 되고, 우리는 그걸로 수익을 낼 수 있지. 일석이조잖아! 😎
💡 Pro Tip: 광고를 넣을 때는 유저 경험을 해치지 않도록 주의해야 해. 너무 많은 광고는 오히려 역효과를 낼 수 있어!
자, 이제 본격적으로 Unity에서 AdMob을 활용하는 방법에 대해 알아보자. 준비됐니? 그럼 시작해볼까! 🏁
1. AdMob 시작하기: 계정 생성과 앱 등록 📝
먼저, AdMob을 사용하려면 계정을 만들어야 해. 그리고 나서 우리가 만든 게임을 AdMob에 등록해야 하지. 이 과정은 생각보다 간단해. 한 번 같이 해볼까?
1.1 AdMob 계정 만들기
- Google AdMob 웹사이트(https://admob.google.com)에 접속해.
- '시작하기' 버튼을 클릭해.
- Google 계정으로 로그인해. 없다면 새로 만들어도 돼.
- 개인정보 및 AdMob 정책에 동의하고 계정을 생성해.
짜잔! 🎉 이제 너만의 AdMob 계정이 생겼어. 어때, 생각보다 쉽지?
1.2 앱 등록하기
계정을 만들었으니, 이제 우리의 게임을 AdMob에 등록할 차례야. 이 과정도 어렵지 않아. 따라와 봐!
- AdMob 대시보드에서 '앱' 메뉴로 이동해.
- '앱 추가' 버튼을 클릭해.
- 'Android' 또는 'iOS' 중 네 게임의 플랫폼을 선택해.
- 앱 스토어에 이미 등록된 앱이라면 '예'를, 아직 개발 중이라면 '아니요'를 선택해.
- 앱 이름과 카테고리를 입력해.
- '앱 추가' 버튼을 클릭해 완료해.
와우! 🎊 이제 네 게임이 AdMob에 등록됐어. 이제 광고를 넣을 준비가 된 거지!
⚠️ 주의사항: 앱 등록 시 입력한 정보는 나중에 수정하기 어려울 수 있어. 정확한 정보를 입력했는지 꼭 확인해!
여기서 잠깐! 혹시 게임 개발에 관심 있는 친구들 중에 Unity나 광고 통합에 대해 더 배우고 싶은 사람 있어? 그렇다면 재능넷(https://www.jaenung.net)을 한 번 방문해봐. 다양한 개발자들이 자신의 지식과 경험을 공유하고 있어서, 네가 원하는 정보를 찾을 수 있을 거야. 😉
자, 이제 기본적인 준비는 끝났어. 다음 단계로 넘어가볼까? Unity에서 AdMob SDK를 설치하고 초기화하는 방법을 알아보자고!
2. Unity에 AdMob SDK 설치하기 🛠️
이제 Unity 프로젝트에 AdMob SDK를 설치할 차례야. 이 과정은 조금 기술적일 수 있지만, 천천히 따라오면 어렵지 않아. 준비됐니? 그럼 시작해볼까!
2.1 Unity 프로젝트 준비
먼저, Unity 프로젝트가 준비되어 있어야 해. 아직 프로젝트가 없다면 새로 만들어도 좋아. Unity Hub를 열고 새 프로젝트를 생성해보자.
- Unity Hub를 실행해.
- '새 프로젝트' 버튼을 클릭해.
- 템플릿은 '2D' 또는 '3D'를 선택해. (네 게임에 맞게 선택하면 돼)
- 프로젝트 이름과 저장 위치를 지정해.
- '생성' 버튼을 클릭해.
짜잔! 🎉 이제 새 Unity 프로젝트가 생겼어. 멋지지 않아?
2.2 Google Mobile Ads Unity Plugin 다운로드
AdMob을 Unity에서 사용하려면 Google Mobile Ads Unity Plugin이 필요해. 이 플러그인을 다운로드하고 설치해보자.
- 브라우저를 열고 Google Mobile Ads Unity Plugin 깃허브 페이지(https://github.com/googleads/googleads-mobile-unity/releases)로 이동해.
- 최신 버전의 'GoogleMobileAds.unitypackage' 파일을 다운로드해.
좋아, 이제 플러그인 파일을 다운로드했어. 다음은 이걸 Unity 프로젝트에 임포트할 거야!
2.3 Unity 프로젝트에 플러그인 임포트하기
다운로드한 플러그인을 Unity 프로젝트에 추가해보자. 이 과정은 Unity 에디터에서 진행돼.
- Unity 에디터를 열어.
- 상단 메뉴에서 'Assets' > 'Import Package' > 'Custom Package'를 선택해.
- 다운로드한 'GoogleMobileAds.unitypackage' 파일을 선택하고 '열기'를 클릭해.
- 'Import Unity Package' 창이 뜨면, 모든 항목이 선택되어 있는지 확인하고 'Import' 버튼을 클릭해.
와우! 🎊 이제 AdMob SDK가 네 프로젝트에 추가됐어. 정말 대단해!
💡 Pro Tip: 플러그인을 임포트한 후에는 Unity 에디터를 재시작하는 것이 좋아. 이렇게 하면 모든 변경사항이 제대로 적용되거든!
2.4 Android 설정 (안드로이드 타겟 프로젝트인 경우)
만약 네 게임이 안드로이드를 타겟으로 한다면, 몇 가지 추가 설정이 필요해. 걱정 마, 어렵지 않아!
- Unity 에디터에서 'File' > 'Build Settings'를 선택해.
- 'Platform' 목록에서 'Android'를 선택하고 'Switch Platform' 버튼을 클릭해.
- 'Player Settings'를 클릭해.
- 'Other Settings' 섹션에서 'Minimum API Level'을 'Android 4.1 (API level 16)' 이상으로 설정해.
- 'Publishing Settings' 섹션에서 'Custom Main Gradle Template'과 'Custom Gradle Properties Template'을 체크해.
좋아, 이제 안드로이드 설정도 끝났어. iOS 설정은 조금 다르니까, iOS 타겟 프로젝트라면 별도의 가이드를 참고해야 해.
2.5 AdMob SDK 초기화하기
마지막으로, AdMob SDK를 초기화해야 해. 이 과정은 코드를 통해 이루어져. 걱정 마, 내가 천천히 설명해줄게!
- Unity 에디터에서 새 C# 스크립트를 만들어. 이름은 'AdMobInitializer'라고 지어볼까?
- 스크립트를 열고 다음 코드를 추가해:
using UnityEngine;
using GoogleMobileAds.Api;
public class AdMobInitializer : MonoBehaviour
{
void Start()
{
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize(initStatus => { });
}
}
- 이 스크립트를 빈 게임 오브젝트에 추가해. 이렇게 하면 게임이 시작될 때 AdMob SDK가 자동으로 초기화돼.
와! 🎉 이제 AdMob SDK 설치와 초기화가 모두 끝났어. 너 정말 잘했어!
⚠️ 주의사항: SDK 초기화는 게임이 시작될 때 한 번만 호출되어야 해. 여러 번 호출하면 문제가 생길 수 있으니 주의해!
여기까지 따라왔다면, 너의 Unity 프로젝트는 이제 AdMob을 사용할 준비가 완벽히 끝난 거야. 정말 대단해! 👏
다음 섹션에서는 실제로 광고를 구현하는 방법에 대해 알아볼 거야. 배너 광고, 전면 광고, 보상형 광고 등 다양한 유형의 광고를 어떻게 넣는지 상세히 설명해줄게. 계속 따라와 줘!
그리고 혹시 이 과정에서 어려움을 겪고 있다면, 재능넷(https://www.jaenung.net)에서 도움을 받을 수 있다는 걸 잊지 마. 거기엔 Unity 개발 경험이 풍부한 전문가들이 많이 있거든. 그들의 조언을 들어보는 것도 좋은 방법이 될 거야. 😊
자, 이제 진짜 재미있는 부분이 시작될 거야. 준비됐니? 그럼 다음 섹션으로 고고! 🚀
3. 배너 광고 구현하기 🏷️
자, 이제 본격적으로 광고를 구현해볼 거야. 가장 먼저 배너 광고부터 시작해볼까? 배너 광고는 화면의 상단이나 하단에 표시되는 작은 직사각형 모양의 광고야. 간단하면서도 효과적이지!
3.1 배너 광고 ID 생성하기
배너 광고를 표시하려면 먼저 AdMob에서 광고 단위 ID를 생성해야 해. 이 과정은 간단해. 따라와 봐!
- AdMob 대시보드(https://admob.google.com)에 로그인해.
- 좌측 메뉴에서 '앱'을 선택하고, 네가 등록한 앱을 클릭해.
- '광고 단위' 섹션에서 '광고 단위 만들기' 버튼을 클릭해.
- '배너'를 선택하고, 이름을 입력해. (예: "게임 메인 화면 배너")
- '만들기' 버튼을 클릭해.
짜잔! 🎉 이제 배너 광고 ID가 생성됐어. 이 ID는 나중에 코드에서 사용할 거야, 잘 기억해둬!
3.2 배너 광고 스크립트 작성하기
이제 Unity에서 배너 광고를 표시할 스크립트를 작성해볼 거야. 새로운 C# 스크립트를 만들고 'BannerAdManager'라고 이름 지어볼까?
using UnityEngine;
using GoogleMobileAds.Api;
public class BannerAdManager : MonoBehaviour
{
private BannerView bannerView;
public void Start()
{
// 배너 광고 요청 및 로드
this.RequestBanner();
}
private void RequestBanner()
{
#if UNITY_ANDROID
string adUnitId = "ca-app-pub-3940256099942544/6300978111"; // 안드로이드 테스트 광고 ID
#elif UNITY_IPHONE
string adUnitId = "ca-app-pub-3940256099942544/2934735716"; // iOS 테스트 광고 ID
#else
string adUnitId = "unexpected_platform";
#endif
// 배너뷰 생성
this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom);
// 광고 로드 이벤트에 대한 리스너 등록
this.bannerView.OnAdLoaded += this.HandleOnAdLoaded;
this.bannerView.OnAdFailedToLoad += this.HandleOnAdFailedToLoad;
this.bannerView.OnAdOpening += this.HandleOnAdOpened;
this.bannerView.OnAdClosed += this.HandleOnAdClosed;
// 광고 요청 생성
AdRequest request = new AdRequest.Builder().Build();
// 배너 로드
this.bannerView.LoadAd(request);
}
// 각 이벤트에 대한 핸들러
public void HandleOnAdLoaded(object sender, System.EventArgs args)
{
MonoBehaviour.print("배너 광고가 로드되었습니다.");
}
public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
MonoBehaviour.print("배너 광고 로드 실패: " + args.LoadAdError.GetMessage());
}
public void HandleOnAdOpened(object sender, System.EventArgs args)
{
MonoBehaviour.print("배너 광고가 열렸습니다.");
}
public void HandleOnAdClosed(object sender, System.EventArgs args)
{
MonoBehaviour.print("배너 광고가 닫혔습니다.");
}
// 앱 종료 시 배너 제거
public void OnDestroy()
{
if (bannerView != null)
{
bannerView.Destroy();
}
}
}
와우! 😲 이 코드가 좀 길어 보이지? 걱정 마, 하나씩 설명해줄게.
- RequestBanner() 메서드는 배너 광고를 요청하고 로드하는 핵심 메서드야.
- 우리는 테스트 광고 ID를 사용했어. 실제 앱을 출시할 때는 네가 AdMob에서 받은 실제 광고 ID로 교체해야 해.
- BannerView를 생성하고, 광고 크기와 위치를 지정했어. 여기서는 화면 하단에 표준 크기의 배너를 표시하도록 했지.
- 각종 이벤트(광고 로드, 실패, 열기, 닫기 등)에 대한 핸들러를 등록했어. 이렇게 하면 광고의 상태 변화를 추적할 수 있어.
- AdRequest를 생성하고 LoadAd() 메서드로 광고를 요청했어.
💡 Pro Tip: 테스트 시에는 항상 테스트 광고 ID를 사용해. 실제 광고 ID로 테스트하면 AdMob 정책 위반으로 간주될 수 있어!
3.3 배너 광고 스크립트 적용하기
이제 이 스크립트를 게임에 적용해볼 차례야. 어렵지 않아, 따라와 봐!
- Unity 에디터에서 빈 게임 오브젝트를 생성해. (상단 메뉴 GameObject > Create Empty)
- 이 오브젝트의 이름을 'AdManager'로 변경해.
- 방금 만든 BannerAdManager 스크립트를 이 오브젝트에 드래그 앤 드롭해서 추가해.
짜잔! 🎉 이제 게임을 실행하면 화면 하단에 배너 광고가 나타날 거야. 정말 대단해!
3.4 배너 광고 제어하기
때로는 배너 광고를 숨기거나 다시 표시해야 할 때가 있어. 예를 들어, 보스전이 시작될 때 광고를 숨기고 싶다면? BannerAdManager 스크립트에 다음 메서드들을 추가해봐:
public void HideBanner()
{
if (bannerView != null)
{
bannerView.Hide();
}
}
public void ShowBanner()
{
if (bannerView != null)
{
bannerView.Show();
}
}
이제 게임의 다른 부분에서 이 메서드들을 호출해서 배너를 제어할 수 있어. 멋지지 않아? 😎
⚠️ 주의사항: 배너 광고를 너무 자주 숨기거나 표시하면 사용자 경험을 해칠 수 있어. 적절한 타이밍에 사용하는 게 중요해!
여기까지 배너 광고 구현이 끝났어. 너 정말 잘했어! 👏 이제 네 게임에 수익을 낼 수 있는 첫 번째 광고가 추가된 거야.
다음 섹션에서는 전면 광고를 구현하는 방법에 대해 알아볼 거야. 전면 광고는 화면 전체를 차지하는 광고로, 보통 게임의 자연스러운 전환 지점에서 표시돼. 기대되지 않아? 😃
그리고 혹시 이 과정에서 어려움을 겪고 있다면, 재능넷(https://www.jaenung.net)을 방문해보는 것도 좋은 방법이야. 거기서 Unity 개발과 광고 통합에 대한 다양한 팁과 조언을 얻을 수 있을 거야. 다른 개발자들의 경험을 듣는 것도 큰 도움이 될 수 있거든. 😊
자, 이제 전면 광고로 넘어갈 준비가 됐니? 그럼 다음 섹션으로 고고! 🚀
4. 전면 광고 구현하기 📺
안녕, 친구! 이제 우리는 전면 광고를 구현해볼 거야. 전면 광고는 화면 전체를 차지하는 광고로, 주로 게임의 레벨 사이나 특정 이벤트 후에 표시돼. 배너 광고보다 더 큰 수익을 낼 수 있지만, 사용자 경험을 해치지 않도록 주의해야 해. 자, 시작해볼까? 🚀
4.1 전면 광고 ID 생성하기
먼저, AdMob에서 전면 광고 ID를 생성해야 해. 배너 광고 때와 비슷한 과정이야.
- AdMob 대시보드(https://admob.google.com)에 로그인해.
- 좌측 메뉴에서 '앱'을 선택하고, 네가 등록한 앱을 클릭해.
- '광고 단위' 섹션에서 '광고 단위 만들기' 버튼을 클릭해.
- '전면'을 선택하고, 이름을 입력해. (예: "레벨 클리어 전면 광고")
- '만들기' 버튼을 클릭해.
짜잔! 🎉 이제 전면 광고 ID가 생성됐어. 이 ID도 잘 기억해둬야 해!
4.2 전면 광고 스크립트 작성하기
이제 Unity에서 전면 광고를 표시할 스크립트를 작성해볼 거야. 새로운 C# 스크립트를 만들고 'InterstitialAdManager'라고 이름 지어볼까?
using UnityEngine;
using GoogleMobileAds.Api;
using System;
public class InterstitialAdManager : MonoBehaviour
{
private InterstitialAd interstitial;
public void Start()
{
// 전면 광고 초기화
MobileAds.Initialize(initStatus => { });
// 전면 광고 로드
this.RequestInterstitial();
}
private void RequestInterstitial()
{
#if UNITY_ANDROID
string adUnitId = "ca-app-pub-3940256099942544/ 1033173712"; // 안드로이드 테스트 광고 ID
#elif UNITY_IPHONE
string adUnitId = "ca-app-pub-3940256099942544/4411468910"; // iOS 테스트 광고 ID
#else
string adUnitId = "unexpected_platform";
#endif
// 기존 광고 파괴
if (this.interstitial != null)
{
this.interstitial.Destroy();
}
// 새 전면 광고 생성
this.interstitial = new InterstitialAd(adUnitId);
// 광고 이벤트 핸들러 등록
this.interstitial.OnAdLoaded += HandleOnAdLoaded;
this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
this.interstitial.OnAdOpening += HandleOnAdOpened;
this.interstitial.OnAdClosed += HandleOnAdClosed;
// 광고 요청 생성
AdRequest request = new AdRequest.Builder().Build();
// 전면 광고 로드
this.interstitial.LoadAd(request);
}
// 광고 표시 메서드
public void ShowInterstitial()
{
if (this.interstitial.IsLoaded())
{
this.interstitial.Show();
}
else
{
Debug.Log("전면 광고가 아직 로드되지 않았습니다.");
}
}
// 각 이벤트에 대한 핸들러
public void HandleOnAdLoaded(object sender, EventArgs args)
{
MonoBehaviour.print("전면 광고 로드 성공!");
}
public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
MonoBehaviour.print("전면 광고 로드 실패: " + args.LoadAdError.GetMessage());
}
public void HandleOnAdOpened(object sender, EventArgs args)
{
MonoBehaviour.print("전면 광고가 화면을 덮었습니다.");
}
public void HandleOnAdClosed(object sender, EventArgs args)
{
MonoBehaviour.print("전면 광고가 닫혔습니다.");
// 광고가 닫힌 후 새 광고를 로드
this.RequestInterstitial();
}
// 앱 종료 시 광고 제거
public void OnDestroy()
{
if (interstitial != null)
{
interstitial.Destroy();
}
}
}
와우! 😲 이 코드도 좀 길어 보이지? 하지만 걱정 마, 하나씩 설명해줄게.
- RequestInterstitial() 메서드는 전면 광고를 요청하고 로드하는 핵심 메서드야.
- 여기서도 테스트 광고 ID를 사용했어. 실제 앱을 출시할 때는 네가 AdMob에서 받은 실제 광고 ID로 교체해야 해.
- InterstitialAd 객체를 생성하고, 각종 이벤트(광고 로드, 실패, 열기, 닫기 등)에 대한 핸들러를 등록했어.
- ShowInterstitial() 메서드는 실제로 광고를 표시하는 메서드야. 이 메서드를 호출하면 광고가 화면에 나타나게 돼.
- 광고가 닫힌 후에는 자동으로 새 광고를 로드하도록 했어. 이렇게 하면 다음 번에 광고를 보여줄 때 기다릴 필요가 없지!
💡 Pro Tip: 전면 광고는 사용자 경험을 방해할 수 있으니, 적절한 타이밍에 보여주는 게 중요해. 예를 들어, 레벨 클리어 후나 게임 오버 시점 등이 좋은 타이밍이 될 수 있어!
4.3 전면 광고 스크립트 적용하기
이제 이 스크립트를 게임에 적용해볼 차례야. 배너 광고 때와 비슷한 방식으로 진행할 거야.
- Unity 에디터에서 빈 게임 오브젝트를 생성해. (이미 AdManager가 있다면 그걸 사용해도 돼)
- 방금 만든 InterstitialAdManager 스크립트를 이 오브젝트에 드래그 앤 드롭해서 추가해.
짜잔! 🎉 이제 전면 광고를 사용할 준비가 됐어!
4.4 전면 광고 표시하기
전면 광고를 표시하고 싶을 때, 예를 들어 레벨이 끝났을 때, 다음과 같이 호출하면 돼:
public class GameManager : MonoBehaviour
{
public InterstitialAdManager adManager;
public void OnLevelComplete()
{
// 레벨 완료 로직...
// 전면 광고 표시
adManager.ShowInterstitial();
}
}
이렇게 하면 레벨이 끝날 때마다 전면 광고가 표시될 거야. 멋지지 않아? 😎
⚠️ 주의사항: 전면 광고를 너무 자주 보여주면 사용자들이 불편해할 수 있어. 적절한 빈도로 사용하는 게 중요해!
여기까지 전면 광고 구현이 끝났어. 너 정말 잘했어! 👏 이제 네 게임에 두 가지 종류의 광고를 넣을 수 있게 됐어.
다음 섹션에서는 보상형 광고를 구현하는 방법에 대해 알아볼 거야. 보상형 광고는 사용자가 자발적으로 광고를 시청하고 그 대가로 게임 내 보상을 받는 형태의 광고야. 사용자와 개발자 모두에게 이익이 되는 win-win 전략이지. 기대되지 않아? 😃
그리고 혹시 이 과정에서 어려움을 겪고 있다면, 재능넷(https://www.jaenung.net)을 방문해보는 것도 좋은 방법이야. 거기서 Unity 개발과 광고 통합에 대한 다양한 팁과 조언을 얻을 수 있을 거야. 다른 개발자들의 경험을 듣는 것도 큰 도움이 될 수 있거든. 😊
자, 이제 보상형 광고로 넘어갈 준비가 됐니? 그럼 다음 섹션으로 고고! 🚀
5. 보상형 광고 구현하기 🎁
안녕, 개발자 친구! 이제 우리는 보상형 광고를 구현해볼 거야. 보상형 광고는 사용자가 자발적으로 광고를 시청하고 그 대가로 게임 내 보상을 받는 형태의 광고야. 이 방식은 사용자들의 참여를 유도하고 게임 내 경제를 활성화시키는 데 도움이 돼. 준비됐니? 그럼 시작해보자! 🚀
5.1 보상형 광고 ID 생성하기
먼저, AdMob에서 보상형 광고 ID를 생성해야 해. 이전 광고들과 비슷한 과정이야.
- AdMob 대시보드(https://admob.google.com)에 로그인해.
- 좌측 메뉴에서 '앱'을 선택하고, 네가 등록한 앱을 클릭해.
- '광고 단위' 섹션에서 '광고 단위 만들기' 버튼을 클릭해.
- '보상형'을 선택하고, 이름을 입력해. (예: "추가 생명 보상형 광고")
- '만들기' 버튼을 클릭해.
짜잔! 🎉 이제 보상형 광고 ID가 생성됐어. 이 ID도 잘 기억해둬야 해!
5.2 보상형 광고 스크립트 작성하기
이제 Unity에서 보상형 광고를 표시할 스크립트를 작성해볼 거야. 새로운 C# 스크립트를 만들고 'RewardedAdManager'라고 이름 지어볼까?
using UnityEngine;
using GoogleMobileAds.Api;
using System;
public class RewardedAdManager : MonoBehaviour
{
private RewardedAd rewardedAd;
public void Start()
{
// 보상형 광고 초기화
MobileAds.Initialize(initStatus => { });
// 보상형 광고 로드
this.LoadRewardedAd();
}
private void LoadRewardedAd()
{
#if UNITY_ANDROID
string adUnitId = "ca-app-pub-3940256099942544/5224354917"; // 안드로이드 테스트 광고 ID
#elif UNITY_IPHONE
string adUnitId = "ca-app-pub-3940256099942544/1712485313"; // iOS 테스트 광고 ID
#else
string adUnitId = "unexpected_platform";
#endif
// 새 보상형 광고 생성
this.rewardedAd = new RewardedAd(adUnitId);
// 광고 이벤트 핸들러 등록
this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
this.rewardedAd.OnAdOpening += HandleRewardedAdOpening;
this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;
this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;
// 광고 요청 생성
AdRequest request = new AdRequest.Builder().Build();
// 보상형 광고 로드
this.rewardedAd.LoadAd(request);
}
// 광고 표시 메서드
public void ShowRewardedAd()
{
if (this.rewardedAd.IsLoaded())
{
this.rewardedAd.Show();
}
else
{
Debug.Log("보상형 광고가 아직 로드되지 않았습니다.");
}
}
// 각 이벤트에 대한 핸들러
public void HandleRewardedAdLoaded(object sender, EventArgs args)
{
MonoBehaviour.print("보상형 광고 로드 성공!");
}
public void HandleRewardedAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
MonoBehaviour.print("보상형 광고 로드 실패: " + args.LoadAdError.GetMessage());
}
public void HandleRewardedAdOpening(object sender, EventArgs args)
{
MonoBehaviour.print("보상형 광고가 열렸습니다.");
}
public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args)
{
MonoBehaviour.print("보상형 광고 표시 실패: " + args.AdError.GetMessage());
}
public void HandleRewardedAdClosed(object sender, EventArgs args)
{
MonoBehaviour.print("보상형 광고가 닫혔습니다.");
// 광고가 닫힌 후 새 광고를 로드
this.LoadRewardedAd();
}
public void HandleUserEarnedReward(object sender, Reward args)
{
string type = args.Type;
double amount = args.Amount;
MonoBehaviour.print("사용자가 " + amount + " " + type + " 보상을 받았습니다.");
// 여기에 보상 지급 로직을 추가
GiveReward(amount);
}
// 보상 지급 메서드 (게임에 맞게 수정 필요)
private void GiveReward(double amount)
{
// 예: 코인 지급
// PlayerPrefs.SetInt("Coins", PlayerPrefs.GetInt("Coins") + (int)amount);
Debug.Log(amount + " 코인이 지급되었습니다!");
}
}
와우! 😲 이 코드도 좀 길어 보이지? 하지만 걱정 마, 하나씩 설명해줄게.
- LoadRewardedAd() 메서드는 보상형 광고를 요청하고 로드하는 핵심 메서드야.
- 여기서도 테스트 광고 ID를 사용했어. 실제 앱을 출시할 때는 네가 AdMob에서 받은 실제 광고 ID로 교체해야 해.
- RewardedAd 객체를 생성하고, 각종 이벤트(광고 로드, 실패, 열기, 닫기, 보상 획득 등)에 대한 핸들러를 등록했어.
- ShowRewardedAd() 메서드는 실제로 광고를 표시하는 메서드야. 이 메서드를 호출하면 광고가 화면에 나타나게 돼.
- HandleUserEarnedReward() 메서드는 사용자가 광고를 다 보고 보상을 받을 때 호출돼. 여기서 실제 보상을 지급하는 로직을 구현하면 돼.
💡 Pro Tip: 보상형 광고는 사용자의 자발적인 참여가 중요해. 게임 내에서 추가 생명이나 특별한 아이템을 얻을 수 있는 기회로 제공하면 좋아!
5.3 보상형 광고 스크립트 적용하기
이제 이 스크립트를 게임에 적용해볼 차례야. 이전 광고들과 비슷한 방식으로 진행할 거야.
- Unity 에디터에서 빈 게임 오브젝트를 생성해. (이미 AdManager가 있다면 그걸 사용해도 돼)
- 방금 만든 RewardedAdManager 스크립트를 이 오브젝트에 드래그 앤 드롭해서 추가해.
짜잔! 🎉 이제 보상형 광고를 사용할 준비가 됐어!
5.4 보상형 광고 표시하기
보상형 광고를 표시하고 싶을 때, 예를 들어 사용자가 "추가 생명 얻기" 버튼을 눌렀을 때, 다음과 같이 호출하면 돼:
public class GameManager : MonoBehaviour
{
public RewardedAdManager adManager;
public void OnGetExtraLifeButtonClicked()
{
adManager.ShowRewardedAd();
}
}
이렇게 하면 사용자가 버튼을 클릭할 때마다 보상형 광고가 표시될 거야. 광고를 다 보면 HandleUserEarnedReward() 메서드가 호출되어 보상이 지급돼. 멋지지 않아? 😎
⚠️ 주의사항: 보상형 광고는 사용자의 선택에 따라 표시되어야 해. 강제로 보여주면 안 돼!
여기까지 보상형 광고 구현이 끝났어. 너 정말 잘했어! 👏 이제 네 게임에 세 가지 종류의 광고를 모두 넣을 수 있게 됐어.
이렇게 해서 우리는 Unity 게임에 AdMob을 활용한 광고 통합을 모두 완료했어. 배너 광고, 전면 광고, 보상형 광고를 모두 구현했지. 이제 네 게임에서 다양한 방식으로 수익을 창출할 수 있게 됐어!
마지막으로, 광고를 구현할 때는 항상 사용자 경험을 최우선으로 생각해야 한다는 걸 잊지 마. 적절한 타이밍에, 적절한 빈도로 광고를 보여주는 게 중요해. 그래야 사용자들이 불편함을 느끼지 않고 게임을 즐길 수 있거든.
그리고 혹시 이 과정에서 어려움을 겪고 있다면, 재능넷(https://www.jaenung.net)을 방문해보는 것도 좋은 방법이야. 거기서 Unity 개발과 광고 통합에 대한 다양한 팁과 조언을 얻을 수 있을 거야. 다른 개발자들의 경험을 듣는 것도 큰 도움이 될 수 있거든. 😊
자, 이제 네 게임에 광고를 넣어 수익을 창출할 준비가 완벽히 끝났어. 정말 대단해! 앞으로 네 게임이 큰 성공을 거두길 바랄게. 화이팅! 🚀🎮💰