TelemetryDeck was designed from the ground up with privacy in mind. An important principle of TelemetryDeck is to only save the least amount of data it absolutely needs, and to not save any data that can be used to identify specific users' identities.
That is why the TelemetryDeck Client code is completely open source, so that users and developers can see for themselves the data that TelemetryDeck saves.
Any data that is transmitted to the analytics server consists of the following:
- An anonymized user identifier. The identifier is constant for each app install but cannot be traced back to any personally identifiable information.
- An action taken, such as "App Launched" or "Settings Opened". These actions are defined by the developer.
- A time stamp when the action was taken.
- Device metadata, namely platform, system version, app version, build number, if the build was downloaded via App Store or TestFlight, and the device model type (i.e. iPhone X, iPad Air, or iPhone 12).
IP addresses are never stored on the TelemetryDeck Server, neither in the database, nor in any log files, nor at any other place.
A developer is a person who creates or maintains an app which includes the TelemetryDeck Client code. They are responsible for making sure they only hand anonymized data to the TelemetryDeck Client.
The TelemetryDeck Client is the code that transmits data to the TelemetryDeck Server. It can be viewed on GitHub in its entirety.
A user is a person who uses any app created by a developer. It is our job to make sure their data stays safe.
A signal is one instance of data sent from the app to the TelemetryDeck Server using the TelemetryDeck Client.
TelemetryDeck Viewer is the app that developers use to see signal data, both raw and in aggregated form as Insights.
- Using no user identifer at all. This will give them the greatest piece of mind, while still allowing TelemetryDeck to help them out with statistical analysis.
- Using Apple's "IdentifierForVendor" API. This is the default behaviour for TelemetryDeck. The identifier generated out with this method has no relation to any of the user's identifiable information or private data. Deleting and reinstalling the app will generate a new identifier and sever any connection to the old one.
- Using a custom string identifier, such as the user's username or email address. This string will never transferred directly to the server. Instead, the TelemetryDeck Client will create a hash out of that string and only ever transmit that hash. This allows TelemetryDeck to detect the same user on multiple devices, but it is impossible for both the developer and any person having access to TelemetryDeck's database to retrieve the original custom string identifier.
Developers can include any metadata they wish with signals they send using TelemetryDeck Client. They are urged to not send any data that might identify their users. They must include the types of data they send in their own apps' privacy policies.
Using TelemetryDeck Viewer
Developers using the TelemetryDeck Viewer app are sending signals to the TelemetryDeck Server as well. These do not contain any user data. The types of data are:
- App was launched
- Which part of the app was navigated to?
- Standard metadata: platform, system version, app version, build number, if the build was downloaded via App Store or TestFlight, and the device model type (i.e. iPhone X, iPad Air, or iPhone 12).