Cross-Device Visitors
What is CDV (Cross-Device Visitor)
CDV is a logically unified user whose actions have been recorded across multiple devices (desktop, smartphone, tablet, etc.) but recognized as belonging to the same person.
Creating a customer card
Description
A partner can receive data about their customers from various sources:
- website
- mobile application
- call center
- offline points of sale
- other external systems
Each source may identify the same customer differently, which leads to fragmented profiles. Without a stable identifier, it is impossible to combine the customer’s actions across channels.
Example:
- The customer registered on the website and provided an email — a profile appears with
customerIdand email. - Then, without logging in, they opened the mobile app to continue browsing — a new, separate profile appears without a
customerIdlink. - Later, they called the call center and placed an order. If the call center isn’t connected to the master system, another profile is created, again without
customerId. - The same customer made a purchase in a retail store using a loyalty card. Similarly, a new profile appears.
Thus, one person may exist in the system as four different customers.
To merge these events into a single profile, the method of creating of customer card is used — through transferring the customerId and the associated link pointers.
This method must be used when a unique user identifier is known — during authorization and registration.
Terminology
customerId
- A unique and stable customer identifier
- Issued by the master system (website, CRM, etc.) — usually upon registration
- Stable: always refers to one and only one customer
- Used to link communication channels (email, push, SMS), behavioral data, personal attributes (name, birth date), and order history
Usage recommendations
- Use a surrogate key (e.g., UUID) instead of personal data (phone, email, card number).
- Prevent reuse of the same
customerId.- Ensure uniqueness to avoid merging different customers.
Not recommended
- Do not send mutable data (email, phone, loyalty card) as
customerId.- Do not cache requests transferring
customerId— in case of a failure, mass merging of customers under a single ID may occur.
link
linkis a string pointer to the user (e.g., phone number, loyalty card, external system ID, installId in the app, etc.).- One
customerIdmay have multiplelinkpointers. - Used for matching and subsequently merging user events.
- A
linkmay later be reused by another person (for example, if a phone number or card changes ownership).
If customerId is not passed, data for each link forms a separate profile. Only with customerId can they be combined into a unified customer card.
Note
When integrating via JS SDK, the
linkparameter is not explicitly used, but its value is represented by a cookie automatically issued to the user.However, you can pass additional user pointers using the
softLinksparameter of the Create Customer method.
Behavioral Examples in Different Scenarios
| Scenario | Result |
|---|---|
Only link is passed | A temporary profile is created |
customerId + link are passed | A customer profile is created or updated, link is bound to customerId |
Several links previously used with different customerIds are reused | Merging occurs; all links now point to the last provided customerId |
The same customerId is passed for different customers | All data is merged — critical situation 🛑 |
Updated 1 day ago
