update: 添加续订打点修改逻辑

--story=1020368 --user=yufei.hu 【中台】【IAP】续订打点修改逻辑 https://www.tapd.cn/33527076/s/1150863

Signed-off-by: huyufei <yufei.hu@castbox.fm>
main
胡宇飞 2024-06-17 15:01:09 +08:00
parent ba90a32195
commit c59f76aead
5 changed files with 33 additions and 37 deletions

View File

@ -1,3 +1,4 @@
using System.Data.Odbc;
using JetBrains.Annotations; using JetBrains.Annotations;
namespace Guru namespace Guru
@ -603,15 +604,19 @@ namespace Guru
/// </summary> /// </summary>
/// <param name="productId"></param> /// <param name="productId"></param>
/// <param name="usdPrice"></param> /// <param name="usdPrice"></param>
/// <param name="userCurrency"></param> /// <param name="orderData"></param>
/// <param name="payPrice"></param> /// <param name="isTest"></param>
/// <param name="orderId"></param> public static void ReportIAPSuccessEvent(BaseOrderData orderData, double usdPrice, bool isTest = false)
/// <param name="orderType"></param>
/// <param name="orderDate"></param>
/// <param name="scene"></param>
/// <param name="isFree"></param>
public static void ReportIAPSuccessEvent(double usdPrice, string productId, BaseOrderData orderData)
{ {
if (orderData == null) return;
if (!isTest && usdPrice == 0)
{
Debug.Log($"[SDK] --- Pruchase value is 0, skip report orders");
return;
}
string productId = orderData.productId;
string userCurrency = orderData.userCurrency; string userCurrency = orderData.userCurrency;
double payPrice = orderData.payPrice; double payPrice = orderData.payPrice;
string orderType = orderData.OrderType(); string orderType = orderData.OrderType();
@ -631,12 +636,12 @@ namespace Guru
if (orderData.orderType == 1) if (orderData.orderType == 1)
{ {
// sub_pruchase : Firebase + Guru + Adjust // sub_pruchase : Firebase + Guru + Adjust
SubPurchase(usdPrice, productId, orderId, orderDate); SubPurchase(usdPrice, productId, orderId, orderDate, isTest);
} }
else else
{ {
// iap_purchase : Firebase + Guru + Adjust // iap_purchase : Firebase + Guru + Adjust
IAPPurchase(usdPrice, productId, orderId, orderDate); IAPPurchase(usdPrice, productId, orderId, orderDate, isTest);
} }
// IAP Ret true : Firebase + Guru + Adjust // IAP Ret true : Firebase + Guru + Adjust
@ -655,18 +660,18 @@ 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, bool isSandbox = false)
{ {
IAPPurchaseReport(EventIAPPurchase, value, productId, orderId, "IAP", orderDate); IAPPurchaseReport(EventIAPPurchase, value, productId, orderId, "IAP", orderDate, isSandbox);
} }
public static void SubPurchase(double value, string productId, string orderId, string orderDate) public static void SubPurchase(double value, string productId, string orderId, string orderDate, bool isSandbox = false)
{ {
IAPPurchaseReport(EventSubPurchase, value, productId, orderId, "SUB", orderDate); IAPPurchaseReport(EventSubPurchase, value, productId, orderId, "SUB", orderDate, isSandbox);
} }
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, bool isSandbox = false)
{ {
LogEvent(eventName, new Dictionary<string, dynamic>() LogEvent(eventName, new Dictionary<string, dynamic>()
{ {
@ -676,7 +681,8 @@ namespace Guru
[ParameterProductId] = productId, [ParameterProductId] = productId,
["order_id"] = orderId, ["order_id"] = orderId,
["order_type"] = orderType, ["order_type"] = orderType,
["trans_ts"] = orderDate ["trans_ts"] = orderDate,
["sandbox"] = isSandbox? "true": "false"
}, new EventSetting() }, new EventSetting()
{ {
EnableFirebaseAnalytics = true, EnableFirebaseAnalytics = true,

View File

@ -50,6 +50,7 @@ namespace Guru
{ {
GenDeviceId(); GenDeviceId();
} }
return SavedDeviceId; // 优先使用缓存的 DeviceID return SavedDeviceId; // 优先使用缓存的 DeviceID
} }
} }

View File

@ -34,19 +34,14 @@ namespace Guru
{ {
try try
{ {
Debug.Log($"[IAP] --- Apple Order Response: {response}");
ResponseData<OrderResponse> responseData = JsonUtility.FromJson<ResponseData<OrderResponse>>(response); ResponseData<OrderResponse> responseData = JsonUtility.FromJson<ResponseData<OrderResponse>>(response);
if (responseData != null && responseData.data != null) if (responseData != null && responseData.data != null)
{ {
double usdPrice = responseData.data.usdPrice; double usdPrice = responseData.data.usdPrice;
string productId = orderData.productId; bool isTest = responseData.data.test;
// Analytics.Tch001IAPRev(usdPrice, productId, orderData.orderId, orderData.OrderType(), orderData.payedDate); Analytics.ReportIAPSuccessEvent(orderData, usdPrice, isTest);
// Analytics.Tch02IAPRev(usdPrice);
//
// AdjustService.TrackSubPurchase(usdPrice, productId);
// Analytics.SubPurchase(usdPrice, productId);
Analytics.ReportIAPSuccessEvent(usdPrice, productId, orderData);
} }
} }
catch (Exception ex) catch (Exception ex)

View File

@ -31,21 +31,14 @@ namespace Guru
{ {
try try
{ {
Debug.Log($"[IAP] --- Google Order Response: {response}");
ResponseData<OrderResponse> responseData = JsonUtility.FromJson<ResponseData<OrderResponse>>(response); ResponseData<OrderResponse> responseData = JsonUtility.FromJson<ResponseData<OrderResponse>>(response);
if (responseData != null && responseData.data != null) if (responseData != null && responseData.data != null)
{ {
double usdPrice = responseData.data.usdPrice; double usdPrice = responseData.data.usdPrice;
string productId = orderData.RealProductId; bool isTest = responseData.data.test;
// Analytics.Tch001IAPRev(usdPrice, productId, orderId, orderType, orderDate); // TCH 001 Analytics.ReportIAPSuccessEvent(orderData, usdPrice, isTest);
// // Analytics.Tch02IAPRev(usdPrice, productId, orderId, orderTypeString, timestamp);
// Analytics.Tch02IAPRev(usdPrice); // TCH 020
//
// // Adjust Track IAP Purchase
// AdjustService.TrackIAPPurchase(usdPrice, productId); // 上报 IAP 支付事件
// Analytics.IAPPurchase(usdPrice, productId);
Analytics.ReportIAPSuccessEvent(usdPrice, productId, orderData);
} }
} }
catch (Exception ex) catch (Exception ex)

View File

@ -6,10 +6,11 @@ namespace Guru
public class OrderResponse public class OrderResponse
{ {
public double usdPrice; public double usdPrice;
public bool test;
public override string ToString() public override string ToString()
{ {
return $"{nameof(usdPrice)}: {usdPrice}"; return $"{nameof(usdPrice)}: {usdPrice} {nameof(test)}: {test}";
} }
} }
} }