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 | |||
|  | } |