Checks and Flags
Device Fingerprinting
Overview
Roundtable Alias uses device fingerprinting to identify and track the devices participants use while taking a survey. This lets users identify duplicate participants and analyze device characteristics such as location spoofing, automated scripts, and browser tampering.
Implementation
Frontend Integration
- Import the fingerprinting script:
- The script automatically generates a
fingerprint_id
and stores it in the browser’s session storage.
API Integration
Request
Include the optional fingerprint_id
in your API request:
Response
When a fingerprint_id
is provided, the API returns a fingerprint_checks
object:
Field Descriptions
fingerprint_id
- Type:
string
- Required: No
- Description: A unique identifier generated by the fingerprinting script
- Source: Generated by
fingerprinting.js
(see script above) and stored in session storage
fingerprint_checks
- Type:
object | null
- Fields:
- device_id: A stable, unique identifier for the participant’s device based on browser and system attributes
- duplicate: Boolean indicating if this device has previously submitted responses to the same survey
- ip_country: String containing the full country name where the IP is located
- bot: Boolean indicating if the participant appears to be using an automated script
- vpn: Boolean indicating if the participant is using a VPN
- incognito: Boolean indicating if the participant’s browser is in private/incognito mode
- tampering: Boolean indicating if the participant’s browser shows signs of manipulation
- virtual_machine: Boolean indicating if the participant is using from virtualized hardware
- error: Boolean indicating if there were any errors during fingerprint processing
Error Handling
The fingerprint_checks
object handles various scenarios:
-
No
fingerprint_id
provided:fingerprint_checks
will benull
-
Invalid
fingerprint_id
provided:fingerprint_checks.error
will betrue
- All
fingerprint_checks
fields will benull
- Other fields may still contain valid data
-
Fingerprinting error:
fingerprint_checks.error
will betrue
- Affected fields will be
null
Security Considerations
The device fingerprinting system:
- Provides a stable identifier across browser sessions
- Helps identify repeat participants
- Works independently of cookies or local storage
Best Practices
- Always handle cases where fingerprinting data might be unavailable
- Check the
error
field before relying on fingerprinting results - Consider fingerprinting as one of multiple signals for detecting duplicate submissions
- Implement appropriate error handling for cases where the fingerprinting script fails to load