본문 바로가기
개발일지

GoogleMobileAds-v8 변경된 광고 불러오기

by TypeT 2023. 4. 15.

 

 

GoogleMobileAds-v8 부터 광고 불러오는 방식이 변경 됐다고 해서 적용해 봤습니다.

뭐가 좋아졌는지는 알 수 없으나. V8 이후 나올 버전에서는 변경된 방식으로 사용될 거기에
미리 적용해 봤습니다. 

어웨이크나 스타트에서 미리 광고를 로드해도 또는 광고 보기 버튼에서 다시 로드해도 늘 처리가 늦기에
이번에는 미리 캐싱한 후 사용했더니 전보다 훨씬 빠르고 안정적으로 광고 불러오기가 되더군요.

제가 사용하는 코드 첨부 하오니 필요하신 분들은 퍼가세요~

 

 

 

public static AdmobManager Inst;
private void Awake()
{
    if (Inst == null)
    {
        Inst = this;
        DontDestroyOnLoad(gameObject);
    }
    else Destroy(gameObject);
}

private const bool IsTestMode = true;
private RewardedAd[] _rewardedAds; // RewardedAd 배열 선언
private int _currentAdIndex; // 현재 보여주고 있는 광고 인덱스
private bool _adReloadComplete;
private const int AddCachCount = 2;

private void Start()
{
    _currentAdIndex = 0;
    MobileAds.Initialize(HandleInitCompleteAction);
}

private static AdRequest CreateAdRequest() { return new AdRequest.Builder().Build(); }
private void HandleInitCompleteAction(InitializationStatus initstatus) { MobileAdsEventExecutor.ExecuteInUpdate(() => { StartCoroutine(LoadRewardAd()); }); }
private IEnumerator LoadRewardAd()
{
    _adReloadComplete = false;
    _rewardedAds = new RewardedAd[AddCachCount];
    for (var i = 0; i < _rewardedAds.Length; i++)
    {
        var i1 = i;
        RewardedAd.Load(IsTestMode ? RewardTestID : RewardID, CreateAdRequest(), (RewardedAd ad, LoadAdError loadError) =>
        {
            _rewardedAds[i1] = ad; 
            ad.OnAdFullScreenContentClosed += RewardCompletion;
            if (_rewardedAds.Any(ad1 => ad1 == null)) return;
            _adReloadComplete = true;
        });
        yield return new WaitForSeconds(0.01f);
    }
    if (!_adReloadComplete) { yield return null; }
}

private static void RewardCompletion()
{
    //광고 보상 설정
}

public void ShowRewardAd()
{
    var rewardedAd = _rewardedAds[_currentAdIndex];
    rewardedAd.Show((Reward reward) => { });
    _currentAdIndex++;
    if (_currentAdIndex < _rewardedAds.Length) return;
    StartCoroutine(LoadRewardAd()); //광고 소진 리로드
    _currentAdIndex = 0;
}



오직 승리

 

 

'개발일지' 카테고리의 다른 글

'오직 승리' 방치형 개발 중 UI 변경 완료  (0) 2023.05.14
오직 승리 - 방치형 개발일지(1)  (0) 2023.05.01
보스 - 문지기 노르베르트  (0) 2023.04.08
타원 함수  (0) 2023.04.03
1인 개발의 시작  (0) 2023.04.03

댓글