Adopture Docs
SDKsFlutter

User Identification

How Adopture identifies users while preserving their privacy.

Adopture uses a privacy-first approach to user identification. No cookies, no advertising IDs, and no fingerprinting. The SDK is designed to be GDPR compliant by default.

Hashed Identifiers

The SDK automatically generates rotating hashed identifiers for each user:

  • Daily hash — rotates every 24 hours
  • Monthly hash — rotates every 30 days
  • 90-day hash — rotates every 90 days

These hashes allow Adopture to track unique users and retention without storing any personal data. The rotation ensures that users cannot be tracked indefinitely.

Custom User ID

You can optionally associate a user identity with their events:

await Adopture.identify('user_12345');

By default, user IDs are hashed with SHA256 before being sent to the server (hashUserIds: true). The original ID never leaves the device. If you need to send the raw ID, set hashUserIds: false in your configuration.

Logout

Clear the user identity while keeping the current session:

await Adopture.logout(); // Clears user identity, keeps session

Full Reset

Clear the user identity, event queue, and start a new session:

await Adopture.reset(); // Clears user ID, queue, starts new session

Privacy by Design

Adopture does not use any of the following to identify users:

  • Cookies
  • Advertising IDs (IDFA, GAID)
  • Device fingerprinting
  • IP address storage (IPs are discarded after geolocation lookup)

This means you do not need a consent banner or cookie notice to use Adopture.

On this page