IEnumerator CoReward(BoolDelegate onFinish, AdPlacementType placementType) { RewardResult rewardResult = new RewardResult(); string errorMsg = string.Empty; WaitForSecondsRealtime checkInterval = new WaitForSecondsRealtime(0.3f); List <CustomMediation.AD_NETWORK> adPriority = GetAdsNetworkPriority(placementType); for (int i = 0; i < adPriority.Count; i++) { bool checkAdNetworkDone = false; IAdsNetworkHelper adsHelper = GetAdsNetworkHelper(adPriority[i]); if (adsHelper == null) { continue; } adsHelper.Reward(placementType, (result) => { checkAdNetworkDone = true; rewardResult = result; }); while (!checkAdNetworkDone) { yield return(checkInterval); } if (rewardResult.type == RewardResult.Type.Finished) { currentAdsHelper = adsHelper; break; } if (rewardResult.type == RewardResult.Type.Canceled) { break; } //if a reward ads was shown and user skipped it, stop looking for more ads } /*for (int i = 0; i < adsNetworkHelpers.Count; i++) * { * bool checkAdNetworkDone = false; * adsNetworkHelpers[i].Reward(placementType, (result) => * { * checkAdNetworkDone = true; rewardResult = result; * }); * while (!checkAdNetworkDone) * { * yield return checkInterval; * } * if (rewardResult.type == RewardResult.Type.Finished) * { * currentAdsHelper = adsNetworkHelpers[i]; * break; * } * if (rewardResult.type == RewardResult.Type.Canceled) { break; } //if a reward ads was shown and user skipped it, stop looking for more ads * }*/ onFinish(rewardResult.type == RewardResult.Type.Finished); Manager.LoadingAnimation(false); if (rewardResult.type == RewardResult.Type.LoadFailed) { ShowError(rewardResult.message, placementType); } }
void AddDefaultNetworkHelper(CustomMediation.AD_NETWORK adsNetworkID, IAdsNetworkHelper adsHelper) { if (adsHelper != null) { defaultAdsNetworkHelpers.Add(adsHelper); defaultAdsNetworkPriority.Add(adsNetworkID); } }
FacebookAudienceNetworkHelper InitFANHelper() { _FANHelper = gameObject.GetComponent <FacebookAudienceNetworkHelper>() as IAdsNetworkHelper; if (_FANHelper == null) { throw new System.NullReferenceException($"Component {typeof(FacebookAudienceNetworkHelper).Name} does not exist"); } return(_FANHelper as FacebookAudienceNetworkHelper); }
AdMobManager InitAdmobManager() { var resGO = Resources.Load <GameObject>(admobManagerResourcesPath); if (resGO == null) { throw new System.NullReferenceException($"{admobManagerResourcesPath} not found in Resources"); } var admobGO = Instantiate(resGO); _adMobHelper = admobGO.GetComponent <AdMobManager>(); return(_adMobHelper as AdMobManager); }
IEnumerator CoRequestInterstitialRewardedNoShow(AdPlacement.Type placementType, RewardDelegate onAdLoaded = null, bool showLoading = true) { RewardResult rewardResult = new RewardResult(); string errorMsg = string.Empty; WaitForSecondsRealtime checkInterval = new WaitForSecondsRealtime(0.05f); var adPriority = GetAdsNetworkPriority(placementType); for (int i = 0; i < adPriority.Count; i++) { bool checkAdNetworkDone = false; IAdsNetworkHelper adsHelper = GetAdsNetworkHelper(adPriority[i]); if (adsHelper == null) { continue; } adsHelper.RequestInterstitialRewardedNoShow(placementType, (success) => { checkAdNetworkDone = true; rewardResult = success; }); while (!checkAdNetworkDone) //Wait for ads load to complete { yield return(checkInterval); } if (rewardResult.type == RewardResult.Type.Finished) { currentRewardInterAdsHelper = adsHelper; break; } if (rewardResult.type == RewardResult.Type.Canceled) { break; } //if a reward ads was shown and user skipped it, stop looking for more ads } if (showLoading) { Manager.LoadingAnimation(false); } onAdLoaded?.Invoke(rewardResult); }
IEnumerator CoRequestInterstitialNoShow(AdPlacementType placementType, InterstitialDelegate onAdLoaded = null, bool showLoading = true) { isLoadingInterstitial = true; bool isSuccess = false; WaitForSecondsRealtime checkInterval = new WaitForSecondsRealtime(0.05f); var adPriority = GetAdsNetworkPriority(placementType); for (int i = 0; i < adPriority.Count; i++) { bool checkAdNetworkDone = false; IAdsNetworkHelper adsHelper = GetAdsNetworkHelper(adPriority[i]); if (adsHelper == null) { continue; } adsHelper.RequestInterstitialNoShow(placementType, (success) => { checkAdNetworkDone = true; isSuccess = success; }, showLoading); while (!checkAdNetworkDone) { yield return(checkInterval); } if (isSuccess) { //CurrentAdNetwork = AdNetworkSetting.AdNetworks[i]; currentAdsHelper = adsHelper; break; } } //.Log($"AdsManager: CoRequestInterstitialNoShow done {isSuccess}"); onAdLoaded?.Invoke(isSuccess); isLoadingInterstitial = false; if (showLoading) { Manager.LoadingAnimation(false); } }
IAdsNetworkHelper GetAdsNetworkHelper(CustomMediation.AD_NETWORK adsNetworkID) { IAdsNetworkHelper adsHelper = null; switch (adsNetworkID) { case CustomMediation.AD_NETWORK.Unity: adsHelper = _unityAdsHelper; break; case CustomMediation.AD_NETWORK.GoogleAdmob: adsHelper = _adMobHelper; break; case CustomMediation.AD_NETWORK.FAN: adsHelper = _FANHelper; break; } if (adsHelper == null) { Debug.LogError($"Reference to ads Helper of {adsNetworkID} is null"); } return(adsHelper); }
void HideBanner(IAdsNetworkHelper adNetwork) { adNetwork.HideBanner(); }
void AddNetworkHelper(CustomMediation.AD_NETWORK adsNetworkID, IAdsNetworkHelper adsHelper) { adsNetworkHelpers.Add(adsHelper); }
UnityAdsManager InitUnityAdsManager() { _unityAdsHelper = gameObject.GetComponent <UnityAdsManager>() as IAdsNetworkHelper; return(_unityAdsHelper as UnityAdsManager); }