diff --git a/Runtime/GuruCore/Runtime/Analytics/Analytics.TemplateDefine.cs b/Runtime/GuruCore/Runtime/Analytics/Analytics.TemplateDefine.cs
index 764ff56..c8d2486 100644
--- a/Runtime/GuruCore/Runtime/Analytics/Analytics.TemplateDefine.cs
+++ b/Runtime/GuruCore/Runtime/Analytics/Analytics.TemplateDefine.cs
@@ -1,4 +1,4 @@
-using JetBrains.Annotations;
+
 
 namespace Guru
 {
@@ -621,6 +621,22 @@ namespace Guru
 			string scene = orderData.scene;
 			bool isFree = orderData.isFree;
 			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
 			Tch001IAPRev(usdPrice, productId, orderId, orderType, orderDate); 
 			// TCH 020
@@ -631,12 +647,12 @@ namespace Guru
 			if (orderData.orderType == 1)
 			{
 				// sub_pruchase : Firebase + Guru + Adjust
-				SubPurchase(usdPrice, productId, orderId, orderDate);
+				SubPurchase(usdPrice, productId, orderId, orderDate, productToken, receipt);
 			}
 			else
 			{
 				// iap_purchase : Firebase + Guru + Adjust
-				IAPPurchase(usdPrice, productId, orderId, orderDate);
+				IAPPurchase(usdPrice, productId, orderId, orderDate, productToken, receipt);
 			}
 			
 			// IAP Ret true : Firebase + Guru + Adjust
@@ -655,20 +671,24 @@ namespace Guru
 		/// 
 		/// 
 		/// 
-		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()
+			
+			var dict = new Dictionary()
 			{
 				[ParameterPlatform] = IAPPlatform,
 				[ParameterValue] = value,
@@ -677,11 +697,19 @@ namespace Guru
 				["order_id"] = orderId,
 				["order_type"] = orderType,
 				["trans_ts"] = orderDate
-			}, new EventSetting()
+			};
+			
+			// 上报Firebase + 自打点
+			LogEvent(eventName, dict, new EventSetting() { EnableFirebaseAnalytics = true, });
+
+
+			// 上报 Adjust 支付事件
+			if (value > 0)
 			{
-				EnableFirebaseAnalytics = true,
-				EnableAdjustAnalytics = true,
-			});
+				// 根据事件名称来获取对应的事件Token(iap_purchase/sub_purchase)
+				LogAdjustRevenueEvent(eventName, value, productId, orderId, purchaseToken, receipt, dict);
+			}
+
 		}
 		
 		#endregion
diff --git a/Runtime/GuruCore/Runtime/Analytics/Analytics.cs b/Runtime/GuruCore/Runtime/Analytics/Analytics.cs
index a6dad54..9986dc8 100644
--- a/Runtime/GuruCore/Runtime/Analytics/Analytics.cs
+++ b/Runtime/GuruCore/Runtime/Analytics/Analytics.cs
@@ -248,6 +248,44 @@ namespace Guru
 			}
 		}
 
+		/// 
+		/// 上报 Adjust 事件
+		/// 
+		/// 
+		/// 
+		/// 
+		/// 
+		/// 
+		/// 
+		/// 
+		/// 
+		internal static bool LogAdjustRevenueEvent(string eventName, double usdPrice, 
+			string productId = "", string transactionId = "", string purchaseToken = "", string receipt = "", 
+			Dictionary 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
 		
 		#region 通用打点