반응형
유니티용 구글 Admob SDK 설치
구글 Admob 설정
구글 Admob 홈페이지
v8.7.0 기준
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds;
using GoogleMobileAds.Api;
public class AdmobBanner : MonoBehaviour
{
[Header("안드로이드 ID")]
public string androidUnitId = "ca-app-pub-3940256099942544/6300978111";
[Header("아이폰 ID")]
public string iosUnitId = "ca-app-pub-3940256099942544/2934735716";
string adUnitId;
BannerView _bannerView;
public void Start()
{
// Google Mobile Ads 초기화
MobileAds.Initialize((InitializationStatus initStatus) =>
{
// 초기화 완료
});
#if UNITY_ANDROID
adUnitId = androidUnitId;
#elif UNITY_IOS
adUnitId = iosUnitId;
#else
adUnitId = "unexpected_platform";
#endif
// 광고 로드
LoadAd();
}
public void LoadAd() // 광고 로드
{
if (_bannerView == null)
{
// 배너 뷰 생성
CreateBannerView();
}
var adRequest = new AdRequest.Builder()
.AddKeyword("unity-admob-sample")
.Build();
Debug.Log("배너 광고를 로드합니다.");
_bannerView.LoadAd(adRequest);
}
public void CreateBannerView() // 배너 뷰 생성
{
Debug.Log("배너 뷰 생성 중");
if (_bannerView != null)
{
// 기존 광고 제거
DestroyAd();
}
AdSize adaptiveSize =
AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth);
_bannerView = new BannerView(adUnitId, adaptiveSize, AdPosition.Top);
//_bannerView = new BannerView(adUnitId, AdSize.Banner, 0, 50);
}
private void ListenToAdEvents() // 광고 이벤트 리스너
{
_bannerView.OnBannerAdLoaded += () =>
{
Debug.Log("배너 광고가 로드되었습니다. 응답 정보: "
+ _bannerView.GetResponseInfo());
};
_bannerView.OnBannerAdLoadFailed += (LoadAdError error) =>
{
Debug.LogError("배너 광고 로드 실패: " + error);
};
_bannerView.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(string.Format("배너 광고 지불: {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
_bannerView.OnAdImpressionRecorded += () =>
{
Debug.Log("배너 광고 노출 기록.");
};
_bannerView.OnAdClicked += () =>
{
Debug.Log("배너 광고 클릭됨.");
};
_bannerView.OnAdFullScreenContentOpened += () =>
{
Debug.Log("배너 광고 전체 화면 열림.");
};
_bannerView.OnAdFullScreenContentClosed += () =>
{
Debug.Log("배너 광고 전체 화면 닫힘.");
};
}
public void ShowAd() // 광고 표시
{
if (_bannerView != null)
{
Debug.Log("배너 광고 표시.");
_bannerView.Show();
}
else
{
// 광고가 없으면 새로 로드
LoadAd();
}
}
public void HideAd() // 광고 숨기기
{
if (_bannerView != null)
{
Debug.Log("배너 광고 숨김.");
_bannerView.Hide();
}
}
public void DestroyAd() // 광고 제거
{
if (_bannerView != null)
{
Debug.Log("배너 광고 제거.");
_bannerView.Destroy();
_bannerView = null;
}
}
}
참고할만한 글
의뢰하기
반응형