I’m wondering what is the correct approach of forcing a variant and tracking an exposure event for it.
Let’s say I added a feature flag with two variants - “control” (default one) and “new-onboarding”.
On the app’s launch we call fetch with a small timeout in order not to block users for a long time before showing an onboarding screen as the first thing new user sees in the app.
When fetch fails (no internet connection/timeout) we’d like to fallback to the control variant while keeping the exposure consistent and not end up in the situation where we show the variant for “control” but on the fetch retry user is bucketed in the “new-onboarding” one.
so the flow is like that:
- user launches the app
- `fetch` is called
- `fetch` fails
- we access the variant which is nil so we use fallback to “control”
- after that user is bucketed in “new-onboarding” on the retry/when they open the app again (if I understand correctly)
- we end up with showing “control” but user might actually end up being exposed to “new-onboarding”. At this point we’d like to make sure that Amplitude knows that “control” variant was actually used so that there is no divergence in the analytics.
I tried calling the `exposure` method but seems like it expects using custom `exposureTrackingProvider`.