336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


유니티3D 광고 붙이기(TEST 버전)


유니티에서 제공하는 광고를 붙여보려 합니다.


우선 실제 스토어에 등록된 것이 없으니 테스트용으로 하겠습니다.


그리고, Android가 테스트가 편하니 Android용 Ads를 달도록 하겠습니다.



우선 unity3d.com에 접속을 합니다.


그리고 상단에 서비스 메뉴가 있는데, 그쪽으로 들어갑니다.




그리고나서 하단에 보시면


UNITY ADS쪽에 자세히 보기가 있습니다.


클릭합니다.




이제 하단에 보이는 


지금 수익화 시작을 눌러줍니다.




그리고 아래 나오는 버튼을 눌러 


유니티에 로그인을 해 줍니다.




로그인이 완료되면 다음과 같은 화면을 보실 수 있습니다.


광고를 보여줄 게임이 필요하므로, 


새 게임 추가를 누르도록 하겠습니다.




Android로 테스트를 한다고 했습니다.


안드로이드 아이콘을 눌러 줍니다.


그럼 2단계가 나오는데, 현재 서비스 하고 있는 게임이 아니므로


하단에 "여기"를 눌러줍니다.




그럼 출시되지 않은것으로 나옵니다.


대충 이름을 써주고, 게임추가를 눌러줍니다.




3단계(마지막 단계)가 보입니다.


테스트용이므로, 아래처럼 선택하겠습니다.


* 실제 게임에서는 해당 게임에 맞도록 하셔야 합니다.




이제 광고를 보여줄 수 있는 게임이 추가되었습니다.


광고 설정을 위하여 추가한 게임이름을 눌러줍니다.




광고 설정을 위해 수익화 설정 메뉴를 눌러주고, 


고급 설정 보기 를 눌러줍니다.




그러면 기본적으로 세팅된 두개의 광고 리스트가 보입니다.


첫번째 광고는 보상이 없는, 즉 사용자가 스킵할 수 있는 광고 입니다.


저는 광고를 보고 보상을 주려고 합니다.


그러므로, 두번째 Rewarded광고를 사용할 것입니다.


그리고 아이디 가 있는데, 보여줄 광고에 필요하니 기억해야 합니다.


이제 설정을 눌러줍니다.




해당 광고의 상세페이지 입니다.


현재는 바꿀것이 없습니다. 차 후 변경할 일이 있으면 여기에서 하시면 됩니다.


그냥 저장을 눌러줍니다.




이제 광고 설정을 끝이 났습니다.


실제 유니티에서 광고를 달아보도록 하겠습니다.


유니티를 실행 하시고, 에셋스토어를 들어갑니다.


그리고 unityad라고 치시면 Unity Ads 에셋이 보입니다.


눌러서 다운받고, 패키지를 불러들입니다.




패키지를 잘 로드했다면, 다음처럼 Plugin에 Android와 iOS가 생겼을 것입니다.


이게 보이시면 잘 되신겁니다.




그리고 광고 보기 테스트를 위해 


다음처럼 화면을 구성하겠습니다.


가운데 검정색 네모는 광고보기 버튼입니다.


참고로 저는 NGUI로 테스트 하고 있습니다. 


참고 : [NGUI] 버튼과 레이블




광고를 보기위해 초기화와 보여주기 기능이 필요합니다.


저는 UIMan이라는 클래스를 만들도록 하겠습니다.


작성 후 게임오브젝트에 링크시켜주시기 바랍니다.


< UIMan.cs 코드 >


using UnityEngine;
using System.Collections;

// 광고 사용하기.
using UnityEngine.Advertisements;

public class UIMan : MonoBehaviour {

    // 광고 옵션값
    ShowOptions m_cShowOptions = new ShowOptions();
    // 광고보기 버튼.(광고 준비가 안될 때에 비활성 시키려고 들고있음)
    public GameObject m_gObjEventButton;
    // 보상 테스트
    int m_nGold = 0;
    // 현재 광고상태    
    ShowResult m_eResult = ShowResult.Failed;
    // 혹시 버튼 클릭했는데, 콜백이 안넘어 오는지 체크위함.
    bool m_bClicked = false;
    // 광고 클릭 카운트
    int m_nClickCount = 0;

    void Awake()
    {
        // 광고 최초 초기화 해준다.
        // Initialize(광고 번호, 테스트 모드인가)
        Advertisement.Initialize("120256", true);
        // 광고 완료할 때 처리할 콜백함수를 넣어준다.
        // System.Action 형태
        m_cShowOptions.resultCallback = OnAdsShowResultCallBack;
    }

	// Update is called once per frame
	void Update () {
        // 광고가 사용가능 한지 여부를 체크한다.
        // Adverisement.IsReady(광고 아이디)
        // 아까 생성한 곳 보면 광고 아이디가 있습니다.
        // 여러 광고중 하고자 하는 아이디를 넣어주면 됩니다.
        if (Advertisement.IsReady("rewardedVideoZone"))
        {
            m_gObjEventButton.SetActive(true);
        }
        else
        {
            m_gObjEventButton.SetActive(false);
        }
	}

    // 광고 버튼 클릭을 눌렀을 때 발동.
    public void OnClickButton()
    {
        m_bClicked = true;
        m_nClickCount++;
        // 해당 아이디의 광고를 보여준다.
        Advertisement.Show("rewardedVideoZone", m_cShowOptions);
    }
    // 광고 보기 완료 후 호출되는 콜백함수
    void OnAdsShowResultCallBack(ShowResult _result)
    {
        m_eResult = _result;
        // 정상적으로 완료 될 때에만 처리하도록 하겠습니다.
        if (_result == ShowResult.Finished)
            m_nGold += 50;

        // 정상적으로 CallBack이 들어왔다면, 클릭여부 false.
        m_bClicked = false;
    }

    void OnGUI()
    {        
        // 현재 보상받은거.
        GUI.Label(new Rect(10, 50, 500, 30), "Gold : " + m_nGold.ToString());
        // 콜백 결과
        GUI.Label(new Rect(10, 100, 500, 30), "Result : " + m_eResult.ToString());
        // 광고 클릭 카운트와, 클릭상태 여부 표시.
        GUI.Label(new Rect(150, 100, 500, 30), "ClickCount : "+ m_nClickCount.ToString() 
                + ", Clicked : "+ m_bClicked.ToString());
    }
}


모두 완료가 되었습니다.


Android 단말기에 넣고 테스트를 하겠습니다.


< 최초 실행화면 >



< 광고 보기 버튼 클릭 >



< 광고 보고 난 후 결과 > 


저도 실제 광고를 달아보지 않아서, 실제 달때에는 어떻게 다른지 아직은 모르겠네요.


실제 광고를 달고 나서 다른 점이 있을 경우


다시 포스팅 하도록 하겠습니다.


도움되셨길 바랍니다.

+ Recent posts