758 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			758 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | ||
| using System.Collections;
 | ||
| using UnityEngine;
 | ||
| using System.Collections.Generic;
 | ||
| using Touka.GameLogic;
 | ||
| 
 | ||
| public partial class ToukaAdManager : ToukaSingletonMonoBehaviour<ToukaAdManager>
 | ||
| {
 | ||
|     /// <summary>
 | ||
|     /// 标明当前界面是否可以显示banner
 | ||
|     ///
 | ||
|     /// banner load成功,如果当前可显示banner,就会直接显示出来
 | ||
|     /// </summary>
 | ||
|     public static bool isCurrCanShowBanner = true;
 | ||
| 
 | ||
|     #region Consts
 | ||
|     private const int RETRY_TIMES_COUNT = 3;       // 广告重试次数
 | ||
|     #endregion
 | ||
| 
 | ||
|     private int m_bannerRetryTimes = RETRY_TIMES_COUNT;     // bnner重试次数
 | ||
|     private int m_intersRetryTimes = RETRY_TIMES_COUNT;     // 插屏重试次数
 | ||
|     private int m_videoRetryTimes = RETRY_TIMES_COUNT;    // 激励视频重试次数
 | ||
|     private int m_nativeRetryTimes = RETRY_TIMES_COUNT;         // native重试次数
 | ||
| 
 | ||
|     private bool m_noAds = false;       // 是否有广告 true:没广告(除激励视频外) false:有广告 - 用于购买去广告后
 | ||
|     private bool m_initialized = false;
 | ||
| 
 | ||
|     public float NativeWidth = 0f;      // native 宽
 | ||
|     public float NativeHeight = 0f;     // native 高
 | ||
| 
 | ||
|     private IToukaAdInterface toukaAds;
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// init
 | ||
|     /// </summary>
 | ||
| 	public void Init () {
 | ||
| 
 | ||
|         if (StaticOtherConfig.IsDebugLog)
 | ||
|         {
 | ||
|             Debug.unityLogger.logEnabled = true;
 | ||
|         }
 | ||
|         else
 | ||
|         {
 | ||
|             Debug.unityLogger.logEnabled = false;
 | ||
|         }
 | ||
| 
 | ||
|         if (m_initialized) return;
 | ||
|         m_initialized = true;
 | ||
| 
 | ||
| #if UNITY_EDITOR
 | ||
|         return;
 | ||
| #endif
 | ||
| 
 | ||
|         m_noAds = ToukaUtils.GetPlayerPrefsIntByKey(StaticStringsPlayerPrefs.HasRemoveAds) != 0;
 | ||
| 
 | ||
|         NativeWidth = float.Parse(ToukaUtils.GetPlayerPrefsStringByKey(StaticStringsPlayerPrefs.NativeWidthSaved, "0"));
 | ||
|         NativeHeight = float.Parse(ToukaUtils.GetPlayerPrefsStringByKey(StaticStringsPlayerPrefs.NativeHeightSaved, "0"));
 | ||
| 
 | ||
|         toukaAds = ToukaSDKAdapter.Instance;
 | ||
| 
 | ||
|         // 初始化广告id,设置listener
 | ||
|         toukaAds.Init();
 | ||
| 
 | ||
|         Debug.Log("[ToukaAdManager] before loadads.");
 | ||
|         StartCoroutine(LoadAds());
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// load ads
 | ||
|     /// </summary>
 | ||
|     /// <returns></returns>
 | ||
|     IEnumerator LoadAds()
 | ||
|     {
 | ||
|         Debug.Log("[ToukaAdManager] IEnumerator LoadAds.");
 | ||
| 
 | ||
|         if (StaticStringsKey.BannerSwitch)
 | ||
|         {
 | ||
|             Debug.Log("[ToukaAdManager] 初始化banner");
 | ||
|             LoadBanner();
 | ||
| 
 | ||
|             yield return new WaitForSeconds(2);
 | ||
|         }
 | ||
| 
 | ||
|         if (StaticStringsKey.RewardSwitch)
 | ||
|         {
 | ||
|             Debug.Log("[ToukaAdManager] 初始化激励视频");
 | ||
|             LoadVideo();
 | ||
| 
 | ||
|             yield return new WaitForSeconds(2);
 | ||
|         }
 | ||
| 
 | ||
|         if (StaticStringsKey.InterSwitch)
 | ||
|         {
 | ||
|             Debug.Log("[ToukaAdManager] 初始化插屏");
 | ||
|             LoadInterstitial();
 | ||
| 
 | ||
|             yield return new WaitForSeconds(2);
 | ||
|         }
 | ||
| 
 | ||
|         if (StaticStringsKey.NativeSwitch)
 | ||
|         {
 | ||
|             Debug.Log("[ToukaAdManager] 初始化native");
 | ||
|             LoadNative();
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// refresh remove ads
 | ||
|     /// </summary>
 | ||
|     public void RefreshVIPStatus()
 | ||
|     {
 | ||
|         m_noAds = ToukaUtils.GetPlayerPrefsIntByKey(StaticStringsPlayerPrefs.HasRemoveAds) != 0;
 | ||
|         if (m_noAds)
 | ||
|         {
 | ||
|             HideBanner(true);
 | ||
|         }
 | ||
| 
 | ||
|         Debug.Log("[ToukaAdManager] 购买去广告成功,告诉SDK不再显示开屏!!");
 | ||
|     }
 | ||
| 
 | ||
|     #region banner
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// show banner
 | ||
|     /// </summary>
 | ||
|     public void ShowBanner()
 | ||
|     {
 | ||
| #if UNITY_EDITOR
 | ||
|         return;
 | ||
| #endif
 | ||
|         if (!StaticStringsKey.BannerSwitch)
 | ||
|         {
 | ||
|             return;
 | ||
|         }
 | ||
| 
 | ||
|         Debug.Log("in ToukaAdManager, ShowBanner.");
 | ||
| 		if (m_noAds) {
 | ||
| 			Debug.Log ("Touka: VIP don't show banner");
 | ||
|             toukaAds.RemoveBanner (true);
 | ||
| 			return;
 | ||
| 		}
 | ||
| 
 | ||
|         if (!isCurrCanShowBanner)
 | ||
|         {
 | ||
|             Debug.Log("Touka: this view cannot show banner");
 | ||
|             return;
 | ||
|         }
 | ||
| 
 | ||
|         Debug.Log ("Touka: Show banner real ");
 | ||
|         toukaAds.ShowBanner ();
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// force reload banner
 | ||
|     /// </summary>
 | ||
|     public void ForceReloadBanner()
 | ||
|     {
 | ||
|         Debug.Log("Touka: ForceReloadBanner");
 | ||
|         if (!StaticStringsKey.BannerSwitch)
 | ||
|         {
 | ||
|             return;
 | ||
|         }
 | ||
| 
 | ||
| 		LoadBanner();
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// Hides the banner.
 | ||
|     /// </summary>
 | ||
|     /// <param name="_clean">true:remove  false:hide</param>
 | ||
|     public void HideBanner(bool _clean)
 | ||
|     {
 | ||
| #if UNITY_EDITOR
 | ||
|         return;
 | ||
| #endif
 | ||
|         Debug.Log("in ToukaAdManager, HideBanner, _clean:" + _clean);
 | ||
| 
 | ||
|         if (!StaticStringsKey.BannerSwitch)
 | ||
|         {
 | ||
|             return;
 | ||
|         }
 | ||
|         toukaAds.RemoveBanner(_clean);
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// isReady Banner
 | ||
|     /// </summary>
 | ||
|     public bool IsReadyBanner
 | ||
|     {
 | ||
|         get
 | ||
|         {
 | ||
| #if UNITY_EDITOR
 | ||
|             return true;
 | ||
| #endif
 | ||
|             return toukaAds.IsReadyBanner();
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
|     #endregion
 | ||
| 
 | ||
|     #region 插屏 Interstitial
 | ||
|     /// <summary>
 | ||
|     /// show iv
 | ||
|     /// </summary>
 | ||
|     /// <param name="callback"></param>
 | ||
|     /// <param name="_interId"></param>
 | ||
|     /// <param name="_extraParam"></param>
 | ||
|     public void ShowInterstitial (Action<ToukaIntersitialStatus> callback, string _extraParam = "") {
 | ||
| 
 | ||
| #if UNITY_EDITOR
 | ||
|         Debug.Log("[ToukaAdManager] Show Interstitial call");
 | ||
|         if (callback != null) callback(ToukaIntersitialStatus.FAIL);
 | ||
|         return;
 | ||
| #endif
 | ||
| 
 | ||
|         if (m_noAds)
 | ||
|         {
 | ||
|             Debug.Log("[ToukaAdManager] VIP don't show interstitial");
 | ||
|             if (callback != null) callback(ToukaIntersitialStatus.FAIL);
 | ||
|             return;
 | ||
|         }
 | ||
| 
 | ||
|         Debug.Log("[ToukaAdManager] Show Interstitial ");
 | ||
| 
 | ||
| 		if (toukaAds.IsReadyIntersitial ()) {
 | ||
|             ToukaAnalyticsManager.Instance.LogEventByUmeng(StaticStringsEvent.Event_Sort_TKInner_isready_iv_success);
 | ||
|             toukaAds.ShowIntersitial((status) => {
 | ||
|                 if (status == ToukaIntersitialStatus.CLOSE || status == ToukaIntersitialStatus.FAIL)
 | ||
|                 {
 | ||
|                     AudioAdaper.Reset();
 | ||
|                     if (callback != null) callback(status);     // 回调改到这里了
 | ||
|                     AudioAdaper.SetGameSound();     // 恢复原游戏声音状态
 | ||
|                     LoadInterstitial();
 | ||
|                     if (status == ToukaIntersitialStatus.FAIL)      // 如果是失败回调,就做失败打点
 | ||
|                     {
 | ||
|                         ToukaAnalyticsManager.Instance.LogEventByUmeng(StaticStringsEvent.Event_Sort_TKInner_iv_ad_show_failed, new System.Collections.Generic.Dictionary<string, string>() { { StaticStringsEvent.Event_Type_TKInner_ad_position, _extraParam } });
 | ||
|                     }
 | ||
|                 }
 | ||
|                 else if (status == ToukaIntersitialStatus.SHOW)
 | ||
|                 {
 | ||
|                     AudioAdaper.Pause();
 | ||
|                     Debug.Log("[ToukaAdManager] UMENG 插屏SHOW上报");
 | ||
|                     ToukaAnalyticsManager.Instance.LogEventByUmeng(StaticStringsEvent.Event_Sort_TKInner_iv_ad_show, new System.Collections.Generic.Dictionary<string, string>() { { StaticStringsEvent.Event_Type_TKInner_ad_position, _extraParam } });
 | ||
|                     ToukaAnalyticsManager.Instance.LogEventByUmeng(StaticStringsEvent.Event_Sort_TKInner_ivrv_ad_show);
 | ||
| 
 | ||
|                     CheckIn24UploadToConversionValue();
 | ||
|                     IncreateVideoAndIntersitialShowCount(false);
 | ||
|                 }
 | ||
|             });
 | ||
|         }
 | ||
|         else
 | ||
|         {
 | ||
|             if (callback != null) callback(ToukaIntersitialStatus.FAIL);
 | ||
|             ToukaAnalyticsManager.Instance.LogEventByUmeng(StaticStringsEvent.Event_Sort_TKInner_isready_iv_failure);
 | ||
|             LoadInterstitial();
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// isReady iv
 | ||
|     /// </summary>
 | ||
|     /// <param name="_interId"></param>
 | ||
|     /// <returns></returns>
 | ||
|     public bool IsReadyIntersitial()
 | ||
|     {
 | ||
| #if UNITY_EDITOR
 | ||
|         return false;
 | ||
| #endif
 | ||
|         bool isReadyInter = toukaAds.IsReadyIntersitial();
 | ||
|         Debug.Log("[ToukaAdManager] isReadyInter : " + isReadyInter);
 | ||
|         return isReadyInter;
 | ||
|     }
 | ||
| 
 | ||
|     #endregion
 | ||
| 
 | ||
|     #region 激励视频 RewardVideo
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// show video
 | ||
|     /// </summary>
 | ||
|     /// <param name="_callback"></param>
 | ||
|     /// <param name="_videoPlace"></param>
 | ||
|     /// <returns></returns>
 | ||
|     public bool ShowVideo(Action<ToukaVideoStatus> _callback, ToukaVideoPlace _videoPlace)
 | ||
|     {
 | ||
| 
 | ||
|         ToukaAnalyticsManager.Instance.LogEventByUmeng(StaticStringsEvent.Event_Sort_TKInner_ad_button_click, new System.Collections.Generic.Dictionary<string, string>() { { StaticStringsEvent.Event_Type_TKInner_ad_position, _videoPlace.ClickPlace } });
 | ||
| #if UNITY_EDITOR
 | ||
|         _callback(ToukaVideoStatus.SUCCESS);
 | ||
|         return true;
 | ||
| #endif
 | ||
|         if (toukaAds.IsReadyVideo())
 | ||
|         {
 | ||
|             ToukaAnalyticsManager.Instance.LogEventByUmeng(StaticStringsEvent.Event_Sort_TKInner_isready_rv_success, new System.Collections.Generic.Dictionary<string, string>() { { StaticStringsEvent.Event_Type_TKInner_ad_position, _videoPlace.ClickPlace } });
 | ||
|             toukaAds.ShowVideo((status) =>
 | ||
|             {
 | ||
|                 if (status == ToukaVideoStatus.CLOSE)
 | ||
|                 {
 | ||
|                     AudioAdaper.SetGameSound();     // 恢复原游戏声音状态
 | ||
|                     LoadVideo();
 | ||
|                 }
 | ||
|                 if (status == ToukaVideoStatus.SHOW)
 | ||
|                 {
 | ||
|                     AudioAdaper.Pause();
 | ||
|                     // 播激励视频上报打点
 | ||
|                     Debug.Log("UMENG 播激励视频上报打点");
 | ||
|                     ToukaAnalyticsManager.Instance.LogEventByUmeng(StaticStringsEvent.Event_Sort_TKInner_rv_ad_show, new System.Collections.Generic.Dictionary<string, string>() { { StaticStringsEvent.Event_Type_TKInner_ad_position, _videoPlace.ClickPlace } });
 | ||
|                     ToukaAnalyticsManager.Instance.LogEventByUmeng(StaticStringsEvent.Event_Sort_TKInner_ivrv_ad_show);
 | ||
|                     CheckIn24UploadToConversionValue();
 | ||
|                     IncreateVideoAndIntersitialShowCount(true);
 | ||
|                     //Time.timeScale = 0.0f;
 | ||
|                 }
 | ||
|                 if (status == ToukaVideoStatus.CANCEL)
 | ||
|                 {
 | ||
| 
 | ||
|                 }
 | ||
|                 if (status == ToukaVideoStatus.FAIL)
 | ||
|                 {
 | ||
|                     ToukaAnalyticsManager.Instance.LogEventByUmeng(StaticStringsEvent.Event_Sort_TKInner_rv_ad_show_fail, new System.Collections.Generic.Dictionary<string, string>() { { StaticStringsEvent.Event_Type_TKInner_ad_position, _videoPlace.ClickPlace } });
 | ||
|                 }
 | ||
|                 if (status == ToukaVideoStatus.SUCCESS)
 | ||
|                 {
 | ||
| 
 | ||
|                 }
 | ||
|                 if (_callback != null) _callback(status);
 | ||
| 
 | ||
|             });
 | ||
|             return true;
 | ||
|         }
 | ||
|         else
 | ||
|         {
 | ||
|             if (_callback != null) _callback(ToukaVideoStatus.FAIL);
 | ||
| 
 | ||
|             Debug.Log("Touka: Don't show Video for hasAdReady is NO");
 | ||
|             //PopupTipsPanel.PopupTips(LocalizationManager.GetTermTranslation("1045"));
 | ||
|             ToukaAnalyticsManager.Instance.LogEventByUmeng(StaticStringsEvent.Event_Sort_TKInner_isready_rv_failure, new System.Collections.Generic.Dictionary<string, string>() { { StaticStringsEvent.Event_Type_TKInner_ad_position, _videoPlace.ClickPlace } });
 | ||
| 
 | ||
|             LoadVideo();
 | ||
|             return false;
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// isReady RV
 | ||
|     /// </summary>
 | ||
|     public bool IsReadyVideo
 | ||
|     {
 | ||
|         get
 | ||
|         {
 | ||
| #if UNITY_EDITOR
 | ||
|             return true;
 | ||
| #endif
 | ||
|             if (toukaAds.IsReadyVideo())
 | ||
|             {
 | ||
|                 Debug.Log("[ToukaAdManager] IsReadyVideo = true. ");
 | ||
|                 return true;
 | ||
|             }
 | ||
|             else
 | ||
|             {
 | ||
|                 LoadVideo();
 | ||
|                 Debug.Log("[ToukaAdManager] IsReadyVideo = false. ");
 | ||
|                 return false;
 | ||
|             }
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     #endregion
 | ||
| 
 | ||
|     #region native
 | ||
|     /// <summary>
 | ||
|     /// isReady Native
 | ||
|     /// </summary>
 | ||
|     public bool IsReadyNative
 | ||
|     {
 | ||
|         get
 | ||
|         {
 | ||
| #if UNITY_EDITOR
 | ||
|             return false;
 | ||
| #endif
 | ||
|             return toukaAds.IsReadyNative();
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// show native
 | ||
|     /// </summary>
 | ||
|     /// <param name="x"></param>
 | ||
|     /// <param name="y"></param>
 | ||
|     /// <param name="width"></param>
 | ||
|     /// <param name="height"></param>
 | ||
|     /// <returns></returns>
 | ||
|     public bool ShowNative(float x, float y, float width, float height)
 | ||
|     {
 | ||
|         Debug.Log("ShowNative()");
 | ||
| #if UNITY_EDITOR
 | ||
|         return false;
 | ||
| #endif
 | ||
|         Debug.Log("[ToukaAdManager] ShowNative with frame, before isReadyNative");
 | ||
|         if (m_noAds)
 | ||
|         {
 | ||
|             Debug.Log("Touka: VIP don't ShowNative");
 | ||
|             toukaAds.RemoveNative(true);
 | ||
|             return false;
 | ||
|         }
 | ||
|         if (IsReadyNative)
 | ||
|         {
 | ||
|             Debug.Log("Touka: ShowNative, x : " + x + " , y : " + y + " , width : " + width + " , height : " + height);
 | ||
|             toukaAds.ShowNative(x, y, width, height);
 | ||
| 
 | ||
|             return true;
 | ||
|         }
 | ||
|         else
 | ||
|         {
 | ||
|             LoadNative();
 | ||
|         }
 | ||
| 
 | ||
|         return false;
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// set native bounds first
 | ||
|     /// </summary>
 | ||
|     /// <param name="width"></param>
 | ||
|     /// <param name="height"></param>
 | ||
|     public void SetNativeBoundsFist(float width, float height)
 | ||
|     {
 | ||
|         if (ToukaUtils.FloatEqual(ToukaAdManager.Instance.NativeWidth, 0) && ToukaUtils.FloatEqual(ToukaAdManager.Instance.NativeHeight, 0))
 | ||
|         {
 | ||
|             Debug.Log("inner ---- SetNativeBoundsFist, width : " + width + " , height : " + height);
 | ||
|             ToukaAdManager.Instance.NativeWidth = width;
 | ||
|             ToukaAdManager.Instance.NativeHeight = height;
 | ||
| 
 | ||
|             ToukaUtils.SavePlayerPrefsStringByKeyValue(StaticStringsPlayerPrefs.NativeWidthSaved, ToukaAdManager.Instance.NativeWidth.ToString());
 | ||
|             ToukaUtils.SavePlayerPrefsStringByKeyValue(StaticStringsPlayerPrefs.NativeHeightSaved, ToukaAdManager.Instance.NativeHeight.ToString());
 | ||
| 
 | ||
|             ToukaAdManager.Instance.LoadNative();
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// hide native
 | ||
|     /// </summary>
 | ||
|     /// <param name="_clean"></param>
 | ||
|     public void HideNative(bool _clean)
 | ||
|     {
 | ||
| #if UNITY_EDITOR
 | ||
|         return;
 | ||
| #endif
 | ||
|         if (toukaAds != null)
 | ||
|         {
 | ||
|             toukaAds.RemoveNative(_clean);
 | ||
|             if(_clean ==false ){
 | ||
|                 LoadNative();    
 | ||
|             }
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     #endregion
 | ||
| 
 | ||
|     #region Load & Reload
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// load banner
 | ||
|     /// </summary>
 | ||
|     public void LoadBanner()
 | ||
|     {
 | ||
| 		Debug.Log ("Touka: LoadBanner");
 | ||
| #if UNITY_EDITOR
 | ||
| 		return;
 | ||
| #endif
 | ||
|         if (!StaticStringsKey.BannerSwitch)
 | ||
|         {
 | ||
|             return;
 | ||
|         }
 | ||
|         if (Application.internetReachability != NetworkReachability.NotReachable)
 | ||
|         {
 | ||
|             Debug.Log("start to load banner");
 | ||
|             toukaAds.LoadBanner((success) => {
 | ||
|                 if (success)
 | ||
|                 {
 | ||
|                     Debug.Log("in ToukaAdManager, loadBanner. success");
 | ||
|                     m_bannerRetryTimes = RETRY_TIMES_COUNT;
 | ||
|                     if (isCurrCanShowBanner)
 | ||
|                     {
 | ||
|                         Debug.Log("可以显示banner");
 | ||
|                         ShowBanner();
 | ||
|                     }
 | ||
|                 }
 | ||
|                 else
 | ||
|                 {
 | ||
|                     Debug.Log("load banner fail");
 | ||
|                     ReLoadBanner();
 | ||
|                 }
 | ||
|             });
 | ||
|         }
 | ||
|         else
 | ||
|         {
 | ||
|             Debug.Log("Touka: Don't load banner for NetworkReachability.NotReachable");
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// load iv
 | ||
|     /// </summary>
 | ||
|     public void LoadInterstitial()
 | ||
|     {
 | ||
|         if (Application.internetReachability != NetworkReachability.NotReachable)
 | ||
|         {
 | ||
|             toukaAds.LoadInterstitial((success) =>
 | ||
|             {
 | ||
|                 if (success)
 | ||
|                 {
 | ||
|                     Debug.Log("加载插屏广告成功");
 | ||
|                     m_intersRetryTimes = RETRY_TIMES_COUNT;
 | ||
|                     CancelInvoke();
 | ||
|                 }
 | ||
|                 else
 | ||
|                 {
 | ||
|                     Debug.Log("加载插屏广告失败,重新加载:" + m_intersRetryTimes);
 | ||
| #if UNITY_IOS
 | ||
|                     ReloadInterstitial();
 | ||
| #endif
 | ||
| 
 | ||
|                 }
 | ||
|             });
 | ||
|         }
 | ||
|         else
 | ||
|         {
 | ||
|             Debug.Log("Touka: Don't load interstitial for NetworkReachability.NotReachable");
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// load rv
 | ||
|     /// </summary>
 | ||
|     public void LoadVideo()
 | ||
|     {
 | ||
|         if (Application.internetReachability != NetworkReachability.NotReachable)
 | ||
|         {
 | ||
|             toukaAds.LoadVideo((success) =>
 | ||
|             {
 | ||
|                 if (success)
 | ||
|                 {
 | ||
|                     m_videoRetryTimes = RETRY_TIMES_COUNT;
 | ||
|                 }
 | ||
|                 else
 | ||
|                 {
 | ||
|                     ReloadVideo();
 | ||
|                 }
 | ||
|             });
 | ||
|         }
 | ||
|         else
 | ||
|         {
 | ||
|             Debug.Log("Touka: Don't load video for NetworkReachability.NotReachable");
 | ||
|         }
 | ||
| 
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// load native
 | ||
|     /// </summary>
 | ||
|     public void LoadNative()
 | ||
|     {
 | ||
| #if IOS_CN
 | ||
|         if (Application.internetReachability != NetworkReachability.NotReachable)
 | ||
|         {
 | ||
| 
 | ||
|             if(toukaAds != null)
 | ||
|             {
 | ||
|                 toukaAds.LoadNative((success) =>
 | ||
|                 {
 | ||
|                     if (success)
 | ||
|                     {
 | ||
|                         Debug.Log("native 加载成功");
 | ||
|                         m_nativeRetryTimes = RETRY_TIMES_COUNT;
 | ||
|                     }
 | ||
|                     else
 | ||
|                     {
 | ||
|                         Debug.Log("native 加载失败");
 | ||
|                         ReloadNative();
 | ||
|                     }
 | ||
|                 });
 | ||
|             }
 | ||
|         }
 | ||
|         else
 | ||
|         {
 | ||
|             Debug.Log("Touka: Don't load native for NetworkReachability.NotReachable");
 | ||
|         }
 | ||
| #endif
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// reload banner
 | ||
|     /// </summary>
 | ||
|     private void ReLoadBanner()
 | ||
|     {
 | ||
|         if (!StaticStringsKey.BannerSwitch)
 | ||
|         {
 | ||
|             return;
 | ||
|         }
 | ||
|         Debug.Log("Touka: ReLoadBanner times :" + m_bannerRetryTimes);
 | ||
|         if (Application.internetReachability != NetworkReachability.NotReachable)
 | ||
|         {
 | ||
|             if (m_bannerRetryTimes > 0)
 | ||
|             {
 | ||
|                 m_bannerRetryTimes--;
 | ||
|                 Debug.Log("has times count, go on load again");
 | ||
|                 LoadBanner();
 | ||
|             }
 | ||
|             else
 | ||
|             {
 | ||
|                 Debug.Log("no times count, don't load again");
 | ||
|                 m_bannerRetryTimes = RETRY_TIMES_COUNT;
 | ||
|             }
 | ||
|         }
 | ||
|         else
 | ||
|         {
 | ||
|             Debug.Log("Touka: Don't Reload banner for NetworkReachability.NotReachable");
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// reload video
 | ||
|     /// </summary>
 | ||
|     private void ReloadVideo()
 | ||
|     {
 | ||
|         Debug.Log("Touka: ReLoadVideo, times : " + m_videoRetryTimes);
 | ||
|         if (Application.internetReachability != NetworkReachability.NotReachable)
 | ||
|         {
 | ||
|             if (m_videoRetryTimes > 0)
 | ||
|             {
 | ||
|                 m_videoRetryTimes--;
 | ||
|                 LoadVideo();
 | ||
|             }
 | ||
|             else
 | ||
|             {
 | ||
|                 m_videoRetryTimes = RETRY_TIMES_COUNT;
 | ||
|             }
 | ||
|         }
 | ||
|         else
 | ||
|         {
 | ||
|             Debug.Log("Touka: Don't Reload video for NetworkReachability.NotReachable");
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// reload iv
 | ||
|     /// </summary>
 | ||
|     private void ReloadInterstitial()
 | ||
|     {
 | ||
|         Debug.Log("Touka: ReLoadInterstitial, times:" + m_intersRetryTimes);
 | ||
|         if (m_intersRetryTimes > 0)
 | ||
|         {
 | ||
|             m_intersRetryTimes--;
 | ||
|             LoadInterstitial();
 | ||
|         }
 | ||
|         else
 | ||
|         {
 | ||
|             m_intersRetryTimes = RETRY_TIMES_COUNT;
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// reload native
 | ||
|     /// </summary>
 | ||
|     private void ReloadNative()
 | ||
|     {
 | ||
|         Debug.Log("Touka: ReloadNative. times : " + m_nativeRetryTimes);
 | ||
|         if (m_nativeRetryTimes > 0)
 | ||
|         {
 | ||
|             m_nativeRetryTimes--;
 | ||
|             LoadNative();
 | ||
|         }
 | ||
|         else
 | ||
|         {
 | ||
|             m_nativeRetryTimes = RETRY_TIMES_COUNT;
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
| #endregion
 | ||
| 
 | ||
| #region Utils below
 | ||
| 
 | ||
|     // Utils below ////////////////////////////////////////////////////////////////
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// 判断 插屏+激励视频 总次数,是否达到了上报总次数
 | ||
|     /// </summary>
 | ||
|     /// <returns></returns>
 | ||
|     private bool IncreateVideoAndIntersitialShowCount(bool _video)
 | ||
|     {
 | ||
|         if (!ToukaUtilsInner.Instance.isFirstDayLogin)      // 非首日登录
 | ||
|         {
 | ||
|             return false;
 | ||
|         }
 | ||
| 
 | ||
|         string playerPrefsKey = StaticStringsPlayerPrefs.IntersitialShowCount;
 | ||
|         if (_video)
 | ||
|         {
 | ||
|             playerPrefsKey = StaticStringsPlayerPrefs.VideoShowCount;
 | ||
|         }
 | ||
| 
 | ||
|         // 记录 插屏/激励视频 展示次数
 | ||
|         var showCount = ToukaUtils.GetPlayerPrefsIntByKey(playerPrefsKey);
 | ||
|         ToukaUtils.SavePlayerPrefsIntByKeyValue(playerPrefsKey, showCount + 1);
 | ||
| 
 | ||
|         // 读取 插屏 + 激励视频 总次数
 | ||
|         var videoCount = ToukaUtils.GetPlayerPrefsIntByKey(StaticStringsPlayerPrefs.VideoShowCount); 
 | ||
|         var intersitialCount = ToukaUtils.GetPlayerPrefsIntByKey(StaticStringsPlayerPrefs.IntersitialShowCount); 
 | ||
| 
 | ||
|         Debug.Log("激励视频+插屏次数:" + (videoCount + intersitialCount) + ", rv onlineCount : " + StaticOnlineParams.NewUserRVCountOnlineParams.DefaultValue + " , iv onlineCount : " + StaticOnlineParams.NewUserAdsCountOnlineParams.DefaultValue);
 | ||
| 
 | ||
|         //if (videoCount >= int.Parse(StaticOnlineParams.NewUserRVCountOnlineParams.DefaultValue))
 | ||
|         //{
 | ||
|         //    if (ToukaUtils.IfFirstCheckPlayerPrefs(StaticStringsPlayerPrefs.TKInner_HasTenjinUploadRVCount))
 | ||
|         //    {
 | ||
|         //        Debug.Log(string.Format("看激励视频达到{0}次,上报tenjin. ", videoCount));
 | ||
|         //        //ToukaAnalyticsManager.Instance.LogEvent(ToukaLogType.Tenjin, StaticStringsEvent.Event_Tenjin_NewUserRVCount);     // 暂时没要求上报了  // 上报新用户观看激励视频次数
 | ||
|         //    }
 | ||
|         //}
 | ||
| 
 | ||
|         if ((videoCount + intersitialCount) >= int.Parse(StaticOnlineParams.NewUserAdsCountOnlineParams.DefaultValue))
 | ||
|         {
 | ||
|             if (ToukaUtils.IfFirstCheckPlayerPrefs(StaticStringsPlayerPrefs.TKInner_HasTenjinUploadADSCount))
 | ||
|             {
 | ||
|                 Debug.Log(string.Format("看视频广告达到{0}次,上报tenjin. ", videoCount + intersitialCount));
 | ||
|                 ToukaAnalyticsManager.Instance.LogEvent(ToukaLogType.Tenjin, StaticStringsEvent.Event_Tenjin_TKInner_NewUserAdsCount);
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         return videoCount + intersitialCount >= int.Parse(StaticOnlineParams.NewUserAdsCountOnlineParams.DefaultValue);
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// iOS 14要求,24h 内新安装用户 有观看 插屏/激励视频, 则上报。
 | ||
|     /// </summary>
 | ||
|     private void CheckIn24UploadToConversionValue()
 | ||
|     {
 | ||
|         Debug.Log("CheckIn24UploadToConversionValue");
 | ||
| 
 | ||
|         if(ToukaUtils.GetPlayerPrefsIntByKey("Has24UploadToConversionValue") == 1)
 | ||
|         {
 | ||
|             return;
 | ||
|         }
 | ||
| 
 | ||
|         if (ToukaUtils.isNewUser())
 | ||
|         {
 | ||
|             Debug.Log("UpdateConversionValue 000011");
 | ||
| #if !NO_SDK
 | ||
|             TGiOSAdManager.Instance.UpdateConversionValue("000011");
 | ||
| #endif
 | ||
|             ToukaUtils.SavePlayerPrefsIntByKeyValue("Has24UploadToConversionValue", 1);
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
| #endregion
 | ||
| } |