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 customerId and email.
  • Then, without logging in, they opened the mobile app to continue browsing — a new, separate profile appears without a customerId link.
  • 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

  • link is a string pointer to the user (e.g., phone number, loyalty card, external system ID, installId in the app, etc.).
  • One customerId may have multiple link pointers.
  • Used for matching and subsequently merging user events.
  • A link may 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 link parameter 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 softLinks parameter of the Create Customer method.

Behavioral Examples in Different Scenarios

ScenarioResult
Only link is passedA temporary profile is created
customerId + link are passedA customer profile is created or updated, link is bound to customerId
Several links previously used with different customerIds are reusedMerging occurs; all links now point to the last provided customerId
The same customerId is passed for different customersAll data is merged — critical situation 🛑