闪屏页 数据埋点

This commit is contained in:
renhaoting 2026-01-04 18:56:41 +08:00
parent 1123dc2c9e
commit b3a7a610a5
3 changed files with 105 additions and 9 deletions

View File

@ -1,18 +1,21 @@
package com.gamedog.statisticreporter.shushu package com.gamedog.statisticreporter.shushu
import android.os.Bundle
import cn.thinkingdata.analytics.BuildConfig import cn.thinkingdata.analytics.BuildConfig
import cn.thinkingdata.analytics.TDAnalytics import cn.thinkingdata.analytics.TDAnalytics
import cn.thinkingdata.analytics.TDAnalytics.TDAutoTrackEventType import cn.thinkingdata.analytics.TDAnalytics.TDAutoTrackEventType
import cn.thinkingdata.analytics.TDConfig import cn.thinkingdata.analytics.TDConfig
import cn.thinkingdata.analytics.ThinkingAnalyticsSDK import cn.thinkingdata.analytics.ThinkingAnalyticsSDK
import com.ama.core.architecture.BaseApp import com.ama.core.architecture.BaseApp
import com.google.gson.Gson
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.json.JSONException import org.json.JSONException
import org.json.JSONObject import org.json.JSONObject
import kotlin.collections.component1
import kotlin.collections.component2
class ShushuManager private constructor() { class ShushuManager private constructor() {
@ -49,16 +52,15 @@ class ShushuManager private constructor() {
* 记录用户的具体行为事件 * 记录用户的具体行为事件
* 用户点击按钮浏览页面完成购买等 * 用户点击按钮浏览页面完成购买等
*/ */
fun reportEvent(eventKey: String) { fun reportEvent(eventKey: String, params: Map<String, Any>?) {
val properties = JSONObject().apply { val jsonObj = params?.let {
put("product_id", "12345") // 商品ID JSONObject(params)
put("product_name", "咖啡杯") // 商品名称
put("price", 29.9) // 商品价格
put("order_id", "ORDER_20250104_001") // 订单ID
} }
TDAnalytics.track(eventKey, properties) TDAnalytics.track(eventKey, jsonObj)
} }
/** /**
* 设置用户属性会覆盖同名属性 * 设置用户属性会覆盖同名属性
* 记录用户会员等级姓名等相对固定的属性 * 记录用户会员等级姓名等相对固定的属性

View File

@ -0,0 +1,81 @@
package com.gamedog.vididin
import com.gamedog.statisticreporter.firbase.FireBaseManager
import com.gamedog.statisticreporter.shushu.ShushuManager
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.launch
object StatisticUtil {
private val mBgScope = CoroutineScope(SupervisorJob() + Dispatchers.Default)
const val KEY_Loading_Start: String = "Loading_Start"
const val KEY_Loading_End: String = "Loading_End"
const val KEY_Home_Show: String = "Home_Show"
const val KEY_Guide: String = "Guide"
const val KEY_RV_Button_Show: String = "RV_Button_Show"
const val KEY_RV_Button_Click_Game: String = "RV_Button_Click_Game"
const val KEY_Video_Play_Start: String = "Video_Play_Start"
const val KEY_Video_Play_End: String = "Video_Play_End"
const val KEY_Welfare_Show: String = "Welfare_Show"
const val KEY_Chest_Claim_Click: String = "Chest_Claim_Click"
const val KEY_Welfare_Task_Click: String = "Welfare_Task_Click"
const val KEY_H5_Button_Click: String = "H5_Button_Click"
const val KEY_H5_Show: String = "H5_Show"
const val KEY_lottery_Button_Click: String = "lottery_Button_Click"
const val KEY_lottery_Show: String = "lottery_Show"
const val KEY_Daily_Task_Complete: String = "Daily_Task_Complete"
const val KEY_Daily_Sign: String = "Daily_Sign"
const val KEY_Withdraw_Click: String = "Withdraw_Click"
const val KEY_Withdrawal_Show: String = "Withdrawal_Show"
const val KEY_Withdrawal_finsh: String = "Withdrawal_finsh"
const val KEY_Withdrawal_Info: String = "Withdrawal_Info"
const val KEY_Withdrawal_Apply: String = "Withdrawal_Apply"
const val KEY_Withdrawal_Reason: String = "Withdrawal_Reason"
const val KEY_Push_Request_Show: String = "Push_Request_Show"
const val KEY_xxx: String = "xxx"
/*Video_Like_Click
Video_Share_Click*/
/*Push_Request_Result
Push_Show
Push_Click
Push_EnterGame
adjust_init
adjust_get_success
ad_click
ad_close
ad_start_load
ad_loaded
ad_load_fail
ad_show_fail
ad_position
ad_impression
*/
fun reportEvents(eventKey: String, eventData: Map<String, Any>? = null) {
mBgScope.launch {
FireBaseManager.instance().reportEvent(eventKey, eventData)
ShushuManager.instance().reportEvent(eventKey, eventData)
}
}
}

View File

@ -4,10 +4,13 @@ import android.animation.ObjectAnimator
import android.animation.ValueAnimator import android.animation.ValueAnimator
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.os.Bundle
import android.os.PersistableBundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.animation.LinearInterpolator import android.view.animation.LinearInterpolator
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.ama.core.architecture.appBase.AppViewsEmptyViewModelActivity import com.ama.core.architecture.appBase.AppViewsEmptyViewModelActivity
import com.gamedog.vididin.StatisticUtil
import com.gamedog.vididin.main.interfaces.OnTabStyleListener import com.gamedog.vididin.main.interfaces.OnTabStyleListener
import com.gamedog.vididin.router.Router import com.gamedog.vididin.router.Router
import com.remax.base.report.DataReportManager import com.remax.base.report.DataReportManager
@ -31,6 +34,7 @@ import com.viddin.videos.free.databinding.ActivitySplashBinding as ViewBinding
@AndroidEntryPoint @AndroidEntryPoint
class SplashActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyleListener { class SplashActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyleListener {
private var mStartMs: Long = 0L
private var isAdLoaded = false private var isAdLoaded = false
private var startTime = 0L private var startTime = 0L
@ -42,9 +46,18 @@ class SplashActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyle
startTime = System.currentTimeMillis() startTime = System.currentTimeMillis()
with(binding) { with(binding) {
} }
}
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
mStartMs = System.currentTimeMillis()
StatisticUtil.reportEvents(StatisticUtil.KEY_Loading_Start, mapOf("Time" to (System.currentTimeMillis() - mStartMs)/1000))
}
override fun onDestroy() {
super.onDestroy()
StatisticUtil.reportEvents(StatisticUtil.KEY_Loading_Start, )
} }
override fun ViewBinding.initWindowInsets() { override fun ViewBinding.initWindowInsets() {