Privacy
Apple and Google ask every app to declare the data it collects, including data collected by the SDKs inside it. This page tells you what the Roomio SDK collects, so you can fill in App Store privacy details and the Google Play Data safety form with confidence.
In short: the SDK sends Roomio reports about how scans went, so Roomio can find and fix scanning problems. Nothing in them identifies your users, and none of it is used for tracking or advertising.
What to declare
| App Store | Google Play | |
|---|---|---|
| Data types | Crash data, performance data, other diagnostic data, product interaction | Crash logs, diagnostics, app interactions |
| Linked to the user | No | No |
| Used for tracking | No | No |
| Purposes | App functionality, analytics | App functionality, analytics |
On iOS, the SDK includes a privacy manifest, so Xcode adds these to your app's privacy report when you archive it.
The bundle your app uploads holds camera images of the property. The SDK never sends it anywhere; your app does. Declare it as you would any photos your app uploads to your own backend.
What the SDK sends
The SDK sends its reports when it starts and after each scan ends, never during a scan.
| Report | What it holds |
|---|---|
| Scan events | When a scan starts and how it ended: completed, cancelled, failed or interrupted. With the scan's length, the size of the exported bundle, how often the motion warning was shown and tracking was lost, and the scanning configuration it used. |
| Device conditions | The device's temperature level, free memory, battery level and frame rate during the scan. On Android, free storage too. |
| Errors | The error code, its message for developers, the scanning step it happened in, and the last 20 calls your app made into the scan session. On Android, the type and stack of the exception behind it, cut at the SDK's outermost frame so your app's code is never included, and never the exception's message. |
| Crashes | Crashes and other unexpected exits that ended a scan, and why. On iOS, the crashing thread's stack, when the SDK's code was on it, with every frame outside the SDK reduced to a bare address. On Android 12 and later, the system's crash report when the SDK's code crashed. |
| Device and app | The device model, OS version, whether it has LiDAR, your app's bundle ID or package name and version, the SDK version, and whether the build came from an app store. |
Every report carries the ID of the scan and a random ID created each time your app starts. Neither is tied to the device or the user. Your publishable key tells Roomio which organisation sent the report.
The SDK also asks Roomio for its configuration from time to time, sending only the SDK version, the platform and whether the device has LiDAR.
What the SDK doesn't send
- Anything that identifies the user: no names, email addresses, account IDs, advertising IDs or device IDs.
- Location.
- Camera images or the scan. The SDK never uploads the bundle; your app does.
- Anything the user types.
Diagnostics for recent scans stay on the device, in a folder excluded from device backups. They leave it only when your app calls exportDiagnostics and you send the file to Roomio support.