Event And Identity

Bot Detection and Filtering

Filter bot traffic in Ours Privacy using user-agent detection or Advanced Bot Detection — an algorithm-driven behavioral scoring system you can apply at the source, globally, or per destination.

Bot Detection and Filtering

Ours Privacy provides two tiers of bot detection: basic user-agent filtering available on all sources, and Advanced Bot Detection — an opt-in, algorithm-driven scoring system that assigns every event a bot_score (0–100) based on behavioral signals. Because the score is stored as an event property, you can filter bots at the source level, globally across destinations, or selectively per destination.

Bot detection and filtering is free and included on all Ours Privacy accounts.


Bot Control Modes

Each web source has a Bot Control Mode setting in Sources > [Your Source] > Settings.

Allow (Default)

All traffic passes through. Bot events are still flagged and scored, but nothing is filtered. Use this when you want to analyze bot traffic patterns or handle filtering downstream.

Block

Known bots identified by user-agent string (is_bot: true) are filtered out server-side. These events don't appear in Recent Events, aren't dispatched to destinations, and don't count toward your MTU.

No SDK changes required. Use Block for simple, zero-configuration bot filtering.

Threshold (Advanced Bot Detection)

Events are scored using Ours Privacy's behavioral scoring algorithm. Any event with a bot_score at or above your configured threshold is filtered out.

  • Default threshold: 70 — conservative, prefers fewer false positives over aggressive filtering
  • Threshold is configurable per source (0–100)
  • Lower thresholds filter more aggressively; higher thresholds are more lenient

To get the most accurate scores, enable Advanced Bot Detection in your SDK. Without SDK signals, scoring falls back to user-agent analysis only.


Advanced Bot Detection

Advanced Bot Detection is an opt-in feature that uses a behavioral scoring algorithm to evaluate each event on a 0–100 scale. The algorithm combines user-agent analysis with passive behavioral signals collected by the SDK — including mouse, scroll, click, keyboard, and timing patterns — to distinguish human visitors from automated traffic.

The algorithm evaluates multiple behavioral dimensions independently and in combination. Behavioral signals alone can identify bots that disguise their user-agent string — no UA detection required.

Signals are processed server-side. Raw signal data is stripped after scoring and never persisted.

Enabling Advanced Bot Detection

Via SDK — pass bot_detection: true in your init options:

// Copy-paste snippet
ours('init', 'YOUR_TOKEN', { bot_detection: true });
// NPM SDK
import ours from '@oursprivacy/web-cdp';

ours.init('YOUR_TOKEN', { bot_detection: true });

Via Ours Privacy Tag Manager or GTM — enable the Advanced Bot Detection checkbox in your Init tag settings. No code changes required.

All signal collection is passive and throttled. When disabled (the default), no signal code runs and no additional data is sent.


Filtering at Multiple Layers

Because bot_score is an event property, you're not limited to filtering at the source. You can stop bots at whichever layer makes sense for your use case:

1. Block at the source — Set Bot Control Mode to Block or Threshold. Bots are dropped before reaching any destination.

2. Block globally with Data Governance — Leave Bot Control Mode as Allow and create a Global Data Governance rule that stops dispatch when event.bot_score >= 70. This keeps the raw data in your warehouse while preventing bots from reaching ad and analytics platforms.

3. Block at individual destinations — Add a stop condition to a destination's mapper: event.bot_score >= 70. Each destination can have its own threshold.


Event Properties

Every event receives the following bot detection properties:

PropertyLocationTypeDescription
is_botdefaultPropertiesbooleantrue if user-agent matches a known bot
bot_scoreeventPropertiesnumber (0–100)Algorithm-driven bot likelihood score
bot_categoryeventPropertiesstringhuman, likely_human, suspicious, likely_bot, or bot
bot_signals_usedeventPropertiesstring[]Which signal categories contributed to the score
Score RangeCategoryDescription
0–10humanConfident the traffic is human
11–30likely_humanProbably human, minor anomalies
31–50suspiciousSome bot-like characteristics
51–75likely_botStrong indicators of automation
76–100botVery likely automated or a known bot

Limitations

  • Fully human-simulating bots that convincingly reproduce natural browsing behavior across all measured dimensions may score as human.
  • No IP reputation data is used. Scoring relies on user-agent analysis and behavioral signals only.

Best Practices

  • Start with Allow to observe your bot traffic before filtering
  • Enable Advanced Bot Detection in your SDK for the most accurate scoring
  • Use Threshold mode (default: 70) for balanced filtering
  • Use Global Data Governance rules to block bots from ad platforms while preserving data in your warehouse

How is this guide?

On this page