Exemplo n.º 1
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="adId"></param>
    /// <param name="onRewardEarned"></param>
    /// <param name="loadOneMoreOnOpening">загрузить ещё один такой же блок рекламы при открытии этого (чтобы после закрытия УЖЕ был готов к показу)</param>
    /// <param name="reloadAfterClosing">загрузить такой же блок рекламы после закрытия этого</param>
    /// <param name="tryReshowingOnShowingFailed"></param>
    /// <returns>показалась ли рекламка</returns>
    public static bool ShowRewardedAd(RewardedAdId adId, Action <Reward> onRewardEarned = null, bool loadOneMoreOnOpening = false, bool reloadAfterClosing = false, int tryReshowingOnShowingFailed = 0)
    {
        //это для тестирования
        //if (debug)
        //    adId = RewardedAdId.ID__TEST;

        var thisIdAds = rewardedAds.Where(a => a.adId == adId);
        var loadedAd  = thisIdAds.Where(r => r.ad.IsLoaded()).FirstOrDefault();

        if (!thisIdAds.Any())
        {
            Toast.Instance.Show(LocalizedStrings.reward_ad_not_loaded);
            return(false);
        }

        if (loadedAd == null)
        {
            Toast.Instance.Show(LocalizedStrings.reward_ad_not_loaded_yet);
            return(false);
        }

        loadedAd.onRewardEarned              = onRewardEarned;
        loadedAd.loadOneMoreOnOpening        = loadOneMoreOnOpening;
        loadedAd.reloadAfterClosing          = reloadAfterClosing;
        loadedAd.tryReshowingOnShowingFailed = tryReshowingOnShowingFailed;

        loadedAd.ad.Show();

        return(true);
    }
Exemplo n.º 2
0
 private void ClearCachedAds(RewardedAdId id)
 {
     if (revarderAds.ContainsKey(id))
     {
         revarderAds[id].Clear();
     }
 }
Exemplo n.º 3
0
 private void ClearCachedAd(RewardedAdId id, RewardedAd ad)
 {
     if (revarderAds.ContainsKey(id))
     {
         revarderAds[id].Remove(ad);
     }
 }
Exemplo n.º 4
0
        public void ShowRewardedAd(RewardedAdId id, Action onEarnedreward, Action onOpened, Action onClosed, Action onFailedToShow)
        {
            var ad = GetCachedAd(id);

            if (ad == null)
            {
                onFailedToShow?.Invoke();
                return;
            }

            ad.OnUserEarnedReward += (sender, args) =>
            {
                onEarnedreward?.Invoke();
            };
            ad.OnAdOpening += (sender, args) =>
            {
                onOpened?.Invoke();
            };
            ad.OnAdClosed += (sender, args) =>
            {
                ClearCachedAd(id, ad);
                onClosed?.Invoke();
            };
            ad.OnAdFailedToShow += (sender, args) =>
            {
                ClearCachedAd(id, ad);
                onFailedToShow?.Invoke();
            };

            ad.Show();
        }
Exemplo n.º 5
0
        private RewardedAd GetCachedAd(RewardedAdId id)
        {
            RewardedAd ad = null;

            if (revarderAds.ContainsKey(id))
            {
                ad = revarderAds[id].Where(_ad => _ad.IsLoaded()).FirstOrDefault();
            }
            return(ad);
        }
Exemplo n.º 6
0
 public RewardedAdId GetActualId(RewardedAdId id)
 {
     if (debugMode)
     {
         return(RewardedAdId.Test);
     }
     else
     {
         return(id);
     }
 }
Exemplo n.º 7
0
 private void CacheAd(RewardedAdId id, RewardedAd ad)
 {
     if (!revarderAds.ContainsKey(id))
     {
         revarderAds.Add(id, new List <RewardedAd>()
         {
             ad
         });
     }
     else
     {
         revarderAds[id].Add(ad);
     }
 }
Exemplo n.º 8
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="adId"></param>
    /// <param name="onRewardEarned"></param>
    /// <returns>false если что то пошло не так. true если началась загрузка</returns>
    public static bool LoadRewardedAd(RewardedAdId adId, int tryReloadOnLoadingFailed = 0)
    {
        //Debug.Log($"advertising dubig is {debug}");

        ////это для тестирования
        //if (debug)
        //    adId = RewardedAdId.ID__TEST;

        var adCount = rewardedAds.Count(a => a.adId == adId);

        Debug.Log($"count of olready loaded advertising {adId} is: {adCount}. and max is: {GADWrapper.maximumSameRevardedAds}");

        if (adCount >= GADWrapper.maximumSameRevardedAds)
        {
            return(false);
        }

        var ad = new RewardedAd(Const.GetId(adId));

        rewardedAds.Add
        (
            new RewardedAdWrap()
        {
            adId = adId,
            ad   = ad,
            tryReloadOnLoadingFailed = tryReloadOnLoadingFailed
        }
        );

        ad.OnAdClosed         += Ad_OnAdClosed;
        ad.OnAdFailedToLoad   += Ad_OnAdFailedToLoad;
        ad.OnAdFailedToShow   += Ad_OnAdFailedToShow;
        ad.OnAdLoaded         += Ad_OnAdLoaded;
        ad.OnAdOpening        += Ad_OnAdOpening;
        ad.OnUserEarnedReward += Ad_OnUserEarnedReward;

        //Use AdRequest.Builder.addTestDevice("B36E541FF471B2ADC7410D9DEAC3A651") to get test ads on this device.
        ad.LoadAd(new AdRequest
                  .Builder()
                  .AddTestDevice("B36E541FF471B2ADC7410D9DEAC3A651")
                  .Build()
                  );

        return(true);
    }
Exemplo n.º 9
0
        public void LoadRevardedAd(RewardedAdId id, Action <bool> onLoaded)
        {
            var ad      = new RewardedAd(ToStringId(GetActualId(id)));
            var request = new AdRequest.Builder()
                          .Build();

            ad.OnAdLoaded += (sender, args) =>
            {
                CacheAd(id, ad);
                onLoaded?.Invoke(true);
            };
            ad.OnAdFailedToLoad += (sender, args) =>
            {
                ClearCachedAd(id, ad);
                onLoaded?.Invoke(false);
            };

            ad.LoadAd(request);
        }
Exemplo n.º 10
0
        public string ToStringId(RewardedAdId id)
        {
            var field = id
                        .GetType()
                        .GetMember(id.ToString())
                        .Where(m => m != null)
                        .FirstOrDefault();

            if (field != null)
            {
                var value = field.GetCustomAttributes(typeof(StringValueAttribute), false)
                            .Select(a => a as StringValueAttribute)
                            .Where(a => a != null)
                            .Select(a => a.Value)
                            .FirstOrDefault();

                if (value != null)
                {
                    return(value);
                }
            }

            throw new Exception($"no string value for this {nameof(id)}");
        }
Exemplo n.º 11
0
 public static string GetId(RewardedAdId revardedId)
 {
     return(revardedAdIds[(int)revardedId]);
 }
Exemplo n.º 12
0
 public bool HasCachedAd(RewardedAdId id)
 {
     return(revarderAds.ContainsKey(id) && revarderAds[id].Any());
 }