Skip to main content
Sampling lowers how much an app sends without losing crashes or release health. A session whose detail is kept is a captured session, the unit of pricing.

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.