Skip to content Skip to sidebar Skip to footer

How To Check If An Advertisement Has Finished In Unity

I am using a rewarded video ad from admob in unity. The advertise is called when the player dies and asks them if they want to watch an ad to be revived. I am trying to check when

Solution 1:

Likely because you registering to event multiple times when you call rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded; more than once. You should remove it from there and put it in the Start function instead.

string adUnitId = "ca-app-pub-5920324855307233/4458481507";
RewardBasedVideoAd rewardBasedVideo = null;

void Start()
{
    //Subscribe to Ad event once
    rewardBasedVideo = RewardBasedVideoAd.Instance;
    //Subscribe to Ad event once
    rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;
}

public void adButton()
{
   AdRequest request = new AdRequest.Builder().Build();
   rewardBasedVideo.LoadAd(request, adUnitId);
   showAd();
}

void Update()
{

}

public void showAd()
{
    print("IN showAd()");
    if (rewardBasedVideo.IsLoaded())
    {
        print("IN showAd() AND IsLoaded()");
        rewardBasedVideo.Show();
    }else{
        print("IN showAd() NOT IsLoaded()");
     }
}

public void HandleRewardBasedVideoRewarded(object sender, Reward args)
{
    print("IN HandleRewardBasedVideoRewarded()");
    IsLoaded()
    string type = args.Type;
    double amount = args.Amount;
    //Reawrd User here
    print("User rewarded with: " + amount.ToString() + " " + type);


    managerScript.revival();
    managerScript.Loading.SetActive(false);
}

public void OnDestroy()
{
    //Un-Subscribe to Ad event once
    rewardBasedVideo.OnAdRewarded -= HandleRewardBasedVideoRewarded;
}

Post a Comment for "How To Check If An Advertisement Has Finished In Unity"