User agent parsing: где ломается разбор и почему библиотека — не гарантия
Парсить UA «в лоб» опасно: строка может выглядеть как браузер, но содержать кастомный webview, обрезанный mobile token или подменённый brand. Для трекинга это сразу бьёт по сегментации: device class уезжает, OS определяется криво, а антифрод получает мусор.
Слабые места типовые:
— старые regex-списки не знают новые family/brand;
— библиотеки по-разному трактуют iPadOS, Chromium-based браузеры и in-app webview;
— часть UA вообще не обязана быть стабильной между запросами, если трафик идёт через прокси, антидетект или скрипт-автоматизацию.
Проверяй не только имя браузера, но и согласованность признаков: UA, Accept-Language, platform, viewport, touch, timezone. Если библиотека говорит «iPhone», а заголовки и DOM ведут себя как desktop — это уже сигнал, а не артефакт.
Практика простая: держи парсинг как первый слой, а решение — на корреляции. Библиотека нужна для нормализации, но финальный флаг лучше ставить по набору признаков и логировать сырой UA отдельно. Тогда проще ловить поломки, когда очередной шаблон начинает мимикрировать под нормальный трафик.
Tracker Lab
@tracker_lab
User agent parsing: где ломается разбор и почему библиотека — не гарантия
Этот пост опубликован в Telegram-канале Tracker Lab. Подписаться можно по ссылке: @tracker_lab.