Apptimize metadata contains all of the project information needed for the Apptimize SDK to deliver the experiment as well as the range groups that can be used to determine the enrollment (or the variant bucketing) for the device.
Metadata is downloaded to the user's device and cached so that no additional network calls are required to reference the user's enrollment. See our article on metadata for more details.
Given the targeting filters and allocation percentage for an A/B experiment, feature flag, or instant update, we calculate range groups for each of the variants or features locally from the metadata.
Once Apptimize is initialized, the SDK calculates a seed using either an anonymous ID (device-specific) or user ID which can fall anywhere in a fixed range of values. The enrollment is determined based on which range group this seed falls into for each project.
Since the ID does not change, the user will consistently be hashed into the same range group so that their enrollment in the variant remains sticky.