上报多个方法定义

This commit is contained in:
renhaoting 2026-01-04 17:07:41 +08:00
parent ac91577c41
commit acac3099a6
1 changed files with 69 additions and 0 deletions

View File

@ -1,12 +1,19 @@
package com.gamedog.statisticreporter.shushu
import cn.thinkingdata.analytics.BuildConfig
import cn.thinkingdata.analytics.TDAnalytics
import cn.thinkingdata.analytics.TDAnalytics.TDAutoTrackEventType
import cn.thinkingdata.analytics.TDConfig
import cn.thinkingdata.analytics.ThinkingAnalyticsSDK
import cn.thinkingdata.analytics.ThinkingAnalyticsSDK.AutoTrackEventType
import com.ama.core.architecture.BaseApp
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.launch
import org.json.JSONException
import org.json.JSONObject
import java.util.Dictionary
class ShushuManager private constructor() {
@ -32,12 +39,74 @@ class ShushuManager private constructor() {
fun initShushu(shushuAppId: String, shushuServerUrl: String) {
mMainScope.launch {
val config = TDConfig.getInstance(mAppContext, shushuAppId, shushuServerUrl)
config.setMode(if (BuildConfig.DEBUG) TDConfig.ModeEnum.DEBUG else TDConfig.ModeEnum.NORMAL)
mShushuSdk = ThinkingAnalyticsSDK.sharedInstance(config)
configAutoTrack()
}
}
/**
* 记录用户的具体行为事件
* 用户点击按钮浏览页面完成购买等
*/
fun reportEvent(eventKey: String) {
val properties = JSONObject().apply {
put("product_id", "12345") // 商品ID
put("product_name", "咖啡杯") // 商品名称
put("price", 29.9) // 商品价格
put("order_id", "ORDER_20250104_001") // 订单ID
}
TDAnalytics.track(eventKey, properties)
}
/**
* 设置用户属性会覆盖同名属性
* 记录用户会员等级姓名等相对固定的属性
*/
fun reportUser() {
try {
val userProperties = JSONObject().apply {
put("user_level", "VIP3") // 用户等级
put("registration_date", "2025-01-01") // 注册日期
put("total_orders", 15) // 总订单数
}
TDAnalytics.userSet(userProperties)
} catch (e: JSONException) {
e.printStackTrace()
}
}
/**
* 设置全局事件属性自动附加到每个事件
* 应用版本号用户渠道来源等所有事件都带有的属性
*/
fun reportSuper() {
try {
val superProperties = JSONObject().apply {
put("app_version", "1.2.0")
put("channel", "xx应用市场")
put("user_city", "北京")
}
TDAnalytics.setSuperProperties(superProperties)
} catch (e: JSONException) {
e.printStackTrace()
}
}
/**
* 设置账号ID将后续行为关联到具体用户
* 用户登录成功时调用
*/
fun reportLogin(userUUID: String) {
TDAnalytics.login(userUUID)
}
//----------------------- PRIVATE ------------------------//
private fun configAutoTrack() {
TDAnalytics.enableAutoTrack(TDAutoTrackEventType.APP_START or TDAutoTrackEventType.APP_END or TDAutoTrackEventType.APP_INSTALL )
}