Skip to main content
The Kount Android SDK collects device data to create a unique fingerprint of each device, enabling accurate fraud detection and risk assessment. This process, known as Device Data Collection (DDC), happens automatically when you call collectForSession().

What is Device Fingerprinting?

Device fingerprinting is the process of collecting various data points from a device to create a unique identifier. This fingerprint helps Kount’s fraud detection system:
  • Identify returning devices across different sessions
  • Detect suspicious patterns and anomalies
  • Assess risk levels for transactions
  • Distinguish between legitimate users and fraudsters
The device fingerprint is not based on personally identifiable information (PII). It uses technical device characteristics that are privacy-safe.

Data Categories

The SDK collects data from several categories to build a comprehensive device profile:

Hardware Information

  • Device model and manufacturer
  • Screen resolution and density
  • Available sensors
  • CPU architecture
  • Memory specifications

Software Information

  • Android OS version
  • Installed app packages (if available)
  • System fonts and languages
  • Browser user agent
  • Time zone and locale settings

Network Information

  • IP address
  • Network type (WiFi, cellular, etc.)
  • Connection characteristics
  • Network operator information

Location Information

  • GPS coordinates (if permission granted)
  • City-level location data
  • Time zone offset
The SDK automatically adapts data collection based on Android version and available permissions. On devices without location permissions, for example, the SDK still collects all other data points.

Collection Process

Here’s how data collection works:

Collection Lifecycle

1

Initialization

When you call collectForSession(), the SDK initializes all data collectors based on your configuration and available permissions.
2

Data Gathering

Multiple collectors run in parallel to gather device information efficiently. This process typically takes 1-3 seconds depending on device capabilities.
3

Data Transmission

Collected data is encrypted and transmitted to Kount’s servers. The SDK uses secure HTTPS connections to protect data in transit.
4

Completion

Once transmission is complete, your success callback is invoked with a unique session ID. This session ID links the collected data to your transaction.

Privacy Considerations

Kount takes privacy seriously and follows industry best practices:
The SDK does not collect:
  • User names or email addresses
  • Phone numbers or contact lists
  • Photos, files, or media
  • Passwords or authentication tokens
  • Messages or communication content
  • Precise GPS coordinates without explicit permission
All data transmitted from the device is encrypted using industry-standard TLS/SSL protocols. Data at rest on Kount’s servers is also encrypted.
The SDK is designed to comply with:
  • GDPR (General Data Protection Regulation)
  • CCPA (California Consumer Privacy Act)
  • PCI DSS requirements
  • Android’s privacy guidelines

Collection Timing

When should you trigger data collection?
Best Practice: Call collectForSession() as early as possible in your user flow, but not before the user performs a meaningful action.
ScenarioWhen to CollectExample
E-commerceWhen user views checkout pageAfter adding items to cart, before payment
Account CreationWhen signup form is displayedBefore user submits registration
LoginWhen login screen loadsBefore authentication attempt
In-App PurchasesWhen purchase flow startsBefore displaying payment options
High-Risk ActionsBefore sensitive operationsMoney transfer, password change, etc.
Don’t collect too early: Collecting data on app launch may waste resources if the user never performs a transaction.Don’t collect too late: Collecting after a transaction is submitted means you can’t prevent fraud in real-time.

Collection Performance

The SDK is optimized for minimal performance impact:
  • Asynchronous: All collection happens on background threads
  • Non-blocking: Your UI remains responsive during collection
  • Efficient: Typical collection completes in 1-3 seconds
  • Battery-friendly: Minimal battery consumption
  • Network-optimized: Small payload size (typically < 50KB)

Enhanced Data Collection

Starting with version 4.0.0, the SDK includes enhanced data collection capabilities:
// The SDK automatically uses enhanced collectors on Android 10+
KountSDK.collectForSession(
    this,
    { sessionId ->
        // On Android 10+ devices, this includes:
        // - City-level location information
        // - Enhanced timing metrics
        // - Additional device signals
        Log.d("Kount", "Enhanced collection completed: $sessionId")
    },
    { sessionId, error ->
        Log.e("Kount", "Collection failed: $error")
    }
)
Features are automatically enabled based on the device’s Android version. You don’t need to write version-specific code—the SDK handles it for you.

Monitoring Collection Status

You can check the collection status at any time:
val status = KountSDK.getCollectionStatus()

when (status) {
    "IDLE" -> Log.d("Kount", "No collection in progress")
    "COLLECTING" -> Log.d("Kount", "Collection in progress")
    "COMPLETED" -> Log.d("Kount", "Collection completed successfully")
    "FAILED" -> Log.d("Kount", "Collection failed")
}
See the KountSDK.getCollectionStatus() API reference for details.

Next Steps

Session Management

Learn how session IDs work and how to use them

Permission Handling

Implement location permissions for enhanced collection

Analytics Collection

Enable optional behavioral analytics

API Reference

Explore the complete SDK API

Build docs developers (and LLMs) love