Create addUserData method in the analytics providers

This allows us to globally add arbitrary data to the events and transactions
This commit is contained in:
Jorge Martín
2025-12-16 16:31:51 +01:00
committed by Jorge Martin Espinosa
parent 8057bda977
commit 367bbc7e4b
3 changed files with 15 additions and 0 deletions

View File

@@ -149,6 +149,12 @@ class DefaultAnalyticsService(
} }
} }
override fun addUserData(key: String, value: String) {
if (userConsent.get()) {
analyticsProviders.onEach { it.addUserData(key, value) }
}
}
override fun startTransaction(name: String, operation: String?): AnalyticsTransaction { override fun startTransaction(name: String, operation: String?): AnalyticsTransaction {
return if (userConsent.get()) { return if (userConsent.get()) {
analyticsProviders.firstNotNullOfOrNull { it.startTransaction(name, operation) } analyticsProviders.firstNotNullOfOrNull { it.startTransaction(name, operation) }

View File

@@ -35,6 +35,11 @@ interface AnalyticsTracker {
* Super properties are added to any tracked event automatically. * Super properties are added to any tracked event automatically.
*/ */
fun updateSuperProperties(updatedProperties: SuperProperties) fun updateSuperProperties(updatedProperties: SuperProperties)
/**
* Adds user data that will be sent with every event.
*/
fun addUserData(key: String, value: String) {}
} }
fun AnalyticsTracker.captureInteraction(name: Interaction.Name, type: Interaction.InteractionType? = null) { fun AnalyticsTracker.captureInteraction(name: Interaction.Name, type: Interaction.InteractionType? = null) {

View File

@@ -86,6 +86,10 @@ class SentryAnalyticsProvider(
override fun updateSuperProperties(updatedProperties: SuperProperties) { override fun updateSuperProperties(updatedProperties: SuperProperties) {
} }
override fun addUserData(key: String, value: String) {
Sentry.setExtra(key, value)
}
override fun trackError(throwable: Throwable) { override fun trackError(throwable: Throwable) {
Sentry.captureException(throwable) Sentry.captureException(throwable)
} }