Skip to content

Don't fire metrics pixels when toggle is disabled#8661

Open
catalinradoiu wants to merge 1 commit into
developfrom
fix/cradoiu/fix-metrics-sent-when-toggle-disabled
Open

Don't fire metrics pixels when toggle is disabled#8661
catalinradoiu wants to merge 1 commit into
developfrom
fix/cradoiu/fix-metrics-sent-when-toggle-disabled

Conversation

@catalinradoiu
Copy link
Copy Markdown
Contributor

@catalinradoiu catalinradoiu commented May 21, 2026

Task/Issue URL: https://app.asana.com/1/137249556945/project/1202552961248957/task/1215026841068543

Description

RealMetricsPixelSender.send() previously fired metrics pixels without checking whether the underlying experiment toggle was enabled. As long as a cohort was assigned and the conversion window matched, pixels would fire — even if the toggle had been remotely turned off.

This adds a short-circuit at the top of send(): if metricsPixel.toggle.isEnabled() returns false, no pixel is fired and (for COUNT_* types) no count is incremented.

Steps to test this PR

Toggle disabled — no pixels fired

  • Run `./gradlew :feature-toggles-impl:testDebugUnitTest --tests "com.duckduckgo.feature.toggles.impl.RealMetricsPixelSenderTest"`
  • All 24 tests pass, including the three new toggle-disabled cases (`NORMAL`, `COUNT_WHEN_IN_WINDOW`, `COUNT_ALWAYS`)

UI changes

Before After
No UI changes No UI changes

Note

Low Risk
Low risk: adds a simple enablement gate and accompanying tests; impact is limited to analytics emission/counting when toggles are off.

Overview
Prevents metrics emission when a toggle is off. RealMetricsPixelSender.send now returns immediately if metricsPixel.toggle.isEnabled() is false, so pixels and metric counters are not processed for disabled experiments.

Test coverage updated to assert that NORMAL, COUNT_WHEN_IN_WINDOW, and COUNT_ALWAYS pixels neither fire nor increment stored counts when the toggle is disabled.

Reviewed by Cursor Bugbot for commit a1d06cc. Bugbot is set up for automated code reviews on this repo. Configure here.

RealMetricsPixelSender previously fired metrics pixels regardless of
whether the underlying experiment toggle was enabled — as long as the
cohort was assigned and the conversion window matched. This meant
metrics could continue to be sent for experiments that had been
remotely turned off.

Short-circuit send() when the toggle is disabled.

Task: https://app.asana.com/1/137249556945/project/1202552961248957/task/1215026841068543
Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@catalinradoiu catalinradoiu marked this pull request as ready for review May 21, 2026 17:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants