Smart Signals är serversidiga berikningssignaler som beräknas utifrån webbläsarfingeravtryck, IP-intelligence och beteendeanalys. De ger djup kontext om varje besökare utan att samla in några personuppgifter.
Smart Signals — de berikade besluts-, risk-, nätverks- och botsignalerna — når din server på två sätt: de pushas till dig som webhooks (se Webhooks) och kan läsas på begäran via Data API. De visas också i dashboarden. Exemplen nedan konsumerar webhook-payloadens form; samma fält finns när en session läses från API:et.
Ett besök resulterar i 35+ smart signals inom nätverk, webbläsare, enhet och beteende. Referensen nedan namnger dem du kommer att använda oftast, bland andra:
| Signal | Beskrivning | Response | Plattform |
|---|---|---|---|
| VPN Detection | Flaggar VPN-användning utifrån IP-intelligence | network.vpn: boolean | Web |
| Proxy Detection | Identifierar datacenter- och residential-proxyanvändning | network.proxy: boolean | Web |
| Tor Detection | Matchar IP:n mot kända Tor-exit-noder | network.tor: boolean | Web |
| Datacenter | Flaggar IP:n som tillhör kända moln-/hostingleverantörer | network.datacenter: boolean | Web |
| IP Geolocation | Geolokalisering på stadsnivå + ISP och ASN från IP-adressen | geo.{ country, city, timezone }, network.{ isp, asn } | Web |
| Signal | Beskrivning | Response | Tillgänglighet |
|---|---|---|---|
| Browser Tampering | Upptäcker förfalskade User-Agents, modifierad navigator, extension-injektion | { result: boolean, anomalyScore: number } | Web |
| Antidetect Browsers | Poängsätter webbläsarbyggen som förfalskar fingeravtryck via CSS- och egenskapsprober | bot.antidetectScore: number (0–100, Pro+) | Web |
| Privacy Settings | Upptäcker integritetsfokuserade webbläsarkonfigurationer (Tor Browser, Brave, Firefox ETP, Safari ITP) | { result: boolean } | Web |
| Developer Tools | Upptäcker när webbläsarens DevTools är öppna | { result: boolean } | Web — Business & Enterprise |
| Incognito | Härleder privat surfning i Chromium, Firefox och Safari | identification.incognito: boolean | Web |
| Signal | Beskrivning | Tillgänglighet |
|---|---|---|
| Emulator | Upptäcker Android-emulatorer (BlueStacks, Genymotion, Nox, Android SDK) via GPU-renderer och UA-markörer | Web — alla planer |
Detekteringar endast för native. Root, jailbreak, klonad/dubbel app och Frida-instrumentering bygger på signaler som endast ett native mobil-SDK kan samla in. TRACIO levererar webbläsar-SDK:er, så dessa är inte effektiva i webbagenten — förlita dig i stället på utlåtandena om automatisering, headless, antidetect, emulator och beteende.
| Signal | Beskrivning | Response | Plattform |
|---|---|---|---|
| Bot Detection | Identifierar automatiseringsramverk och headless-webbläsare | bot.result: "human"|"bot"|"uncertain", bot.type: string, bot.score: number | Web |
| Risk Score | Aggregerad risk för förfrågan, på webhook-objektet decision | decision.riskScore: number, decision.suspectScore: number, decision.action: "real"|"fake"|"suspicious" | Web |
VPN-, proxy-, Tor- och datacenter-flaggor löses upp på serversidan från
besökarens IP med hjälp av kommersiella IP-intelligence-databaser (IP2Location /
MaxMind). Den publika webhook-payloaden exponerar de kombinerade resultaten som booleaner
på network-objektet — network.vpn, network.proxy, network.tor,
network.datacenter — utan uppdelning per metod eller konfidenssträng. Se
IP Intelligence för detaljer.
Privat surfning härleds i Chromium, Firefox och Safari och når dig som
identification.incognito. Det finns inget webbläsar-API som rapporterar det, så
utlåtandet kommer från en viktad omröstning om hur storage beter sig i ett privat
fönster — fel från origin private file system, storagens hållbarhet och
plattformsspecifika egenheter bidrar var för sig.
Det är en sannolikhetsbaserad signal, inte en visshet: behandla den som en av flera
indata snarare än ett faktum att agera på ensam. Eftersom privata fönster också
hindrar cookien _vid_t identifieras ett incognitobesök enbart utifrån signaler, och
dess identification.confidence är följaktligen lägre.
Tampering-detektorn identifierar besökare som har modifierat sin webbläsare för att felaktigt framställa sin identitet:
navigator-egenskaper genom att jämföra getter-prototyperPluginArray.prototype och MimeType.prototypeFunction.prototype.toString, Object.getOwnPropertyDescriptor och andra kritiska funktioner har ersatts med ProxiesanomalyScore (0.0–1.0) kvantifierar graden av inkonsekvens. Värden över 0.5 indikerar betydande manipulation.
Webhook-objektet decision bär den aggregerade risken för en förfrågan:
decision.riskScore (heltal 0–100), decision.suspectScore (tal) och
decision.action (den rekommenderade åtgärden). Poängen aggregerar utdata från
smart signals; banden nedan beskriver hur riskScore mappar till risknivåer:
| Poängintervall | Risknivå | Typiska indikatorer |
|---|---|---|
| 0-10 | Normal | Rena signaler, känd besökare, residential-IP |
| 11-30 | Låg | Mindre inkonsekvenser, datacenter-IP eller första besök |
| 31-60 | Medel | VPN upptäckt, webbläsarmanipulation eller ovanlig velocity |
| 61-80 | Hög | Flera risksignaler, proxy + manipulation, hög aktivitet |
| 81-100 | Kritisk | Bot upptäckt, Tor-exit-nod eller allvarliga anomalier |
Poängen aggregerar de aktiva smart-signal-utdata — främst IP-intelligence (VPN/proxy/Tor/datacenter), botutlåtandet och webbläsarmanipulation. Bekräftad mänsklig interaktion (mus/tangentbord) sänker poängen.
Fyra integritetsfokuserade webbläsarkonfigurationer detekteras:
| Webbläsare | Detekteringsmetod | Tröskel |
|---|---|---|
| Tor Browser | Canvas blockerad + WebGL blockerad + UTC-tidszon + begränsade typsnitt + avrundad skärmstorlek | 3+ markörer |
| Brave | Brave-UA eller navigator.brave eller Client Hints-varumärket ”Brave” | 1+ markör |
| Firefox ETP (strikt) | Storage partitionerad eller canvas-motstånd aktiverat (Firefox-UA krävs) | 1+ markör |
| Safari ITP | Cookies blockerade eller IndexedDB begränsad (Safari-UA krävs) | 1+ markör |
Smart Signals når din server via webhook-payloaden (se Webhooks för den fullständiga formen och signaturverifiering) och när en session läses från Data API. Exemplen nedan läser fälten direkt från webhook-payloaden; fältnamnen är desamma i båda fallen.
// `payload` is the webhook delivery body (/docs/webhooks)const score = payload.decision.riskScoreconst isVPN = payload.network.vpnconst isBot = payload.bot.result === "bot"
if (isBot) { return block("Automated access")}
if (score > 60) { return requireMFA()}
if (isVPN && score > 30) { return requireCaptcha()}
return allow()// `payload` is the webhook delivery body (/docs/webhooks)function computeFraudRisk(payload: WebhookPayload): string { let risk = "low"
if (payload.decision.riskScore > 60) risk = "high" else if (payload.decision.riskScore > 30) risk = "medium"
// Escalate when multiple network signals agree if (payload.network.vpn && payload.network.proxy) risk = "high" if (payload.network.tor) risk = "high" if (payload.bot.result === "bot") risk = "high"
return risk}