728x90
유니티에서는 광고를 제공합니다.
안드로이드 앱을 대상으로 설명합니다.
Advertisement 3.4.4와 이전 버전은 약간 다릅니다.
2019.3 version은 Advertisement 3.4.4 버전을 사용합니다.
1. 3.4.4 version
3.4.4부터는 리스너를 등록하고 사용하도록 변경되었습니다.
Advertisement를 초기화에 GameID를 사용합니다.
등록한 광고 타입 (스킵, 노스킵등) PlacementId를 사용합니다.
광고 시청 결과는 등록한 리스너의 OnUnityAdsDidFinish()에서 처리합니다.
GameID는 Unity dashboard → target application → Setting → Project settings → Game Ids
PlacementID는 Unity dashboard → target application → Monetization → Placements
RewardedVideo 광고는 다음과 같이 사용 가능합니다.
AdManager 구성은 개인마다 다들 수 있습니다.
하나의 예입니다.
※자세한 사항은 아래 참고자료 Integration guid for Unity -Knowledge Base 참고해주세요.
using System.Collections;
using UnityEngine;
using UnityEngine.Advertisements;
using System;
public class AdManager :MonoBehaviour, IUnityAdsListener
{
string gameId = "12345";
string myPlacementId = "rewardedVideo";
bool testMode = false;
private void Start()
{
Advertisement.AddListener(this);
Advertisement.Initialize(gameId, testMode);
}
private void OnDisable()
{
Advertisement.RemoveListener(this);
}
public void ShowAd()
{
StartCoroutine(ShowAdWhenReady());
}
IEnumerator ShowAdWhenReady()
{
while (!Advertisement.IsReady(myPlacementId))
{
yield return null;
}
Advertisement.Show(myPlacementId);
}
#region UnityAdLister interfaces
public void OnUnityAdsDidFinish(string placementId, ShowResult showResult)
{
if (showResult == ShowResult.Finished) {
// Do something here.
}
else if (showResult == ShowResult.Skipped)
{
// Do something here;
}
else if (showResult == ShowResult.Failed) {
Debug.LogWarning("The ad did not fhinish due to an error");
}
}
public void OnUnityAdsReady(string placementId)
{
if (placementId == myPlacementId) {
// Advertisement.Show(myPlacementId);
}
}
public void OnUnityAdsDidError(string message)
{
Debug.LogError("OnUnityAdsDidError :" + message);
}
public void OnUnityAdsDidStart(string placementId)
{
if (placementId == myPlacementId)
{
// Advertisement.Show(myPlacementId);
}
}
#endregion
}
2. 3.4.2 version
3.4.2 버전은 ShowOptions에 Action callback 함수를 이용하였습니다.
결과는 ShowResult를 받아 광고 종료, 스킵, 에러등을 처리하였습니다.
public class AdManager : MonoBehaviour {
string myPlacementId = "12345"
public void ShowAd(){
StartCoroutine(ShowAdWhenReady());
}
IEnemerator ShowAdWhenReady(){
while(!Advertisement.IsReady(myPlacementId)){
yield return null;
}
ShowOptions options = new ShowOptions { resultCallback = HadleShowResult};
Advertisement.Show(myPlacementId, options);
}
private void HandleShowResult(ShowResult result)
{
swith(result){
case ShowResult.Finished:
//Code here
Debug.Log("The ad was successfully Shown."); break;
case ShowResult.Skipped:
// Code here
Debug.Log("The ad was skipped before reaching the end."); break;
case ShowResult.Failed: Debug.Log("The ad failed to be shown."); break;
}
}
}
3. 3.4.4 verison 발생가능한 오류
참고자료
728x90
'유니티' 카테고리의 다른 글
유니티 안드로이드 빌드 (플레이어 셋팅) (1) | 2020.04.09 |
---|---|
유니티 구글 플레이 게임 서비스 연동1( 연결하기) (0) | 2020.04.08 |
유니티 안드로이드 광고 개인정보처리방침 (0) | 2020.04.07 |
유니티 안드로이드 테스트 빠른 패치 (0) | 2020.04.06 |
유니티 안드로이드 빌드 (환경 설정) (1) | 2020.02.12 |