Since May 25, 2018, the European Union's General Data Protection Regulation has officially taken effect. To protect the interests and privacy of developers and users, we have updated the "TopOn Privacy Policy". At the same time, we have also added privacy permission settings in the SDK. Please check the SDK configuration according to the following content.
(After setting, the SDK internally uses this level to configure the GDPR reporting level for third-party ad networks):
ATSDK.setGDPRUploadDataLevel(context, level);
// The following options are available for level
ATSDK.PERSONALIZED, // Device data is allowed to be reported
ATSDK.NONPERSONALIZED, // Device data is not allowed to be reported
ATSDK.UNKNOWN // Unknown level, can only be obtained via the getGDPRDataLevel method, cannot be set via the setGDPRUploadDataLevel method
TUSDK.setGDPRUploadDataLevel(context, level);
// The following options are available for level
TUSDK.PERSONALIZED, // Device data is allowed to be reported
TUSDK.NONPERSONALIZED, // Device data is not allowed to be reported
TUSDK.UNKNOWN // Unknown level, can only be obtained via the getGDPRDataLevel method, cannot be set via the setGDPRUploadDataLevel method
(The authorization page sets the reporting level based on the user's selection):
ATSDK.showGDPRConsentDialog(context, new ATGDPRConsentDismissListener() {
@Override
public void onDismiss(ConsentDismissInfo consentDismissInfo) {
ATSDK.init(context, "your app id", "your app key");
}
});
TUSDK.showGDPRConsentDialog(context, new TUGDPRConsentDismissListener() {
@Override
public void onDismiss(ConsentDismissInfo consentDismissInfo) {
TUSDK.init(context, "your app id", "your app key");
}
});
It is recommended to add the following GDPR setup process. If you have not configured GDPR, the TopOn SDK will use the ad network's default GDPR settings when the user is in the EU region.
ATSDK.showGDPRConsentDialog(context, new ATGDPRConsentDismissListener() {
@Override
public void onDismiss(ConsentDismissInfo consentDismissInfo) {
ATSDK.init(context, "your app id", "your app key");
}
});
TUSDK.showGDPRConsentDialog(context, new TUGDPRConsentDismissListener() {
@Override
public void onDismiss(ConsentDismissInfo consentDismissInfo) {
TUSDK.init(context, "your app id", "your app key");
}
});

The California Consumer Privacy Act (CCPA) provides various privacy rights to California consumers. Businesses subject to CCPA will fulfill multiple obligations to these consumers, including information disclosure, consumer rights similar to the EU General Data Protection Regulation (GDPR), the right to "opt out" of specific data transfers, and the "opt-in" requirement for minors.
Please go to the TopOn Dashboard - App page, then click the "Edit" button to configure CCPA, as shown below:

The Children's Online Privacy Protection Act (COPPA) primarily targets the online collection of personal information from children under 13. According to the COPPA FAQ, developers are responsible for determining whether their app is targeted at children under 13, considering, but not limited to, the following factors: "the subject matter of the application, visual content, use of animated characters or child-oriented activities and incentives, music or other audio content, age of models, presence of child celebrities or celebrities appealing to children, language or other characteristics of the website or online service, and whether the advertising promoted or appearing on the website or online service is targeted at children."

user's age in the following way before initializing the TopOn SDK:⚠️ When the user's age passed is under 13, it will comply with the relevant COPPA regulations.
Map<String, String> customMap = new HashMap<>();
customMap.put("age", "User's age");
ATSDK.initCustomMap(customMap);
Map<String, String> customMap = new HashMap<>();
customMap.put("age", "User's age");
TUSDK.initCustomMap(customMap);
⚠️ Note
- Pangle removed COPPA and CCPA settings starting from v7.1.x.x, unifying them under PAConsent
- TopOn SDK supports the use of PAConsent in v6.4.88 and above
- If not set as follows, the Pangle SDK default value
Consentwill be used- It is recommended to set this before TopOn SDK initialization
// Consent
PangleATInitManager.getInstance().setPAConsent(PAGConstant.PAGPAConsentType.PAG_PA_CONSENT_TYPE_CONSENT);
// Do not consent
PangleATInitManager.getInstance().setPAConsent(PAGConstant.PAGPAConsentType.PAG_GDPR_CONSENT_TYPE_NO_CONSENT);
// Consent
PangleTUInitManager.getInstance().setPAConsent(PAGConstant.PAGPAConsentType.PAG_PA_CONSENT_TYPE_CONSENT);
// Do not consent
PangleTUInitManager.getInstance().setPAConsent(PAGConstant.PAGPAConsentType.PAG_GDPR_CONSENT_TYPE_NO_CONSENT);
To ensure that your app successfully passes detection, in line with the current regulatory focus, you can place the TopOn SDK initialization after the user agrees to the privacy policy.
If you have higher requirements, you can use the following methods for control. Restricting user device data reporting may affect ad fill. Please use with caution.
For details on data collected by the TopOn SDK, please see: Privacy Compliance GuideThe TopOn SDK provides APIs for you to restrict the reporting of these privacy data. When restricting the reporting of device data, it may affect the normal use of TopOn features, such as: traffic grouping, cross-promotion, TopOn Adx, etc. Please set with caution.
When GDPR is set to not consent, only the following will be collected: phone OS version name, screen orientation, and the TopOn SDK version number integrated in the app.
// Call this code before SDK initialization to restrict the reporting of device privacy data. The passed information will be restricted from reporting.
ATSDK.deniedUploadDeviceInfo(
DeviceDataInfo.DEVICE_SCREEN_SIZE, // Screen resolution
DeviceDataInfo.ANDROID_ID, // Android ID
DeviceDataInfo.APP_PACKAGE_NAME, // App package name
DeviceDataInfo.APP_VERSION_CODE, // App version code
DeviceDataInfo.APP_VERSION_NAME, // App version name
DeviceDataInfo.BRAND, // Device manufacturer
DeviceDataInfo.GAID, // Google Ad ID
DeviceDataInfo.LANGUAGE, // Language
DeviceDataInfo.MCC, // Mobile Country Code
DeviceDataInfo.MNC, // Mobile Network Code
DeviceDataInfo.MODEL, // Device model
DeviceDataInfo.ORIENTATION, // Screen orientation
DeviceDataInfo.OS_VERSION_CODE, // OS version code
DeviceDataInfo.OS_VERSION_NAME, // OS version name
DeviceDataInfo.TIMEZONE, // Timezone
DeviceDataInfo.USER_AGENT, // User Agent
DeviceDataInfo.NETWORK_TYPE, // Network type
DeviceDataInfo.INSTALLER // App install source
);
// Call this code before SDK initialization to restrict the reporting of device privacy data. The passed information will be restricted from reporting.
TUSDK.deniedUploadDeviceInfo(
DeviceDataInfo.DEVICE_SCREEN_SIZE, // Screen resolution
DeviceDataInfo.ANDROID_ID, // Android ID
DeviceDataInfo.APP_PACKAGE_NAME, // App package name
DeviceDataInfo.APP_VERSION_CODE, // App version code
DeviceDataInfo.APP_VERSION_NAME, // App version name
DeviceDataInfo.BRAND, // Device manufacturer
DeviceDataInfo.GAID, // Google Ad ID
DeviceDataInfo.LANGUAGE, // Language
DeviceDataInfo.MCC, // Mobile Country Code
DeviceDataInfo.MNC, // Mobile Network Code
DeviceDataInfo.MODEL, // Device model
DeviceDataInfo.ORIENTATION, // Screen orientation
DeviceDataInfo.OS_VERSION_CODE, // OS version code
DeviceDataInfo.OS_VERSION_NAME, // OS version name
DeviceDataInfo.TIMEZONE, // Timezone
DeviceDataInfo.USER_AGENT, // User Agent
DeviceDataInfo.NETWORK_TYPE, // Network type
DeviceDataInfo.INSTALLER // App install source
);