update: 更新虚拟币获取和消耗点位信息
							parent
							
								
									f5d1e131d9
								
							
						
					
					
						commit
						1026f6f04e
					
				|  | @ -1,23 +1,25 @@ | |||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using Firebase.RemoteConfig; | ||||
| using Guru; | ||||
| using Guru.LitJson; | ||||
| using UnityEngine; | ||||
| 
 | ||||
| namespace Guru | ||||
| { | ||||
|      | ||||
|     using System; | ||||
|     using System.Collections.Generic; | ||||
|     using Firebase.RemoteConfig; | ||||
|     using Guru.LitJson; | ||||
|     using UnityEngine; | ||||
|      | ||||
|     /// <summary> | ||||
|     /// ABTEST 管理器 | ||||
|     /// </summary> | ||||
|     public class ABTestManager : Singleton<ABTestManager> | ||||
|     { | ||||
| 
 | ||||
|         public const string Version = "1.0.0"; | ||||
|         private FirebaseRemoteConfig _remoteConfig; | ||||
| 
 | ||||
|         private List<ABParamData> _params; | ||||
|          | ||||
|          | ||||
|         internal static void LogCrashlytics(string msg) => Analytics.LogCrashlytics(msg); | ||||
|          | ||||
|         internal static void LogCrashlytics(Exception ex) => Analytics.LogCrashlytics(ex); | ||||
| 
 | ||||
|          | ||||
|         #region 初始化 | ||||
|  | @ -33,6 +35,7 @@ namespace Guru | |||
|             } | ||||
|             catch (Exception e) | ||||
|             { | ||||
|                 LogCrashlytics(e); | ||||
|                 Debug.LogError(e); | ||||
|             } | ||||
|              | ||||
|  | @ -152,7 +155,7 @@ namespace Guru | |||
|             catch (Exception e) | ||||
|             { | ||||
|                 string msg = $"[AB] --- Parse AB Param Error -> Value: {value}\n{e.Message}"; | ||||
|                 Analytics.LogCrashlytics(msg); | ||||
|                 ABTestManager.LogCrashlytics(msg); | ||||
|                 Debug.Log(msg); | ||||
|             } | ||||
|             return null; | ||||
|  |  | |||
|  | @ -111,5 +111,9 @@ namespace Guru | |||
| 		public static readonly string PropertyATTStatus = "att_status";  // ATT 状态 | ||||
| 		public static readonly string PropertyGDPR = "gdpr"; // GDPR状态 | ||||
| 		 | ||||
| 		// 经济相关 | ||||
| 		public static readonly string ParameterBalance = "balance"; // 用于余额 | ||||
| 		public static readonly string ParameterSku = "sku"; // sku | ||||
| 		public static readonly string ParameterVirtualCurrencyName = "virtual_currency_name"; // 虚拟货币名称 | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,115 @@ | |||
| 
 | ||||
| 
 | ||||
| namespace Guru | ||||
| { | ||||
|     using System.Collections.Generic; | ||||
|     using Facebook.Unity; | ||||
|      | ||||
|     /// <summary> | ||||
|     /// 经济统计接口 | ||||
|     /// </summary> | ||||
|     public partial class Analytics | ||||
|     { | ||||
|         //----------- 货币类型常用名称 ------------------ | ||||
|          | ||||
|         public const string CurrencyNameCoin = "coin"; | ||||
|         public const string CurrencyNameCash = "cash"; | ||||
|         public const string CurrencyNameDiamond = "diamond"; | ||||
|         public const string CurrencyNameGem = "gem"; | ||||
|         public const string CurrencyNameCrystal = "crystal"; | ||||
|         public const string CurrencyNameWood = "wood"; | ||||
|         public const string CurrencyNameStone = "stone"; | ||||
|         public const string CurrencyNameIron = "iron"; | ||||
|         public const string CurrencyNameOre = "ore"; | ||||
|         public const string CurrencyNameGas = "gas"; | ||||
|         public const string CurrencyNameGold = "gold"; | ||||
|         public const string CurrencyNameSilver = "silver"; | ||||
|         public const string CurrencyNameCopper = "copper"; | ||||
|          | ||||
|         //----------- 货币类型常用名称 ------------------ | ||||
| 
 | ||||
|          | ||||
|          | ||||
|         /// <summary> | ||||
|         /// 获取虚拟货币 | ||||
|         /// </summary> | ||||
|         /// <param name="currencyName"></param> | ||||
|         /// <param name="value"></param> | ||||
|         /// <param name="balance"></param> | ||||
|         /// <param name="method"></param> | ||||
|         /// <param name="levelName"></param> | ||||
|         /// <param name="isIap"></param> | ||||
|         /// <param name="sku"></param> | ||||
|         /// <param name="scene"></param> | ||||
|         public static void EarnVirtualCurrency(string currencyName, int value, int balance,  | ||||
|             string method = "",  | ||||
|             string levelName = "", | ||||
|             bool isIap = false, | ||||
|             string sku = "", | ||||
|             string scene = "") | ||||
|         { | ||||
|             if (isIap) method = "iap_buy";   | ||||
|             var data = new Dictionary<string, dynamic>() | ||||
|             { | ||||
|                 { "virtual_currency_name", currencyName }, | ||||
|                 { ParameterValue, value }, | ||||
|                 { ParameterBalance, balance }, | ||||
|                 { ParameterLevelName, levelName }, | ||||
|                 { ParameterItemCategory, method }, | ||||
|             }; | ||||
|              | ||||
|             if (!string.IsNullOrEmpty(scene)) data[ParameterItemName] = scene; // 获取的虚拟货币或者道具的场景 | ||||
|             if (!string.IsNullOrEmpty(sku)) data[ParameterSku] = sku; // 商品的 sku | ||||
|              | ||||
|             LogEvent(EventEarnVirtualCurrency, data, new EventSetting() { EnableFirebaseAnalytics = true }); | ||||
|              | ||||
|             // FB 上报收入点 | ||||
|             FB.LogAppEvent(EventEarnVirtualCurrency, value, data); | ||||
|         } | ||||
|          | ||||
|          | ||||
|         public static void SpendVirtualCurrency(string currencyName, int value, int balance,  | ||||
|             string method = "",  | ||||
|             string levelName = "", | ||||
|             string scene = "") | ||||
|         { | ||||
|             var data = new Dictionary<string, dynamic>() | ||||
|             { | ||||
|                 { ParameterVirtualCurrencyName, currencyName }, | ||||
|                 { ParameterValue, value }, | ||||
|                 { ParameterBalance, balance }, | ||||
|                 { ParameterLevelName, levelName }, | ||||
|                 { ParameterItemCategory, method }, | ||||
|             }; | ||||
|              | ||||
|             if (!string.IsNullOrEmpty(scene)) data[ParameterItemName] = scene; // 获取的虚拟货币或者道具的场景 | ||||
|              | ||||
|             LogEvent(EventSpendVirtualCurrency, data, new EventSetting() { EnableFirebaseAnalytics = true }); | ||||
|              | ||||
|             // FB 上报消费点 | ||||
|             FB.LogAppEvent(EventSpendVirtualCurrency, value, data); | ||||
|             // FB 上报消耗事件买量点 | ||||
|             FBSpentCredits(value, scene, method);  // 点位信息有变化 | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// FB 消耗点位上报 | ||||
|         /// </summary> | ||||
|         /// <param name="amount"></param> | ||||
|         /// <param name="contentId"></param> | ||||
|         /// <param name="contentType"></param> | ||||
|         private static void FBSpentCredits(int amount, string contentId, string contentType) | ||||
|         { | ||||
|             FB.LogAppEvent(AppEventName.SpentCredits, amount,  | ||||
|                 new Dictionary<string, object>() | ||||
|                 { | ||||
|                     { AppEventParameterName.ContentID, contentId }, | ||||
|                     { AppEventParameterName.ContentType, contentType },  | ||||
|                 }); | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,3 @@ | |||
| fileFormatVersion: 2 | ||||
| guid: 6dfc5d3bae614b8ea463c0f622130016 | ||||
| timeCreated: 1706756422 | ||||
|  | @ -204,7 +204,5 @@ namespace Guru | |||
| 			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterTravelClass : "travel_class"; | ||||
| 		private static string ParameterValue => | ||||
| 			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterValue : "value"; | ||||
| 		private static string ParameterVirtualCurrencyName => | ||||
| 			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterVirtualCurrencyName : "virtual_currency_name"; | ||||
| 	} | ||||
| } | ||||
		Loading…
	
		Reference in New Issue