Seatext library / BotRefund evidence

Common Mistakes Teams Make When Using Corroboration for Bot Detection

Teams often pull signals from the same source, treat every signal as required, over‑fit to one bot family, ignore signal timing, or fail to monitor when signals disagree. These errors turn a strong multi‑signal...

Built for advertisers who need clear, refund-ready traffic evidence.

Teams often misuse corroboration by pulling signals from the same source, treating every signal as mandatory, tuning detectors to a single bot family, ignoring when signals arrive, or not watching for disagreements.

These mistakes turn a strong multi‑signal approach into a weak rule‑based filter that either misses bots or blocks real users.

Symptoms of flawed corroboration

When corroboration is broken, you see:

  • High false‑positive rates on legitimate traffic from corporate networks or privacy tools.
  • Sudden drops in detected bot traffic after a rule change, indicating over‑fitting.
  • Alerts that fire only when a single signal spikes, while other signals stay quiet.
  • Inconsistent results across similar traffic spikes, suggesting timing is ignored.
  • Legitimate users from VPNs or privacy browsers getting blocked because one signal flags them.
  • Bot traffic slipping through during off‑hours when monitoring is reduced.

These symptoms appear because the detection logic treats corroboration as a checklist instead of a weighted evidence model. A single anomaly becomes a verdict, and the system cannot distinguish between a spoofed signal and a genuine outlier.

Diagnosis: why these mistakes happen

The root causes are usually procedural, not technical:

  • Teams copy a single‑signal rule and add more signals without changing the logic.
  • Performance pressure leads to “all‑must‑pass” settings to reduce noise quickly.
  • Lack of a shared definition of what constitutes independent evidence.
  • Insufficient monitoring of signal agreement over time.
  • No feedback loop between detection outcomes and signal weighting.
  • Organizational silos where the fraud team and the engineering team use different signal sets.

Without a shared framework, each team optimizes for its own metric. The fraud team wants zero false negatives; the engineering team wants zero false positives. The result is a brittle rule set that satisfies neither.

Likely causes

  • Same‑source signals: Using multiple WebGL checks that all depend on the same GPU driver.
  • Unweighted requirements: Treating each check as a hard veto instead of a weighted factor.
  • Over‑fitting to one bot family: Tuning thresholds to catch only the bots seen in a recent attack.
  • Ignoring signal timing: Not correlating when signals appear relative to each other.
  • No disagreement monitoring: Failing to log cases where signals conflict for manual review.
  • Static thresholds: Using fixed cut‑offs that do not adapt to traffic pattern changes.
  • Missing context signals: Relying only on browser fingerprinting without network or behavior data.

Each cause compounds the others. For example, same‑source signals make over‑fitting easier because the model sees correlated noise as signal.

Corrective actions

  1. Audit signal independence: List each check and note what data it uses (GPU, network, timing, behavior). Remove any that share the same source. Example: If you run three WebGL texture constraint checks that all read the same GPU driver string, keep only one. The WebGL Texture Constraint check from BotRefund is designed as independent evidence and cross‑checked against browser, network, device, and behavior data (S1).
  2. Assign weights: Use a simple scoring model (e.g., 0‑1 per signal) and set a threshold that reflects risk tolerance. Example: Give the WebGL texture constraint a weight of 0.3, suspicious ports a weight of 0.2, and mouse tremor a weight of 0.5. A session scoring above 0.7 triggers review.
  3. Validate across bot families: Test the model on known bot samples from different categories (scrapers, click farms, credential stuffers). Example: Run the weighted model against a credential‑stuffing dataset and a scraper dataset. If the WebGL texture constraint catches scrapers but misses credential stuffers, adjust its weight or add a behavior signal.
  4. Incorporate timing: Require that signals appear within a realistic window (e.g., 200‑500 ms) before considering them corroborated. Example: The Suspicious Ports check flags a mismatch between declared location and open ports. If that signal arrives 2 seconds after the page load while the WebGL signal arrived at 100 ms, treat them as uncorroborated (S5).
  5. Set up disagreement alerts: Create a dashboard that flags sessions where signals diverge, and review a sample weekly. Example: A session shows a clean WebGL texture constraint but suspicious ports. Log it, review the IP reputation, and decide whether to adjust the port signal weight.
  6. Retrain the AI model: Feed the weighted, timed signals into the prediction engine so it learns patterns rather than relying on hard rules. BotRefund sends each signal into a prediction AI that evaluates the complete picture across browser, network, device, and behavior evidence, achieving 99% accuracy through corroboration (S1, S5).

How corroboration works in practice

Corroboration moves a detection system from single‑signal rules to a multi‑stage evidence pipeline. The workflow has three stages, each visible in BotRefund’s signal pages for WebGL Texture Constraint and Suspicious Ports (S1, S5).

Stage 1: Independent evidence collection

Each check gathers one objective fact about the visit. The WebGL Texture Constraint check reads GPU driver, renderer, and texture limit values. The Suspicious Ports check scans for open ports that contradict the declared network type. Neither check makes a verdict. They only record a fact: “GPU reports NVIDIA driver on a device claiming to be an iPhone” or “Port 22 open on a residential IP.”

Stage 2: Cross‑checked context

The system tests whether other signals support the same story. If the WebGL check suggests a virtual machine, the engine looks at browser version consistency, font list, audio stack, and TCP/IP fingerprint. If the Suspicious Ports check sees a proxy port, it checks geolocation, language headers, and timezone alignment. A single anomaly is not a bot verdict. Privacy tools, travel, corporate networks, and unusual devices can produce unexpected behavior for genuine people (S1, S5).

Stage 3: AI prediction

The model weighs the complete pattern instead of trusting a raw rule. BotRefund sends each signal into a prediction AI that evaluates the full picture across browser, network, device, and behavior evidence. By seeing how all signals fit together, it identifies a visit as bot or human with 99% accuracy (S1, S5). The AI learns which signal combinations are reliable and which are noisy in your specific traffic.

This three‑stage flow replaces “if signal A then block” with “if weighted combination of signals A, B, C exceeds threshold then challenge.” The result is fewer false positives on legitimate outliers and fewer false negatives on sophisticated bots that spoof one signal well but fail on the combination.

Trade-offs of corroboration strategies

Choosing between weighted scoring and hard rules shapes latency, maintainability, and detection quality. The table below summarizes key criteria.

CriterionWeighted scoringHard rules (all‑must‑pass)
False‑positive rateLower — outliers can be outweighed by strong clean signalsHigher — any single anomaly blocks the session
False‑negative rateLower — sophisticated bots that spoof one signal still trip on the combinationHigher — bots that pass the one checked signal slip through
Latency impactModerate — requires scoring aggregation but can run in parallelLow — simple boolean checks, but often forces sequential evaluation
Maintenance effortHigher initial setup; ongoing weight tuning neededLower initial setup; but frequent rule rewrites when bots adapt

Weighted scoring fits teams that have multiple independent signals and can invest in a scoring pipeline. Hard rules fit teams with only one or two high‑confidence signals and strict latency budgets. Most mature bot‑detection programs migrate to weighted scoring once they have five or more independent signals.

Key facts

FactSource
The WebGL Texture Constraint check is kept as independent evidence and is cross‑checked against browser, network, device, and behavior data.S1
Bot clicks can steal up to 20 % of Google and Meta ad budget.S2
The Suspicious Ports check looks for mismatches between declared location and open ports, then cross‑checks against independent browser, network, device, and behavior data.S5
BotRefund uses 106 independent checks fed into a prediction AI that achieves 99% accuracy through corroboration.S1, S5

Limitations and when advice does not apply

This guidance assumes you have access to multiple independent signals. If you only have one type of data (e.g., only IP reputation), corroboration cannot be improved without adding new signal sources. The advice also does not replace the need for legal review when blocking traffic that may include legitimate users from privacy‑focused networks.

Additional limitations:

  • Added latency: Each independent signal requires collection and scoring time. Running 106 checks in parallel adds 50‑150 ms on typical infrastructure. Teams with sub‑100 ms budgets must prioritize signals or accept higher latency.
  • Signal independence is hard to verify: Two checks may appear independent but share a hidden dependency (e.g., both rely on the same browser engine version). Regular audits are required.
  • Privacy regulations affect signal collection: GDPR, CCPA, and ePrivacy Directive limit fingerprinting, IP storage, and cross‑site tracking. Some signals (canvas fingerprint, battery status) may require consent or be prohibited in certain jurisdictions.
  • Model drift: Weighted scores calibrated on last quarter’s traffic may degrade as bot tactics shift. Continuous retraining or manual weight review is necessary.
  • Edge‑case opacity: AI‑driven corroboration can become a black box. Teams need explainability tooling to understand why a session scored high.

FAQ

  • Why does using signals from the same source hurt detection? Because they share the same failure mode; a single spoof can trick all of them at once.
  • How do I choose weights for each signal? Start with equal weights, then adjust based on historical false‑positive and false‑negative rates for each signal.
  • When should I reconsider a signal as mandatory? Only when the signal has a proven near‑zero false‑positive rate on your traffic after extensive validation.
  • What tools help monitor signal disagreement? Most bot‑detection platforms expose per‑signal scores; export them to a SIEM or dashboard and set alerts on divergence.
  • Is corroboration enough to stop all bots? No. Corroboration improves accuracy but should be combined with continuous model updates and manual review of edge cases.
  • How many independent signals are enough? Five to seven well‑chosen signals from different domains (browser, network, behavior, hardware, timing) typically provide diminishing returns beyond that. BotRefund uses 106 checks across four evidence categories to reach 99% accuracy (S1, S5).
  • What is the typical false‑positive reduction after moving to weighted corroboration? Teams report 30‑60% fewer false positives when replacing all‑must‑pass rules with a weighted model tuned on their traffic, because legitimate outliers no longer trigger a hard block.
  • Can I run corroboration without an AI model? Yes. A simple weighted sum with a threshold works. The AI adds pattern learning across signal combinations, but a transparent scoring model is a valid starting point.

Further reading and comparison sources

These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.

Further reading and comparison sources

These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.

Learn more

Visit the website for more information.

Learn more