Guides

Installs, users & devices

Pharen counts installs, one id each; users, where your app tells it who is signed in; and devices not at all — it reads no identifier of the phone itself — so a number never claims more than it knows.

NounWhat it isWhat a count of it coversWhere you see it
InstallOne copy of your app on one device, with one id from the first time it runs with the SDK until the app is deleted.It depends on the count. installs.unique counts the installs that sent events in the window, under the consent they were granted — not an install base, and not a download count. installs.churned reads, as of now, every install that has gone quiet. Whether anyone signed in on it makes no difference.The default unit: installs.unique, the install counts behind churn, and one install's lifecycle when a key may read it.
UserAn account in your app, as your app names it when someone signs in. Two accounts held by one person are two users; one account on a phone and a tablet is one user with two installs.Only the installs someone has signed in on. Every user count says how many of your installs that is.users.churned, with its coverage, and one user's page when a key or your role may read it.
DeviceThe physical phone or tablet.Not counted.Nowhere in Pharen's own counts — see the note below.

Installs

The SDK gives each install a random id the first time your app starts with it, and keeps it in your app's own storage. It is not derived from the hardware, the advertising id or the vendor id, so it tells nobody which phone it is on.

  • Deleting and reinstalling makes a new install. The old one stops sending; once it has been silent longer than the churn window it counts as churned, until it passes the profile's retention and is removed. When a small marker the SDK leaves in the device's Keychain survives the deletion, the new install says the app was installed here before, on its first launch with telemetry granted, and when the same user signs in again it names the install they left. A missing marker proves nothing, so neither is ever reported as false.
  • Offloading keeps the install. An app the system offloads and the person reinstalls keeps its data, and with it the same install. On iOS, when it comes back at the same build, its first launch back reports that the app was placed again with its data kept. That is what a return from offloading looks like, but the same build reinstalled over its data for any other reason reports it too, so it is read as likely, not certain; and a return that brings a newer build reads as the update it also is, and is not reported.
  • A backup does not carry an install with it. The SDK marks the install id to be left out of the device backup, so restoring your app's data onto a new iPhone or iPad, or onto the same one after an erase, starts a new install there, and its first launch reports that it was restored when that launch's event is sent. An app that deletes its own stored files while keeping its settings reads as restored too. An install whose app last ran on an older SDK is carried over once by a backup taken before it updated. Whether a direct device-to-device transfer, rather than a backup, carries it has not been measured yet.

Users

A user exists only once your app says who is signed in, with identify(). The id you pass is replaced by a reference the platform makes before the event is stored, so your own ids are not kept on the event stream. Each app is its own account system: the same id in two of your apps is two users, never one merged by guesswork.

  • An app without sign-in has installs and no users. Its user counts read 0 of however many installs it has — ask the install counts instead.
  • Signing out does not unlink. An install stays linked to the users who signed in on it, so a shared tablet is one install under each of its users, and what is attributed to each is decided by their own signed-in activity.
  • Reading one user is a permission. Counts need none. Opening a user, or finding one by an address or a name, needs a key minted with a grant for it — or, in the console, identity read — and every such read is recorded. See Connect your agent.

Devices

Pharen reads no identifier of the phone itself — not the hardware, the advertising id or the vendor id — so none of its counts is a device count. A count of devices needs the platform to vouch for the device, and Pharen does not offer one.