Device ID#
Introduction#
Welcome to Device ID SDK, a reliable solution for device identification and fingerprinting across your applications. This SDK provides a comprehensive set of tools to uniquely identify devices, track usage patterns, and enhance security measures through advanced device recognition techniques.The Device ID SDK allows you to generate and manage persistent device identifiers that remain consistent across user sessions, application updates, and in various network conditions. By utilizing Device ID SDK, you can create a more secured and personalized experience for your users.Parameter Collection and Permissions#
The Device ID SDK collects various device parameters to generate accurate fingerprints. Some of these parameters require specific permissions to be granted by the user. Additionally, certain parameters that were previously accessible without permissions may require explicit permissions on newer iOS versions.The Device ID SDK is designed to gracefully handle cases where permissions are not available, continuing to function even without any permission listed in Potential Required Permissions, though identification confidence may be reduced. Each permission may affect identification strength differently, but the Device ID SDK will automatically adapt its identification methods based on available permissions.
To ensure optimal functionality, please review the following section carefully.Potential Required Permissions#
The Device ID SDK may utilize any of the following permissions depending on your configuration:1.
To retrieve identifier for advertisers (IDFA) on applications that support iOS 14 and later, Privacy - Tracking Usage Description key must be added to the application's Info.plist
. Otherwise, the default IDFA (00000000-0000-0000-0000-000000000000
) will be returned.
2.
To retrieve the Wi-Fi SSID:The Privacy - Location When In Use Usage Description key must also be present in the application's Info.plist
; otherwise, the result will be nil
.
Getting Started#
Prerequisites#
Before you begin integrating the Device ID into your iOS app, ensure you have the following:An iOS app project with a minimum iOS 12 support.
The Freedom ID SDK.xcframework file
Installation Instructions#
1.
Open Project Settings
in Xcode
3.
Go to General
Tab and in Frameworks, Libraries, and Embedded Content
and click +
4.
Select Add Other...
and then Add files...
5.
Choose FreedomID.xcframework
6.
Now you can import SDK and use it further
Usage#
Device ID Initialization#
To initialize the Device ID SDK, call the create
method of the DeviceID class.Upon creation, the DeviceID
class performs an initial asynchronous setup. If this setup fails, the subsequent call to getRequestID
will return a notInitialized
error.Request ID Generation#
To generate request id, call the getRequestID
method of the DeviceID
class. This method obtains a unique identifier request ID
that will track the fingerprinting transaction through the system.
The getRequestID
method takes one parameter:A callback function that is invoked when you attempt to generate request ID.
The process returns a Result<String, DeviceIdError>
:Data Structures#
DeviceIdError Structure#
General Description#
The DeviceIdError
enum defines a set of possible errors that can occur during device ID data collection and the communication process. Each error represents a specific issue related to the request's structure, identification, application integrity, or the process of sending and receiving requests.Table: DeviceIdError
#
Value | Details |
---|
notInitialized | Indicates that the DeviceID class was not initialized or failed session initialization request. |
identificationError | Represents an error from backend. Contains underlying IdentificationError error. |
verificationError | Indicates a failure in verifying the response during the initial session request in create . |
invalidDataError | Represents an invalid data error in sent parameters during getRequestID . |
unknownError | Represents an unknown error. |
IdentificationError Structure#
General Description#
The IdentificationError
enum defines a set of possible errors identified by the server that occurred during requests.Table: IdentificationError
#
Value | Details |
---|
SESSION_PROCESSING_ERROR | Indicates that an error occurred during handling of the session initialization request or while creating a response on the server side. |
INCORRECT_REQUEST_STRUCTURE | Represents an error in the request's header. |
DATA_PROCESSING_ERROR | Indicates that the server failed to decrypt the request data. |
REQUEST_VALIDATION_ERROR | Indicates that a sent parameter is invalid. |
REQUEST_RECEIVING_ERROR | Represents an error that occurred during initial session request handling on the server in create . |
EXPIRED_DATA_ERROR | User's credentials have expired or were not found in the database. |
Support#
If you have questions or need help integrating the SDK, feel free to reach out! 👋Modified at 2025-04-24 17:53:07