[유니티] Unity Admob

안녕하세요 UnityBeginner입니다.
이번 글에선 개발자들의 수입 구조중 하나인 광고에 대해 알아보겠습니다.

Admob 필요조건

Unity의 버전 4.6.8 이상
IOS에 배포요건 (Xcode 10이상 CocoaPods 사용)
안드로이드 배포요건 (Google Play 서비스 7.5 이상 API 14 이상)

유니티 광고적용 순서

1. 모바일 광고 개제하기위한 Unity 플러그인을 다운로드.
https://github.com/googleads/googleads-mobile-unity/releases/tag/v4.2.1

2. 유니티 에디터를 실행하고 다운로드 받은 패키지 Import.
(Assets(애셋) > Import Package(패키지 가져오기) > Custom Package(맞춤 패키지))

3. 애드몹 페이지 이동 회원가입 진행.
https://admob.google.com/intl/ko_ALL/home/




4. 앱을 추가하고 앱ID (앱 > 앱설정) 확인.



5. 광고단위 생성 및 광고 단위 ID (앱 > 광고 단위) 확인

6. 유니티 AdmobManager 스크립트 생성


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
using GoogleMobileAds.Api;

private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
}


7. 스크립트 앱ID 설정 및 모바일 광고 초기화 
https://neighboringub.blogspot.com/2020/02/unity-apply-admob.html
※ 해당링크에 포함되는 샘플코드입니다. 

빌드타겟에 따르 코드를 분리 처리하는 방식의 하나이다

#if UNITY_EDITOR
유니티 에디터 상태에서 동작

#if UNITY_IPHONE
빌드 타겟이 아이폰일 때 동작

#if UNITY_ANDROID
빌드 타겟이 안드로이드 일 때 동작




 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

     // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);

    // Called when an ad request has successfully loaded.
    this.interstitial.OnAdLoaded += HandleOnAdLoaded;
    // Called when an ad request failed to load.
    this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    // Called when an ad is shown.
    this.interstitial.OnAdOpening += HandleOnAdOpened;
    // Called when the ad is closed.
    this.interstitial.OnAdClosed += HandleOnAdClosed;
    // Called when the ad click caused the user to leave the application.
    this.interstitial.OnAdLeavingApplication += HandleOnAdLeavingApplication;

    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

public void HandleOnAdLoaded(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdLoaded event received");
}

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                        + args.Message);
}

public void HandleOnAdOpened(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdOpened event received");
}

public void HandleOnAdClosed(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdClosed event received");
}

public void HandleOnAdLeavingApplication(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdLeavingApplication event received");
}

8. 스크립트 전면 광고 단위 ID 설정 및 광고 로드
https://neighboringub.blogspot.com/2020/02/unity-apply-admob.html
※ 해당링크에 포함되는 샘플코드입니다. 

광고 이벤트 핸들러

OnAdLoaded : 광고로드가 완료되면 실행 

OnAdFailedToLoad : 광고로드가 실패한 경우 호출

OnAdOpening : 광고가 표시될때 호출

OnAdClosed : 보여지고 있는 전면광고에서 빠져나온 경우 호출


OnAdFailedToLoad : 백그라운드 된 현재 앱이 사용자 클릭으로 다른 앱을 실행할 때 호출


이상으로 유니티 애드몹 광고를 적용하는 방법에 대해 알아보았으며 
주의 할 사항으로는 출시이전에 실제 광고단위 ID를 사용하여 무분별하게 
광고를 노출시킨다면 구글 정책위반 사항인 무효 트래픽의 대상이되어 
광고게재가 제한되는 경우가 있으니 반드시 테스트ID를 활용하셔야합니다.

댓글