Assignment inputs
AppActor experiment targeting uses the same condition shape as Remote Config:
All targeting conditions must pass before a user can enter the experiment.
Experiment keys
Use experiment keys when one app can run tests on multiple surfaces:onboarding_paywallsettings_upsellwinback_screenpost_trial_reminder
getExperimentAssignment("onboarding_paywall") only where that surface is rendered.
Traffic allocation
Traffic is stored in basis points:
AppActor deterministically hashes
userId plus the experiment salt into a 0...9999 bucket. If the bucket is outside trafficAllocationBp, the user receives no assignment.
Variant weights
After the traffic gate, AppActor rescales the bucket into the active traffic range and chooses a variant byweightBp. Variant weights must sum to 10000.
Example:
At 10% traffic, only 10% of eligible users enter the experiment. Inside that 10%, control and treatment split 50/50.
Launch rules
An experiment can start only when it is in draft status, has at least two variants, has exactly one control variant, and has total variant weights of10000.
Start conservative when the experiment changes purchase UI or pricing presentation. Increase traffic only after SDK diagnostics, sandbox purchase completion, entitlement refresh, and fallback behavior are clean.