NTP-28569: Track Adverse CTA page open events (#14699)
This commit is contained in:
@@ -9,6 +9,7 @@ package com.naviapp.adverse
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import androidx.core.net.toUri
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.GsonBuilder
|
||||
@@ -27,6 +28,7 @@ import com.navi.base.utils.NetWatchManger
|
||||
import com.navi.base.utils.orFalse
|
||||
import com.navi.common.uitron.model.action.CtaAction
|
||||
import com.navi.common.utils.Constants.ADVERSE
|
||||
import com.navi.common.utils.Constants.PAGE_LAUNCH_SOURCE
|
||||
import com.navi.common.utils.getSessionId
|
||||
import com.navi.common.utils.registerUiTronDeSerializers
|
||||
import com.navi.uitron.model.action.AnalyticsAction
|
||||
@@ -73,16 +75,20 @@ class AdverseDependencyProvider : IAdverseDependencyProvider {
|
||||
|
||||
fun onCtaClick(ctaData: CtaData?, activity: Activity) {
|
||||
ctaData?.let { cta ->
|
||||
cta.bundle?.putString(PAGE_LAUNCH_SOURCE, ADVERSE)
|
||||
|
||||
if (ctaData.type == DYNAMIC_DEEPLINK && ctaData.url?.contains("http") == true) {
|
||||
val intent = Intent(activity, DeeplinkManagementActivity::class.java)
|
||||
intent.data = ctaData.url?.toUri()
|
||||
intent.putExtra(BRANCH_NEW_SESSION, true)
|
||||
intent.putExtra(PAGE_LAUNCH_SOURCE, ADVERSE)
|
||||
activity.startActivity(intent)
|
||||
} else {
|
||||
DeepLinkManager.getDeepLinkListener()
|
||||
?.navigateTo(
|
||||
activity = activity,
|
||||
ctaData = cta,
|
||||
bundle = Bundle().apply { putString(PAGE_LAUNCH_SOURCE, ADVERSE) },
|
||||
finish = cta.finish.orFalse(),
|
||||
clearTask = cta.clearTask.orFalse(),
|
||||
)
|
||||
|
||||
@@ -26,6 +26,7 @@ import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.DEEPLINK_
|
||||
import com.navi.common.model.ModuleNameV2
|
||||
import com.navi.common.usecase.DeferredActionUseCase
|
||||
import com.navi.common.utils.Constants.IS_REDIRECTING_FROM_DEEPLINK_ACTIVITY
|
||||
import com.navi.common.utils.Constants.PAGE_LAUNCH_SOURCE
|
||||
import com.navi.common.utils.TemporaryStorageHelper
|
||||
import com.navi.common.utils.getDeviceSignature
|
||||
import com.navi.common.utils.getLocalStorageLocation
|
||||
@@ -158,6 +159,24 @@ class DeeplinkManagementActivity : BaseLauncherActivity() {
|
||||
private fun processDeeplink(deeplinkData: DeeplinkData?) {
|
||||
deferredActionUseCase.get().cancelJob()
|
||||
analyticsTracker.sendProcessDeeplinkEvent(deeplinkData)
|
||||
|
||||
intent.getStringExtra(PAGE_LAUNCH_SOURCE)?.let { pageLaunchSource ->
|
||||
deeplinkData?.let {
|
||||
deeplinkData.deeplinkJsonObject?.put(PAGE_LAUNCH_SOURCE, pageLaunchSource)
|
||||
|
||||
deeplinkData.uriData?.let { uri ->
|
||||
deeplinkData.uriData =
|
||||
uri.buildUpon()
|
||||
.appendQueryParameter(PAGE_LAUNCH_SOURCE, pageLaunchSource)
|
||||
.build()
|
||||
}
|
||||
|
||||
deeplinkData.ctaData = deeplinkData.ctaData ?: CtaData()
|
||||
deeplinkData.ctaData?.bundle = deeplinkData.ctaData?.bundle ?: Bundle()
|
||||
deeplinkData.ctaData?.bundle?.putString(PAGE_LAUNCH_SOURCE, pageLaunchSource)
|
||||
}
|
||||
}
|
||||
|
||||
deeplinkNavigation.redirectToDestination(
|
||||
activity = this,
|
||||
deeplinkData = deeplinkData,
|
||||
|
||||
@@ -10,11 +10,16 @@ package com.navi.common.ui.activity
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.navigation.NavHostController
|
||||
import com.navi.adverse.sdk.utils.AdverseTrackEvent
|
||||
import com.navi.analytics.utils.NaviTrackEvent
|
||||
import com.navi.analytics.utils.SCREEN_NAME_CAMEL_CASE
|
||||
import com.navi.common.checkmate.core.CheckMateLatencyMapper
|
||||
import com.navi.common.checkmate.core.CheckMateMapper
|
||||
import com.navi.common.model.ModuleNameV2
|
||||
import com.navi.common.utils.CommonUtils.formatComposeScreenName
|
||||
import com.navi.common.utils.Constants.ADVERSE
|
||||
import com.navi.common.utils.Constants.ADVERTISEMENT.ADVERSE_CTA_PAGE_OPENED_EVENT
|
||||
import com.navi.common.utils.Constants.PAGE_LAUNCH_SOURCE
|
||||
|
||||
abstract class NaviCoreActivity : AppCompatActivity(), CheckMateMapper by CheckMateLatencyMapper {
|
||||
|
||||
@@ -31,6 +36,14 @@ abstract class NaviCoreActivity : AppCompatActivity(), CheckMateMapper by CheckM
|
||||
screen = screenName,
|
||||
vertical = moduleName.name,
|
||||
)
|
||||
|
||||
val pageLaunchSource = intent.getStringExtra(PAGE_LAUNCH_SOURCE).orEmpty()
|
||||
if (pageLaunchSource.equals(ADVERSE, ignoreCase = true)) {
|
||||
AdverseTrackEvent.trackEvent(
|
||||
ADVERSE_CTA_PAGE_OPENED_EVENT,
|
||||
mapOf(SCREEN_NAME_CAMEL_CASE to screenName),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
|
||||
@@ -33,7 +33,7 @@ import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper
|
||||
import com.navi.common.model.ModuleNameV2
|
||||
import com.navi.common.utils.Constants
|
||||
import com.navi.common.utils.Constants.ADVERSE
|
||||
import com.navi.common.utils.Constants.ADVERTISEMENT.PAGE_LAUNCH_SOURCE
|
||||
import com.navi.common.utils.Constants.PAGE_LAUNCH_SOURCE
|
||||
import com.navi.common.utils.showToast
|
||||
import com.navi.naviwidgets.utils.URL
|
||||
import java.lang.Exception
|
||||
|
||||
@@ -338,6 +338,8 @@ object Constants {
|
||||
|
||||
val DEFAULT_ON_CLICK_DEBOUNCE_TIME = 500.milliseconds
|
||||
|
||||
const val PAGE_LAUNCH_SOURCE = "page_launch_source"
|
||||
|
||||
object ScreenLockConstants {
|
||||
const val LOGIN_SESSION_ID = "LOGIN_SESSION_ID"
|
||||
const val X_IS_SCREEN_LOCK_ENABLED = "X-IS-SCREEN-LOCK-ENABLED"
|
||||
@@ -362,7 +364,7 @@ object Constants {
|
||||
object ADVERTISEMENT {
|
||||
const val AD_CLIENT = "ad_client"
|
||||
const val AD_CLIENT_REDIRECTION_URL = "ad_client_redirection_url"
|
||||
const val PAGE_LAUNCH_SOURCE = "page_launch_source"
|
||||
const val ADVERSE_CTA_PAGE_OPENED_EVENT = "NaviApp_adverse_cta_page_opened"
|
||||
}
|
||||
|
||||
const val FLOW_PERMISSION = "PERMISSION"
|
||||
|
||||
Reference in New Issue
Block a user