Duplicate User Detection
What it detects
Section titled “What it detects”Duplicate traffic occurs when the same user — or the same bot — generates multiple clicks or conversions for the same offer within a short time window. This inflates click counts, creates false conversion signals, and misattributes revenue. The Duplicate User Detection filter blocks repeated events from the same user based on the data points you choose.
How it works
Section titled “How it works”Integr8 maintains a short-term record of user identifiers within the lookback window. When a new click or conversion arrives, it is checked against the stored identifiers. If a match is found and the allowed duplicate count is exceeded, the event is rejected.
You configure which data points are used for identity matching:
| Data point | Description |
|---|---|
| IP address | IPv4 and IPv6 addresses |
| UUID | Unique user identifier passed in the tracking link |
| Device ID | Mobile device identifier (IDFA/GAID) |
| User agent | Browser and operating system string |
| Fingerprint | Composite identifier from multiple device signals (requires JavaScript tracking) |
Multiple data points can be active simultaneously. A match on any single selected data point is enough to trigger the duplicate check.
Configuration
Section titled “Configuration”Navigate to Offers > Fraud Detection Groups > select a filter group > Duplicate User Detection.
Up to 3 independent duplicate-user rules can be configured per filter group. Each rule defines its own scope and identifier set.
| Parameter | Default | Range | Description |
|---|---|---|---|
max_duplicates |
3 | 1+ | Maximum allowed repeat events before the duplicate is rejected |
expires_in_seconds |
43,200 (12 h) | 1+ | Window in seconds for tracking duplicate identifiers |
has_offer |
true | true, false | Include the offer ID in the deduplication scope |
has_publisher |
false | true, false | Include the publisher ID in the deduplication scope |
has_user_agent |
true | true, false | Include the user agent in the deduplication scope |
enable_duplicate_ip |
true | true, false | Deduplicate by IPv4 address |
enable_duplicate_ipv6 |
false | true, false | Deduplicate by IPv6 address |
enable_duplicate_device_id |
false | true, false | Deduplicate by mobile device ID (IDFA/GAID) |
enable_duplicate_uuid |
false | true, false | Deduplicate by UUID passed in the tracking link |
enable_duplicate_fingerprint |
false | true, false | Deduplicate by browser/device fingerprint (requires JavaScript tracking) |
At least one of enable_duplicate_ip, enable_duplicate_device_id, enable_duplicate_fingerprint, or enable_duplicate_uuid must be enabled per rule.
The has_sub_id scope option (Include Sub ID under Publisher level) is managed by administrators. Contact your account admin to review or update that setting.
What happens when triggered
Section titled “What happens when triggered”When a duplicate is detected beyond the allowed count:
- The click or conversion is rejected with
fraud_reason: duplicate_user. - No attribution is recorded.
- The event is logged in Reports > Click Reports or Conversion and Events Report.
Fingerprint-based deduplication requires the JavaScript tracking link to be implemented. Without it, fingerprint data is unavailable and the filter falls back to other selected data points.
Related filters
Section titled “Related filters”- Emulator and Bots — detects automated traffic generating the duplicates
- Device ID Check — validates device ID format before deduplication