diff --git a/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/pixels/DeviceShieldPixelNames.kt b/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/pixels/DeviceShieldPixelNames.kt index 1e5d813511a3..262ae579c9ea 100644 --- a/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/pixels/DeviceShieldPixelNames.kt +++ b/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/pixels/DeviceShieldPixelNames.kt @@ -127,6 +127,7 @@ enum class DeviceShieldPixelNames(override val pixelName: String, val enqueue: B ATP_DID_REPORT_ISSUES_FROM_TRACKER_ACTIVITY_DAILY("m_atp_imp_tracker_activity_report_issues_d"), ATP_APP_BREAKAGE_REPORT("m_atp_breakage_report"), + ATP_APP_BREAKAGE_REPORT_DAILY("m_atp_breakage_report_d"), ATP_APP_BREAKAGE_REPORT_UNIQUE("m_atp_breakage_report_u"), ATP_APP_CPU_MONITOR_REPORT("m_atp_ev_cpu_usage_above_%d"), @@ -222,5 +223,7 @@ enum class DeviceShieldPixelNames(override val pixelName: String, val enqueue: B VPN_SNOOZE_ENDED_DAILY("m_vpn_ev_snooze_ended_d", enqueue = true), VPN_MOTO_G_FIX_DAILY("m_vpn_ev_moto_g_fix_d", enqueue = true), + VPN_START_ATTEMPT("m_vpn_ev_start_attempt_c", enqueue = true), + VPN_START_ATTEMPT_FAILURE("m_vpn_ev_start_attempt_failure_c", enqueue = true), ; } diff --git a/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/pixels/DeviceShieldPixels.kt b/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/pixels/DeviceShieldPixels.kt index 88617cea7d00..a74244e7d49c 100644 --- a/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/pixels/DeviceShieldPixels.kt +++ b/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/pixels/DeviceShieldPixels.kt @@ -359,6 +359,8 @@ interface DeviceShieldPixels { fun reportVpnSnoozedEnded() fun reportMotoGFix() + + fun reportVpnStartAttempt() } @ContributesBinding(AppScope::class) @@ -514,6 +516,7 @@ class RealDeviceShieldPixels @Inject constructor( override fun startError() { tryToFireDailyPixel(DeviceShieldPixelNames.ATP_START_ERROR_DAILY) firePixel(DeviceShieldPixelNames.ATP_START_ERROR) + firePixel(DeviceShieldPixelNames.VPN_START_ATTEMPT_FAILURE) } override fun automaticRestart() { @@ -604,6 +607,7 @@ class RealDeviceShieldPixels @Inject constructor( override fun sendAppBreakageReport(metadata: Map) { firePixel(DeviceShieldPixelNames.ATP_APP_BREAKAGE_REPORT, metadata) + tryToFireDailyPixel(DeviceShieldPixelNames.ATP_APP_BREAKAGE_REPORT_DAILY, metadata) tryToFireUniquePixel(DeviceShieldPixelNames.ATP_APP_BREAKAGE_REPORT_UNIQUE, payload = metadata) } @@ -766,6 +770,10 @@ class RealDeviceShieldPixels @Inject constructor( tryToFireDailyPixel(DeviceShieldPixelNames.VPN_MOTO_G_FIX_DAILY) } + override fun reportVpnStartAttempt() { + firePixel(DeviceShieldPixelNames.VPN_START_ATTEMPT) + } + private fun suddenKill() { firePixel(DeviceShieldPixelNames.ATP_KILLED) } diff --git a/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/service/TrackerBlockingVpnService.kt b/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/service/TrackerBlockingVpnService.kt index cb184a467487..d6ce28f609ea 100644 --- a/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/service/TrackerBlockingVpnService.kt +++ b/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/service/TrackerBlockingVpnService.kt @@ -295,6 +295,7 @@ class TrackerBlockingVpnService : VpnService(), CoroutineScope by MainScope(), V vpnNetworkStack.onCreateVpnWithErrorReporting() logcat { "VPN log: NEW network ${vpnNetworkStack.name}" } } + deviceShieldPixels.reportVpnStartAttempt() dnsChangeCallback.unregister() vpnServiceStateStatsDao.insert(createVpnState(state = ENABLING)) diff --git a/app-tracking-protection/vpn-impl/src/test/java/com/duckduckgo/mobile/android/vpn/pixels/RealDeviceShieldPixelsTest.kt b/app-tracking-protection/vpn-impl/src/test/java/com/duckduckgo/mobile/android/vpn/pixels/RealDeviceShieldPixelsTest.kt index 36f061a890d4..6a3244fdb3a1 100644 --- a/app-tracking-protection/vpn-impl/src/test/java/com/duckduckgo/mobile/android/vpn/pixels/RealDeviceShieldPixelsTest.kt +++ b/app-tracking-protection/vpn-impl/src/test/java/com/duckduckgo/mobile/android/vpn/pixels/RealDeviceShieldPixelsTest.kt @@ -252,6 +252,7 @@ class RealDeviceShieldPixelsTest { verify(pixel).fire(DeviceShieldPixelNames.ATP_START_ERROR_DAILY.pixelName) verify(pixel, times(2)).fire(DeviceShieldPixelNames.ATP_START_ERROR.pixelName) + verify(pixel, times(2)).enqueueFire(DeviceShieldPixelNames.VPN_START_ATTEMPT_FAILURE.pixelName) verifyNoMoreInteractions(pixel) }