code wiki / _hdl_build / nx_ad_ivt.nx
nx_ad_ivt.nx
buildroot/runtime/_hdl_build/nx_ad_ivt.nx
about
nx_ad_ivt.nx -- LIB (PURE classify + store loader): STRENGTHENED aggregate INVALID-TRAFFIC (IVT)
classifier for the "filter bot/useless traffic for clients" face. Generalises nx_ad_botfilter's 3
signals to a wider GIVT signal vector (the categories the cited MRC Invalid-Traffic Detection
Guidelines + IAB name) -- additive and NON-BREAKING (nx_ad_botfilter stays as-is for conversion /
meter; this is the richer classifier the census grades against). [bar: srch_adfraud.raw]
PRIVACY BY CONSTRUCTION (feedback-no-server-side-visitor-identity): inputs are AGGREGATE CLASS
CODES only -- NO visitor id / IP / fingerprint. We deliberately stay GIVT-tier (general invalid
traffic: data-center, known/declared bots, non-browser, no-JS, missing-referrer, impossible
cadence). We do NOT do SIVT-tier detection because the incumbent techniques for it require per-
user fingerprinting / device graphs -- the surveillance we REFUSE. "Systems, not people."
Bucket = [c0, c1, ..., c(W-1), n] (W class-fields + a count). Field meanings (data-driven rules
in the store decide which codes are "bad", rule 11):
0 ua_class 1=known-bot UA 2=non-browser UA
1 src_class 1=data-center ASN 2=known proxy / VPN exit
2 js_class 1=raw / no-JS-exec
3 ref_class 1=missing referrer
4 cadence_class 1=impossible request cadence (too fast to be human)
5 declared_class 1=self-declared bot (robots/UA self-identifies)
license_tier: ORIGINAL
dependencies 3 imports · 2 importers
imports: nx_ad_botfilter.nxnx_ad_store.nxnx_syscalls.nx
imported by: nx_ad_exceed.nxnx_ad_ivt_gate.nx
structs
| none |
consts
| none |
functions
| 28 | func iv_invalid(fields: *i64, W: i64, rules: *i64, nrules: i64) -> i64 called by 1: ivg_probe |
| 41 | func iv_tally(ev: *i64, m: i64, W: i64, rules: *i64, nrules: i64, ov: *i64, oi: *i64) -> i64 called by 1: main |
| 67 | func iv_load_rules(key: *u8, rules: *i64, maxr: i64) -> i64 |