Risk scoring · Session replay · Rules engine

Find the bots. Convert the humans.

One script scores every visitor's risk, records what they do, and runs your rules automatically: stop fake ad clicks, recover abandoned carts, flag fake leads.

One line, any site

<script src="https://ntrackr.com/js/ntrackr.js" defer></script>

Free plan, no credit card. Works on any site, SPAs included.

ntrackr / rule feed_
Simulation

Checked on every visit

navigator.webdriver Headless browser UA vs Client Hints mismatch Tor exit node Datacenter / hosting ASN VPN networks WebRTC leak Timezone offset mismatch Canvas anti-fingerprinting Bot user-agent HTTP header pattern No human input on submit Form filled in under 3s Repeat ad clicks Many visitors behind one IP Emulator Rooted / jailbroken device

One script, three jobs

Know them. See them. Act on it.

Most tools do one of these. nTrackr connects them, so what you learn about a visitor decides what happens next.

01

risk 82 · review

Know who's real

Every visitor gets a risk and trust score from IP, device and behaviour signals: VPNs and datacenters, headless and spoofed browsers, repeat clickers, instant form fills.

02

See what they do

Session replay with masked fields, click, move and scroll heatmaps, form drop-off by field, and the full journey through your site.

03

Act automatically

A rules engine, webhooks and a server-side Verdict API turn the score into action: show an offer, block, tag, notify your CRM.

Rules engine

If you can describe it, a rule can do it

Pick who it is (30+ conditions: page, behaviour, ad source, risk, tags, identity) and what happens (modal, banner, redirect, block, tag, webhook, or your own code). Here are 36 to start from.

Rescue the cart on exit

01
IFcurrent_url contains /cart
ANDexit_intent = true
ANDrisk_score < 40
THENShow a modal: "STAY10 gives you 10% off"

Bots never see your coupons. Real shoppers get a reason to stay.

Surprise your VIPs once

02
IFsession_count >= 5
ANDnot_has_tag = vip_seen
THENShow a banner: "Free shipping, just for you"
+Tag vip_seen

Reward loyalty without repeating yourself.

Greet visitors by country

03
IFcountry_code = DE
THENShow a banner: "Free shipping to Germany"
+Swap the price note text

Local offers with zero code.

Help shoppers who can't decide

04
IFpage_view_count >= 8
ANDnot_has_tag = helped
THENShow a banner: "Not sure? Compare our top 3"
+Tag helped

Eight product pages and no cart is a cry for help. Answer it once.

Welcome back cart leavers

05
IFhas_tag = cart_abandoner
ANDcurrent_url not_contains /checkout
THENShow a banner: "Your cart is waiting, shipping is free today"
+Remove tag cart_abandoner

The second visit is your second chance. Say it before they browse away again.

Remember the newsletter coupon

06
IFutm_source = newsletter
THENSet cookie coupon=NEWS15 for 7 days
+Show a toast: "NEWS15 is applied at checkout"

Subscribers never have to copy a code again, even if they come back next week.

Cut fake ad clicks

01
IFis_paid_click = true
ANDrisk_score >= 70
THENBlock the visitor
+Tag fake_ad_click
+Notify your webhook

The bot that eats your budget never sees the page, and you keep the evidence.

Match the page to the ad

02
IFutm_campaign = black-friday
THENChange the headline text to "Black Friday: up to 40% off"

The promise in the ad and the landing page speak the same language.

Stop click farms

03
IFip_page_views_1h > 100
THENBlock the visitor
+Notify your webhook

Hundreds of page views an hour from one IP get shut off automatically.

Spot the serial clicker

04
IFis_paid_click = true
ANDsessions_7d >= 4
THENTag repeat_clicker
+Notify your webhook

Four paid visits in a week from one device is a pattern, not a fan.

Keep bots out of retargeting

05
IFrisk_score >= 70
THENSet cookie no_retarget=1 for 30 days
+Fire the event exclude-audience

Your pixels skip visitors you already know are fake, so lookalike audiences stay clean.

Talk TikTok to TikTok traffic

06
IFad_platform = tiktok
THENChange the headline to "Seen it on TikTok? Here it is."

Visitors from each ad network land on a page that speaks their language.

Catch fake forms

01
IFform_fill_seconds < 3
THENTag suspected_bot
+Notify your webhook

A form filled in under 3 seconds is not a person. Tell your CRM before sales calls it.

Alert sales to hot leads

02
IFcurrent_url contains /pricing
ANDsession_count >= 3
ANDis_identified = true
THENNotify your webhook
+Show a banner: "Talk to an expert"

Someone coming back to pricing a third time should not go unnoticed.

Build a multi-step funnel

03
IFhas_tag = product_viewer
ANDsession_count >= 5
ANDnot_has_tag = phone_asked
THENShow a modal asking for a phone number
+Tag phone_asked

Tag in one rule, act on the tag in the next.

Rescue the half-filled form

04
IFcurrent_url contains /contact
ANDexit_intent = true
ANDnot_has_tag = form_sent
THENShow a modal: "Prefer WhatsApp? Reach us in one tap"

The visitor who leaves the contact page still wants to talk, just not by form.

Route work emails to sales

05
IFis_identified = true
ANDidentified_email not_contains gmail.com
THENTag b2b_lead
+Notify your webhook

Company addresses go straight to sales; free mail goes to nurture.

Clear false alarms automatically

06
IFvisit_count >= 3
ANDrisk_score < 30
ANDhas_tag = suspected_bot
THENRemove tag suspected_bot
+Tag trusted

A visitor who keeps coming back and looks clean earns their way out of the bot list.

Move mobile web to your app

01
IFdevice_platform contains iPhone
ANDnot_has_tag = app_asked
THENShow a banner linking to the App Store
+Tag app_asked

Turn mobile browsers into installs.

Offer the right language

02
IFbrowser_language contains tr
ANDcurrent_url contains /en
THENShow a banner: "Türkçe sürüme geç"

No visitor stuck on the wrong site.

Speak to logged-in users

03
IFis_identified = true
ANDcurrent_url contains /pricing
THENShow a modal: "2 months free on yearly plans"

Know your customer, skip the generic campaign.

Upsell your power trial users

04
IFis_identified = true
ANDhas_tag = trial
ANDsession_count >= 10
THENShow a modal: "10 sessions in. Upgrade today, save 20%"

Ask for the upgrade when they are clearly hooked, not on day one.

Announce a feature exactly once

05
IFis_identified = true
ANDnot_has_tag = seen_dark_mode
THENShow a banner: "New: dark mode is here"
+Tag seen_dark_mode

Every user hears the news, nobody hears it twice.

Offer a hand to stuck readers

06
IFcurrent_url contains /docs
ANDpage_view_count >= 6
THENShow a toast: "Stuck? Book a 15-minute setup call"

Six docs pages in a row means someone is fighting your setup. Step in.

Keep scrapers out

01
IFip_page_views_1h > 200
THENBlock the visitor

Runaway crawlers stop at the door.

Bots can't see checkout

02
IFcurrent_url contains /checkout
ANDrisk_score >= 80
THENRedirect to /blocked
+Tag checkout_bot

Automation tools never reach your payment page.

Flag VPN signups

03
IFis_anonymous = true
ANDcurrent_url contains /signup
THENTag vpn_signup
+Notify your webhook

Treat anonymous signups differently: verify first.

Slow down login attacks

04
IFcurrent_url contains /login
ANDip_page_views_1h > 30
THENBlock the visitor
+Notify your webhook

Thirty login page hits an hour from one IP is credential stuffing, not forgetfulness.

Hide promo codes from crawlers

05
IFis_datacenter = true
THENAdd the class hidden to .promo-code

Your coupons stop leaking to coupon sites that scrape from cloud servers.

Watch masked shoppers at checkout

06
IFis_webrtc_leak = true
ANDcurrent_url contains /checkout
THENTag masked_checkout
+Notify your webhook

A VPN that leaks the real IP at checkout is worth a second look before you ship.

Open live chat for VIPs

01
IFhas_tag = vip
ANDcurrent_url contains /pricing
THENFire the event open-chat

Your chat widget, your rules, triggered by who the visitor is.

Feed risk into your analytics

02
IFrisk_score >= 70
THENFire the event risky-visitor

Push the score to GTM, GA or your own backend, so ad audiences stay clean.

Switch currency by country

03
IFcountry_code = GB
THENFire the event set-currency-gbp

Anything your JavaScript can do, a rule can trigger.

CAPTCHA only for risky visitors

04
IFrisk_score >= 50
ANDcurrent_url contains /signup
THENFire the event show-captcha

Humans sign up without puzzles. Only suspicious visitors get the challenge.

Load paid widgets for humans only

05
IFrisk_score < 40
THENFire the event load-reviews

Bots stop burning the quota of the review, chat and map widgets you pay for.

Run your own A/B variant

06
IFutm_campaign = spring-test
THENFire the event price-variant-b

Your rule picks who sees variant B, your code renders it.

trigger_custom_event

Need something custom? Run your own code.

A rule can fire an event that your own JavaScript listens to. Open a chat, change a price, call your API: nTrackr decides, your code acts.

// rule: risk_score >= 50 AND current_url contains /signup
// then: trigger_custom_event = show-captcha
window.addEventListener('show-captcha', (e) => {
  captcha.render('#signup');        // humans never see it
  log(e.detail.visitorId, e.detail.sessionId);
});

Ad click fraud

See which of your paid clicks are real

nTrackr recognises ad clicks from the landing URL (Google, Microsoft, TikTok, LinkedIn and more), flags the suspicious ones and tells you what they likely cost.

  • Flags datacenter and VPN traffic, headless browsers, repeat clickers and instant form fills
  • Estimates wasted spend from your average cost per click
  • Exports the suspicious IPs, ready for Google Ads IP exclusions
  • Mark clicks Fraud or False alarm and watch the measured precision, so you know how far to trust it

Ad platforms decide on invalid-click credits themselves. nTrackr gives you the evidence.

Paid clicks · last 7 days

Example data
ClickSourceSignalsVerdict
gclid …a91f Google Ads clean Looks real
gclid …7c02 Google Ads datacenter IP · headless Suspicious
msclkid …e44b Microsoft Ads clean Looks real
gclid …19d0 Google Ads 4th click in 24h Suspicious
ttclid …b6e1 TikTok Ads form in 1s · no input Suspicious

Estimated wasted spend: $184 · 23 of 100 clicks

CSV

Everything else in the box

The full toolkit behind it

Replay, heatmaps, form analytics, journeys, blacklists, webhooks and mobile SDKs, all driven by the same visitor score.

Session Replay

Watch video-like recordings of user sessions to understand interactions and diagnose issues.

Heatmap Tracking

Visually analyze user interest areas on your pages with click and mouse movement heatmaps.

Form Analytics

Optimize your forms by analyzing interaction rates, drop-off fields, and submission times.

Journey Mapping

Visualize user paths through your site to discover bottlenecks and drop-off points.

Server-side Verdict API

Ask from your backend before a signup, checkout or payout: allow, review or block, with the reasons.

Blacklist Management

Easily manage and block unwanted traffic sources (IP, country, User-Agent, etc.).

Webhook Management

Integrate with your existing tools via webhooks with domain/URL-based configuration and event filtering.

Traffic Anomaly Detection

Detect sudden changes and anomalies in your traffic early to identify potential issues.

Privacy Settings

Manage user privacy and ensure compliance with options like IP anonymization.

How It Works

Live in five minutes

  1. 01

    Add one line

    Paste the script tag into your site, or install the Android or React Native SDK in your app.

  2. 02

    Every visitor gets a score

    Device, network and behaviour signals become a 0–100 risk score, with the reasons attached.

  3. 03

    Turn on rules

    Start from the 36 ready-made rules or write your own, and call the Verdict API from your backend for the decisions that matter.

<!-- Paste before </head> -->
<script src="https://ntrackr.com/js/ntrackr.js" defer></script>

<!-- That is the whole install -->
// after login: link the visitor to your user
ntrack('identify', {
  userId: 'u_4821',
  email: '[email protected]',
});

// read the ids to send with your own forms
ntrack('getVisitorId', (id) => form.visitorId.value = id);
# from your backend, before you accept the signup
curl https://ntrackr.com/api/v1/verdict?visitorId=$VISITOR \
  -H "X-NTrackr-Domain: shop.com" \
  -H "Authorization: Bearer $API_SECRET"

# {"recommendation":"review","riskScore":62,
#  "reasons":["datacenter_ip","fast_form_fill"]}

Mobile SDK

One score, on your site and in your apps

Web, Android and React Native share one visitor score and one set of rules.

Web

One script tag. Single-page apps, consent mode and masked fields included.

ntrack('track', 'signup')

Android SDK

Native Kotlin. Emulator and root checks feed the risk score.

NtrackrSDK.initialize { ok, _ -> }

React Native

One package for your iOS and Android apps, with jailbreak and emulator checks.

await Ntrackr.initialize()

Pricing

Start free. Upgrade when your traffic does.

Choose a plan that fits your business. No hidden fees.

Free

$0/mo

For testing and personal use

  • 1 domain
  • 5,000 pageviews/month
  • 100 session replays/month
  • 1,000 events/month
  • 1 rule
  • Risk score and bot detection
Get Started

Starter

$29/mo

Best for small websites

  • 3 domains
  • 10,000 pageviews/month
  • 1,000 session replays/month
  • 5,000 events/month
  • 15 rules
  • Ad fraud report, Verdict API, heatmaps
Start Now

Basic

Most Popular
$79/mo

For growing websites

  • 5 domains
  • 50,000 pageviews/month
  • 5,000 session replays/month
  • 25,000 events/month
  • 50 rules
  • Everything in Starter + mobile SDK
Choose Basic

Pro

$199/mo

For agencies and teams

  • 15 domains
  • 250,000 pageviews/month
  • 20,000 session replays/month
  • 100,000 events/month
  • Unlimited rules
  • Unlimited webhooks, everything included
Go Pro

Enterprise

Contact Us

For large businesses

  • Unlimited domains
  • Unlimited pageviews/month
  • Unlimited session replays/month
  • Unlimited events/month
  • Unlimited rules
  • Custom limits and onboarding
Contact Us

Put your first rule live today

Add one line to your site, watch every visitor get a score, and switch on a rule from the 36 above. The free plan is enough to see it work.