|
|
@@ -8,6 +8,22 @@
|
|
|
import Foundation
|
|
|
import UIKit
|
|
|
import SnapKit
|
|
|
+import AdjustSdk
|
|
|
+
|
|
|
+
|
|
|
+private enum LNStatisticEventToken: String {
|
|
|
+ case call_accept = "5xzpm9"
|
|
|
+ case call_end = "dr9456"
|
|
|
+ case call_start = "y39skp"
|
|
|
+
|
|
|
+ case first_payment = "8p9mbg"
|
|
|
+ case register = "4vtp6f"
|
|
|
+ case start_chat = "mhhvkj"
|
|
|
+
|
|
|
+ case view_playmate = "hivhhh"
|
|
|
+ case view_profile = "zfdf34"
|
|
|
+ case view_session = "z9bxom"
|
|
|
+}
|
|
|
|
|
|
|
|
|
class LNStatisticManager {
|
|
|
@@ -31,3 +47,109 @@ class LNStatisticManager {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+// MARK: 视图埋点
|
|
|
+extension LNStatisticManager {
|
|
|
+ func reportViewPlaymate(uid: String) {
|
|
|
+ let event = eventFor(.view_playmate)
|
|
|
+ event?.addCallbackParameter("user_id", value: uid)
|
|
|
+ Adjust.trackEvent(event)
|
|
|
+ }
|
|
|
+
|
|
|
+ func reportViewProfile(uid: String) {
|
|
|
+ let event = eventFor(.view_profile)
|
|
|
+ event?.addCallbackParameter("user_id", value: uid)
|
|
|
+ Adjust.trackEvent(event)
|
|
|
+ }
|
|
|
+
|
|
|
+ func reportViewChat(uid: String) {
|
|
|
+ let event = eventFor(.view_session)
|
|
|
+ event?.addCallbackParameter("user_id", value: uid)
|
|
|
+ Adjust.trackEvent(event)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// MARK: 点击埋点
|
|
|
+extension LNStatisticManager {
|
|
|
+ func reportClickChat(uid: String) {
|
|
|
+ let event = eventFor(.start_chat)
|
|
|
+ event?.addCallbackParameter("user_id", value: uid)
|
|
|
+ Adjust.trackEvent(event)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 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)
|
|
|
+ }
|
|
|
+
|
|
|
+ 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)
|
|
|
+ }
|
|
|
+
|
|
|
+ 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)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// MARK: 登录埋点
|
|
|
+enum LNRegisterMethod: String {
|
|
|
+ case email
|
|
|
+ case phone
|
|
|
+ case google
|
|
|
+ case apple
|
|
|
+}
|
|
|
+
|
|
|
+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)
|
|
|
+ }
|
|
|
+
|
|
|
+ func reportPayment(type: LNCurrencyType, amount: Double, currency: String, price: Double) {
|
|
|
+ let event = eventFor(.first_payment)
|
|
|
+ event?.addCallbackParameter("user_id", value: myUid)
|
|
|
+ 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)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+extension LNStatisticManager {
|
|
|
+ private func eventFor(_ token: LNStatisticEventToken) -> ADJEvent? {
|
|
|
+ let event = ADJEvent(eventToken: token.rawValue)
|
|
|
+ event?.addCallbackParameter("platform", value: "iOS")
|
|
|
+ event?.addCallbackParameter("app", value: "gami")
|
|
|
+ event?.addCallbackParameter("app_channel", value: "apple")
|
|
|
+ event?.addCallbackParameter("version_code", value: curBuildVersion)
|
|
|
+ event?.addCallbackParameter("version_name", value: curAppVersion)
|
|
|
+ event?.addCallbackParameter("uid", value: myUid)
|
|
|
+ event?.addCallbackParameter("device_id", value: curDeviceId)
|
|
|
+ event?.addCallbackParameter("country_code", value: LNAppConfig.shared.countryCode)
|
|
|
+ event?.addCallbackParameter("language_code", value: LNAppConfig.shared.curLang.languageCode)
|
|
|
+ event?.addCallbackParameter("device_name", value: curDeviceModelName)
|
|
|
+ event?.addCallbackParameter("os_version", value: curSystemVersion)
|
|
|
+ event?.addCallbackParameter("network_type", value: LNNetworkMonitor.curNetworkType.desc)
|
|
|
+ event?.addCallbackParameter("network_operator", value: LNNetworkMonitor.networkProvider)
|
|
|
+ event?.addCallbackParameter("network_available", value: LNNetworkMonitor.curState == .available ? "true" : "false")
|
|
|
+ event?.addCallbackParameter("background", value: LNAppConfig.shared.isForeground ? "false" : "true")
|
|
|
+
|
|
|
+ return event
|
|
|
+ }
|
|
|
+}
|