Skip to content

Ids and Identity Resolution

There are many different IDs associated with analytics and event-based tracking, and this reference covers all the core ones associated with this SDK.

What is an ID?

An ID in the SDK is a unique string, usually a UUID (v4) that can uniquely identify an attribute, event, or other piece of an event. We have four core IDs we care about most:

  • Device ID
  • Visit ID
  • User ID
  • Event ID

Each of these are detailed below. There are other types of IDs also detailed below, for advanced scenarios.

Standard types of IDs

Device ID

Device ID is used to uniquely identify a device visiting a website. This is traditionally done via a cookie on the device's browser.

The JavaScript SDK uses this cookie to store many things, but its primary purpose is to store the ID of the device so that all events include a consistent ID across all the events for the user's device.

Visit ID

Visit ID is uniquely used to track what many other solutions call sessions in systems like Google Analytics. Orbee takes a different approach, and identifies visits as the following criteria:

  • the user navigated from another domain to the current domain
  • the user did not navigate using browser history or refreshing the page

This ID is also stored in the SDK's primary cookie alongside the Device ID.

User ID

User ID is used to uniquely identify a user across multiple devices and mediums. This ID is not be changed on an event once set, so be careful setting this ID.

Customers with login can easily assign user IDs based on that; customers without an identity solution may rely on something like an email address.

Orbee's back end systems keep track of anonymous data (device data without a user ID) and can associate the data with the user once an ID is assigned. This is not applied to the raw events, but instead resolved at query-time.

Event ID

Event ID is used to uniquely identify events. Two distinct events should never share the same Event ID.

Other IDs

Associated ID

Associated ID is used to associate online and offline data. Sometimes an interaction can begin on the website, but move offline like texting or in-person. To re-connect this data after the fact, the application can send offline data with their Device ID in the associated_id field.

External IDs

External IDs are a key/value pairs of Ids that maps to an ID in an external system, like Salesforce or your CRM. These can be assigned directly to users or can be provided as part of an event.

These IDs can also be defined as "loose"; see Identity Resolution below for details on how Orbee handles loose associations.

How does Orbee resolve IDs into users in Reporting and Marketing?

Orbee includes an Identity Resolution solution that can resolve data in real-time as well as at query-time to aggregate device and other IDs into unique users. Below are some scenarios that can help visualize how this system works.

This results in a final ID: The Orbee ID. This ID is our ID for the user after identity resolution is applied, resolving the different IDs listed above into a final ID to identify unique users.

Identity Resolution

We begin with a couple simple rules:

  1. if there is no User ID, the Orbee ID is assigned uniquely to Device ID
  2. if there is a User ID, then the device's Orbee ID is handled as follows:
    • if the User ID is already associated to an Orbee ID, then this Device/User combo will inherit the previous Orbee ID associated with the User ID
    • if the Orbee ID is assigned to another User ID, then a new Orbee ID is generated
    • if the Orbee ID is not assigned to any User IDs, then it inherits the Orbee ID from the Device
  3. if there are external IDs associated with the Device ID, then we can also take that into account as if it was a User ID, under the same rules above

We also perform "soft" resolutions. This can happen when actions the user takes might associate a device with a user, but we can't be sure, like clicking a link that we've associated with an email via a click tracker.

In the email example, we will associate a "loose" link between the email address's User ID and the new device. At query-time, you can configure if you want to apply loose associations or not.