Disclose SDK data collection in your privacy policy, configure system and optional permissions, and initialize the SDK only after users consent to comply with personal information protection regulations.
Disclose SDK usage in the privacy policy
App operators must inform end users how the SDK processes personal information, including the SDK name, business functions, processing purpose, types of personal information collected, and a privacy policy link.
Describe the Device Fraud Detection SDK separately in your app's Privacy Policy and include the following in the Third-Party Sharing List:
-
SDK name: Device Fraud Detection SDK
-
Business functions: Detect abnormal devices and identify cheating and fraud risks
-
Types of personal information collected: Specify based on the actual data items collected
-
Permissions used: Specify based on the actual permission configuration
-
Privacy policy link: https://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud202111120818_92724.html
SDK system permissions
Android permissions
|
Permission |
Required |
Purpose |
When to request |
|
INTERNET |
Yes |
Obtain network access. The SDK is unavailable without this permission. |
Before calling the data collection API |
|
ACCESS_NETWORK_STATE |
No (Recommended) |
Obtain device network status. |
Before calling the data collection API |
|
READ_PHONE_STATE |
No (Recommended) |
Obtain device fingerprint-related ID fields. |
Before calling the data collection API |
|
WRITE_EXTERNAL_STORAGE READ_EXTERNAL_STORAGE |
No (Recommended) |
Cache configuration files on the local disk. |
Before calling the data collection API |
iOS permissions
|
Permission |
Required |
Purpose |
When to request |
|
NSLocalNetworkUsageDescription |
No (Recommended) |
Detect local area network connectivity to identify threats such as modem pools and device farms. |
Before calling the data collection API |
|
NSUserTrackingUsageDescription |
No |
Obtain the identifier for advertisers (IDFA) to improve device ID stability. |
Before calling the data collection API |
HarmonyOS permissions
|
Permission |
Required |
Description |
|
ohos.permission.INTERNET |
Yes |
Network access. The SDK requires a network connection to function. |
|
ohos.permission.GET_NETWORK_INFO |
Yes |
Network status verification. The SDK uses network status to provide better service. |
|
ohos.permission.STORE_PERSISTENT_DATA |
No (Recommended) |
Allow the app to store persistent data. The SDK uses this permission to enhance device fingerprint stability. |
|
ohos.permission.DISTRIBUTED_DATASYNC |
No (Recommended) |
Multi-device collaboration. The SDK detects the status of multiple devices to enhance security. |
|
ohos.permission.APP_TRACKING_CONSENT |
No (Recommended) |
Obtain the advertising identifier. The SDK obtains IDFA information to improve device ID stability. |
Configure optional personal information collection
The SDK collects certain personal information by default. Developers can control the collection scope using the DataType parameter in the data collection API, which supports single or multiple selection. Disabling data collection reduces the corresponding detection capabilities. Configure based on your business needs.
Android configuration
Single selection example: NO_UNIQUE_DEVICE_DATA; multiple selection example: NO_UNIQUE_DEVICE_DATA|NO_IDENTIFY_DEVICE_DATA, use the | symbol to concatenate multiple values.
|
Personal information field |
Description |
DataType configuration field |
|
OAID, Google Advertising ID, Android_ID |
Changeable unique device identifier |
NO_UNIQUE_DEVICE_DATA |
|
IMEI, IMSI, SimSerial, BuildSerial (SN), MAC address |
Non-changeable unique device identifier |
NO_IDENTIFY_DEVICE_DATA |
|
OS version, device model, screen resolution |
Basic device information |
NO_BASIC_DEVICE_DATA |
|
Fraudulent app list, local area network (LAN) IP, DNS IP, connected Wi-Fi information (SSID, BSSID), nearby Wi-Fi list |
Device extended information |
NO_EXTRA_DEVICE_DATA |
Code example:
// Add the privacy data collection switch
Map<String, String> options = new HashMap<>();
options.put("DataType", String.valueOf(NO_IDENTIFY_DEVICE_DATA | NO_UNIQUE_DEVICE_DATA));
SecurityDevice.getInstance().initWithOptions(this, ALIYUN_APPKEY, options, null);
iOS configuration
Whether IDFA is collected is determined when you download the SDK from the Alibaba Cloud console: you can download either the SDK version that collects IDFA or the version that does not. Device extended information is controlled by the DataType parameter passed in during initialization.
|
Collected data type |
Description |
Device information field details |
|
COLLECT_NO_EXTRA_DEVICE_DATA |
Device extended information |
Includes: fraudulent app list, local area network (LAN) IP, DNS IP, connected Wi-Fi information (SSID, BSSID), location information. |
Code example:
// Add the privacy data collection switch. Do not collect COLLECT_NO_EXTRA_DEVICE_DATA type data.
NSMutableDictionary *options = [[NSMutableDictionary alloc] init];
[options setValue:[NSString stringWithFormat:@"%d", DataType::COLLECT_NO_EXTRA_DEVICE_DATA] forKey:@"DataType"];
[[SecurityDevice sharedInstance] initDevice:@"******" withOptions:options callback:nil];
Initialize the SDK and call business features
When users first launch the app, initialize the SDK and call its APIs only after users agree to the privacy policy and actively use the SDK feature. Do not collect device information immediately after users consent to the privacy policy. For configuration details, see the integration guide for your platform: select "Data Collection" in the Android integration guide, or "Collect Data Using the SDK" in the iOS integration guide.