Skip to content

docs: explain the anonymous device identifier in the FAQ - #648

Merged
eseidel merged 1 commit into
mainfrom
faq-device-id
Sep 5, 2026
Merged

docs: explain the anonymous device identifier in the FAQ#648
eseidel merged 1 commit into
mainfrom
faq-device-id

Conversation

@eseidel

@eseidel eseidel commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Customers reviewing our privacy policy ask what the "anonymous device identifier" is, whether it can be tied back to one of their users, and what we do with it. We had no single place to point them — just one bullet under "What information is sent to Shorebird servers?"

What's here

Two new entries under Teams, access, and privacy, each leading with a direct answer before the explanation:

What is the anonymous install identifier? — a random ID Shorebird creates and stores inside your app, to allow Shorebird to count how many copies of your app are active. Then the detail: a random v4 UUID created on first run, stored in state.json in the app's own storage, per-install rather than per-device, not the IDFA/IDFV/Android advertising ID, and gone on uninstall or a clear-data. Closes on what Shorebird cannot do with it, and the one thing it can, which is count.

What does Shorebird do with the anonymous install identifier? — counts, and nothing else. Shorebird collects nothing the identifier could be correlated against, and the counts are produced as aggregates. Never shown to anyone, never returned by an API, never sold or shared for advertising. Points onward to the privacy policy, the DPA, and privacy@shorebird.dev.

Naming

Standardizes on "anonymous install identifier", since that is the most accurate description of the value, and lists the other names for it once so customers arriving with any of them land in the right place. client_id now appears only where it is literally the field name.

Verified against the source

Every factual claim is checked against shorebirdtech/updater@main rather than paraphrased:

  • generate_client_id() is uuid::Uuid::new_v4()
  • SerializedState.client_id is documented there as "Stable per-install ID. Survives release-version changes; only reset when the app is uninstalled."
  • PatchCheckRequest.client_id: "a random UUID generated by Shorebird and not the device's UUID or any other identifier that has meaning outside of Shorebird"

Both entries link to that source so customers can verify the payload themselves.

Also adds IDFA and IDFV to the spell-check dictionary.

@eseidel eseidel changed the title docs: explain the client_id / device ID in the FAQ docs: explain the anonymous device identifier in the FAQ Sep 5, 2026
@eseidel
eseidel force-pushed the faq-device-id branch 19 times, most recently from b853706 to 0d7733a Compare September 5, 2026 00:50
@eseidel
eseidel requested a review from wrpeck September 5, 2026 00:50
@eseidel
eseidel enabled auto-merge (squash) September 5, 2026 00:53
Customers ask what the anonymous device identifier named in our privacy
policy actually is, and whether it can be tied back to one of their
users. We had no single place to point them.

Adds two FAQ entries under Teams, access, and privacy, each leading with
a direct answer before the detail:

- What it is: a random ID Shorebird creates and stores inside their app,
  to allow Shorebird to count how many copies are active. A random v4
  UUID created on first run, stored in state.json in the app's own
  storage, per-install rather than per-device, not the IDFA, IDFV or
  Android advertising ID, and gone on uninstall or a clear-data.
- What Shorebird does with it: counts, and nothing else. Shorebird
  collects nothing it could be correlated against, and the counts are
  produced as aggregates. Never shown to anyone, never returned by an
  API, never sold or shared for advertising.

Standardizes on "anonymous install identifier" as the name, since it is
the most accurate description of the value, and lists the other names for
it once. Links the privacy policy and the DPA, and points anyone who
needs more detail at privacy@shorebird.dev.

Also links the source that creates and sends the value, so customers can
verify the payload themselves, and adds IDFA and IDFV to the spell-check
dictionary.
@eseidel
eseidel merged commit 900e478 into main Sep 5, 2026
5 checks passed
@eseidel
eseidel deleted the faq-device-id branch September 5, 2026 10:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants