Unity

유니티 GoogleAdmob 보상형 광고 로드 최적화

우대비 2025. 1. 8. 17:35
반응형

광고를 불러오는 시간이 오래걸리는 경우가 생각보다 많습니다..

이때 사용할 수 있는게 광고 미리 불러오기 입니다.

 

1. 보상형 광고 미리 불러오기

void LoadRewardAd()
{
    if (_rewardedAd != null && _rewardedAd.CanShowAd())
    {
        UIHandler.instance.logUI.WriteLog("이미 로드된 광고가 있습니다.");
        return;
    }
    
    var adRequest = new AdRequest();

    RewardedAd.Load(rewardId, adRequest,
    (RewardedAd ad, LoadAdError error) =>
    {
        if (error != null || ad == null)
            return;

    	UIHandler.instance.logUI.WriteLog("광고 불러오기 성공");
        _rewardedAd = ad;
    }); 
    return;
}

 

 

유저가 광고를 재생하기 전에 RewardedAd.Load 함수를 호출하여 광고를 미리 불러오는 방법으로 로딩 시간을 거의 삭제할 수가 있습니다.

 

하지만, 광고 종류 후 유저가 곧바로 광고를 다시 재생하게 된다면 로딩 시간이 다시 생기게됩니다.

이 때 사용할 수 있는 방법은 광고를 하나만 저장해놓는게 아니라 두개 이상 저장해 놓는겁니다.

 

그래픽스의 더블 버퍼링을 생각하면 될 것 같습니다.

 

2. 광고 여러개 저장해놓기

RewardedAd[] _rewardedAds = { null, null, null }; 

int GetRewardAd()
{
    for (int i = 0; i < 3; i++)
    {
        if (_rewardedAds[i] != null && _rewardedAds[i].CanShowAd())
            return i;
    }

    return -1;
}

 

RewardedAd를 여러개 사용하는 방식으로 A를 사용할 때, B를 불러와서 빠르게 다음 광고로 교체가 가능합니다.

 

 

반응형
LIST