Compare commits
6 Commits
e8c17f4cf4
...
c0c557b34e
| Author | SHA1 | Date |
|---|---|---|
|
|
c0c557b34e | |
|
|
edcc533d33 | |
|
|
3d9d027e89 | |
|
|
e77994d811 | |
|
|
85dc4a7ddc | |
|
|
b7aacb61e4 |
|
|
@ -224,17 +224,17 @@ namespace Guru
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="status"></param>
|
/// <param name="status"></param>
|
||||||
/// <param name="channel"></param>
|
/// <param name="channel"></param>
|
||||||
/// <param name="others"></param>
|
/// <param name="scene"></param>
|
||||||
public static void AttResult(string status, string type = "custom", string others = "")
|
public static void AttResult(string status, string type = "custom", string scene = "")
|
||||||
{
|
{
|
||||||
SetAttProperty(status);
|
SetAttProperty(status);
|
||||||
Debug.Log($"{TAG} AttResult: {status} type:{type} others:{others}");
|
Debug.Log($"{TAG} AttResult: {status} type:{type} others:{scene}");
|
||||||
var dict = new Dictionary<string, dynamic>()
|
var dict = new Dictionary<string, dynamic>()
|
||||||
{
|
{
|
||||||
{ ParameterItemCategory, status },
|
{ ParameterItemCategory, status },
|
||||||
{ "type", type }
|
{ "type", type }
|
||||||
};
|
};
|
||||||
if(!string.IsNullOrEmpty(others)) dict[ParameterItemName] = others;
|
if(!string.IsNullOrEmpty(scene)) dict[ParameterItemName] = scene;
|
||||||
LogEvent(EventATTResult, dict);
|
LogEvent(EventATTResult, dict);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
using JetBrains.Annotations;
|
|
||||||
|
|
||||||
namespace Guru
|
namespace Guru
|
||||||
{
|
{
|
||||||
|
|
@ -621,6 +621,20 @@ namespace Guru
|
||||||
string scene = orderData.scene;
|
string scene = orderData.scene;
|
||||||
bool isFree = orderData.isFree;
|
bool isFree = orderData.isFree;
|
||||||
string offerId = orderData.offerId;
|
string offerId = orderData.offerId;
|
||||||
|
|
||||||
|
string transactionId = "";
|
||||||
|
string productToken = "";
|
||||||
|
string receipt = "";
|
||||||
|
|
||||||
|
if (orderData is GoogleOrderData gdata)
|
||||||
|
{
|
||||||
|
productToken = gdata.token;
|
||||||
|
}
|
||||||
|
else if (orderData is AppleOrderData adata)
|
||||||
|
{
|
||||||
|
receipt = adata.receipt;
|
||||||
|
}
|
||||||
|
|
||||||
// TCH 001
|
// TCH 001
|
||||||
Tch001IAPRev(usdPrice, productId, orderId, orderType, orderDate);
|
Tch001IAPRev(usdPrice, productId, orderId, orderType, orderDate);
|
||||||
// TCH 020
|
// TCH 020
|
||||||
|
|
@ -631,14 +645,12 @@ namespace Guru
|
||||||
if (orderData.orderType == 1)
|
if (orderData.orderType == 1)
|
||||||
{
|
{
|
||||||
// sub_pruchase : Firebase + Guru + Adjust
|
// sub_pruchase : Firebase + Guru + Adjust
|
||||||
Debug.Log($"{TAG} --- {productId}:{usdPrice} report SubPurchase");
|
SubPurchase(usdPrice, productId, orderId, orderDate, productToken, receipt);
|
||||||
SubPurchase(usdPrice, productId, orderId, orderDate);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// iap_purchase : Firebase + Guru + Adjust
|
// iap_purchase : Firebase + Guru + Adjust
|
||||||
Debug.Log($"{TAG} --- {productId}:{usdPrice} report IAPPurchase");
|
IAPPurchase(usdPrice, productId, orderId, orderDate, productToken, receipt);
|
||||||
IAPPurchase(usdPrice, productId, orderId, orderDate);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// IAP Ret true : Firebase + Guru + Adjust
|
// IAP Ret true : Firebase + Guru + Adjust
|
||||||
|
|
@ -657,20 +669,24 @@ namespace Guru
|
||||||
/// <param name="productId"></param>
|
/// <param name="productId"></param>
|
||||||
/// <param name="orderId"></param>
|
/// <param name="orderId"></param>
|
||||||
/// <param name="orderDate"></param>
|
/// <param name="orderDate"></param>
|
||||||
public static void IAPPurchase(double value, string productId, string orderId, string orderDate)
|
public static void IAPPurchase(double value, string productId, string orderId, string orderDate,
|
||||||
|
string purchaseToken = "", string receipt = "")
|
||||||
{
|
{
|
||||||
IAPPurchaseReport(EventIAPPurchase, value, productId, orderId, "IAP", orderDate);
|
IAPPurchaseReport(EventIAPPurchase, value, productId, orderId, "IAP", orderDate, purchaseToken, receipt);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SubPurchase(double value, string productId, string orderId, string orderDate)
|
public static void SubPurchase(double value, string productId, string orderId, string orderDate,
|
||||||
|
string purchaseToken = "", string receipt = "")
|
||||||
{
|
{
|
||||||
IAPPurchaseReport(EventSubPurchase, value, productId, orderId, "SUB", orderDate);
|
IAPPurchaseReport(EventSubPurchase, value, productId, orderId, "SUB", orderDate, purchaseToken, receipt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void IAPPurchaseReport(string eventName, double value, string productId, string orderId, string orderType, string orderDate)
|
private static void IAPPurchaseReport(string eventName, double value, string productId, string orderId, string orderType, string orderDate,
|
||||||
|
string purchaseToken = "", string receipt = "")
|
||||||
{
|
{
|
||||||
LogEvent(eventName, new Dictionary<string, dynamic>()
|
|
||||||
|
var dict = new Dictionary<string, dynamic>()
|
||||||
{
|
{
|
||||||
[ParameterPlatform] = IAPPlatform,
|
[ParameterPlatform] = IAPPlatform,
|
||||||
[ParameterValue] = value,
|
[ParameterValue] = value,
|
||||||
|
|
@ -679,11 +695,19 @@ namespace Guru
|
||||||
["order_id"] = orderId,
|
["order_id"] = orderId,
|
||||||
["order_type"] = orderType,
|
["order_type"] = orderType,
|
||||||
["trans_ts"] = orderDate
|
["trans_ts"] = orderDate
|
||||||
}, new EventSetting()
|
};
|
||||||
{
|
|
||||||
EnableFirebaseAnalytics = true,
|
// 上报Firebase + 自打点
|
||||||
EnableAdjustAnalytics = true,
|
LogEvent(eventName, dict, new EventSetting() { EnableFirebaseAnalytics = true, });
|
||||||
});
|
|
||||||
|
|
||||||
|
// 上报 Adjust 支付事件
|
||||||
|
// if (value > 0)
|
||||||
|
// {
|
||||||
|
// 根据事件名称来获取对应的事件Token(iap_purchase/sub_purchase)
|
||||||
|
LogAdjustRevenueEvent(eventName, value, productId, orderId, purchaseToken, receipt, dict);
|
||||||
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
||||||
|
|
@ -247,6 +247,44 @@ namespace Guru
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 上报 Adjust 事件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="eventName"></param>
|
||||||
|
/// <param name="productId"></param>
|
||||||
|
/// <param name="receipt"></param>
|
||||||
|
/// <param name="data"></param>
|
||||||
|
/// <param name="usdPrice"></param>
|
||||||
|
/// <param name="transactionId"></param>
|
||||||
|
/// <param name="purchaseToken"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
internal static bool LogAdjustRevenueEvent(string eventName, double usdPrice,
|
||||||
|
string productId = "", string transactionId = "", string purchaseToken = "", string receipt = "",
|
||||||
|
Dictionary<string, object> data = null )
|
||||||
|
{
|
||||||
|
AdjustEvent adjustEvent = Analytics.CreateAdjustEvent(eventName);
|
||||||
|
if (adjustEvent != null)
|
||||||
|
{
|
||||||
|
adjustEvent.setRevenue(usdPrice, USD);
|
||||||
|
if (!string.IsNullOrEmpty(productId)) adjustEvent.setProductId(productId);
|
||||||
|
if (!string.IsNullOrEmpty(transactionId)) adjustEvent.setTransactionId(transactionId);
|
||||||
|
if (!string.IsNullOrEmpty(purchaseToken)) adjustEvent.setPurchaseToken(purchaseToken);
|
||||||
|
if (!string.IsNullOrEmpty(receipt)) adjustEvent.setReceipt(receipt);
|
||||||
|
|
||||||
|
if (data != null && data.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var kv in data)
|
||||||
|
{
|
||||||
|
adjustEvent.AddEventParameter(kv.Key, kv.Value.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Adjust.trackEvent(adjustEvent);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 通用打点
|
#region 通用打点
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ namespace Guru
|
||||||
$"{nameof(language)}: {language}, {nameof(locale)}: {locale}, {nameof(deviceToken)}: {deviceToken}, {nameof(deviceType)}: {deviceType}, " +
|
$"{nameof(language)}: {language}, {nameof(locale)}: {locale}, {nameof(deviceToken)}: {deviceToken}, {nameof(deviceType)}: {deviceType}, " +
|
||||||
$"{nameof(pushType)}: {pushType}, {nameof(appIdentifier)}: {appIdentifier}, {nameof(appVersion)}: {appVersion}, {nameof(brand)}: {brand}, " +
|
$"{nameof(pushType)}: {pushType}, {nameof(appIdentifier)}: {appIdentifier}, {nameof(appVersion)}: {appVersion}, {nameof(brand)}: {brand}, " +
|
||||||
$"{nameof(model)}: {model}, {nameof(timezone)}: {timezone}, {nameof(pushNotificationEnable)}: {pushNotificationEnable}, " +
|
$"{nameof(model)}: {model}, {nameof(timezone)}: {timezone}, {nameof(pushNotificationEnable)}: {pushNotificationEnable}, " +
|
||||||
$"{nameof(firebaseAppInstanceId)}: {firebaseAppInstanceId}, {nameof(idfa)}: {idfa}, {nameof(adid)}: {adid}, {nameof(gpsAdid)}: {gpsAdid}";
|
$"{nameof(firebaseAppInstanceId)}: {firebaseAppInstanceId}, {nameof(idfa)}: {idfa}, {nameof(adid)}: {adid}, {nameof(gpsAdid)}: {gpsAdid}, {nameof(userUuid)}: {userUuid}";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ namespace Guru
|
||||||
{
|
{
|
||||||
DeviceData deviceData = new DeviceData();
|
DeviceData deviceData = new DeviceData();
|
||||||
deviceData.pushNotificationEnable = _isPushEnabled;
|
deviceData.pushNotificationEnable = _isPushEnabled;
|
||||||
this.Log($"send deviceData:{deviceData}");
|
UnityEngine.Debug.Log($"[SDK] --- Send DeviceData:{deviceData}");
|
||||||
var request = new UnityWebRequest(RequestURL, "POST");
|
var request = new UnityWebRequest(RequestURL, "POST");
|
||||||
request.uploadHandler = new UploadHandlerRaw(Encoding.UTF8.GetBytes(JsonUtility.ToJson(deviceData)));
|
request.uploadHandler = new UploadHandlerRaw(Encoding.UTF8.GetBytes(JsonUtility.ToJson(deviceData)));
|
||||||
request.downloadHandler = new DownloadHandlerBuffer();
|
request.downloadHandler = new DownloadHandlerBuffer();
|
||||||
|
|
@ -31,10 +31,10 @@ namespace Guru
|
||||||
|
|
||||||
protected override void RequestSuccessCallBack(string response)
|
protected override void RequestSuccessCallBack(string response)
|
||||||
{
|
{
|
||||||
this.Log("@@@ Send OK!");
|
UnityEngine.Debug.Log("[SDK] --- Send DeviceData Success");
|
||||||
IPMConfig.IS_UPLOAD_DEVICE_SUCCESS = true;
|
IPMConfig.IS_UPLOAD_DEVICE_SUCCESS = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置是否打开推送
|
/// 设置是否打开推送
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -99,22 +99,22 @@ namespace Guru
|
||||||
UpdateView(); // 刷新视图
|
UpdateView(); // 刷新视图
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 字段缓冲
|
||||||
|
private StringBuilder _infoBuff;
|
||||||
private string CreateMonitorInfo()
|
private string CreateMonitorInfo()
|
||||||
{
|
{
|
||||||
string msg = "";
|
string msg = "";
|
||||||
bool loaded = false;
|
bool loaded = false;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
|
|
||||||
if (!ADService.Instance.IsInitialized)
|
if (!ADService.Instance.IsInitialized)
|
||||||
{
|
{
|
||||||
msg = ColoredText("AdService not initialized...", Consts.ColorRed);
|
msg = ColoredText("AdService not initialized...", Consts.ColorRed);
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_infoBuff == null) _infoBuff = new StringBuilder();
|
||||||
|
_infoBuff.Clear();
|
||||||
|
|
||||||
if (_curBadsInfo == null)
|
if (_curBadsInfo == null)
|
||||||
{
|
{
|
||||||
msg = $"BADS: {ColoredText("not ready", Consts.ColorRed)}\n";
|
msg = $"BADS: {ColoredText("not ready", Consts.ColorRed)}\n";
|
||||||
|
|
@ -137,7 +137,7 @@ namespace Guru
|
||||||
msg = $"BADS: {ColoredText("loading...", Consts.ColorYellow)}\n\tformat: {_curBadsInfo.format}\n";
|
msg = $"BADS: {ColoredText("loading...", Consts.ColorYellow)}\n\tformat: {_curBadsInfo.format}\n";
|
||||||
break;
|
break;
|
||||||
case AdStatusType.Paid:
|
case AdStatusType.Paid:
|
||||||
msg = $"BADS: {ColoredText("display", Consts.ColorGreen)}\n\tnetwork: {_curIadsInfo.network}\n\trevenue: {_curBadsInfo.revenue}\n";
|
msg = $"BADS: {ColoredText("display", Consts.ColorGreen)}\n\tnetwork: {_curBadsInfo.network}\n\trevenue: {_curBadsInfo.revenue}\n";
|
||||||
break;
|
break;
|
||||||
case AdStatusType.NotReady:
|
case AdStatusType.NotReady:
|
||||||
msg = $"BADS: {ColoredText("not ready", Consts.ColorGray)}\n\t{ColoredText("---", Consts.ColorGray)}\n";
|
msg = $"BADS: {ColoredText("not ready", Consts.ColorGray)}\n\t{ColoredText("---", Consts.ColorGray)}\n";
|
||||||
|
|
@ -147,7 +147,7 @@ namespace Guru
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sb.Append(msg);
|
_infoBuff.Append(msg);
|
||||||
|
|
||||||
|
|
||||||
if (_curIadsInfo == null)
|
if (_curIadsInfo == null)
|
||||||
|
|
@ -159,7 +159,7 @@ namespace Guru
|
||||||
switch (_curIadsInfo.status)
|
switch (_curIadsInfo.status)
|
||||||
{
|
{
|
||||||
case AdStatusType.Loaded:
|
case AdStatusType.Loaded:
|
||||||
msg = $"IADS: {ColoredText("loaded", Consts.ColorGreen)}\n\tnetwork: {_curIadsInfo.network}\n\twaterfall: {_curBadsInfo.waterfall}\n";
|
msg = $"IADS: {ColoredText("loaded", Consts.ColorGreen)}\n\tnetwork: {_curIadsInfo.network}\n\twaterfall: {_curIadsInfo.waterfall}\n";
|
||||||
break;
|
break;
|
||||||
case AdStatusType.LoadFailed:
|
case AdStatusType.LoadFailed:
|
||||||
msg = $"IADS: {ColoredText("loading failed", Consts.ColorRed)}\n\tmessage: {_curIadsInfo.info}\n";
|
msg = $"IADS: {ColoredText("loading failed", Consts.ColorRed)}\n\tmessage: {_curIadsInfo.info}\n";
|
||||||
|
|
@ -181,7 +181,7 @@ namespace Guru
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sb.Append(msg);
|
_infoBuff.Append(msg);
|
||||||
|
|
||||||
|
|
||||||
if (_curRadsInfo == null)
|
if (_curRadsInfo == null)
|
||||||
|
|
@ -215,10 +215,11 @@ namespace Guru
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sb.Append(msg);
|
_infoBuff.Append(msg);
|
||||||
|
|
||||||
|
|
||||||
return sb.ToString();
|
return _infoBuff.ToString();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue