Overview

Alias employs device fingerprinting to identify and track unique devices used to submit survey responses. This feature helps detect duplicate submissions and maintain data quality by providing a stable identifier across browser sessions.

Implementation

Frontend Integration

  1. Import the fingerprinting script:
<script src="https://roundtable.ai/js/fingerprinting.js"></script>
  1. 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:

{
  "participant_id": "participant_123",
  "fingerprint_id": "fp_abc123",  // Optional
  // ... other fields
}

Response

When a fingerprint_id is provided, the API returns a fingerprint_checks object:

{
  "fingerprint_checks": {
    "device_id": "3pzig2Tu5GtqHY1Kh1p3",  // Unique identifier for the device
    "duplicate": false,            // Whether this device has submitted before
    "error": false                 // Whether fingerprinting encountered errors
  }
  // ... other response fields
}

Field Descriptions

fingerprint_id

  • Type: string
  • Required: No
  • Description: A unique identifier generated by the fingerprinting script
  • Source: Generated by fingerprinting.js 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
    • error: Boolean indicating if there were any errors during fingerprint processing

Error Handling

The fingerprint_checks object handles various scenarios:

  1. No fingerprint_id provided:

    • fingerprint_checks will be null
  2. Invalid fingerprint_id provided:

    • fingerprint_checks.duplicate will be null
    • Other fields may still contain valid data
  3. Fingerprinting error:

    • fingerprint_checks.error will be true
    • Affected fields will be set to 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
  • Maintains user privacy by not collecting personally identifiable information

Best Practices

  1. Always handle cases where fingerprinting data might be unavailable
  2. Check the error field before relying on fingerprinting results
  3. Consider fingerprinting as one of multiple signals for detecting duplicate submissions
  4. Implement appropriate error handling for cases where the fingerprinting script fails to load