update: 为公用打点接口 暴露 extra 属性方便项目扩展

deeplink
胡宇飞 2024-05-11 14:19:11 +08:00
parent 4cd2e5ff19
commit 0e4a0a68cb
1 changed files with 55 additions and 53 deletions

View File

@ -68,9 +68,10 @@ namespace Guru
/// <param name="levelID"></param> /// <param name="levelID"></param>
/// <param name="startType"></param> /// <param name="startType"></param>
/// <param name="isReplay"></param> /// <param name="isReplay"></param>
/// <param name="extra"></param>
public static void LogLevelStart(int levelId, string startType = EventLevelStartModePlay, public static void LogLevelStart(int levelId, string startType = EventLevelStartModePlay,
string levelCategory = LevelCategoryMain, string levelName = "", string levelID = "", string levelCategory = LevelCategoryMain, string levelName = "", string levelID = "",
bool isReplay = false) bool isReplay = false, Dictionary<string, object> extra = null)
{ {
if (!IsInitialSuccess) if (!IsInitialSuccess)
{ {
@ -78,9 +79,9 @@ namespace Guru
return; return;
} }
Analytics.LogLevelStart(levelId, levelName, levelCategory, levelID, startType, isReplay); Analytics.LogLevelStart(levelId, levelName, levelCategory, levelID, startType, isReplay, extra);
} }
/// <summary> /// <summary>
/// 游戏点击 Continue 重开始游戏 /// 游戏点击 Continue 重开始游戏
/// </summary> /// </summary>
@ -88,10 +89,11 @@ namespace Guru
/// <param name="levelCategory"></param> /// <param name="levelCategory"></param>
/// <param name="levelName"></param> /// <param name="levelName"></param>
/// <param name="levelID"></param> /// <param name="levelID"></param>
/// <param name="extra"></param>
public static void LogLevelContinue(int levelId, string levelCategory = LevelCategoryMain, public static void LogLevelContinue(int levelId, string levelCategory = LevelCategoryMain,
string levelName = "", string levelID = "") string levelName = "", string levelID = "", Dictionary<string, object> extra = null)
{ {
LogLevelStart(levelId, EventLevelStartModeContinue, levelCategory, levelName, levelID, true); LogLevelStart(levelId, EventLevelStartModeContinue, levelCategory, levelName, levelID, true, extra:extra);
} }
/// <summary> /// <summary>
@ -102,9 +104,9 @@ namespace Guru
/// <param name="levelName"></param> /// <param name="levelName"></param>
/// <param name="levelID"></param> /// <param name="levelID"></param>
public static void LogLevelReplay(int levelId, string levelCategory = LevelCategoryMain, public static void LogLevelReplay(int levelId, string levelCategory = LevelCategoryMain,
string levelName = "", string levelID = "") string levelName = "", string levelID = "", Dictionary<string, object> extra = null)
{ {
LogLevelStart(levelId, EventLevelStartModeReplay,levelCategory, levelName, levelID, true); LogLevelStart(levelId, EventLevelStartModeReplay,levelCategory, levelName, levelID, true, extra:extra);
} }
/// <summary> /// <summary>
@ -112,7 +114,7 @@ namespace Guru
/// </summary> /// </summary>
public static void LogLevelEnd(int levelId, string result = EventLevelEndSuccess, public static void LogLevelEnd(int levelId, string result = EventLevelEndSuccess,
string levelCategory = LevelCategoryMain, string levelName = "", string levelID = "", string levelCategory = LevelCategoryMain, string levelName = "", string levelID = "",
int? duration = null, int? step = null, int? score = null ) int? duration = null, int? step = null, int? score = null, Dictionary<string, object> extra = null )
{ {
if (!IsInitialSuccess) if (!IsInitialSuccess)
{ {
@ -135,7 +137,7 @@ namespace Guru
Analytics.BPlay = Model.TotalPlayedCount; // 记录 BPlay Analytics.BPlay = Model.TotalPlayedCount; // 记录 BPlay
} }
Analytics.LogLevelEnd(levelId, result, levelName, levelCategory, levelID, duration, step, score); Analytics.LogLevelEnd(levelId, result, levelName, levelCategory, levelID, duration, step, score, extra);
} }
@ -145,9 +147,9 @@ namespace Guru
/// </summary> /// </summary>
public static void LogLevelFail(int levelId, public static void LogLevelFail(int levelId,
string levelCategory = LevelCategoryMain, string levelName = "", string levelID = "", string levelCategory = LevelCategoryMain, string levelName = "", string levelID = "",
int? duration = null, int? step = null, int? score = null ) int? duration = null, int? step = null, int? score = null , Dictionary<string, object> extra = null)
{ {
LogLevelEnd(levelId, EventLevelEndFail, levelCategory, levelName, levelID, duration, step, score); LogLevelEnd(levelId, EventLevelEndFail, levelCategory, levelName, levelID, duration, step, score, extra);
} }
/// <summary> /// <summary>
@ -155,9 +157,9 @@ namespace Guru
/// </summary> /// </summary>
public static void LogLevelFailExit(int levelId, public static void LogLevelFailExit(int levelId,
string levelCategory = LevelCategoryMain, string levelName = "", string levelID = "", string levelCategory = LevelCategoryMain, string levelName = "", string levelID = "",
int? duration = null, int? step = null, int? score = null) int? duration = null, int? step = null, int? score = null, Dictionary<string, object> extra = null)
{ {
LogLevelEnd(levelId, EventLevelEndExit, levelCategory, levelName, levelID, duration, step, score); LogLevelEnd(levelId, EventLevelEndExit, levelCategory, levelName, levelID, duration, step, score, extra);
} }
/// <summary> /// <summary>
@ -165,9 +167,9 @@ namespace Guru
/// </summary> /// </summary>
public static void LogLevelFailTimeout(int levelId, public static void LogLevelFailTimeout(int levelId,
string levelCategory = LevelCategoryMain, string levelName = "", string levelID = "", string levelCategory = LevelCategoryMain, string levelName = "", string levelID = "",
int? duration = null, int? step = null, int? score = null) int? duration = null, int? step = null, int? score = null, Dictionary<string, object> extra = null)
{ {
LogLevelEnd(levelId, EventLevelEndTimeout, levelCategory, levelName, levelID, duration, step, score); LogLevelEnd(levelId, EventLevelEndTimeout, levelCategory, levelName, levelID, duration, step, score, extra);
} }
@ -176,28 +178,28 @@ namespace Guru
/// </summary> /// </summary>
/// <param name="playerLevel"></param> /// <param name="playerLevel"></param>
/// <param name="playerName"></param> /// <param name="playerName"></param>
public static void LogLevelUp(int playerLevel, string playerName) public static void LogLevelUp(int playerLevel, string playerName, Dictionary<string, object> extra = null)
{ {
if (!IsInitialSuccess) if (!IsInitialSuccess)
{ {
UnityEngine.Debug.LogError($"{Tag} :: LogLevelUp {playerLevel} :: Please call <GuruSDK.Start()> first, before you call <LogLevelUp>."); UnityEngine.Debug.LogError($"{Tag} :: LogLevelUp {playerLevel} :: Please call <GuruSDK.Start()> first, before you call <LogLevelUp>.");
return; return;
} }
Analytics.LevelUp(playerLevel, playerName); Analytics.LevelUp(playerLevel, playerName, extra);
} }
/// <summary> /// <summary>
/// 玩家解锁成就 /// 玩家解锁成就
/// </summary> /// </summary>
/// <param name="achievementName"></param> /// <param name="achievementName"></param>
public static void LogAchievement(string achievementName) public static void LogAchievement(string achievementName, Dictionary<string, object> extra = null)
{ {
if (!IsInitialSuccess) if (!IsInitialSuccess)
{ {
UnityEngine.Debug.LogError($"{Tag} :: LogAchievement {achievementName} :: Please call <GuruSDK.Start()> first, before you call <LogAchievement>."); UnityEngine.Debug.LogError($"{Tag} :: LogAchievement {achievementName} :: Please call <GuruSDK.Start()> first, before you call <LogAchievement>.");
return; return;
} }
Analytics.UnlockAchievement(achievementName); Analytics.UnlockAchievement(achievementName, extra);
} }
#endregion #endregion
@ -337,9 +339,9 @@ namespace Guru
public static void EarnVirtualCurrency(string currencyName, public static void EarnVirtualCurrency(string currencyName,
int value, int balance, int value, int balance,
string category = "", string itemName = "", string category = "", string itemName = "",
string levelName = "", string scene = "") string levelName = "", string scene = "", Dictionary<string, object> extra = null)
{ {
Analytics.EarnVirtualCurrency(currencyName, value, balance, category, itemName,levelName, scene); Analytics.EarnVirtualCurrency(currencyName, value, balance, category, itemName,levelName, scene, extra);
} }
@ -359,12 +361,12 @@ namespace Guru
int value = 0, int balance = 0, int value = 0, int balance = 0,
string category = "", string itemName = "", string category = "", string itemName = "",
string levelName = "", string scene = Consts.ParameterDefaultScene, string levelName = "", string scene = Consts.ParameterDefaultScene,
string[] props = null) string[] props = null, Dictionary<string, object> extra = null)
{ {
//---- Currency ----- //---- Currency -----
if (value > 0) if (value > 0)
{ {
EarnVirtualCurrency(currencyName, value, balance, category, itemName, levelName, scene); EarnVirtualCurrency(currencyName, value, balance, category, itemName, levelName, scene, extra);
} }
//---- Props -------- //---- Props --------
if (null != props) if (null != props)
@ -372,7 +374,7 @@ namespace Guru
int i = 0; int i = 0;
while (i < props.Length) while (i < props.Length)
{ {
EarnVirtualCurrency(props[i], 1, 0, category, itemName, levelName, scene); EarnVirtualCurrency(props[i], 1, 0, category, itemName, levelName, scene, extra);
i++; i++;
} }
} }
@ -392,12 +394,12 @@ namespace Guru
/// <param name="props">获取的道具名称列表</param> /// <param name="props">获取的道具名称列表</param>
public static void EarnVirtualCurrencyBySign(string currencyName, public static void EarnVirtualCurrencyBySign(string currencyName,
int value = 0, int balance = 0, string levelName = "", int value = 0, int balance = 0, string levelName = "",
string scene = "home", string[] props = null) string scene = "home", string[] props = null, Dictionary<string, object> extra = null)
{ {
string category = Consts.CurrencyCategoryReward; string category = Consts.CurrencyCategoryReward;
string itemName = "sign"; string itemName = "sign";
EarnVirtualCurrencyAndProps(currencyName, value, balance, category, itemName, levelName, scene, props); EarnVirtualCurrencyAndProps(currencyName, value, balance, category, itemName, levelName, scene, props, extra);
} }
@ -416,11 +418,11 @@ namespace Guru
/// <param name="props">获取的道具名称列表</param> /// <param name="props">获取的道具名称列表</param>
public static void EarnVirtualCurrencyByIAP(string currencyName, string productId, public static void EarnVirtualCurrencyByIAP(string currencyName, string productId,
int value = 0, int balance = 0, string levelName = "", int value = 0, int balance = 0, string levelName = "",
string scene = "store", string[] props = null) string scene = "store", string[] props = null, Dictionary<string, object> extra = null)
{ {
string category = Consts.CurrencyCategoryIAP; string category = Consts.CurrencyCategoryIAP;
string itemName = productId; string itemName = productId;
EarnVirtualCurrencyAndProps(currencyName, value, balance, category, itemName, levelName, scene, props); EarnVirtualCurrencyAndProps(currencyName, value, balance, category, itemName, levelName, scene, props, extra);
} }
/// <summary> /// <summary>
@ -437,11 +439,11 @@ namespace Guru
/// <param name="props">获取的道具名称列表</param> /// <param name="props">获取的道具名称列表</param>
public static void EarnVirtualCurrencyByAds(string currencyName, public static void EarnVirtualCurrencyByAds(string currencyName,
int value = 0, int balance = 0, string levelName = "", int value = 0, int balance = 0, string levelName = "",
string scene = "store", string[] props = null) string scene = "store", string[] props = null, Dictionary<string, object> extra = null)
{ {
string category = Consts.CurrencyCategoryReward; string category = Consts.CurrencyCategoryReward;
string itemName = "ads"; string itemName = "ads";
EarnVirtualCurrencyAndProps(currencyName, value, balance, category, itemName, levelName, scene, props); EarnVirtualCurrencyAndProps(currencyName, value, balance, category, itemName, levelName, scene, props, extra);
} }
/// <summary> /// <summary>
@ -458,11 +460,11 @@ namespace Guru
/// <param name="props">获取的道具名称列表</param> /// <param name="props">获取的道具名称列表</param>
public static void EarnVirtualCurrencyByPaidAds(string currencyName, public static void EarnVirtualCurrencyByPaidAds(string currencyName,
int value = 0, int balance = 0, string levelName = "", int value = 0, int balance = 0, string levelName = "",
string scene = Consts.ParameterDefaultScene, string[] props = null) string scene = Consts.ParameterDefaultScene, string[] props = null, Dictionary<string, object> extra = null)
{ {
string category = Consts.CurrencyCategoryBonus; string category = Consts.CurrencyCategoryBonus;
string itemName = "ads"; string itemName = "ads";
EarnVirtualCurrencyAndProps(currencyName, value, balance, category, itemName, levelName, scene, props); EarnVirtualCurrencyAndProps(currencyName, value, balance, category, itemName, levelName, scene, props, extra);
} }
/// <summary> /// <summary>
@ -479,11 +481,11 @@ namespace Guru
/// <param name="props">获取的道具名称列表</param> /// <param name="props">获取的道具名称列表</param>
public static void EarnVirtualCurrencyByLevelComplete(string currencyName, public static void EarnVirtualCurrencyByLevelComplete(string currencyName,
int value = 0, int balance = 0, string levelName = "", int value = 0, int balance = 0, string levelName = "",
string scene = "store", string[] props = null) string scene = "store", string[] props = null, Dictionary<string, object> extra = null)
{ {
string category = Consts.CurrencyCategoryReward; string category = Consts.CurrencyCategoryReward;
string itemName = "level"; string itemName = "level";
EarnVirtualCurrencyAndProps(currencyName, value, balance, category, itemName, levelName, scene, props); EarnVirtualCurrencyAndProps(currencyName, value, balance, category, itemName, levelName, scene, props, extra);
} }
@ -498,11 +500,11 @@ namespace Guru
/// <param name="levelName">当前关卡名称</param> /// <param name="levelName">当前关卡名称</param>
public static void EarnPropsByVirtualCurrency(string currencyName, string[] props, public static void EarnPropsByVirtualCurrency(string currencyName, string[] props,
string scene = Consts.ParameterDefaultScene, string scene = Consts.ParameterDefaultScene,
int value = 1, int balance = 0, string levelName = "") int value = 1, int balance = 0, string levelName = "", Dictionary<string, object> extra = null)
{ {
string category = Consts.CurrencyCategoryIGC; string category = Consts.CurrencyCategoryIGC;
string itemName = currencyName; string itemName = currencyName;
EarnVirtualCurrencyAndProps(currencyName, value, balance, category, itemName, levelName, scene, props); EarnVirtualCurrencyAndProps(currencyName, value, balance, category, itemName, levelName, scene, props, extra);
} }
/// <summary> /// <summary>
@ -516,10 +518,10 @@ namespace Guru
/// <param name="levelName"></param> /// <param name="levelName"></param>
public static void EarnPropByProp(string propName, string otherName, public static void EarnPropByProp(string propName, string otherName,
string scene = Consts.ParameterDefaultScene, string scene = Consts.ParameterDefaultScene,
int value = 1, int balance = 0, string levelName = "") int value = 1, int balance = 0, string levelName = "", Dictionary<string, object> extra = null)
{ {
string category = Consts.CurrencyCategoryIGB; string category = Consts.CurrencyCategoryIGB;
EarnVirtualCurrency(propName, value, balance, category, otherName, levelName, scene); EarnVirtualCurrency(propName, value, balance, category, otherName, levelName, scene, extra);
} }
@ -537,11 +539,11 @@ namespace Guru
/// <param name="props">获取的道具名称列表</param> /// <param name="props">获取的道具名称列表</param>
public static void EarnVirtualCurrencyByLottery(string currencyName, public static void EarnVirtualCurrencyByLottery(string currencyName,
int value = 0, int balance = 0, string levelName = "", int value = 0, int balance = 0, string levelName = "",
string scene = "store", string[] props = null) string scene = "store", string[] props = null, Dictionary<string, object> extra = null)
{ {
string category = Consts.CurrencyCategoryIGB; string category = Consts.CurrencyCategoryIGB;
string itemName = "lottery"; string itemName = "lottery";
EarnVirtualCurrencyAndProps(currencyName, value, balance, category, itemName, levelName, scene, props); EarnVirtualCurrencyAndProps(currencyName, value, balance, category, itemName, levelName, scene, props, extra);
} }
@ -563,9 +565,9 @@ namespace Guru
public static void SpendVirtualCurrency(string currencyName, public static void SpendVirtualCurrency(string currencyName,
int value, int balance, int value, int balance,
string category = "", string itemName = "", string category = "", string itemName = "",
string levelName = "", string scene = "") string levelName = "", string scene = "", Dictionary<string, object> extra = null)
{ {
Analytics.SpendVirtualCurrency(currencyName, value, balance, category, itemName, levelName, scene); Analytics.SpendVirtualCurrency(currencyName, value, balance, category, itemName, levelName, scene, extra);
} }
@ -580,9 +582,9 @@ namespace Guru
/// <param name="scene"></param> /// <param name="scene"></param>
public static void SpendVirtualCurrencyWithProp(string currencyName, string prop, public static void SpendVirtualCurrencyWithProp(string currencyName, string prop,
int value, int balance, int value, int balance,
string levelName = "", string scene = "") string levelName = "", string scene = "", Dictionary<string, object> extra = null)
{ {
SpendVirtualCurrencyWithProps(currencyName, new string[] {prop}, value, balance, levelName, scene); SpendVirtualCurrencyWithProps(currencyName, new string[] {prop}, value, balance, levelName, scene, extra);
} }
/// <summary> /// <summary>
@ -596,7 +598,7 @@ namespace Guru
/// <param name="scene"></param> /// <param name="scene"></param>
public static void SpendVirtualCurrencyWithProps(string currencyName, string[] props, public static void SpendVirtualCurrencyWithProps(string currencyName, string[] props,
int value, int balance, int value, int balance,
string levelName = "", string scene = "") string levelName = "", string scene = "", Dictionary<string, object> extra = null)
{ {
string category = Consts.CurrencyCategoryProp; string category = Consts.CurrencyCategoryProp;
if (props != null && props.Length > 0) if (props != null && props.Length > 0)
@ -604,7 +606,7 @@ namespace Guru
int i = 0; int i = 0;
while (i < props.Length) while (i < props.Length)
{ {
SpendVirtualCurrency(currencyName, value, balance, category, props[i], levelName, scene); SpendVirtualCurrency(currencyName, value, balance, category, props[i], levelName, scene, extra);
i++; i++;
} }
} }
@ -621,9 +623,9 @@ namespace Guru
/// <param name="scene"></param> /// <param name="scene"></param>
public static void SpendVirtualCurrencyWithBundle(string currencyName, string bundle, public static void SpendVirtualCurrencyWithBundle(string currencyName, string bundle,
int value, int balance, int value, int balance,
string levelName = "", string scene = "") string levelName = "", string scene = "", Dictionary<string, object> extra = null)
{ {
SpendVirtualCurrencyWithBundles(currencyName, new string[] {bundle}, value, balance, levelName, scene); SpendVirtualCurrencyWithBundles(currencyName, new string[] {bundle}, value, balance, levelName, scene, extra);
} }
/// <summary> /// <summary>
@ -637,7 +639,7 @@ namespace Guru
/// <param name="scene"></param> /// <param name="scene"></param>
public static void SpendVirtualCurrencyWithBundles(string currencyName, string[] bundles, public static void SpendVirtualCurrencyWithBundles(string currencyName, string[] bundles,
int value, int balance, int value, int balance,
string levelName = "", string scene = "") string levelName = "", string scene = "", Dictionary<string, object> extra = null)
{ {
string category = Consts.CurrencyCategoryBundle; string category = Consts.CurrencyCategoryBundle;
if (bundles != null && bundles.Length > 0) if (bundles != null && bundles.Length > 0)
@ -645,7 +647,7 @@ namespace Guru
int i = 0; int i = 0;
while (i < bundles.Length) while (i < bundles.Length)
{ {
SpendVirtualCurrency(currencyName, value, balance, category, bundles[i], levelName, scene); SpendVirtualCurrency(currencyName, value, balance, category, bundles[i], levelName, scene, extra);
i++; i++;
} }
} }
@ -662,10 +664,10 @@ namespace Guru
/// <param name="scene"></param> /// <param name="scene"></param>
public static void SpendPropWithProp(string propName, string otherName, public static void SpendPropWithProp(string propName, string otherName,
int value, int balance, int value, int balance,
string levelName = "", string scene = "", string extraCategory = "") string levelName = "", string scene = "", string extraCategory = "", Dictionary<string, object> extra = null)
{ {
string category = string.IsNullOrEmpty(extraCategory) ? Consts.CurrencyCategoryProp : extraCategory; string category = string.IsNullOrEmpty(extraCategory) ? Consts.CurrencyCategoryProp : extraCategory;
SpendVirtualCurrency(propName, value, balance, category, otherName, levelName, scene); SpendVirtualCurrency(propName, value, balance, category, otherName, levelName, scene, extra);
} }