Explorar el Código

feat: 优化埋点上报逻辑

陈文艺 hace 1 mes
padre
commit
ad7a63f42f
Se han modificado 1 ficheros con 55 adiciones y 51 borrados
  1. 55 51
      Lanu/Manager/Statistic/LNStatisticManager.swift

+ 55 - 51
Lanu/Manager/Statistic/LNStatisticManager.swift

@@ -6,8 +6,6 @@
 //
 
 import Foundation
-import UIKit
-import SnapKit
 import AdjustSdk
 
 
@@ -56,78 +54,78 @@ class LNStatisticManager {
 // MARK: 视图埋点
 extension LNStatisticManager {
     func reportViewPlaymate(uid: String) {
-        let event = eventFor(.view_playmate)
-        event?.addCallbackParameter("user_id", value: uid)
-        Adjust.trackEvent(event)
+        trackEvent(.view_playmate) { event in
+            event.addCallbackParameter("user_id", value: uid)
+        }
     }
     
     func reportViewProfile(uid: String) {
-        let event = eventFor(.view_profile)
-        event?.addCallbackParameter("user_id", value: uid)
-        Adjust.trackEvent(event)
+        trackEvent(.view_profile) { event in
+            event.addCallbackParameter("user_id", value: uid)
+        }
     }
     
     func reportViewChat(uid: String) {
-        let event = eventFor(.view_session)
-        event?.addCallbackParameter("user_id", value: uid)
-        Adjust.trackEvent(event)
+        trackEvent(.view_session) { event in
+            event.addCallbackParameter("user_id", value: uid)
+        }
     }
     
     func reportViewCoinPay() {
-        let event = eventFor(.coin_payment_page_view)
-        event?.addCallbackParameter("user_id", value: myUid)
-        Adjust.trackEvent(event)
+        trackEvent(.coin_payment_page_view) { event in
+            event.addCallbackParameter("user_id", value: myUid)
+        }
     }
     
     func reportViewDiamondPay() {
-        let event = eventFor(.diamond_payment_page_view)
-        event?.addCallbackParameter("user_id", value: myUid)
-        Adjust.trackEvent(event)
+        trackEvent(.diamond_payment_page_view) { event in
+            event.addCallbackParameter("user_id", value: myUid)
+        }
     }
 }
 
 // MARK: 点击埋点
 extension LNStatisticManager {
     func reportClickChat(uid: String) {
-        let event = eventFor(.start_chat)
-        event?.addCallbackParameter("user_id", value: uid)
-        Adjust.trackEvent(event)
+        trackEvent(.start_chat) { event in
+            event.addCallbackParameter("user_id", value: uid)
+        }
     }
     
     func reportClickCoinPay() {
-        let event = eventFor(.coin_payment_page_click)
-        event?.addCallbackParameter("user_id", value: myUid)
-        Adjust.trackEvent(event)
+        trackEvent(.coin_payment_page_click) { event in
+            event.addCallbackParameter("user_id", value: myUid)
+        }
     }
     
     func reportClickDiamondPay() {
-        let event = eventFor(.diamond_payment_page_click)
-        event?.addCallbackParameter("user_id", value: myUid)
-        Adjust.trackEvent(event)
+        trackEvent(.diamond_payment_page_click) { event in
+            event.addCallbackParameter("user_id", value: myUid)
+        }
     }
 }
 
 // MARK: 通话埋点
 extension LNStatisticManager {
     func reportStartCall(uid: String, success: Bool) {
-        let event = eventFor(.call_start)
-        event?.addCallbackParameter("user_id", value: uid)
-        event?.addCallbackParameter("result", value: success ? "1" : "0")
-        Adjust.trackEvent(event)
+        trackEvent(.call_start) { event in
+            event.addCallbackParameter("user_id", value: uid)
+            event.addCallbackParameter("result", value: success ? "1" : "0")
+        }
     }
     
     func reportAcceptCall(uid: String, success: Bool) {
-        let event = eventFor(.call_accept)
-        event?.addCallbackParameter("user_id", value: uid)
-        event?.addCallbackParameter("result", value: success ? "1" : "0")
-        Adjust.trackEvent(event)
+        trackEvent(.call_accept) { event in
+            event.addCallbackParameter("user_id", value: uid)
+            event.addCallbackParameter("result", value: success ? "1" : "0")
+        }
     }
     
     func reportEndCall(uid: String, duration: Float) {
-        let event = eventFor(.call_end)
-        event?.addCallbackParameter("user_id", value: uid)
-        event?.addCallbackParameter("duration", value: "\(duration)")
-        Adjust.trackEvent(event)
+        trackEvent(.call_end) { event in
+            event.addCallbackParameter("user_id", value: uid)
+            event.addCallbackParameter("duration", value: "\(duration)")
+        }
     }
 }
 
@@ -141,26 +139,32 @@ enum LNRegisterMethod: String {
 
 extension LNStatisticManager {
     func reportRegister(method: LNRegisterMethod) {
-        let event = eventFor(.register)
-        event?.addCallbackParameter("user_id", value: myUid)
-        event?.addCallbackParameter("register_method", value: method.rawValue)
-        event?.addCallbackParameter("register_ts", value: "\(Int(curTime))")
-        Adjust.trackEvent(event)
+        trackEvent(.register) { event in
+            event.addCallbackParameter("user_id", value: myUid)
+            event.addCallbackParameter("register_method", value: method.rawValue)
+            event.addCallbackParameter("register_ts", value: "\(Int(curTime))")
+        }
     }
     
     func reportPayment(type: LNCurrencyType, amount: Double, currency: String, price: Double, orderId: String) {
-        let event = eventFor(.first_payment)
-        event?.addCallbackParameter("order_id", value: orderId)
-        event?.addCallbackParameter("payment_type", value: "\(type.rawValue)")
-        event?.addCallbackParameter("payment_amount", value: "\(amount)")
-        event?.addCallbackParameter("payment_currency", value: currency)
-        event?.addCallbackParameter("payment_price", value: "\(price)")
-        event?.setRevenue(price, currency: currency)
-        Adjust.trackEvent(event)
+        trackEvent(.first_payment) { event in
+            event.addCallbackParameter("order_id", value: orderId)
+            event.addCallbackParameter("payment_type", value: "\(type.rawValue)")
+            event.addCallbackParameter("payment_amount", value: "\(amount)")
+            event.addCallbackParameter("payment_currency", value: currency)
+            event.addCallbackParameter("payment_price", value: "\(price)")
+            event.setRevenue(price, currency: currency)
+        }
     }
 }
 
 extension LNStatisticManager {
+    private func trackEvent(_ token: LNStatisticEventToken, configure: (ADJEvent) -> Void) {
+        guard let event = eventFor(token) else { return }
+        configure(event)
+        Adjust.trackEvent(event)
+    }
+    
     private func eventFor(_ token: LNStatisticEventToken) -> ADJEvent? {
         let event = ADJEvent(eventToken: token.rawValue)
         event?.addCallbackParameter("platform", value: "iOS")