What is sampled
The decision is made once per session, when it starts, so a session is kept or dropped whole.
Crash-free rates, session counts and users are therefore exact at any rate. See
release health.
Setting the rate
The rate is part of the app’s remote configuration: 100% by default. A change applies to sessions that start after the device receives it, with no app release.How the decision is made
The decision is a hash of the session id: the session is kept when the first 8 bytes of SHA-256 of the id, read as a number, are below the rate times 2⁶⁴. Any SDK or server computes the same answer for the same session. Records from kept sessions carry the rate (apsio.sampling.session.rate), so counts built from detail can be scaled back up.
The exact rule is in the specification.