Multiple Device Support
In essence, a user's tracking session is uniquely defined by his/her mobile device. But often what happens is that the users are logged into apps from multiple mobile devices either knowingly or unknowingly. This creates a big problem of handling user's location data across multiple devices or supporting tracking sessions across multiple device and making sense of this data for the user.
This doc talks about how we achieve multiple device handling and how can it be prevented.
[info] Under Development
Multiple Device handling is a feature under development. If you are looking for something other than what's listed here, please let us know at firstname.lastname@example.org
Why is it a problem?
In the world of location aware apps, the one being tracked is the user and this is enabled via tracking his/her mobile device. The problem might not have existed if it were the other way round. Because of this, it becomes difficult to accept location data for a user from multiple devices and still be able to predict user's actual whereabouts with certainty.
For example, A fitness app will run into issues to predict a user's activity when one device shows him as "Stationary" at his home and the other one shows the same user as "Running" in the park.
What happens when a secondary device is detected?
The SDK and HyperTrack API Server are designed to support only one active device per user at a time. In case there are multiple devices for a user, the secondary device will not be tracked.
On API Server:
Secondary device is detected when tracking is started for a user while the tracking session is ongoing on the first device. API Server detects this secondary device and ignores all the data being received from this device.
On SDKs: (For Android)
When the API Server detects a secondary device, the SDK on this device stops its tracking session by forcing a
stopTracking call. Since the secondary device's session is treated as invalid, the SDK stops tracking the user as soon as a secondary device is detected.
[info] Added in SDK v0.4.3
SDK Session Logoff i.e. the SDK stopping the tracking session of a user on detection of secondary device was added in Android SDK v0.4.3.
On detection of a secondary device, the HyperTrack Dashboard/Widgets highlight a "Secondary Device detected" event on the User's Placeline view as depicted below.
On Events via Webhooks/Slack Alerts:
On detection of a secondary device, the API Server sends a
device.secondary.ignored event via Webhooks and Slack alert.
How can you prevent this in your app?
Isn't it always better to prevent an issue from happening rather than detecting it later?
In case your app doesn't need to support logins across multiple devices, it is best to implement a Session Logout feature which automatically logs the user out as soon as he/she logs in to the app from a different device or just simply preventing the successive login attempts from a different device. This enables user's tracking session across devices to be kept separated and thus preventing the issue of multiple device logins.