MEET FINGERLYA clearer picture of every session.Explore the signals

Mobile device fingerprinting on iOS and Android.

Mobile device fingerprinting on iOS and Android: how native SDKs recognise a returning device, what they report, how consent works, and how to integrate one.

Mobile device fingerprinting means recognising a returning iPhone, iPad or Android device for fraud prevention, and in apps it works differently from the browser. The platforms restrict what an app may read about a device, so the dependable approach is a random install identifier kept on the device, backed by integrity checks. Fingerly’s native iOS and Android SDKs work this way.

How is mobile fingerprinting different from browser fingerprinting?

A website can learn a lot about a browser from ordinary characteristics. A native app lives under tighter platform rules: the system deliberately hides stable hardware identifiers, and the iOS platform rules restrict apps from deriving data from a device to identify it uniquely. An approach that is routine on the web can be rejected in an app.

That is why a browser SDK must never run inside an app’s web view, and why Fingerly ships separate native SDKs. In an app, a page is your app reading the device, and the native SDK is the tool built for that job.

How does a mobile SDK recognise a returning device?

Fingerly’s iOS and Android SDKs create a random install ID, keep it in the app’s own storage on the device, and the server recognises the device by it. It never uses the advertising identifier or an operating system device identifier, and it is never shared with other apps. Device characteristics are used for integrity checks and the score, not to identify the device or the user.

Because recognition rests on the install ID, confidence in apps is simple: 100 for an install seen before and 0 for a new one, with no partial match. How a reinstall behaves differs by platform:

  • On iOS, the install ID survives the app being deleted, so a reinstall on the same device keeps its visitor ID.
  • On Android, the install ID is removed with the app and is never restored from a backup, so a reinstall gets a new visitor ID.
  • Your app can call deleteStoredIdentity() to remove the install record for an erasure request or account deletion, after which the next identification starts a new ID.

What do the iOS and Android SDKs report?

Each identification returns a request ID, the visitor ID, whether the visitor is new, a confidence value, and a suspect score and level. The score is computed on the server from raw input, so the SDK holds no weights or thresholds, and rules can change without an app update. Your backend can also see the signals behind it, such as a jailbroken or rooted device, an emulator or simulator, a cloned app, an instrumentation toolkit attached to the app, intercepted traffic, and VPN, proxy or Tor use.

Where the platform supports it, the SDK also supplies hardware-backed attestation, which lets the system vouch that a report comes from your genuine app. A modified app can forge everything else in a report, so attestation is the evidence that resists tampering. On Android 7.0 and newer it works without configuration. On iOS it is optional and needs the capability and your app identifier set up.

How do you add device identification to an iOS or Android app?

Install the SDK, load it once with your public key, and call identify at the action you want to protect. The iOS SDK is written in Swift with no third-party dependencies, installs through Swift Package Manager, and needs iOS 13 or newer. The Android SDK is written in Kotlin, installs from Fingerly’s Maven repository, needs Android 5.0 (API 21) or newer, and has a callback wrapper for Java.

Cross-platform apps are covered by React Native, Flutter and Lynx packages that bridge to the same native SDKs. In every case the flow is the same: identify in the app, send the request ID to your backend with the action, and let the backend decide.

They never show a permission prompt. On Android the SDK declares two permissions, internet access and network state, which are granted at install time. The iOS SDK includes a privacy manifest inside the framework, so your app’s privacy report reflects it.

Consent defaults to pending, which collects nothing. Load the SDK as pending and pass your consent tool’s answer with setConsent, or load as granted where you already have consent or another lawful basis. Whether fraud prevention needs consent in your case is a question for your own legal advice.

Collection runs on a time budget, 1,200 milliseconds by default, and every source is isolated, so a slow or blocked one never holds up the answer. A screen that cannot wait can run only the fast tier of collection. Development and staging keys run the same detection as production and cost nothing, so you can test the flow on real devices, and on emulators and simulators, before you ship it.

What should your backend do with the result?

Read the stored event with a secret key, using the request ID the app sent, and check it belongs to this action and is recent. The score that reaches the app is a convenience for trying the product and should not make security decisions, because the app runs on a device you do not control. Fingerly’s server SDKs, webhooks and HTTP API all read the same event.

Mobile behaviour described as the native SDKs ship today. See the SDK documentation for the full reference.

Put it into practice
Open the session inspector Try the policy sandbox
EXPLAINER / DEVICE FINGERPRINTING

What is device fingerprinting?

Read the explainer
FIELD GUIDE / FINGERPRINTING VS COOKIES

Browser fingerprinting vs cookies.

Compare the two
EXPLAINER / PRIVACY AND GDPR

Is device fingerprinting legal? Privacy, consent and GDPR.

Read the privacy explainer
FIELD GUIDE / ACCURACY AND LIMITS

How accurate is device fingerprinting?

Read the field guide
EXPLAINER / ABOUT FINGERLY

What is Fingerly?

Meet Fingerly
HOW-TO / BOT DETECTION

Bot detection for signups and logins, without a wall of captchas.

Read the how-to
PLAYBOOK / PROMOTION ABUSE

Prevent multiple accounts and promo abuse, one device at a time.

Read the playbook
PLAYBOOK / ACCOUNT TAKEOVER

Stop account takeover with device signals, not more passwords.

Read the playbook
HOW-TO / NETWORK INTELLIGENCE

How to detect VPN, proxy and Tor traffic, and what to do about it.

Read the how-to
PLAYBOOK / MOBILE APP FRAUD

Mobile app fraud: emulators, clones and tampering, and what you can detect.

Read the playbook
PLAYBOOK / BUILD VS BUY

Build or buy device identification? An honest guide for engineering teams.

Read the guide
BUYER’S GUIDE / PRICING

How much does device fingerprinting cost?

Read the buyer’s guide
COMPARISON / BOT DEFENCE

Device fingerprinting vs CAPTCHA: which one stops bots?

Read the comparison
COMPARISON / IP ADDRESSES

Device fingerprinting vs IP address blocking.

Read the comparison
HOW-TO / MULTI-ACCOUNTING

How to detect multiple accounts from one person.

Read the how-to
HOW-TO / TRIAL ABUSE

How to stop free trial abuse without hurting conversions.

Read the how-to
HOW-TO / REFERRAL FRAUD

Referral fraud and reward abuse prevention.

Read the how-to
HOW-TO / FAKE SIGNUPS

How to stop fake signups and spam accounts without punishing real users.

Read the how-to
HOW-TO / CREDENTIAL STUFFING

Credential stuffing and login protection: stop the bots, keep the customers.

Read the how-to
EXPLAINER / AUTOMATION

Headless browsers and automation detection: telling a script from a person.

Read the explainer
EXPLAINER / MOBILE INTEGRITY

Rooted and jailbroken devices: what they mean for fraud, and what to do about them.

Read the explainer
EXPLAINER / SPOOFING

Anti-detect browsers and fingerprint spoofing: what can and cannot be caught.

Read the explainer
EXPLAINER / DEVICE FARMS

Device farms and click farms, explained: how abuse scales and what you can detect.

Read the explainer
FIELD GUIDE / DEVICE INTELLIGENCE

What a device can tell you about a session.

Read the field guide
SIGNAL NOTES / NETWORK CONTEXT

VPN, proxy, or Tor? Know the difference.

Explore the signal notes
PLAYBOOK / BETTER DECISIONS

Build a risk policy. Not a wall.

Read the playbook
[ IDENTIFY ][ UNDERSTAND ][ DECIDE ][ FINGERLY ]
Less guessing. More knowing.

Make the next connection a trusted one.

Start with the signals, keep your own decisions, and pay as you go, only for what you identify. No credit card needed.