I implemented Admob rewarded ads and they work perfectly in unity, but when building and running the game on my Android the ad doesn't run.
This is the code when I run the WatchAd(int ID)
the game seems to get stuck on rewardedAd.IsLoaded()
private RewardedAd rewardedAd;
public void Start()
{
MobileAds.Initialize(HandleInitComplete);
rewardPopUp.SetActive(false);
CreateAndLoadRewardedAd();
}
private void HandleInitComplete(GoogleMobileAds.Api.InitializationStatus status) =>
#if UNITY_ANDROID
appID = "ca-app-pub-3940256099942544/5224354917";
#elif UNITY_IPHONE
appID = "ca-app-pub-3940256099942544/5224354917";
#else
appID = "Probably Pc";
#endif
public void WatchAd(int ID)
{
Debug.Log("Ran WatchAD");
if (rewardedAd.IsLoaded())
{
Debug.Log("IsLoaded");
rewardedAd.Show();
rewardPopUp.SetActive(true);
AdType = ID;
}
else {
CreateAndLoadRewardedAd();
Debug.Log("Can't Load");}
}
public void CreateAndLoadRewardedAd()
{
rewardedAd = new RewardedAd(appID);
rewardedAd.OnAdFailedToLoad = HandleRewardedAdFailedToLoad;
rewardedAd.OnAdFailedToShow = HandleRewardedAdFailedToShow;
rewardedAd.OnUserEarnedReward = HandleUserEarnedReward;
AdRequest request = new AdRequest.Builder().Build();
rewardedAd.LoadAd(request);
}
public void HandleRewardedAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
switch (timesFailed)
{
case 0:
Invoke("CreateAndLoadRewardedAd()", 60);
break;
case 1:
Invoke("CreateAndLoadRewardedAd()", 120);
break;
default:
Invoke("CreateAndLoadRewardedAd()", 240);
break;
}
timesFailed ;
}
I Have tried doing this with test ads and my own AdMob ad IDs, also added my device as a test device. there are no errors displayed when i run it with unity.
CodePudding user response:
In this part
#if UNITY_ANDROID
appID = "ca-app-pub-3940256099942544/5224354917";
#elif UNITY_IPHONE
appID = "ca-app-pub-3940256099942544/5224354917";
#else
appID = "Probably Pc";
#endif
It should be should Ad unit ID not App ID. Check this Admob Unity tutorial if you need more help.
CodePudding user response:
Fixed my issue by Force Resolving:
Assets > External Dependency Manager > Android Resolver > Force Resolve