diff --git a/Experiments/Experiments/ABTest.swift b/Experiments/Experiments/ABTest.swift index 30988d9cb94..a1d5185f48a 100644 --- a/Experiments/Experiments/ABTest.swift +++ b/Experiments/Experiments/ABTest.swift @@ -7,11 +7,6 @@ public enum ABTest: String, CaseIterable { /// `An enum with no cases cannot declare a raw type` case null - /// A/A test for ExPlat integration in the logged in state. - /// Experiment ref: pbxNRc-1QS-p2 - /// - case aaTestLoggedIn202210 = "woocommerceios_explat_aa_test_logged_in_202210" - /// A/A test to make sure there is no bias in the logged out state. /// Experiment ref: pbxNRc-1S0-p2 case aaTestLoggedOut = "woocommerceios_explat_aa_test_logged_out_202211" @@ -39,7 +34,7 @@ public enum ABTest: String, CaseIterable { /// When adding a new experiment, add it to the appropriate case depending on its context (logged-in or logged-out experience). public var context: ExperimentContext { switch self { - case .aaTestLoggedIn202210, .productsOnboardingBanner, .productsOnboardingTemplateProducts: + case .productsOnboardingBanner, .productsOnboardingTemplateProducts: return .loggedIn case .aaTestLoggedOut, .abTestLoginWithWPComOnly: return .loggedOut diff --git a/docs/EXPERIMENTS.md b/docs/EXPERIMENTS.md index 45df23f969e..1c8b5ceb0b8 100644 --- a/docs/EXPERIMENTS.md +++ b/docs/EXPERIMENTS.md @@ -38,3 +38,13 @@ if ABTest.experimentName.variation == .control { // Treatment logic } ``` +### Experiment Design Considerations + +If your experiment uses an exposure event, watch out for race conditions between the exposure event and the test assignment or experiment metrics. The exposure event must be triggered _after_ the app receives the test assignment from the experiments endpoint, and _before_ any of the experiment metrics are triggered. + +Due to potential race conditions, do not use these as exposure events: + +- `woocommerceios_application_opened` +- `woocommerceios_application_installed` + +When designing a logged-out experiment, consider that you may not need an exposure event at all.