Updated on 2026-08-14

This commit is contained in:
Tangem 2026-01-29 16:10:28 +03:00
parent f9ccdb0982
commit 584e39a5fe
7 changed files with 37 additions and 3 deletions

View file

@ -44,22 +44,30 @@ sealed class CommonSendAnalyticEvents(
data class FeeScreenOpened(
val categoryName: String,
val source: CommonSendSource,
val blockchain: String,
val token: String,
) : CommonSendAnalyticEvents(
category = categoryName,
event = "Fee Screen Opened",
params = mapOf(
SOURCE to source.analyticsName,
BLOCKCHAIN to blockchain,
TOKEN_PARAM to token,
),
)
data class FeeSummaryScreenOpened(
val categoryName: String,
val source: CommonSendSource,
val blockchain: String,
val token: String,
) : CommonSendAnalyticEvents(
category = categoryName,
event = "Fee Summary Screen Opened",
params = mapOf(
SOURCE to source.analyticsName,
BLOCKCHAIN to blockchain,
TOKEN_PARAM to token,
),
)
@ -67,12 +75,14 @@ sealed class CommonSendAnalyticEvents(
val categoryName: String,
val source: CommonSendSource,
val availableTokens: String,
val blockchain: String,
) : CommonSendAnalyticEvents(
category = categoryName,
event = "Fee Token Screen Opened",
params = mapOf(
SOURCE to source.analyticsName,
"Available Fee" to availableTokens,
BLOCKCHAIN to blockchain,
),
)

View file

@ -6,6 +6,7 @@ import com.tangem.core.analytics.models.AnalyticsParam.Key.BLOCKCHAIN
import com.tangem.core.analytics.models.AnalyticsParam.Key.FEE_TOKEN
import com.tangem.core.analytics.models.AnalyticsParam.Key.FEE_TYPE
import com.tangem.core.analytics.models.AnalyticsParam.Key.SOURCE
import com.tangem.core.analytics.models.AnalyticsParam.Key.TOKEN_PARAM
import com.tangem.features.send.v2.api.analytics.CommonSendAnalyticEvents.CommonSendSource
sealed class CommonSendFeeAnalyticEvents(
@ -38,11 +39,13 @@ sealed class CommonSendFeeAnalyticEvents(
data class CustomFeeButtonClicked(
override val categoryName: String,
val blockchain: String,
val token: String,
) : CommonSendFeeAnalyticEvents(
category = categoryName,
event = "Custom Fee Clicked",
params = mapOf(
BLOCKCHAIN to blockchain,
TOKEN_PARAM to token,
),
)

View file

@ -122,6 +122,7 @@ internal class FeeSelectorLogic @AssistedInject constructor(
CommonSendFeeAnalyticEvents.CustomFeeButtonClicked(
categoryName = params.analyticsCategoryName,
blockchain = params.cryptoCurrencyStatus.currency.network.name,
token = params.cryptoCurrencyStatus.currency.symbol,
),
)
}

View file

@ -86,6 +86,8 @@ internal class FeeSelectorModel @Inject constructor(
CommonSendAnalyticEvents.FeeSummaryScreenOpened(
categoryName = params.analyticsCategoryName,
source = params.analyticsSendSource,
blockchain = params.cryptoCurrencyStatus.currency.network.name,
token = params.cryptoCurrencyStatus.currency.symbol,
),
)
}
@ -95,6 +97,8 @@ internal class FeeSelectorModel @Inject constructor(
CommonSendAnalyticEvents.FeeScreenOpened(
categoryName = params.analyticsCategoryName,
source = params.analyticsSendSource,
blockchain = params.cryptoCurrencyStatus.currency.network.name,
token = params.cryptoCurrencyStatus.currency.symbol,
),
)
}
@ -105,6 +109,7 @@ internal class FeeSelectorModel @Inject constructor(
categoryName = params.analyticsCategoryName,
source = params.analyticsSendSource,
availableTokens = getAvailableTokensString(),
blockchain = params.cryptoCurrencyStatus.currency.network.name,
),
)
}

View file

@ -5,6 +5,7 @@ import com.tangem.core.analytics.models.AnalyticsParam
import com.tangem.core.analytics.models.AnalyticsParam.Key.ACCOUNT_DERIVATION_FROM
import com.tangem.core.analytics.models.AnalyticsParam.Key.BLOCKCHAIN
import com.tangem.core.analytics.models.AnalyticsParam.Key.ENS_ADDRESS
import com.tangem.core.analytics.models.AnalyticsParam.Key.FEE_TOKEN
import com.tangem.core.analytics.models.AnalyticsParam.Key.FEE_TYPE
import com.tangem.core.analytics.models.AnalyticsParam.Key.NONCE
import com.tangem.core.analytics.models.AnalyticsParam.Key.TOKEN_PARAM
@ -42,6 +43,7 @@ internal sealed class SendAnalyticEvents(
AnalyticsParam.EmptyFull.Full -> true.toString().capitalize()
}
put(ENS_ADDRESS, ensAddress)
put(FEE_TOKEN, feeToken)
},
), AppsFlyerIncludedEvent

View file

@ -2,12 +2,14 @@ package com.tangem.feature.swap.analytics
import com.tangem.common.ui.bottomsheet.permission.state.ApproveType
import com.tangem.core.analytics.models.AnalyticsEvent
import com.tangem.core.analytics.models.AnalyticsParam.Key.BLOCKCHAIN
import com.tangem.core.analytics.models.AnalyticsParam.Key.ERROR_CODE
import com.tangem.core.analytics.models.AnalyticsParam.Key.ERROR_MESSAGE
import com.tangem.core.analytics.models.AnalyticsParam.Key.FEE_TOKEN
import com.tangem.core.analytics.models.AnalyticsParam.Key.PROVIDER
import com.tangem.core.analytics.models.AnalyticsParam.Key.RECEIVE_TOKEN
import com.tangem.core.analytics.models.AnalyticsParam.Key.SEND_TOKEN
import com.tangem.core.analytics.models.AnalyticsParam.Key.TOKEN_PARAM
import com.tangem.core.analytics.models.AppsFlyerIncludedEvent
import com.tangem.feature.swap.domain.models.domain.SwapProvider
import com.tangem.feature.swap.domain.models.ui.FeeType
@ -20,9 +22,15 @@ sealed class SwapEvents(
params: Map<String, String> = emptyMap(),
) : AnalyticsEvent(SWAP_CATEGORY, event, params) {
data class SwapScreenOpened(val token: String) : SwapEvents(
data class SwapScreenOpened(
val token: String,
val blockchain: String,
) : SwapEvents(
event = "Swap Screen Opened",
params = mapOf("Token" to token),
params = mapOf(
TOKEN_PARAM to token,
BLOCKCHAIN to blockchain,
),
), AppsFlyerIncludedEvent
class SendTokenBalanceClicked : SwapEvents(event = "Send Token Balance Clicked")

View file

@ -329,7 +329,12 @@ internal class SwapModel @Inject constructor(
}
}
analyticsEventHandler.send(SwapEvents.SwapScreenOpened(initialCurrencyFrom.symbol))
analyticsEventHandler.send(
SwapEvents.SwapScreenOpened(
token = initialCurrencyFrom.symbol,
blockchain = initialCurrencyFrom.network.name,
),
)
getBalanceHidingSettingsUseCase()
.onEach { settings ->