Cette page couvre les problèmes courants rencontrés lors de l'intégration de TRACIO et leurs solutions. TRACIO est un service cloud géré, la plupart des problèmes sont donc côté client (script bloqué, cookies, fonctionnalités de confidentialité du navigateur) plutôt que liés à l'infrastructure.
Le script de l'agent ou la requête d'identification ne se charge pas, ou la console du navigateur affiche une erreur CORS contre edge.tracio.ai.
1. Origine non autorisée pour votre clé
Chaque clé publique peut être verrouillée sur un ensemble d'origines autorisées. Si l'origine de votre site n'est pas dans la liste, l'edge rejette la requête (403). Ajoutez votre origine sous Request Filtering dans le tableau de bord, ou vérifiez que la clé que vous utilisez n'est pas verrouillée sur une origine d'un autre site.
2. Bloqueur de publicités ou CSP bloquant la requête
Les extensions de confidentialité (uBlock Origin, AdBlock) ou une Content-Security-Policy stricte peuvent bloquer le script de l'agent ou sa requête réseau. Le SDK expose cela comme une erreur blocked (voir Gestion des erreurs). Pour rendre le blocage plus difficile, servez l'agent depuis un sous-domaine de première partie à l'aide des options scriptUrl / endpoint.
3. Mauvais endpoint / mauvaise région
Assurez-vous de pointer vers le bon endpoint. Lorsque vous définissez region, le SDK communique avec edge.us.tracio.ai ou edge.eu.tracio.ai ; s'il n'est pas défini, il utilise edge.tracio.ai.
Les scores de confiance sont systématiquement inférieurs à 0.90 pour les visiteurs récurrents.
1. Cookie qui ne persiste pas
Le cookie _vid_t peut ne pas être défini correctement. Vérifiez dans le navigateur :
// In browser consoledocument.cookie.split(";").filter((c) => c.includes("_vid_t"))Si le cookie est absent, voir la section Cookie qui ne persiste pas ci-dessous.
2. Nouvel espace de travail
Un espace de travail flambant neuf a une base de visiteurs vide, tous les visiteurs apparaissent donc comme « nouveaux » avec une confiance autour de 0.90. Après 24-48 heures, les visiteurs récurrents sont reconnus avec une confiance plus élevée.
3. Navigation privée/incognito
En mode incognito, les cookies et le localStorage sont effacés à la fin de la session. TRACIO se rabat sur une correspondance par signaux uniquement, qui a une confiance plus faible (typiquement 0.85-0.95).
4. Navigateurs avec anti-fingerprinting agressif
Brave, Firefox (mode strict) et Safari (ITP) modifient ou bloquent certains signaux du navigateur. Cela réduit l'ensemble de signaux disponibles pour la correspondance. TRACIO détecte ces navigateurs et ajuste la confiance en conséquence.
Inspectez l'identification dans le tableau de bord (Visitors / Events), ou agissez sur
la livraison du webhook, qui porte identification.confidence,
identification.incognito et le verdict bot pour chaque événement.
Des visiteurs humains légitimes sont signalés comme des bots.
1. Extensions de navigateur modifiant les propriétés navigator
Certaines extensions de confidentialité modifient navigator.userAgent, navigator.platform ou d'autres propriétés. Cela peut déclencher le détecteur d'altération, mais ne devrait pas déclencher la détection de bot à elle seule.
Vérifiez le champ bot.type pour identifier quel détecteur s'est déclenché :
| bot.type | Cause courante du faux positif | Solution |
|---|---|---|
webdriver | Outil de test de navigateur ayant laissé navigator.webdriver = true | L'utilisateur doit désactiver le mode test |
headless | VNC/bureau distant avec rendu GPU logiciel | Vérifier si SwiftShader/llvmpipe est le renderer GPU |
unknown | Anomalie de longueur d'eval provenant d'une extension | Examiner l'extension |
rateBot | Rafraîchissement automatisé de page ou polling agressif | Réduire la fréquence des requêtes |
2. Environnements d'entreprise avec rendu logiciel
Les environnements Citrix, VDI et terminal server utilisent souvent un rendu GPU logiciel (SwiftShader, llvmpipe), qui est un marqueur de headless. Si vos utilisateurs opèrent dans ces environnements, appliquez une politique plus souple lorsque le webhook indique un type de bot 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. Tests automatisés en production
Si votre équipe QA exécute des tests Selenium/Playwright contre la production, ceux-ci seront correctement détectés comme des bots. Utilisez une clé distincte pour le trafic de test.
Le cookie _vid_t disparaît entre les visites, ce qui fait que chaque visite apparaît comme un visiteur « nouveau ».
1. Site non-HTTPS
Le cookie _vid_t utilise l'indicateur Secure et n'est défini que sur HTTPS. Assurez-vous que votre site utilise HTTPS.
2. Chargement cross-site
TRACIO définit SameSite=Lax sur le cookie. Si l'agent est chargé dans un contexte strictement cross-site, le cookie peut être bloqué. Servir l'agent depuis un sous-domaine de première partie (via scriptUrl / endpoint) le maintient same-site.
3. Safari ITP
L'Intelligent Tracking Prevention (ITP) de Safari peut plafonner la durée de vie des cookies définis par le client. TRACIO émet également _vid_t côté serveur via l'en-tête Set-Cookie et reflète l'UID dans localStorage, de sorte que l'identité survit même lorsque le cookie est plafonné.
4. Navigateur effaçant les cookies
Certains navigateurs (Brave, Firefox Focus) effacent les cookies à la fin de la session. Les utilisateurs aux paramètres de confidentialité agressifs apparaîtront toujours comme de nouveaux visiteurs.
tracio.getResult() met plus de 500 ms à répondre.
1. Réseau lent vers l'edge
Vérifiez la latence aller-retour vers votre edge régional :
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. Collecte de signaux trop longue
Certains signaux ont des délais d'expiration. Sur les appareils lents, la collecte peut prendre 200 ms et plus. Les signaux les plus susceptibles d'ajouter de la latence sont l'empreinte audio (AudioContext suspendu sur iOS), la sonde WebRTC/TURN, la détection de polices et le timing DRM. Ils sont bornés par des délais d'expiration et ne bloquent jamais indéfiniment.
Certains signaux renvoient un statut non réussi (par exemple « not available » ou « timeout »).
Les erreurs de signaux sont attendues et gérées avec élégance — le système ajuste la confiance en fonction des signaux disponibles. Exemples courants : canvas bloqué par la CSP, AudioContext expirant sur iOS, WebGPU non pris en charge sur la plupart des navigateurs, Client Hints indisponibles hors Chromium. Aucune action n'est requise, sauf si des signaux critiques (canvas, WebGL, audio) échouent systématiquement chez de nombreux visiteurs.
Si vous rencontrez un problème non couvert ici :
debug: truerequestId d'une identification affectée