
Каждая система аналитики или рекламы должна достаточно точно идентифицировать своих пользователей для более корректного сбора данных или показа релевантной рекламы, именно для этого используют fingerprint (далее отпечаток).
У каждого сервиса реализованы свои решения формирования отпечатка, а для большей точности генерируют клиентский и серверный.
Клиентский отпечаток в вебе, формируется используя javascript на основе информации о браузере, а пересечения сокращают, например, за счет использования canvas api - браузеры немного по разному рендерят рисуемое изображение и это добавляет уникальности.
Как пример, покажу упрощенный вариант генерации отпечатка в браузере:
Серверный отпечаток формируется из параметров доступных на сервере, например самый простой отпечаток, можно сформировать из ip адреса и http заголовков.
Упрощенный пример генерации отпечатка в middleware для koa:
;
Естественно, отпечатком все не ограничивается и после первого обращения к целевому сервису формируется уникальный идентификатор и записывается в cookie клиента на продолжительный срок, ожидая все последующие запросы к сервису с этой cookie. Если cookie для клиента не существует, снова создается fingerprint по тем же правилам, именно так системы определяют возвраты пользователей, если cookie протухла или была стерта.
p.s.: И для клиентского и для серверного отпечатка существуют готовые решения, можете поискать самостоятельно, если интересно.
p.s.s.: Существуют и готовые решения позволяющие обманывать системы, подкидывая рандомные данные для генерации отпечатка.