audienceFraction property
This package's answer: the fraction of the track's audience that has been given this release. Null when that cannot be said.
PlayReleaseStatus.audienceFraction is the rule, so it has one definition rather than a copy here and another in a consumer's fixtures — the asymmetry that cost PlayReleaseStatus.serving a round trip through a consumer's tree before it was made public.
Named for what it measures rather than for the process, and that is
the whole of why it is not rolloutFraction. On a
PlayReleaseStatus.halted release rolloutFraction: 0.2 reads as "the
rollout is at 20%", which sounds live, with serving: false beside it
saying otherwise — a pair correct in only one reading order, which is
exactly the mechanism AppStoreBuildEntry.needsNewUpload was renamed to
escape. Who has it is true in every state on its own.
Three things it is not, because a bare number is read as more than it is:
- Not a fraction of the app's users. It is a fraction of the track's
audience, and an
internaltrack's audience is a list of addresses. - Not adjusted for country targeting. Play can restrict a release to a
set of countries; this document carries neither that field nor its
includeRestOfWorldflag, so a targeted rollout's fraction is a fraction of the targeted set. - Not a statement about which devices. Play chooses who is eligible.
Implementation
final double? audienceFraction;