Что такое дедупликация клиентов

Дедупликация — приведение нескольких записей об одном человеке к одному профилю, то есть к единому профилю клиента. Задача звучит технически, но её последствия видны в отчётах: без дедупликации бизнес не знает, сколько у него клиентов, и систематически недооценивает их ценность.

Проблема появляется не из-за плохой архитектуры, а из-за нормального поведения пользователей. Один и тот же человек попадает в базу многократно — с разных устройств, каналов и точек контакта, и каждый раз система имеет право считать его новым.

Откуда берутся дубли

Источник дубля Как выглядит в данных Частота
Гость → авторизованный Анонимный профиль с историей просмотров и отдельный профиль с заказами Постоянно
Разные устройства Смартфон и десктоп как два независимых посетителя Постоянно
Несколько адресов почты Личная почта для подписки, рабочая — для заказа Часто
Опечатки и варианты написания Пробелы, регистр, домены-двойники Часто
Форматы телефона 8XXX, +7XXX, номер со скобками и дефисами Часто
Оффлайн-карта лояльности Отдельная запись в системе лояльности без связи с онлайн-профилем В омниканальных сетях
Оформление «на другого человека» Заказ на имя родственника с тем же телефоном Регулярно

Обратная ситуация встречается реже, но обходится дороже: общий семейный ноутбук или рабочий компьютер, где под одним устройством скрываются разные люди. Любая склейка «по устройству» в этом случае объединяет чужие истории.

Детерминированное и вероятностное сопоставление

Параметр Детерминированное Вероятностное
На чём основано Точное совпадение email, телефона, ID клиента, номера карты Устройство, IP, адрес доставки, поведенческие признаки
Точность Высокая Зависит от порога, ошибки неизбежны
Покрытие Только записи с переданным идентификатором Шире, включая анонимный трафик
Основной риск Недосклейка — один человек остаётся несколькими профилями Пересклейка — объединение разных людей
Где применимо Заказы, авторизация, программа лояльности Связка анонимной сессии с известным профилем

Базовая связка выполняется механикой identity resolution: анонимный идентификатор в браузере или приложении сопоставляется с профилем в момент авторизации или оформления заказа, после чего вся предыдущая история переносится в объединённый профиль. Вероятностные правила поверх этого — инструмент расширения покрытия, а не замена детерминированным.

Вероятностную склейку по устройству нельзя применять к операциям с чувствительными последствиями: показу истории заказов, персональным скидкам, отображению личных данных. Порог ошибки, приемлемый для товарных рекомендаций, недопустим там, где пользователь увидит чужую информацию.

Правила слияния

Найти дубли — половина работы. Вторая половина — решить, каким станет объединённый профиль. Правила задаются заранее, иначе результат зависит от порядка обработки записей.

Тип поля Правило приоритета
Контактные данные (email, телефон) Побеждает подтверждённое значение; неподтверждённые сохраняются как альтернативные
Имя, адрес доставки Побеждает значение из последнего завершённого заказа
История заказов и событий Объединяется целиком, без потери записей
Согласия на коммуникации Побеждает самое строгое: отзыв перекрывает согласие
Ограничения на отслеживание Переносятся на весь объединённый профиль
Служебные идентификаторы Сохраняются все, с указанием основного

Отдельно фиксируется обратимость. Ошибочную склейку придётся разделять, поэтому в профиле должны оставаться исходные идентификаторы и признак того, из каких записей он собран. Слияние «с потерей источника» превращает любую ошибку в необратимую.

Согласия — единственная категория, где строгое правило важнее удобства. Формально более свежая запись может содержать согласие, но если в объединяемых данных есть отзыв, приоритет у отзыва: цена ошибки здесь не маркетинговая, а юридическая.

Как ошибки дедупликации ломают метрики

Завышенное число клиентов. Каждый несклеенный дубль — «новый клиент» в отчёте. Доля новых покупателей выглядит здоровой, при этом реального притока нет.

Заниженный LTV и частота покупок. Пять заказов одного человека, разложенные по трём профилям, дают трёх клиентов с одной-двумя покупками. LTV занижается, retention выглядит хуже, чем есть, а окупаемость привлечения считается неверно.

Сломанная атрибуция. Путь «увидел рекламу с телефона — купил с десктопа» без склейки распадается на два несвязанных визита. Атрибуция отдаёт заслугу последнему каналу и обнуляет вклад верхних этапов воронки.

Персонализация «не тому человеку». Здесь ошибки видны пользователю. Недосклейка обнуляет накопленный профиль: постоянный клиент получает подборку как новичок. Пересклейка выдаёт чужие интересы — сценарий, который читается как сбой сайта и подрывает доверие к рекомендациям в целом.

Двойные коммуникации. Один человек в двух профилях получает одно и то же письмо дважды, а частотные ограничения считаются по каждому профилю отдельно и не срабатывают.

Чек-лист внедрения

  1. Составить карту источников: где создаются записи о клиенте и какие идентификаторы передаёт каждый источник — сайт, приложение, касса, программа лояльности, данные первой стороны из CRM.
  2. Нормализовать значения до сравнения: регистр и пробелы в почте, единый формат телефона, приведение адресов.
  3. Включить детерминированные правила по email, телефону и внутреннему ID — они снимают основную долю дублей.
  4. Настроить связку анонимной сессии с профилем в момент авторизации и оформления заказа.
  5. Оценить долю ошибочных склеек на ручной выборке до включения вероятностных правил в продуктив.
  6. Прописать правила слияния полей и отдельно — правило «самое строгое согласие побеждает».
  7. Сохранять исходные идентификаторы, чтобы склейку можно было откатить.
  8. Ввести регулярный контроль: доля профилей без устойчивого идентификатора, число слияний за период, число ручных разделений.