게임 플랫폼 응용프로그래밍
07/22 Unity ads 붙이기
박준희
2021. 7. 22. 12:32
728x90
씬 만들기

광고 종류
보상형
전면광고
배너












OFF -> ON


스크립트 생성
Banner.cs
UnityAdsMain.cs
게임오브젝트 생성
UnityAdsMain
UnityAdsMain.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Advertisements;
public class UnityAdsMain : MonoBehaviour, IUnityAdsInitializationListener
{
public string gameId = "4227389";
public bool testMode = true;
private void Awake()
{
Advertisement.Initialize(gameId, testMode, true, this);
}
public void OnInitializationComplete()
{
Debug.Log("Unity Ads init completed");
}
public void OnInitializationFailed(UnityAdsInitializationError error, string message)
{
Debug.LogFormat("[Unity Ads init failed]\n error: {0}\n message: {1}", error, message);
}
}
Banner.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Advertisements;
using UnityEngine.UI;
public class Banner : MonoBehaviour
{
public string adUnitId = "Banner_Android";
public Button btnLoad;
public Button btnShow;
public Button btnHide;
void Start()
{
Advertisement.Banner.SetPosition(BannerPosition.BOTTOM_CENTER);
btnShow.interactable = false;
btnHide.interactable = false;
this.btnLoad.onClick.AddListener(() => {
this.Load();
});
this.btnShow.onClick.AddListener(() => {
this.Show();
});
this.btnHide.onClick.AddListener(() => {
this.Hide();
});
}
private void Load()
{
BannerLoadOptions options = new BannerLoadOptions
{
loadCallback = OnBannerLoaded,
errorCallback = OnBannerError
};
Advertisement.Banner.Load(adUnitId, options);
}
void OnBannerLoaded()
{
Debug.Log("Banner loaded");
btnShow.interactable = true;
btnHide.interactable = true;
}
void OnBannerError(string message)
{
Debug.Log($"Banner Error: {message}");
}
void Show()
{
// Set up options to notify the SDK of show events:
BannerOptions options = new BannerOptions
{
clickCallback = OnBannerClicked,
hideCallback = OnBannerHidden,
showCallback = OnBannerShown
};
Advertisement.Banner.Show(adUnitId, options);
}
void OnBannerClicked() { }
void OnBannerShown() { }
void OnBannerHidden() { }
void Hide()
{
Advertisement.Banner.Hide();
}
}



Interstitial 생성
Interstitial.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Advertisements;
using UnityEngine.UI;
public class Interstitial : MonoBehaviour, IUnityAdsShowListener, IUnityAdsLoadListener
{
public string adUnitId = "Interstitial_Android";
public Button btnLoad;
public Button btnShow;
// Start is called before the first frame update
void Start()
{
this.btnLoad.onClick.AddListener(() => { LoadAd(); });
this.btnShow.onClick.AddListener(() => { ShowAd(); });
}
// Load content to the Ad Unit:
public void LoadAd()
{
// IMPORTANT! Only load content AFTER initialization (in this example, initialization is handled in a different script).
Debug.Log("Loading Ad: " + adUnitId);
Advertisement.Load(adUnitId, this);
}
// Show the loaded content in the Ad Unit:
public void ShowAd()
{
// Note that if the ad content wasn't previously loaded, this method will fail
Debug.Log("Showing Ad: " + adUnitId);
Advertisement.Show(adUnitId, this);
}
public void OnUnityAdsShowFailure(string placementId, UnityAdsShowError error, string message)
{
Debug.LogFormat("OnUnityAdsShowFailure: {0} {1} {2}", placementId, error, message);
}
public void OnUnityAdsShowStart(string placementId)
{
Debug.LogFormat("OnUnityAdsShowStart: {0}", placementId);
}
public void OnUnityAdsShowClick(string placementId)
{
Debug.LogFormat("OnUnityAdsShowClick: {0}", placementId);
}
public void OnUnityAdsShowComplete(string placementId, UnityAdsShowCompletionState showCompletionState)
{
Debug.LogFormat("OnUnityAdsShowComplete: {0} {1}", placementId, showCompletionState);
}
public void OnUnityAdsAdLoaded(string placementId)
{
Debug.LogFormat("OnUnityAdsAdLoaded: {0}", placementId);
}
public void OnUnityAdsFailedToLoad(string placementId, UnityAdsLoadError error, string message)
{
Debug.LogFormat("OnUnityAdsFailedToLoad: {0} {1} {2}", placementId, error, message);
}
}


Rewarded.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Advertisements;
using UnityEngine.UI;
public class Rewarded : MonoBehaviour, IUnityAdsLoadListener, IUnityAdsShowListener
{
public string adUnitId = "Rewarded_Android";
public Button btnLoad;
public Button btnShow;
// Start is called before the first frame update
void Start()
{
this.btnShow.interactable = false;
this.btnLoad.onClick.AddListener(() => {
this.LoadAd();
this.btnShow.interactable = true;
});
this.btnShow.onClick.AddListener(() => {
this.ShowAd();
this.btnShow.interactable = false;
});
}
public void LoadAd()
{
// IMPORTANT! Only load content AFTER initialization (in this example, initialization is handled in a different script).
Debug.Log("Loading Ad: " + adUnitId);
Advertisement.Load(adUnitId, this);
}
public void OnUnityAdsAdLoaded(string placementId)
{
Debug.LogFormat("OnUnityAdsAdLoaded: {0}", placementId);
}
public void OnUnityAdsFailedToLoad(string placementId, UnityAdsLoadError error, string message)
{
Debug.LogFormat("OnUnityAdsFailedToLoad: {0}, {1}, {2}", placementId, error, message);
}
// Implement a method to execute when the user clicks the button.
public void ShowAd()
{
// Then show the ad:
Advertisement.Show(adUnitId, this);
}
public void OnUnityAdsShowFailure(string placementId, UnityAdsShowError error, string message)
{
Debug.LogFormat("OnUnityAdsShowFailure: {0}, {1}, {2}", placementId, error, message);
}
public void OnUnityAdsShowStart(string placementId)
{
Debug.LogFormat("OnUnityAdsShowStart: {0}", placementId);
}
public void OnUnityAdsShowClick(string placementId)
{
Debug.LogFormat("OnUnityAdsShowClick: {0}", placementId);
}
public void OnUnityAdsShowComplete(string placementId, UnityAdsShowCompletionState showCompletionState)
{
Debug.LogFormat("OnUnityAdsShowComplete: {0}, {1}", placementId, showCompletionState.ToString());
if (adUnitId.Equals(placementId) && showCompletionState.Equals(UnityAdsShowCompletionState.COMPLETED))
{
Debug.Log("Unity Ads Rewarded Ad Completed");
// Grant a reward.
Debug.Log("보상을 받았습니다.");
// Load another ad:
Advertisement.Load(adUnitId, this);
}
}
}


빌드 후 테스트

adb 로그

728x90