GaitPrint™ SDK Setup
Introduction
GaitPrint allows services to generate unique “fingerprints” for their mobile users based on an individual’s manner of walking, known as “gait”. By applying advanced machine learning to motion data collected from the device, UnifyID is able to uniquely identify the human behind the device. This allows customers to detect when a single individual is using multiple accounts, or when a previously banned user is back with a new username.
GaitPrint allows you to:
- Protect your bottom line
Prevent promotions and referral abuse. - Strengthen the integrity of your platform and its content
Detect and lock out fraudulent/fake accounts. - Safeguard your community
Control spam and content abuse from malicious users.
When integrated into your app, the GaitPrint SDK operates passively in the background. Good users won’t notice a thing, and the users you catch won’t know what hit them.
Note: GaitPrint™ is currently being offered through a private beta. For more information about this product, please contact us at support@unify.id.
Prerequisites
The GaitPrint Android SDK requires:
- Java 7 or greater
- Android API level 21 or greater
Initializing the SDK
GaitPrint is in private beta. For access to the SDK, please contact us at support@unify.id.
Initialize an instance of GaitPrint with your SDK Key. Because this may attempt a network call, this should not be run in the main thread.
new Thread(() -> {
try {
GaitPrint gaitPrint = GaitPrint.getInstance(getApplicationContext(), sdkKey);
} catch (GaitPrintException e) {
......
}
}).start();
Data collection begins upon initialization, even if no user context has been set. This allows GaitPrint to collect data for users even before they log in or sign up.
Data Collection and Upload
Data collection refers to both:
- Device motion data being captured and buffered locally
- Data being uploaded to UnifyID servers
Data is buffered locally and is uploaded based on a variety of factors, including:
- User account age (new accounts may initially upload data near real-time)
- Device conditions (Wi-Fi, battery level)
- User activity and behavior
GaitPrint will automatically and dynamically adjust data upload behavior over the course of a user’s lifetime.
Setting the User
Once a user has registered or logged in, you can provide a unique, immutable identifier to the GaitPrint instance. This attributes collected data to the user:
String uniqueUserId = "xxxxxxxxx";
gaitPrint.setUser(uniqueUserId);
This identifier must not change for a given user, so usernames and emails are not recommended if your service allows users to change those attributes.
As needed, you can query and clear the user from the GaitPrint instance (when logging out, for example):
String user = gaitPrint.getUser();
gaitPrint.clearUser();
Pausing and Resuming Data Collection
GaitPrint begins collecting data immediately upon initialization. At any point, whether or not a user has been set, you can choose to pause and resume data collection. This could be useful if, for example, you do not wish to collect data prior to login or signup:
GaitPrint gaitPrint = GaitPrint.getInstance(sdkKey);
gaitPrint.pause();
// When you wish to resume data collection...
if (!gaitPrint.isRunning()) {
gaitPrint.resume();
}
Events
In addition to collecting gait data, you can also tell GaitPrint about specific events or actions taken by the user. The following global events are currently supported:
// Send immediately after registration, *after* the user has been set
gaitPrint.track(Event.SIGNUP);
// Send after an existing user has signed in, *after* the user has been set
gaitPrint.track(Event.LOGIN);
// Send when a user logs out, *prior* to clearing the user
gaitPrint.track(Event.LOGOUT);
GaitPrint API
As data is collected, GaitPrint continuously looks for user accounts that have a high likelihood of belonging to the same physical person. This data can be consumed through a variety of channels:
- Webhooks
Set up a webhook endpoint on your server, and UnifyID will call your endpoint when a match is detected. - User Lookup API
Look up the status for a specific user based on their user ID, and GaitPrint will return matches with confidence scores. - Dashboard
The UnifyID Developer Dashboard provides a convenient user lookup interface on the web.
For additional information about the GaitPrint API, please contact us at support@unify.id.