본 글은 애드몹 광고 다는 방법을 소개해주는 아래 두 블로그들
1. https://starlightbox.tistory.com/55
2. https://geukggom.tistory.com/147
을 바탕으로 따라한다가 막힌 부분에 대해서 추가적으로 작성하는 글입니다.
위에서 제시해준 또는 아래 적힌 코드를 그대로 사용하고 싶다면 무조건 Google Mobile Ads Unity Plugin v7.3.0 을 받아서 사용해줘야합니다. 최신 버전에서는 아래 코드를 사용할 수 없습니다. 이것 때문에 저는 몇시간을 버렸습니다...
기존 버전 받을 수 있는 링크 :
https://github.com/googleads/googleads-mobile-unity/releases
< 광고 추가하고 띄우는 방법 >
- 광고 관련된 스크립트 하나 만들어주기
using GoogleMobileAds.Api;
using System;
using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
public class AdMobManager : MonoBehaviour
{
private string adUnitId;
private RewardedAd rewardedAd;
public static AdMobManager instance;
public System.Action<Reward> onHandleUserEarnedReward;
public System.Action<AdFailedToLoadEventArgs> onHandleRewardedAdFailedToLoad;
public System.Action onHandleRewardedAdFailedToShow;
public System.Action onHandleRewardedAdClosed;
private void Awake()
{
instance = this;
}
public void Init()
{
//adUnitId 설정
#if UNITY_EDITOR
string adUnitId = "unused";
#elif UNITY_ANDROID
adUnitId = "ca-app-pub-4727835752295775/5917816098";
//adUnitId = "ca-app-pub-4727835752295775/5917816098";
#elif UNITY_IPHONE
string adUnitId = "ca-app-pub-4727835752295775/5917816098";
#else
string adUnitId = "unexpected_platform";
#endif
// 모바일 광고 SDK를 초기화함.
MobileAds.Initialize(initStatus => { });
//광고 로드 : RewardedAd 객체의 loadAd메서드에 AdRequest 인스턴스를 넣음
AdRequest request = new AdRequest.Builder().Build();
this.rewardedAd = new RewardedAd(adUnitId);
this.rewardedAd.LoadAd(request);
this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded; // 광고 로드가 완료되면 호출
this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad; // 광고 로드가 실패했을 때 호출
this.rewardedAd.OnAdOpening += HandleRewardedAdOpening; // 광고가 표시될 때 호출(기기 화면을 덮음)
this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow; // 광고 표시가 실패했을 때 호출
this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;// 광고를 시청한 후 보상을 받아야할 때 호출
this.rewardedAd.OnAdClosed += HandleRewardedAdClosed; // 닫기 버튼을 누르거나 뒤로가기 버튼을 눌러 동영상 광고를 닫을 때 호출
}
public void HandleRewardedAdLoaded(object sender, EventArgs args)
{
Debug.Log("HandleRewardedAdLoaded");
}
public void HandleRewardedAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
Debug.Log("HandleRewardedAdFailedToLoad");
this.onHandleRewardedAdFailedToLoad(args);
}
public void HandleRewardedAdOpening(object sender, EventArgs args)
{
Debug.Log("HandleRewardedAdOpening");
}
public void HandleRewardedAdFailedToShow(object sender, EventArgs args)
{
Debug.Log("HandleRewardedAdFailedToShow");
this.onHandleRewardedAdFailedToShow();
}
public void HandleRewardedAdClosed(object sender, EventArgs args)
{
Debug.Log("HandleRewardedAdClosed");
SceneManager.LoadScene(0);
//SceneManager.LoadScene("Main", LoadSceneMode.Single);
//this.onHandleRewardedAdClosed();
}
public void HandleUserEarnedReward(object sender, Reward args)
{
Debug.Log("HandleUserEarnedReward");
//this.onHandleUserEarnedReward(args);
}
public bool IsLoaded()
{
return this.rewardedAd.IsLoaded();
}
public void ShowAds()
{
StartCoroutine(this.ShowAdsRoutine());
}
private IEnumerator ShowAdsRoutine()
{
while (true)
{
bool check = IsLoaded();
if (check == true)
{
this.rewardedAd.Show();
break;
}
else
{
Debug.Log("reward ad not loaded.");
}
yield return null;
}
}
}
위 부분에서 //adUnitId 설정 하는 부분은 자신의 앱 광고 아이디로 바꿔줘야하며 사용자가 광고를 보고 닫았을 때 어떤 장면으로 넘어가거나 무언가 이벤트를 주고 싶다면 public void HandleRewardedAdClosed(object sender, EventArgs args) 함수에서 설정해줍니다. 현재 코드 경우, 사용자가 광고를 닫으면 SceneManager.LoadScene(0); 를 통해서 처음 화면으로 돌아가게 설정해주었습니다.
참고로 위 스크립트는 아래 광고 띄우고 위해 코드 추가한 스크립트가 작동하는 Scene의 Hierachy 에 추가 되어있어야 합니다. ((아마 위치는 딱히 상관없는 듯 합니다))
- 광고 띄우고 싶은 부분에 아래 코드 추가하기
AdMobManager.instance.Init();
AdMobManager.instance.ShowAds();
일단 이 정도로 코드를 통해 광고를 추가했습니다.
'App && Game' 카테고리의 다른 글
[유니티] 게임 시작하기 / 나가기 / 이어하기 버튼 스크립트 (0) | 2023.04.19 |
---|---|
[유니티] 화면 드래그(스와이프/터치)에 따른 오브젝트 회전 (0) | 2023.04.17 |
[가상 응용 프로젝트] 로블록스 게임 "Camping W" 만들기 (0) | 2022.12.18 |
[유니티] 다른 애니메이션(animation) 연결하기 / 애니메이션 상태변환 / 애니메이션 바로 변경(즉각 변경) / 특정 조건 때 애니메이션 (0) | 2022.02.12 |
[유니티/unity] 소리 넣기 / bgm 넣기 / 배경음악 넣는 방법 (0) | 2021.12.26 |
댓글