Date of slack thread: 6/13/24
Anonymous: Can I use an IntersectionObserver in combination with the getExperiment
function from Statsig to control when a user is exposed to a variant of an experiment, and will this approach affect the assignment of users to the experiment or the calculation of experiment metrics?
Anonymous: getExperiment
doesn’t determine the variant or triggers the experiment, it just gets the variant value for the experiment specified, which has been set by Statsig when initialising the app.
Anonymous: Metrics are calculated based on exposure stream. and that gets logged only when getExperiment
is called so the combination of IntersectionObserver and getExperiment
makes sense?
Anonymous: Not sure how you plan to use IntersectionObserver, but it sounds fine to me. Your understanding also sounds correct to me, “assignment” is done beforehand. getExperiment
will trigger exposure events, and we use exposure events to calculate pulse result in our data pipeline.
Anonymous: I have a component that renders at the bottom of the page. So I wanted to enroll users into the experiment when they see the component (when it’s visible in the viewport). (To do this I am doing lazy rendering using IntersectionObserver). I do not want our metrics to be distorted by users who do not interact with the component.
Anonymous: So making use of getExperiment
inside my component makes sense right?
Tore (Statsig): When you call getExperiment
, an exposure is going to be logged - if you want to manually control exposure logging, you have to call getExperimentWithExposureLoggingDisabled
or the equivalent for the SDK you are using. If it is not called until the component is rendered, then you should be good.