Unity

Unity에서 Google AdMob을 사용하는 방법

코샵 2023. 11. 7. 11:35
반응형

Unity에서 Google AdMob 사용하면 Unity 게임에서 광고를 게재할 있습니다. Google AdMob Google에서 제공하는 광고 플랫폼으로, 다양한 종류의 광고를 제공합니다.

 

Unity에서 Google AdMob을 사용하려면 다음과 같은 단계를 따르세요.

  1. Google AdMob 계정 생성
  2. Unity 프로젝트에 AdMob 패키지 설치
  3. AdMob 광고 단위 생성
  4. Unity 프로젝트에 AdMob 광고 추가

Google AdMob 홈페이지에서 계정을 생성합니다

http://admob.google.com

 

Google AdMob: 모바일 앱 수익 창출

인앱 광고를 사용하여 모바일 앱에서 더 많은 수익을 창출하고, 사용이 간편한 도구를 통해 유용한 분석 정보를 얻고 앱을 성장시켜 보세요.

admob.google.com

 

AdMob Package Install 

깃허브에서 최신 버전의 .unitypackage를 다운로드 받아 프로젝트에 추가하세요

https://github.com/googleads/googleads-mobile-unity/releases

 

Releases · googleads/googleads-mobile-unity

Official Unity Plugin for the Google Mobile Ads SDK - googleads/googleads-mobile-unity

github.com

 

AdMob 광고 단위 생성

  1. 먼저 앱이 없다면 앱 추가 버튼을 눌러 앱을 프로젝트에 맞게 만들어주세요.
  2. 광고 단위 페이지에서 광고 단위 추가를 클릭합니다.
  3. 원하는 광고를 선택 후 광고 단위를 생성하세요.
  4. 광고 단위 ID를 복사합니다.

AdMob 광고 테스트 

실제 앱을 배포할 때가 아닌 테스트 할 때는 테스트 ID를 사용해야합니다. 

아래 설명에서는 보상형 전면 광고로 설명하겠습니다.

Android Id : ca-app-pub-3940256099942544/5354046379
IOS id : ca-app-pub-3940256099942544/6978759866
using GoogleMobileAds.Api;
using UnityEngine;

public class AdManager : MonoBehaviour
{
    public static T Instance { get; private set; }

    RewardedAd rewardedAd;

    private void Awake() 
    {
        if (Instance is null) 
        {
            Instance = (T)FindObjectOfType(typeof(T));
            DontDestroyOnLoad(this.gameObject);
        }
        else if (Instance != null)
        {
            Destroy(this.gameObject);
        }
    }

    private void Start() => MobileAds.Initialize(initStatus => {});

    public void ShowAds(string _adUnitId)
    {
        LoadRewardedAd(_adUnitId);
        ShowRewardedAd();
    }

    void LoadRewardedAd(string _adUnitId)
    {
        if (rewardedAd != null)
        {
            rewardedAd.Destroy();
            rewardedAd = null;
        }

        AdRequest adRequest = new AdRequest.Builder().Build();

        // send the request to load the ad.
        RewardedAd.Load(_adUnitId, adRequest,
            (RewardedAd ad, LoadAdError error) =>
            {
                if (error != null || ad == null)
                {
                    Debug.LogError("Rewarded ad failed to load an ad with error : " + error);
                    return;
                }

                rewardedAd = ad;
            });
    }

    void ShowRewardedAd()
    {
        if (rewardedAd is null && !rewardedAd.CanShowAd())
            return;

        rewardedAd.Show((Reward reward) => GiveReward(reward));
    }

    void GiveReward(Reward reward)
    {
        Debug.Log(string.Format(reward.Type, reward.Amount));
    }
}

 

버튼 클릭시 AdManager.Instance.ShowAds("ca-app-pub-3940256099942544/5354046379") 액션을 추가하면

테스트용 보상형 전면 광고가 나타납니다.