Пример #1
0
    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);
        }
    }
Пример #2
0
 void AddDefaultNetworkHelper(CustomMediation.AD_NETWORK adsNetworkID, IAdsNetworkHelper adsHelper)
 {
     if (adsHelper != null)
     {
         defaultAdsNetworkHelpers.Add(adsHelper);
         defaultAdsNetworkPriority.Add(adsNetworkID);
     }
 }
Пример #3
0
 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);
 }
Пример #4
0
    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);
    }
Пример #5
0
    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);
    }
Пример #6
0
    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);
        }
    }
Пример #7
0
    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);
    }
Пример #8
0
 void HideBanner(IAdsNetworkHelper adNetwork)
 {
     adNetwork.HideBanner();
 }
Пример #9
0
 void AddNetworkHelper(CustomMediation.AD_NETWORK adsNetworkID, IAdsNetworkHelper adsHelper)
 {
     adsNetworkHelpers.Add(adsHelper);
 }
Пример #10
0
 UnityAdsManager InitUnityAdsManager()
 {
     _unityAdsHelper = gameObject.GetComponent <UnityAdsManager>() as IAdsNetworkHelper;
     return(_unityAdsHelper as UnityAdsManager);
 }