diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/AdjustMetricsService.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/AdjustMetricsService.kt index 7bff20ded..e8dcd5b50 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/AdjustMetricsService.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/AdjustMetricsService.kt @@ -37,6 +37,8 @@ class AdjustMetricsService(private val application: Application) : MetricsServic true ) + val installationPing = InstallationPing(application) + config.setOnAttributionChangedListener { if (!it.network.isNullOrEmpty()) { application.applicationContext.settings().adjustNetwork = @@ -55,7 +57,7 @@ class AdjustMetricsService(private val application: Application) : MetricsServic it.campaign } - InstallationPing(application).checkAndSend() + installationPing.checkAndSend() } config.setLogLevel(LogLevel.SUPRESS) diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/InstallationPing.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/InstallationPing.kt index 384b086f8..4196d3621 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/InstallationPing.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/InstallationPing.kt @@ -71,14 +71,17 @@ class InstallationPing(private val context: Context) { } /** - * Check that required metrics are not empty before attempting to send ping. + * Check that at least one of the metrics values is set before sending the ping. + * Note: it is normal for many of these values to not be set as campaigns do not always + * utilize every attribute! * */ @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) internal fun checkMetricsNotEmpty(): Boolean = listOf( + context.settings().adjustCampaignId, context.settings().adjustAdGroup, context.settings().adjustCreative, context.settings().adjustNetwork - ).all { it.isNotEmpty() } + ).any { it.isNotEmpty() } /** * Trigger sending the `installation` ping if it wasn't sent already.