Эта страница охватывает распространённые проблемы, возникающие при интеграции TRACIO, и их решения. TRACIO — это управляемый облачный сервис, поэтому большинство проблем находятся на стороне клиента (заблокированный скрипт, cookie, функции приватности браузера), а не в инфраструктуре.
Скрипт агента или запрос идентификации не загружается, либо консоль браузера показывает ошибку CORS в отношении edge.tracio.ai.
1. Origin не добавлен в список разрешённых для вашего ключа
Каждый публичный ключ может быть ограничен набором разрешённых origin. Если origin вашего сайта не в списке разрешённых, edge отклоняет запрос (403). Добавьте свой origin в разделе Request Filtering в дашборде или убедитесь, что используемый ключ не привязан по origin к другому сайту.
2. Блокировщик рекламы или CSP блокирует запрос
Расширения для приватности (uBlock Origin, AdBlock) или строгая Content-Security-Policy могут заблокировать скрипт агента или его сетевой запрос. SDK представляет это как ошибку blocked (см. Обработку ошибок). Чтобы затруднить блокировку, отдавайте агент с first-party-поддомена через опции scriptUrl / endpoint.
3. Неправильный endpoint / регион
Убедитесь, что вы обращаетесь к правильному endpoint. Когда вы задаёте region, SDK обращается к edge.us.tracio.ai или edge.eu.tracio.ai; без указания — используется edge.tracio.ai.
Показатели уверенности стабильно ниже 0.90 для возвращающихся посетителей.
1. Cookie не сохраняется
Cookie _vid_t может устанавливаться некорректно. Проверьте в браузере:
// In browser consoledocument.cookie.split(";").filter((c) => c.includes("_vid_t"))Если cookie отсутствует, см. раздел Cookie не сохраняется ниже.
2. Новое рабочее пространство
У совершенно нового рабочего пространства пустая база посетителей, поэтому все посетители выглядят как «новые» с уверенностью около 0.90. Через 24–48 часов возвращающиеся посетители распознаются с более высокой уверенностью.
3. Инкогнито / приватный просмотр
В режиме инкогнито cookie и localStorage очищаются при завершении сессии. TRACIO переходит к сопоставлению только по сигналам, которое имеет более низкую уверенность (обычно 0.85–0.95).
4. Браузеры с агрессивным анти-фингерпринтингом
Brave, Firefox (строгий режим) и Safari (ITP) изменяют или блокируют некоторые сигналы браузера. Это уменьшает набор сигналов, доступных для сопоставления. TRACIO определяет такие браузеры и соответствующим образом корректирует уверенность.
Изучите идентификацию в дашборде (Visitors / Events) или реагируйте на
доставку вебхука, которая несёт identification.confidence,
identification.incognito и вердикт bot для каждого события.
Легитимные посетители-люди помечаются как боты.
1. Расширения браузера изменяют свойства navigator
Некоторые расширения для приватности изменяют navigator.userAgent, navigator.platform или другие свойства. Это может вызвать срабатывание детектора подмены (tampering), но само по себе не должно вызывать детекцию ботов.
Проверьте поле bot.type, чтобы определить, какой детектор сработал:
| bot.type | Частая причина ложного срабатывания | Решение |
|---|---|---|
webdriver | Инструмент тестирования оставил navigator.webdriver = true | Пользователю следует отключить режим тестирования |
headless | VNC/удалённый рабочий стол с программным GPU-рендерингом | Проверьте, не является ли GPU-рендерером SwiftShader/llvmpipe |
unknown | Аномалия длины eval из-за расширения браузера | Проверьте расширение |
rateBot | Автоматическое обновление страницы или агрессивный поллинг | Уменьшите частоту запросов |
2. Корпоративные среды с программным рендерингом
Среды Citrix, VDI и терминальных серверов часто используют программный GPU-рендеринг (SwiftShader, llvmpipe), что является маркером headless. Если ваши пользователи работают в таких средах, применяйте более мягкую политику, когда вебхук показывает тип бота headless:
// `event` is the webhook delivery body (/docs/webhooks)if (event.bot.result === "bot" && event.bot.type === "headless") { // Software-GPU (SwiftShader/llvmpipe) VDI users can trip the headless // detector — consider applying a softer policy for these.}3. Автоматизированное тестирование в продакшене
Если ваша QA-команда запускает тесты Selenium/Playwright против продакшена, они будут корректно определены как боты. Используйте отдельный ключ для тестового трафика.
Cookie _vid_t исчезает между визитами, из-за чего каждый визит выглядит как «новый» посетитель.
1. Сайт без HTTPS
Cookie _vid_t использует флаг Secure и устанавливается только по HTTPS. Убедитесь, что ваш сайт использует HTTPS.
2. Кросс-сайтовая загрузка
TRACIO устанавливает SameSite=Lax на cookie. Если агент загружается в строго кросс-сайтовом контексте, cookie может быть заблокирован. Отдача агента с first-party-поддомена (через scriptUrl / endpoint) сохраняет его в контексте same-site.
3. Safari ITP
Intelligent Tracking Prevention (ITP) в Safari может ограничивать срок жизни cookie, установленных на стороне клиента. TRACIO также выдаёт _vid_t на стороне сервера через заголовок Set-Cookie и дублирует UID в localStorage, поэтому идентичность сохраняется даже при ограничении cookie.
4. Браузер очищает cookie
Некоторые браузеры (Brave, Firefox Focus) очищают cookie при завершении сессии. Пользователи с агрессивными настройками приватности всегда будут выглядеть как новые посетители.
tracio.getResult() возвращает результат более чем за 500 мс.
1. Медленная сеть до edge
Проверьте задержку кругового обхода (round-trip) до вашего регионального edge:
curl -o /dev/null -s -w "DNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTLS: %{time_appconnect}s\nTotal: %{time_total}s\n" https://edge.tracio.ai/health2. Сбор сигналов занимает слишком много времени
Некоторые сигналы имеют таймауты. На медленных устройствах сбор может занимать 200 мс и более. Сигналы, которые с наибольшей вероятностью добавляют задержку, — это аудио-фингерпринт (AudioContext приостановлен на iOS), проба WebRTC/TURN, определение шрифтов и тайминг DRM. Они ограничены таймаутами и никогда не блокируют бесконечно.
Некоторые сигналы возвращают статус, отличный от успешного (например, «not available» или «timeout»).
Ошибки сигналов ожидаемы и обрабатываются корректно — система корректирует уверенность на основе доступных сигналов. Частые примеры: canvas заблокирован CSP, таймаут AudioContext на iOS, WebGPU не поддерживается в большинстве браузеров, Client Hints недоступны вне Chromium. Никаких действий не требуется, если только критические сигналы (canvas, WebGL, audio) не отказывают стабильно у многих посетителей.
Если вы столкнулись с проблемой, не описанной здесь:
debug: truerequestId затронутой идентификации