update: 更新虚拟币获取和消耗点位信息

feature/Inventory
胡宇飞 2024-02-01 13:10:49 +08:00
parent f5d1e131d9
commit 1026f6f04e
5 changed files with 135 additions and 12 deletions

View File

@ -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;

View File

@ -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"; // 虚拟货币名称
}
}

View File

@ -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 },
});
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 6dfc5d3bae614b8ea463c0f622130016
timeCreated: 1706756422

View File

@ -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";
}
}