Menu

Domestic privacy configuration

For more information, please refer to the Privacy Compliance Guide

1. Domestic personalized recommendation advertising switch

To comply with relevant regulations of the Personal Information Protection Law and provide personalized recommendation advertising API shutdown。

Currently, the advertising platforms supported by the personalization switch settings are: pangolin, Youlianghui, Kwai, Baidu, Huawei, Mintegral, and Sigmab. By default, all advertising personalized recommendations are turned on. If the manual settings are turned off, all advertising platforms will turn off personalized recommendations

//status:
//ATAdConst.PRIVACY.PERSIONALIZED_ALLOW_STATUS :开启个性化推荐 (默认)
//ATAdConst.PRIVACY.PERSIONALIZED_LIMIT_STATUS:屏蔽个性化推荐
int status = ATAdConst.PRIVACY.PERSIONALIZED_ALLOW_STATUS;
ATSDK.setPersonalizedAdStatus(status);


2. Set the privacy information control switch

  • In order to ensure that your App successfully passes the test and combined with the current regulatory focus, we can turn Taku The initialization of the SDK is placed after the user agrees to the privacy policy.
  • If you have higher demand, you can use the following methods to control it. Restricting user device data reporting may affect ad filling, so please consider using it.


1. Taku

(1)Taku SDK will collect the following user data by default:

  • public collection data:System version name, system version number, application package name, application version name, application version number, device manufacturer, device model, screen resolution, mobile network code, mobile country code, language, time zone, User Agent, screen orientation, network Type, app installation source, acceleration sensor
  • China SDK collects additional data:MAC address, International Mobile Equipment Identity (IMEI), OAID, CPU model information, system startup identification, system update identification, whether the device is rooted, whether the device uses a proxy, the SSID of the device connected to the WIFI, Android ID, Google Ad ID、IMSI
  • Non-China SDK collects additional data:Google Ad ID, Android ID (versions below v6.1.80 collect Android ID by default, and will no longer collect it starting from v6.1.80)

(2)Taku SDK provides APIs for developers to limit the reporting of these private data. When developers limit the reported device data, it may affect the normal use of Taku functions, such as traffic grouping, cross-promotion, Taku Adx and other functions. Developers are requested to Set with caution.

//Call this code before initializing the SDK to limit the reporting of device privacy data. Incoming information will be restricted from reporting.
ATSDK.deniedUploadDeviceInfo(
    DeviceDataInfo.DEVICE_SCREEN_SIZE //Screen Resolution
    , DeviceDataInfo.ANDROID_ID //Android ID
    , DeviceDataInfo.APP_PACKAGE_NAME //Application package name
    , DeviceDataInfo.APP_VERSION_CODE //Application version number
    , DeviceDataInfo.APP_VERSION_NAME //Application version name
     , DeviceDataInfo.BRAND //Device manufacturer
    , DeviceDataInfo.GAID //Google Ad ID
    , DeviceDataInfo.LANGUAGE //language
    , DeviceDataInfo.MCC //mobile web code
    , DeviceDataInfo.MNC //Mobile country code
    , DeviceDataInfo.MODEL //Device model
    , DeviceDataInfo.ORIENTATION //screen orientation
    , DeviceDataInfo.OS_VERSION_CODE //System version number
    , DeviceDataInfo.OS_VERSION_NAME //System version name
    , DeviceDataInfo.TIMEZONE //Time zone
    , DeviceDataInfo.USER_AGENT //User Agent
    , DeviceDataInfo.NETWORK_TYPE //Network Type
    , DeviceDataInfo.INSTALLER //App installation source
    , ChinaDeviceDataInfo.MAC //MAC address
    , ChinaDeviceDataInfo.IMEI //International Mobile Equipment Identity Number
    , ChinaDeviceDataInfo.OAID //OAID
    , ChinaDeviceDataInfo.SSID//SSID
    , ChinaDeviceDataInfo.IMSI//IMSI
);


(3)(new in v6.1.10)Taku SDK Provides API to pass existing device ID to Taku SDK, example:

ATSDK.setATPrivacyConfig(new ATPrivacyConfig() {
                /**
                 *
                 * @return Google Ad ID
                 */
                @Override
                public String getDevGaid() {
                    return null;
                }

                /**
                 *
                 * @return IMEI information
                 */
                @Override
                public String getDevImei() {
                    return null;
                }

                /**
                 *
                 * @return OAID information
                 */
                @Override
                public String getDevOaid() {
                    return null;
                }
});


2. Pangolin

TTATInitManager.getInstance().setTtCustomController(new TTCustomController() {
    /**
     * Whether to allow Pangolin SDK to actively use geolocation information
​
     *
     * @returnTrue can be obtained, false is prohibited from obtaining. Default is true
     */
    @Override
    public boolean isCanUseLocation() {
        return super.isCanUseLocation();
    }
    /**
     * When isCanUseLocation=false, the geographical location information can be passed in, and Pangolin SDK uses the geographical location information you pass in.
     *
     * @return Geolocation parameters
     */
    @Override
    public LocationProvider getTTLocation() {
        return super.getTTLocation();
    }

    /**
     * Whether to allow Pangolin SDK to actively obtain the collection permission of the application installation list on the device
     *
     * @returntrue can be used, false is prohibited. Default is true
     */
    @Override
    public boolean alist() {
        return super.alist();
    }

    /**
     * Whether to allow Pangolin SDK to actively use mobile phone hardware parameters, such as: imei
     *
     * @return true Can be used, false is prohibited. Default is true
     */
    @Override
    public boolean isCanUsePhoneState() {
        return super.isCanUsePhoneState();
    }

    /**
     * When isCanUsePhoneState=false, imei information can be passed in, and Pangolin SDK uses the imei information you pass in.
     *
     * @return imei information
     */
    @Override
    public String getDevImei() {
        return super.getDevImei();
    }

    /**
     * Whether to allow Pangolin SDK to actively use the ACCESS_WIFI_STATE permission
​
     *
     * @return true Can be used, false is prohibited. Default is true
     */
    @Override
    public boolean isCanUseWifiState() {
        return super.isCanUseWifiState();
    }

    /**
     * Mac information can be passed in. Pangolin sdk uses the Mac information you pass in.
​
     *
     * @return Mac information
     */
    @Override
    public String getMacAddress() {
        return super.getMacAddress();
    }

    /**
     * Whether to allow Pangolin SDK to actively use the WRITE_EXTERNAL_STORAGE permission
     *
     * @return true can be used, false is prohibited. Default is true
     */
    @Override
    public boolean isCanUseWriteExternal() {
        return super.isCanUseWriteExternal();
    }

    /**
     *Developers can pass in oaid
      * Related collection of OAID from the Academy of Information and Communications Technology - How to obtain OAID:
      1. Mobile Security Alliance official website http://www.msa-alliance.cn/
      2. Download CAICT Unified SDK http://msa-alliance.cn/col.jsp?id=120
     * @return oaid
     */
    @Override
    public String getDevOaid() {
        return super.getDevOaid();
    }
});


3. Youlianghui

GDTATInitManager.getInstance().setGDTATCustomController(new GDTATCustomController() {
    /*
    *Whether the user agrees to the privacy policy, the default is true
​
    * */
    @Override
    public boolean getAgreePrivacyStrategy() {
        return super.getAgreePrivacyStrategy();
    }
});
/* * Pass in geographic location information or WeChat OpenID information through this method * */ 
GlobalSetting.setExtraUserData(Map extraUserData);
 /* * Use this method to block the Youlianghui SDK and obtain the list of application installations on the device * */ 
GlobalSetting.setEnableCollectAppInstallStatus(false);


4. Kuaishou

KSATInitManager.getInstance().setKSATCustomController(new KSATCustomController() {
    /*
    * Whether to allow Kuaishou SDK to actively use ICCID, default true
    * */
    @Override
    public boolean getCanReadICCID() {
        return super.getCanReadICCID();
    }

    /*
     * Whether to allow Kuaishou SDK to actively use the Mac address, the default is true
     * */
    @Override
    public boolean getCanReadMacAddress() {
        return super.getCanReadMacAddress();
    }
    /*
     * Whether to allow Kuaishou SDK to actively use the nearby wifi list, the default is true
     * */
    @Override
    public boolean getCanReadNearbyWifiList() {
        return super.getCanReadNearbyWifiList();
    }
    /*
    *More private data revealed
     * Reference document: https://p1-web.adkwai.com/udata/pkg/KS-Android-KSAdSDk/doc/4701b963d40a77bc0f45fd71d30b57da352.pdf
     * Description of "3.5 Privacy Information Control Switch" under
    * */
    @Override
    public KsCustomController getKsCustomeController() {
        return super.getKsCustomeController();
    }
});


5. Baidu

BaiduATInitManager.getInstance().setBaiduATCustomController(new BaiduATCustomController() {
    /*
     * Allow Baidu SDK to obtain device id, such as imei
     * */
    @Override
    public boolean getPermissionReadDeviceID() {
        return super.getPermissionReadDeviceID();
    }

    /*
     * Allow Baidu SDK to use positioning permissions
     * */
    @Override
    public boolean getPermissionLocation() {
        return super.getPermissionLocation();
    }
    /*
     *Allow Baidu SDK to use storage space
     * */
    @Override
    public boolean getPermissionStorage() {
        return super.getPermissionStorage();
    }

    /*
     * Allow Baidu SDK to use the permission to obtain the application installation list
​
     * */
    @Override
    public boolean getPermissionAppList() {
        return super.getPermissionAppList();
    }

    /*
     * Allow Baidu SDK to use OAID
     * */
    @Override
    public boolean getPermissionOAID() {
        return super.getPermissionOAID();
    }

    /*
     * Allow Baidu SDK to use device information
     * */
    @Override
    public boolean getPermissionDeviceInfo() {
        return super.getPermissionDeviceInfo();
    }

    /*
     * Set whether Baidu SDK allows obtaining APP update permissions
     * */
    @Override
    public boolean getPermissionAppUpdate() {
        return super.getPermissionAppUpdate();
    }

    /*
     *Set whether Baidu SDK allows access to running APP permissions
     * */
    @Override
    public boolean getPermissionRunningApp() {
        return super.getPermissionRunningApp();
    }
});


6. You Keying

KlevinATInitManager.getInstance().setKlevinCustomController(new KlevinCustomController() {
    /**
     * Whether to allow the SDK to collect geographical location information
     * @return true: SDK collects location information, false: SDK does not obtain location information. Default is true
     */
    public boolean isCanUseLocation() {
        return true;
    }
    /**
     * When isCanUseLocation is false, the APP can pass in the geographical location information, and the Youkeyin SDK uses the geographical location information you pass in.
​
     * @return Geolocation parameters
     */
    public Location getLocation() {
        return null;
    }
    /**
     * Whether to allow the SDK to collect mobile phone hardware parameters, such as: IMEI
     * @return true: SDK collects IMEI, false: SDK does not collect IMEI. Default is true
     */
    public boolean isCanUsePhoneState() {
        return true;
    }
    /**
     *When isCanUsePhoneState is false, developers can pass in the IMEI information, and Youkeying SDK will use the IMEI information you pass in, and the SDK will not collect it internally.
     * @return IMEI information
     */
    public String getDevImei() {
        return null;
    }
    /**
     *Whether to allow the SDK to actively use the ACCESS_WIFI_STATE permission
      * @return true: can be used, false: prohibited. Default is true
     */
    public boolean isCanUseWifiState() {
        return true;
    }
    /**
    * Developers can pass in oaid
      * Related collection of OAID from the Academy of Information and Communications Technology - How to obtain OAID:
      1. Mobile Security Alliance official website http://www.msa-alliance.cn/
      2. Download CAICT Unified SDK http://msa-alliance.cn/col.jsp?id=120
     * @return oaid
     */
    public String getDevOaid() {
        return null;
    }
});

7. TapTap

TapATInitManager.getInstance().setTapAdCustomController(new TapAdCustomController() {
            // Whether to allow the SDK to actively use geolocation information
​
            @Override
            public boolean isCanUseLocation() {
                return true;
            }

            // When isCanUseLocation=false, geographical location information can be passed in, and TapAd will use the geographical location information you pass in.
            @Override
            public TapAdLocation getTapAdLocation() {
                return null;
            }

            // Whether to allow the SDK to actively use mobile phone hardware parameters, such as imei
            @Override
            public boolean isCanUsePhoneState() {
                return true;
            }

            // When isCanUsePhoneState=false, imei information can be passed in, and TapAd uses the imei information you pass in.
​
            @Override
            public String getDevImei() {
                return null;
            }

            //Whether to allow the SDK to actively use the ACCESS_WIFI_STATE permission
            @Override
            public boolean isCanUseWifiState() {
                return true;
            }

            // Whether to allow the SDK to actively use the WRITE_EXTERNAL_STORAGE permission
            @Override
            public boolean isCanUseWriteExternal() {
                return true;
            }

           // Developers can pass in oaid
             //Related collection of OAID from the Academy of Information and Communications Technology—how to obtain OAID:
             // 1. Mobile Security Alliance official website http://www.msa-alliance.cn/
             // 2. Download CAICT unified SDK http://msa-alliance.cn/col.jsp?id=120
​
            @Override
            public String getDevOaid() {
                return null;
            }

            // Whether to allow the SDK to actively obtain the collection permission of the application installation list on the device
            @Override
            public boolean alist() {
                return true;
            }

            // Whether to allow the SDK to actively obtain ANDROID_ID
            @Override
            public boolean isCanUseAndroidId() {
                return true;
            }

            @Override
            public CustomUser provideCustomUser() {
                return null;
            }
        });

3. Domestic download ads Second pop-up window confirmation


In compliance scenarios, download ads need to prompt the user before downloading, and the download can only start after the user confirms.

During ad playback, when a click triggers an ad download, the developer needs to obtain the application name, version and other relevant information and display a pop-up window prompting the user to confirm the download.

Applicable ad types: All ad types

Applicable advertising platforms include:Youlianghui, Pangolin, Kuaishou (you need to contact Kuaishou to activate the function), Mintegral Domestic (you need to contact Mintegral to activate the function), Sigmob (you need to contact Sigmob to activate the function), You Keying (download ads will automatically pop up, if you want to turn off the function , need to contact the third party to close)

3.1 Youlianghui

You can contact Youlianghui to apply (recommendation), or set it yourself through code

3.1.1 Code settings for secondary pop-up window confirmation

  • If the developer applies for the secondary pop-up window permission and confirms it successfully, no code setting is required.
  • Using code settings requires the developer to draw a pop-up window and prompt the user to confirm the download.
  • After turning it on, you must process the onDownloadConfirm logic in ATSplashExListener, otherwise the click will not respond.

Take open-screen advertising as an example, the sample code is as follows:

ATSplashAd splashAd = new ATSplashAd(this, placementId, atMediationRequestInfo, new ATSplashExListener() {
            @Override
            public void onDownloadConfirm(Context context, ATAdInfo adInfo, ATNetworkConfirmInfo networkConfirmInfo) {

                    if (networkConfirmInfo instanceof GDTDownloadFirmInfo) {
                     //Secondary pop-up window processing, DownloadApkConfirmDialogWebView is a class for drawing secondary confirmation pop-up windows, which requires developers to render it themselves.
                    new DownloadApkConfirmDialogWebView(context, ((GDTDownloadFirmInfo) networkConfirmInfo).appInfoUrl, ((GDTDownloadFirmInfo) networkConfirmInfo).confirmCallBack).show();
                    }
            }
           ....
      }, 5000);
Map localMap = new HashMap<>();
localMap.put(ATAdConst.KEY.AD_WIDTH, layoutParams.width);
localMap.put(ATAdConst.KEY.AD_HEIGHT, layoutParams.height);

// After clicking on the application advertisement, a second pop-up window will pop up to confirm the download (closed when set to false)
​
localMap.put(ATAdConst.KEY.AD_CLICK_CONFIRM_STATUS, true); 

splashAd.setLocalExtra(localMap);

GDTDownloadFirmInfo API description:

VariableDescription
scenesDownload the scenes where it happened , Scene constants defined by ApkDownloadComplianceInterface: SCENES_AD_OR_NATIVE_LANDING_PAGE (indicating that the downloading scenario is clicking on the advertisement itself, or the native landing page), SCENES_WEB_LANDING_PAGE (indicating that the downloading scenario is clicking on the landing page)
appInfoUrlURL address of the application information to be downloaded
confirmCallBackDeveloper via This callBack notifies the sdk whether to continue downloading or cancel downloading. onConfirm: Confirm download; onCancel: Cancel download



Previous
Policy compliance
Next
Integration Testing
Last modified: 2025-05-30Powered by