This documentation explains how cross device reporting works using unique and custom IDs, and what needs to be done on SDK side for implementation.
Connecting multiple devices, sessions and users to the same visitor
Most of the time your users connect to your application from different devices. A mobile app, a set top box or a tablet may be used by the same person and in normal circumstances, these are counted as one device (and separate users), since a separate device IDs are generated across devices.
This situation may have some drawbacks and you may want to connect the same user and device to the same customer. Countly's unique ID feature enables association of users and sessions (in fact, any activities on several devices), to the same visitor using a persistent ID you send to Countly.
A comparison of your data with or without unique ID
When you send a unique ID using your own ID generator (e.g a hash tied to a user), then all engagements (e.g clicks, page views, custom events, screen navigations) - anything that happens for that particular user will be tied the same user.
If you do not tie a unique ID, then a unique user is counted each time your content on mobile or web is accessed from a different device, at each new session. For example, if user logs in to your e-commerce site and buys a shoe one day, and then the same user changes his profile another day using his phone, that counts as two different users. You will see independent data points for each user although you collect data about each interaction separately.
Alternatively, when you use a unique ID for those users, then you can connect those seemingly independent data points by connecting the same ID to different devices, instead of using a separate device ID for each device. This way, all the unrelated actions can be seen in the same user profile and this user will be counted as one person.
In order to implement unique ID and same the user data to Countly servers, you must be able to generate your own ID, assign this ID to all users from different devices, and include and utilize this ID when you send data to Countly.
In order to implement unique and custom ID, you must enable this feature in your SDK. Here are methods on how to implement this in Android, iOS and web SDKs:
When you start sending data from different devices under the same unique ID for cross device reporting purposes, server handles all sessions and there wont be any clashes. Under User Profiles, you'll see the same user having different devices shown as a list, and also different browsers (if you setup cross device identification in web analytics).