Protects iOS apps against sophisticated fraud and abuse from high level bad actors. IPQualityScore uses a mix of JS device fingerprinting and mobile SDK device fingerprinting to enable your iOS app to accurately identify fraud and abusive behavior with mobile device fingerprinting techniques. Verify new or returning users and identify high risk behavior, such as mobile emulators, residential botnets, location spoofing including GPS tampering, bots, non-human requests, fake accounts, install fraud, and hijacked devices. IPQS makes it easy to detect duplicate accounts, bonus abuse, fraudulent users, fake installs, and much more.
Please see the instructions below for further guidance on setting up the iOS Device Fingerprint SDK.
Deploy IPQS device fingerprinting for iOS devices using this SDK package, which collects non-sensitive data about the user's device and in-app behavior. The SDK only collects data when called with the functions below. The IPQS iOS SDK is packaged into a zip file which can be included within your app. It requires Xcode 11.0+ and iOS 11.0+.
Drag the framework folder to your xCode project, and then click your project go to Targets > YourTarget > Frameworks and next to IPQualityScore select Sign & Embed.
Go to build settings and set Validate Workspace to Yes, and set Enable Bitcode to No.
You can set the API key using the static variable MobileTracker.apiKey.
Enter app API key, available here: -> https://www.ipqualityscore.com/user/mobile.
Add the following code to your info.plist:
LSApplicationQueriesSchemes
undecimus
cydia
sileo
zbra
The following code allows for passing tracking variables such as a user ID, transaction ID, click ID, and similar identifiers to associate a mobile device fingerprint request with a specific user or action.
Access the iOS device fingerprinting results of our json API for more intelligent decision making and custom rule generation to stop fraudsters and abusive users.
Field | Description | Type |
---|---|---|
message | Get the response message string for this request. This is generally 'Success', but can include administrator level information on why a request failed. (Out of credits, etc...) | String |
success | A boolean containing the request's success or failure status. True on success, false on failure. | Boolean |
request_id | The unique ID associated with this request. Helpful for debugging and postbacks. | String |
fraud_score | Number 0 - 100 describing how likely this device is to commit fraud. 0 being not at all, 100 being definitively fraud. We suggest blocking users greater than 85. | Float |
country_code | A two character country code based on this user's IP address. | String |
region | A string describing the region this user's IP is from. | String |
city | A string describing the city this user's IP is from. | String |
ISP | A string describing the ISP this user's IP belongs to. | String |
organization | A string describing the Organization this user's IP belongs to. | String |
ASN | The ASN assigned to the ISP this user's IP belongs to. | Integer |
latitude | The latitude this user's IP is at. | Float |
longitude | The longitude this user's IP is at. | Float |
is_crawler | Returns true if this user's IP is from a known search engine crawler. | Boolean |
timezone | Returns the timezone this user's IP is from. | String |
host | Returns the hostname of this user's IP address. | String |
proxy | Returns true if this user's IP is a known proxy. | Boolean |
vpn | Returns true if this user's IP is a known VPN. | Boolean |
tor | Returns true if this user's IP is a known or suspected TOR node. | Boolean |
recent_abuse | Returns true if this user's IP has been reported for being abusive recently or if this device has been seen preforming abusive actions. | Boolean |
bot_status | Returns true if this user's IP has been reported for botting or if this device has been seen preforming bot like actions. | Boolean |
connection_type | Classification of the IP address connection type as "Residential", "Corporate", "Education", "Mobile", or "Data Center". | String |
device_suspicious | Returns true if this device has suspicious properties or if this device has been seen preforming suspicious activities recently. | Boolean |
device_emulated | Returns true if this device has been emulated or appears to have been emulated. | Boolean |
device_id | A unique identifier for this device. | String |
Postback Example to Retrieve Latest Request by UserID
Please make sure your initial API request passed a valid "userID" value (or any variable of your choice) using the "addCustomVariable" function. The variable name must be set on your custom tracking variables.
Retrieve multiple requests with the Request List API and also search by Device ID and IP Address.
Please make sure your initial API request passed a valid "userID" value (or any variable of your choice) using the "addCustomVariable" function. The variable name must be set on your custom tracking variables.