From cfe4c243e6d1803bf34b405e174bb5eceec41424 Mon Sep 17 00:00:00 2001 From: juntao Date: Fri, 30 Jun 2023 16:02:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8E=A8=E5=B9=BF=E6=89=93=E5=8C=85?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=A1=B9=E5=A2=9E=E5=8A=A0=E5=85=B3=E9=94=AE?= =?UTF-8?q?=E8=A1=8C=E4=B8=BA=E4=B8=8A=E6=8A=A5=20https://jira.shanqu.cc/b?= =?UTF-8?q?rowse/GHZS-2797?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 7 +++++- .../gamecenter/provider/FlavorProviderImp.kt | 4 +++ .../gamecenter/provider/FlavorProviderImp.kt | 4 +++ .../gamecenter/provider/FlavorProviderImp.kt | 4 +++ .../com/gh/common/util/DownloadObserver.kt | 25 +++++++++++++++---- .../java/com/gh/gamecenter/pkg/PkgHelper.kt | 9 +++++++ .../gamecenter/provider/FlavorProviderImp.kt | 4 +++ .../common/entity/PkgConfigEntity.kt | 1 + .../core/provider/IFlavorProvider.kt | 2 ++ scripts/meta_build.sh | 10 ++++++-- 10 files changed, 62 insertions(+), 8 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f19033e112..b31f113ed6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { String CONFIG_ID = "" String FIRST_LAUNCH = "" - int ACTIVATE_REPORTING_RATIO = 0 + int ACTIVATE_REPORTING_RATIO = 100 buildFeatures { viewBinding true @@ -71,6 +71,11 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt', 'proguard-fresco.txt' + String CORE_EVENT_GAME_CATEGORY = "" + + // 推广用的关键事件游戏类型 + buildConfigField "String", "CORE_EVENT_GAME_CATEGORY", "\"${CORE_EVENT_GAME_CATEGORY}\"" + // 推广用的配置 id buildConfigField "String", "CONFIG_ID", "\"${CONFIG_ID}\"" diff --git a/app/src/default/java/com/gh/gamecenter/provider/FlavorProviderImp.kt b/app/src/default/java/com/gh/gamecenter/provider/FlavorProviderImp.kt index a472cc328d..99dfcfbbb0 100644 --- a/app/src/default/java/com/gh/gamecenter/provider/FlavorProviderImp.kt +++ b/app/src/default/java/com/gh/gamecenter/provider/FlavorProviderImp.kt @@ -33,4 +33,8 @@ class FlavorProviderImp : IFlavorProvider { override fun logEvent(content: String) { // do nothing } + + override fun logCoreEvent() { + // do nothing + } } \ No newline at end of file diff --git a/app/src/gdt/java/com/gh/gamecenter/provider/FlavorProviderImp.kt b/app/src/gdt/java/com/gh/gamecenter/provider/FlavorProviderImp.kt index dad3c0358c..97840f57f8 100644 --- a/app/src/gdt/java/com/gh/gamecenter/provider/FlavorProviderImp.kt +++ b/app/src/gdt/java/com/gh/gamecenter/provider/FlavorProviderImp.kt @@ -42,6 +42,10 @@ class FlavorProviderImp : IFlavorProvider { GdtHelper.logAction(content) } + override fun logCoreEvent() { + // do nothing + } + companion object { private const val GDT_DEFAULT_CHANNEL = "GDT_GHZS_01" } diff --git a/app/src/kuaishou/java/com/gh/gamecenter/provider/FlavorProviderImp.kt b/app/src/kuaishou/java/com/gh/gamecenter/provider/FlavorProviderImp.kt index 49e6422e96..b401fd9767 100644 --- a/app/src/kuaishou/java/com/gh/gamecenter/provider/FlavorProviderImp.kt +++ b/app/src/kuaishou/java/com/gh/gamecenter/provider/FlavorProviderImp.kt @@ -42,6 +42,10 @@ class FlavorProviderImp : IFlavorProvider { KuaishouHelper.onEvent(content) } + override fun logCoreEvent() { + logEvent("EVENT_KEY_PATH_OPTIMIZATION") + } + companion object { private const val KUAISHOU_CHANNEL = "KS-GHZS-01" } diff --git a/app/src/main/java/com/gh/common/util/DownloadObserver.kt b/app/src/main/java/com/gh/common/util/DownloadObserver.kt index 8b28f3f641..de6ac847d8 100644 --- a/app/src/main/java/com/gh/common/util/DownloadObserver.kt +++ b/app/src/main/java/com/gh/common/util/DownloadObserver.kt @@ -23,6 +23,7 @@ import com.gh.gamecenter.feature.entity.GameEntity import com.gh.gamecenter.feature.entity.SimulatorEntity import com.gh.gamecenter.feature.utils.PlatformUtils import com.gh.gamecenter.help.HelpAndFeedbackBridge +import com.gh.gamecenter.pkg.PkgHelper import com.gh.vspace.VHelper import com.halo.assistant.HaloApp import com.lightgame.download.* @@ -38,7 +39,7 @@ object DownloadObserver { // TODO 修复因为更改内存对象造成的双重下载完成事件问题,具体触发代码见 DownloadDao.updateSnapshotList private var mDoneDebouncePair: Pair? = null - private const val TEA_EVENT_DOWNLOAD_COMPLETE = "game_addiction" + private const val CORE_EVENT_DOWNLOAD_COMPLETE_LOGGED = "CORE_EVENT_DOWNLOAD_COMPLETE_LOGGED" // 如果在WIFI状态下,下载自动暂停,则再重试一遍 @JvmStatic @@ -203,10 +204,7 @@ object DownloadObserver { } else { statDoneEvent(downloadEntity) - if (!SPUtils.getBoolean(TEA_EVENT_DOWNLOAD_COMPLETE)) { - HaloApp.getInstance().flavorProvider.logEvent(TEA_EVENT_DOWNLOAD_COMPLETE) - SPUtils.setBoolean(TEA_EVENT_DOWNLOAD_COMPLETE, true) - } + logCoreEventIfNeeded(downloadEntity.getGameCategory()) GameActivityDownloadHelper.clear() @@ -445,4 +443,21 @@ object DownloadObserver { DataLogUtils.uploadHijack(mApplication, downloadEntity) } + /** + * 根据预设的游戏类型上报关键事件(下载完成事件) + */ + private fun logCoreEventIfNeeded(gameCategory: String) { + val category = PkgHelper.getCoreEventGameCategory() + val categoryMatched = if (category == "standard" || category.isNullOrEmpty()) { + true + } else { + gameCategory == category + } + + if (!SPUtils.getBoolean(CORE_EVENT_DOWNLOAD_COMPLETE_LOGGED) && categoryMatched) { + HaloApp.getInstance().flavorProvider.logCoreEvent() + SPUtils.setBoolean(CORE_EVENT_DOWNLOAD_COMPLETE_LOGGED, true) + } + } + } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/pkg/PkgHelper.kt b/app/src/main/java/com/gh/gamecenter/pkg/PkgHelper.kt index 921b67f065..c3f1c522e2 100644 --- a/app/src/main/java/com/gh/gamecenter/pkg/PkgHelper.kt +++ b/app/src/main/java/com/gh/gamecenter/pkg/PkgHelper.kt @@ -16,6 +16,7 @@ object PkgHelper { private const val SP_PKG_CONFIG_IS_USED = "pkg_config_is_used" private var mActivateRatioFromInternet = 0 + private var mCoreEventGameCategory: String? = null private val mPkgProvider by lazy { ARouter.getInstance().build(RouteConsts.provider.pkg).navigation() as? IPkgProvider @@ -32,6 +33,13 @@ object PkgHelper { } } + /** + * 获取预设的游戏类型上报关键事件 + */ + fun getCoreEventGameCategory(): String? { + return mCoreEventGameCategory ?: BuildConfig.CORE_EVENT_GAME_CATEGORY + } + fun getPkgConfig(isFromHomeTopTab: Boolean): PkgConfigEntity.PkgLinkEntity? { if (mPkgConfigLink == null && !SPUtils.getBoolean(SP_PKG_CONFIG_IS_USED, false) @@ -70,6 +78,7 @@ object PkgHelper { mPkgProvider?.requestPkgConfig(configId) { mPkgConfigLink = it.data?.link mActivateRatioFromInternet = it.data?.activateRatio ?: 0 + mCoreEventGameCategory = it.data?.coreEventGameCategory } } diff --git a/app/src/tea/java/com/gh/gamecenter/provider/FlavorProviderImp.kt b/app/src/tea/java/com/gh/gamecenter/provider/FlavorProviderImp.kt index 6628fc663f..094462a7f2 100644 --- a/app/src/tea/java/com/gh/gamecenter/provider/FlavorProviderImp.kt +++ b/app/src/tea/java/com/gh/gamecenter/provider/FlavorProviderImp.kt @@ -56,6 +56,10 @@ class FlavorProviderImp : IFlavorProvider { } } + override fun logCoreEvent() { + logEvent("game_addiction") + } + private fun amILucky(percentage: Int = 100): Boolean { // 若上一次已经标记不幸运了,那就不再进行是否足够幸运的判断 if (SPUtils.getBoolean(KEY_UNLUCKY)) return false diff --git a/module_common/src/main/java/com/gh/gamecenter/common/entity/PkgConfigEntity.kt b/module_common/src/main/java/com/gh/gamecenter/common/entity/PkgConfigEntity.kt index 55b83164f8..90c1f47bf5 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/entity/PkgConfigEntity.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/entity/PkgConfigEntity.kt @@ -9,6 +9,7 @@ class PkgConfigEntity( data class Data( @SerializedName("first_lanuch_jump") var link: PkgLinkEntity? = PkgLinkEntity(), @SerializedName("activate_reporting_ratio") var activateRatio: Int? = 0, + @SerializedName("keypoint_action_reporting") var coreEventGameCategory: String? = null, ) class PkgLinkEntity( diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IFlavorProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IFlavorProvider.kt index afc4151235..8a5658bd0e 100644 --- a/module_core/src/main/java/com/gh/gamecenter/core/provider/IFlavorProvider.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IFlavorProvider.kt @@ -16,4 +16,6 @@ interface IFlavorProvider { fun logEvent(content: String) + fun logCoreEvent() + } \ No newline at end of file diff --git a/scripts/meta_build.sh b/scripts/meta_build.sh index c7729153b2..98d1880ac5 100755 --- a/scripts/meta_build.sh +++ b/scripts/meta_build.sh @@ -31,7 +31,7 @@ fi mkdir -p release/ -OPTIONS=$(getopt -o '' -l config_id:,sdk_platform:,sdk_version:,app_id:,app_name:,channel:,activate_reporting_ratio:,first_launch_jump:,output:,unix_timestamp:, -- "$@") +OPTIONS=$(getopt -o '' -l config_id:,sdk_platform:,sdk_version:,app_id:,app_name:,channel:,activate_reporting_ratio:,first_launch_jump:,output:,unix_timestamp:,keypoint_action_reporting:, -- "$@") eval set -- "$OPTIONS" @@ -47,6 +47,7 @@ while true; do --unix_timestamp) unix_timestamp="$2"; shift 2;; --app_id) app_id="$2"; shift 2;; --app_name) app_name="$2"; shift 2;; + --keypoint_action_reporting) keypoint_action_reporting="$2"; shift 2;; --) shift; break;; *) echo "Invalid option: $1" >&2; exit 1;; esac @@ -85,6 +86,11 @@ if [ "${app_name}" != "" ]; then sed -i "s/String KUAI_SHOU_APP_NAME = \"\"/String KUAI_SHOU_APP_NAME = \"${app_name}\"/g" app/build.gradle fi +# 保存推广时上报关键行为事件的游戏类型 +if [ "${keypoint_action_reporting}" != "" ]; then + sed -i "s/String CORE_EVENT_GAME_CATEGORY = \"\"/String CORE_EVENT_GAME_CATEGORY = \"${keypoint_action_reporting}\"/g" app/build.gradle +fi + # 是否选择了 sdk 类型 if [ "${sdk_platform}" != "" ]; then # 头条包 @@ -93,7 +99,7 @@ if [ "${sdk_platform}" != "" ]; then activate_reporting_ratio="100" fi # 调整上报比例 - sed -i "s/int ACTIVATE_REPORTING_RATIO = 0/int ACTIVATE_REPORTING_RATIO = ${activate_reporting_ratio}/g" app/build.gradle + sed -i "s/int ACTIVATE_REPORTING_RATIO = 100/int ACTIVATE_REPORTING_RATIO = ${activate_reporting_ratio}/g" app/build.gradle if [ "${sdk_version}" == "5.3.0" ]; then sed -i "s/bytedanceApplog = \"6.14.3\"/bytedanceApplog = \"${sdk_version}\"/g" dependencies.gradle