You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### Description
This PR refactors the onboarding design experiment implementation by
introducing a new `OnboardingDesignExperimentManager` that centralizes
experiment-related logic. The manager handles enrollment, cohort
determination, and firing experiment-specific pixels for tracking user
interactions throughout the onboarding flow.
Key changes include:
- Added a data store to track site and SERP visit counts
- Implemented comprehensive pixel tracking for onboarding interactions
- Replaced direct toggle checks with manager methods for better
abstraction
- Added support for tracking user interactions with onboarding dialogs
and options
### Steps to test this PR
_Onboarding Experience_
- [ ] Verify new users see the appropriate onboarding experience based
on experiment cohort
- [ ] Confirm that navigating through onboarding flows works correctly
- [ ] Test that site suggestions and search options function properly
- [ ] Verify fire animations display correctly based on experiment
cohort
_Pixels_
Use Logcat to check for Pixels firing.
When there are multiple options you'll need to clear data and get back
to the same position.
#### **Variant – Modified Control**
Filter logs using:
`experiment_metrics_onboardingDesignExperimentAug25_modifiedControl`
* [x] Intro screen shown → `introScreenDisplayed`
* [x] Comparison screen shown → `comparisonScreenDisplayed`
* [x] Tap **“Choose Browser”** → `chooseBrowser`
* [x] Accept system **Set as default** dialog → `setDefaultRate`
* [x] Address-bar-position sheet displayed → `setAddressBarDisplayed`
* [x] Select **Top** → `addressBarSetTop`
* [x] Select **Bottom** → `addressBarSetBottom`
* [x] “Try a search” bubble appears → `tryASearchDisplayed`
* [x] Tap first suggestion → `firstSearchSuggestion`
* [x] Tap second suggestion → `secondSearchSuggestion`
* [x] Tap third suggestion → `thirdSearchSuggestion`
* [x] Enter any other query → `searchOrNavCustom`
* [x] SERP message dialog appears → `messageOnSerpDisplayed`
* [x] Site-suggestion bubble (adjacent) appears →
`visitSitePromptDisplayedAdjacent`
* [x] Tap first site → `firstSiteSuggestion`
* [x] Tap second site → `secondSiteSuggestion`
* [x] Tap third site → `thirdSiteSuggestion`
* [x] (Clear data, get back to "Try a search" dialog, dismiss and then
open a new tab) Site-suggestion bubble appears →
`visitSitePromptDisplayedNewTab`
* [x] Tap first site → `firstSiteSuggestion`
* [x] Tap second site → `secondSiteSuggestion`
* [x] Tap third site → `thirdSiteSuggestion`
* [x] Trackers-blocked dialog shown → `trackersBlockedMessageDisplayed`
* [x] No-trackers dialog shown → `noTrackersMessageDisplayed`
* [x] Tracker-network dialog shown → `trackerNetworkMessageDisplayed`
* [x] From a blockers dialog, tap privacy-shield →
`privacyDashClickedFromOnboarding`
* [x] Fire-button education prompt displayed →
`fireButtonPromptDisplayed`
* [x] Trigger Fire action from that prompt →
`fireButtonClickedFromOnboarding`
* [x] End-of-journey screen shown → `finalOnboardingScreenDisplayed`
* [x] Second non-DDG site loads → `secondSiteVisit`
* [x] Second DDG SERP loads → `secondSerpVisit`
---
#### **Variant – Buck**
Filter logs using:
`experiment_metrics_onboardingDesignExperimentAug25_buck`
* [x] Intro screen shown → `introScreenDisplayed`
* [x] Comparison screen shown → `comparisonScreenDisplayed`
* [x] Tap **“Choose Browser”** → `chooseBrowser`
* [x] Accept system **Set as default** dialog → `setDefaultRate`
* [x] Address-bar-position sheet displayed → `setAddressBarDisplayed`
* [x] Select **Top** → `addressBarSetTop`
* [x] Select **Bottom** → `addressBarSetBottom`
* [x] “Try a search” bubble appears → `tryASearchDisplayed`
* [x] Tap first suggestion → `firstSearchSuggestion`
* [x] Tap second suggestion → `secondSearchSuggestion`
* [x] Tap third suggestion → `thirdSearchSuggestion`
* [x] Enter any other query → `searchOrNavCustom`
* [x] SERP message dialog appears → `messageOnSerpDisplayed`
* [x] Site-suggestion bubble (adjacent) appears →
`visitSitePromptDisplayedAdjacent`
* [x] Tap first site → `firstSiteSuggestion`
* [x] Tap second site → `secondSiteSuggestion`
* [x] Tap third site → `thirdSiteSuggestion`
* [x] (Clear data, get back to "Try a search" dialog, dismiss and then
open a new tab) Site-suggestion bubble appears →
`visitSitePromptDisplayedNewTab`
* [x] Tap first site → `firstSiteSuggestion`
* [x] Tap second site → `secondSiteSuggestion`
* [x] Tap third site → `thirdSiteSuggestion`
* [x] Trackers-blocked dialog shown → `trackersBlockedMessageDisplayed`
* [x] No-trackers dialog shown → `noTrackersMessageDisplayed`
* [x] Tracker-network dialog shown → `trackerNetworkMessageDisplayed`
* [x] From a blockers dialog, tap privacy-shield →
`privacyDashClickedFromOnboarding`
* [x] Fire-button education prompt displayed →
`fireButtonPromptDisplayed`
* [x] Trigger Fire action from that prompt →
`fireButtonClickedFromOnboarding`
* [x] End-of-journey screen shown → `finalOnboardingScreenDisplayed`
* [x] Second non-DDG site loads → `secondSiteVisit`
* [x] Second DDG SERP loads → `secondSerpVisit`
---
#### **Variant – BB**
Filter logs using:
`experiment_metrics_onboardingDesignExperimentAug25_bb`
* [x] Intro screen shown → `introScreenDisplayed`
* [x] Comparison screen shown → `comparisonScreenDisplayed`
* [x] Tap **“Choose Browser”** → `chooseBrowser`
* [x] Accept system **Set as default** dialog → `setDefaultRate`
* [x] Address-bar-position sheet displayed → `setAddressBarDisplayed`
* [x] Select **Top** → `addressBarSetTop`
* [x] Select **Bottom** → `addressBarSetBottom`
* [x] “Try a search” bubble appears → `tryASearchDisplayed`
* [x] Tap first suggestion → `firstSearchSuggestion`
* [x] Tap second suggestion → `secondSearchSuggestion`
* [x] Tap third suggestion → `thirdSearchSuggestion`
* [x] Enter any other query → `searchOrNavCustom`
* [x] SERP message dialog appears → `messageOnSerpDisplayed`
* [x] Site-suggestion bubble (adjacent) appears →
`visitSitePromptDisplayedAdjacent`
* [x] Tap first site → `firstSiteSuggestion`
* [x] Tap second site → `secondSiteSuggestion`
* [x] Tap third site → `thirdSiteSuggestion`
* [x] (Clear data, get back to "Try a search" dialog, dismiss and then
open a new tab) Site-suggestion bubble appears →
`visitSitePromptDisplayedNewTab`
* [x] Tap first site → `firstSiteSuggestion`
* [x] Tap second site → `secondSiteSuggestion`
* [x] Tap third site → `thirdSiteSuggestion`
* [x] Trackers-blocked dialog shown → `trackersBlockedMessageDisplayed`
* [x] No-trackers dialog shown → `noTrackersMessageDisplayed`
* [x] Tracker-network dialog shown → `trackerNetworkMessageDisplayed`
* [x] From a blockers dialog, tap privacy-shield →
`privacyDashClickedFromOnboarding`
* [x] Fire-button education prompt displayed →
`fireButtonPromptDisplayed`
* [x] Trigger Fire action from that prompt →
`fireButtonClickedFromOnboarding`
* [x] End-of-journey screen shown → `finalOnboardingScreenDisplayed`
* [x] Second non-DDG site loads → `secondSiteVisit`
* [x] Second DDG SERP loads → `secondSerpVisit`
### UI changes
No UI changes in this PR - this is an internal refactoring of the
experiment implementation.
0 commit comments