Menu

Privacy Configurations

For more information, please refer to the Privacy Compliance Guide

1. China Personalized Ad Recommendation Switch

To comply with the relevant regulations of the Personal Information Protection Law, an API is provided to disable personalized ad recommendations.

Currently, the ad platforms supported by the personalization switch setting are: Pangle (China), GDT, Kuaishou, Baidu, Huawei, Mintegral, Sigmob. By default, all ad personalized recommendations are enabled. If you manually set it to disabled, personalized recommendations will be disabled for all ad platforms.

Copy
//status:
//ATAdConst.PRIVACY.PERSIONALIZED_ALLOW_STATUS: Enable personalized recommendations (Default)
//ATAdConst.PRIVACY.PERSIONALIZED_LIMIT_STATUS: Block personalized recommendations
int status = ATAdConst.PRIVACY.PERSIONALIZED_ALLOW_STATUS;
ATSDK.setPersonalizedAdStatus(status);

2. Set Privacy Info Control Switch

① To ensure your app passes reviews smoothly and in light of current regulatory focus, we can place the Taku SDK Initialization after the user agrees to the privacy policy.

② If higher requirements are needed, the following methods can be used for control. Restricting user device data reporting may affect ad fill, so please use with caution.

● Taku

(1) By default, the Taku SDK collects the following user data:

① Commonly collected data: System Version Name, System Version Code, App Package Name, App Version Name, App Version Code, Device Manufacturer, Device Model, Screen Resolution, Mobile Network Code, Mobile Country Code, Language, Time Zone, User Agent, Screen Orientation, Network Type, App Install Source, Accelerometer Sensor

② Additionally collected data for China-region SDK: MAC Address, International Mobile Equipment Identity (IMEI), OAID, CPU Model Info, System Boot ID, System Update ID, Whether Device is Rooted, Whether Device Uses Proxy, SSID of Connected WiFi, Android ID, Google Ad ID, IMSI

③ Additionally collected data for non-China-region SDK: Google Ad ID, Android ID (versions below v6.1.80 collect Android ID by default; starting from v6.1.80, it is no longer collected)

(2) The Taku SDK provides APIs for developers to restrict the reporting of this privacy data. When developers restrict the reported device data, it may affect the normal functionality of Taku, such as Traffic Grouping, Cross-Promotion, Taku Adx, etc. Developers should set this carefully.

(3) If GDPR consent is not granted, only the following will be collected: Phone System Version Name, Screen Orientation, Version of the TopOn SDK integrated into the app.

Copy
// Call this code before Initializing the SDK to restrict the reporting of device privacy data. The information passed in 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 // System Version Code
    , DeviceDataInfo.OS_VERSION_NAME // System Version Name
    , DeviceDataInfo.TIMEZONE // Time Zone
    , DeviceDataInfo.USER_AGENT // User Agent
    , DeviceDataInfo.NETWORK_TYPE // Network Type
    , DeviceDataInfo.INSTALLER // App Install Source

    , ChinaDeviceDataInfo.MAC // MAC Address
    , ChinaDeviceDataInfo.IMEI // International Mobile Equipment Identity
    , ChinaDeviceDataInfo.OAID // OAID
    , ChinaDeviceDataInfo.SSID // SSID
    , ChinaDeviceDataInfo.IMSI // IMSI
);

(4) (Added in v6.4.40) The Taku SDK provides an API to pass an existing device ID to the Taku SDK. Example:

Copy
ATUserDeviceInfo atUserDeviceInfo = new ATUserDeviceInfo();
atUserDeviceInfo.setDevGaid("Pass the Gaid obtained in advance here");
atUserDeviceInfo.setDevOaid("Pass the Oaid obtained in advance here");
atUserDeviceInfo.setDevImei("Pass the Imei obtained in advance here");
// Call before Taku SDK Initialization
ATSDK.setATUserDeviceInfo(atUserDeviceInfo);

● Pangle (China)

Copy
TTATInitManager.getInstance().setTtCustomController(new TTCustomController() {
    /**
     * Whether to allow the Pangle (China) SDK to actively use geographic location information
     *
     * @return true: allowed, false: prohibited. Default is true
     */
    @Override
    public boolean isCanUseLocation() {
        return super.isCanUseLocation();
    }
    /**
     * When isCanUseLocation=false, geographic location information can be passed in. The Pangle (China) SDK will use the geographic location information you provide.
     *
     * @return Geographic location parameters
     */
    @Override
    public LocationProvider getTTLocation() {
        return super.getTTLocation();
    }

    /**
     * Whether to allow the Pangle (China) SDK to actively acquire the collection permission for the installed app list on the device
     *
     * @return true: allowed, false: prohibited. Default is true
     */
    @Override
    public boolean alist() {
        return super.alist();
    }

    /**
     * Whether to allow the Pangle (China) SDK to actively use phone hardware parameters, such as IMEI
     *
     * @return true: allowed, false: prohibited. Default is true
     */
    @Override
    public boolean isCanUsePhoneState() {
        return super.isCanUsePhoneState();
    }

    /**
     * When isCanUsePhoneState=false, IMEI information can be passed in. The Pangle (China) SDK will use the IMEI information you provide.
     *
     * @return IMEI information
     */
    @Override
    public String getDevImei() {
        return super.getDevImei();
    }

    /**
     * Whether to allow the Pangle (China) SDK to actively use the ACCESS_WIFI_STATE permission
     *
     * @return true: allowed, false: prohibited. Default is true
     */
    @Override
    public boolean isCanUseWifiState() {
        return super.isCanUseWifiState();
    }

    /**
     * Mac information can be passed in. The Pangle (China) SDK will use the Mac information you provide.
     *
     * @return Mac information
     */
    @Override
    public String getMacAddress() {
        return super.getMacAddress();
    }

    /**
     * Whether to allow the Pangle (China) SDK to actively use the WRITE_EXTERNAL_STORAGE permission
     *
     * @return true: allowed, false: prohibited. Default is true
     */
    @Override
    public boolean isCanUseWriteExternal() {
        return super.isCanUseWriteExternal();
    }

    /**
     * Developers can pass in OAID.
     *  CAICT OAID related collection —— How to obtain OAID:
     1. Mobile Security Alliance official website: http://www.msa-alliance.cn/
     2. CAICT Unified SDK download: http://msa-alliance.cn/col.jsp?id=120
     * @return OAID
     */
    @Override
    public String getDevOaid() {
        return super.getDevOaid();
    }
});

● GDT

Copy
// Disable install listener switch in app backend:
Map<String,Boolean> params = new HashMap<>();
params.put("hieib", false);
GlobalSetting.setConvOptimizeInfo(params);

GDTATInitManager.getInstance().setGDTATCustomController(new GDTATCustomController() {
    /*
    * Whether the user agrees to the privacy policy, default is true
    * */
    @Override
    public boolean getAgreePrivacyStrategy() {
        return super.getAgreePrivacyStrategy();
    }
});
 /* * Use this method to pass in geographic location information or WeChat OpenID information * */
GlobalSetting.setExtraUserData(Map extraUserData);
 /* * Use this method to block the GDT SDK from acquiring the installed app list on the device * */
GlobalSetting.setEnableCollectAppInstallStatus(false);

● Kuaishou

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

    /*
     * Whether to allow the Kuaishou SDK to actively use Mac Address, default is true
     * */
    @Override
    public boolean getCanReadMacAddress() {
        return super.getCanReadMacAddress();
    }
    /*
     * Whether to allow the Kuaishou SDK to actively use the nearby WiFi list, default is true
     * */
    @Override
    public boolean getCanReadNearbyWifiList() {
        return super.getCanReadNearbyWifiList();
    }
    /*
    * For more privacy data switches, refer to the "3.5 Privacy Info Control Switch" section
    * in the documentation: https://p1-web.adkwai.com/udata/pkg/KS-Android-KSAdSDk/doc/4701b963d40a77bc0f45fd71d30b57da352.pdf
    * */
    @Override
    public KsCustomController getKsCustomeController() {
        return super.getKsCustomeController();
    }
});

● Baidu

Copy
//(v6.4.19 and above) Disable install listener switch in app backend:
BDAdConfig.Builder bdAdConfigBuilder = new BDAdConfig.Builder();
bdAdConfigBuilder.putExtraParam("pk_change_rc","false");
bdAdConfigBuilder.putExtraParam("mi_market_rc","false");
BaiduATInitManager.getInstance().setBDAdConfigBuilder(bdAdConfigBuilder);

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

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

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

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

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

    /*
     * Set whether the Baidu SDK is allowed to obtain APP update permissions
     * */
    @Override
    public boolean getPermissionAppUpdate() {
        return super.getPermissionAppUpdate();
    }

    /*
     * Set whether the Baidu SDK is allowed to obtain the running app permission
     * */
    @Override
    public boolean getPermissionRunningApp() {
        return super.getPermissionRunningApp();
    }
});

● YouKeYing

Copy
KlevinATInitManager.getInstance().setKlevinCustomController(new KlevinCustomController() {
    /**
     * Whether to allow the SDK to collect geographic location information
     * @return true: SDK collects location info, false: SDK does not obtain location info. Default is true
     */
    public boolean isCanUseLocation() {
        return true;
    }
    /**
     * When isCanUseLocation is false, the APP can pass in geographic location information. The YouKeYing SDK will use the geographic location information you provide.
     * @return Geographic location parameters
     */
    public Location getLocation() {
        return null;
    }
    /**
     * Whether to allow the SDK to collect 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, the developer can pass in IMEI information. The YouKeYing SDK will use the IMEI information you provide, 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: allowed, false: prohibited. Default is true
     */
    public boolean isCanUseWifiState() {
        return true;
    }
    /**
     *  Developers can pass in OAID.
     *  CAICT OAID related collection &mdash;&mdash; How to obtain OAID:
     1. Mobile Security Alliance official website: http://www.msa-alliance.cn/
     2. CAICT Unified SDK download: http://msa-alliance.cn/col.jsp?id=120
     * @return OAID
     */
    public String getDevOaid() {
        return null;
    }
});

● TapTap

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

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

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

            // When isCanUsePhoneState=false, IMEI information can be passed in. TapAd will use the IMEI information you provide.
            @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.
            // CAICT OAID related collection &mdash;&mdash; How to obtain OAID:
            // 1. Mobile Security Alliance official website: http://www.msa-alliance.cn/
            // 2. CAICT Unified SDK download: http://msa-alliance.cn/col.jsp?id=120
            @Override
            public String getDevOaid() {
                return null;
            }

            // Whether to allow the SDK to actively acquire the collection permission for the installed app 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;
            }
        });

● Jingdong Ads

Copy
JADATInitManager.getInstance().setJADPrivateController(new JADPrivateController() {
            /**
             * Developers can pass in OAID.
             *
             * @return OAID
             */
            @Override
            public String getOaid() {
                return null;
            }

            /**
             * Whether to allow the SDK to actively use geographic location information
             *
             * @return true: allowed, false: prohibited. Default is true
             */
            @Override
            public boolean isCanUseLocation() {
                return true;
            }

            /**
             * When isCanUseLocation=false, geographic location information can be passed in. The SDK will use the geographic location information you provide.
             *
             * @return Geographic location parameters
             */
            @Override
            public JADLocation getLocation() {
                return new JADLocation(-1.0, -1.0, -1.0);
            }

            /**
             * Whether to allow the SDK to actively use phone hardware parameters, such as IMEI
             *
             * @return true: allowed, false: prohibited. Default is true
             */
            @Deprecated
            public boolean isCanUsePhoneState() {
                return false;
            }

            /**
             * When isCanUsePhoneState=false,
             * IMEI information can be passed in. The SDK will use the IMEI information you provide.
             *
             * @return IMEI information
             */
            @Override
            public String getImei() {
                return "";
            }

            /**
             * Whether to allow the SDK to actively use IP information
             * @return true: allowed, false: prohibited. Default is true
             */
            @Override
            public boolean isCanUseIP() {
                return true;
            }

            /**
             * When isCanUseIP=false,
             * IP information can be passed in. The SDK will use the IP information you provide.
             *
             * @return IP
             */
            @Override
            public String getIP() {
                return "0.0.0.0";
            }
        });

● Qumeng

Copy
 QMATInitManager.getInstance().setQMCustomControl(new QMCustomControl() {
            @Override
            public String getDevImei() {
                return super.getDevImei();
            }

            @Override
            public String getDevImsi() {
                return super.getDevImsi();
            }

            @Override
            public String getAndroidId() {
                return super.getAndroidId();
            }

            @Override
            public String getMacAddress() {
                return super.getMacAddress();
            }

            @Override
            public boolean isCanUsePhoneState() {
                return super.isCanUsePhoneState();
            }

            @Override
            public boolean isCanUseAppList() {
                return super.isCanUseAppList();
            }

            @Override
            public boolean isCanUseAndroidId() {
                return super.isCanUseAndroidId();
            }

            @Override
            public List getAppList() {
                return super.getAppList();
            }

            @Override
            public String getOaid() {
                return super.getOaid();
            }

            @Override
            public boolean isCanUseOaid() {
                return super.isCanUseOaid();
            }

            @Override
            public IQLocation getQLocation() {
                return super.getQLocation();
            }
        });

● OPPO

Copy
OppoATInitManager.getInstance().setCustomController(new MobCustomController() {
            @Override
            public String getDevImei() {
                return super.getDevImei();
            }

            @Override
            public boolean isCanUseLocation() {
                return super.isCanUseLocation();
            }

            @Override
            public LocationProvider getLocation() {
                return super.getLocation();
            }

            @Override
            public boolean isCanUsePhoneState() {
                return super.isCanUsePhoneState();
            }

            @Override
            public boolean isCanUseAndroidId() {
                return super.isCanUseAndroidId();
            }

            @Override
            public String getAndroidId() {
                return super.getAndroidId();
            }

            @Override
            public boolean isCanUseWifiState() {
                return super.isCanUseWifiState();
            }

            @Override
            public String getMacAddress() {
                return super.getMacAddress();
            }

            @Override
            public boolean isCanUseWriteExternal() {
                return super.isCanUseWriteExternal();
            }

            @Override
            public boolean alist() {
                return super.alist();
            }
        });

● VIVO

Copy
VivoATInitManager.getInstance().setCustomController(new VCustomController() {
            @Override
            public boolean isCanUseLocation() {
                return super.isCanUseLocation();
            }

            @Override
            public VLocation getLocation() {
                return super.getLocation();
            }

            @Override
            public boolean isCanUsePhoneState() {
                return super.isCanUsePhoneState();
            }

            @Override
            public String getImei() {
                return super.getImei();
            }

            @Override
            public boolean isCanUseWriteExternal() {
                return super.isCanUseWriteExternal();
            }

            @Override
            public boolean isCanPersonalRecommend() {
                return super.isCanPersonalRecommend();
            }

            @Override
            public boolean isCanUseImsi() {
                return super.isCanUseImsi();
            }

            @Override
            public boolean isCanUseApplist() {
                return super.isCanUseApplist();
            }

            @Override
            public boolean isCanUseAndroidId() {
                return super.isCanUseAndroidId();
            }

            @Override
            public boolean isCanUseMac() {
                return super.isCanUseMac();
            }

            @Override
            public boolean isCanUseIp() {
                return super.isCanUseIp();
            }
        });

● Mimo

Copy
MiMoATInitManager.getInstance().setCustomController(new MiMoCustomController() {
         @Override
         public String getDevImei() {
            return super.getDevImei();
         }

         @Override
         public String getDevOaid() {
            return super.getDevOaid();
         }

         @Override
         public boolean isCanUsePhoneState() {
            return super.isCanUsePhoneState();
         }

         @Override
         public boolean isCanUseLocation() {
            return super.isCanUseLocation();
         }

         @Override
         public MiMoLocation getLocation() {
            return super.getLocation();
         }

         @Override
         public boolean isCanUseAndroidId() {
            return super.isCanUseAndroidId();
         }

         @Override
         public String getAndroidId() {
            return super.getAndroidId();
         }

         @Override
         public boolean canUseMacAddress() {
            return super.canUseMacAddress();
         }

         @Override
         public boolean canUseNetworkState() {
            return super.canUseNetworkState();
         }

         @Override
         public boolean canUseStoragePermission() {
            return super.canUseStoragePermission();
         }

         @Override
         public boolean canReadInstalledPackages() {
            return super.canReadInstalledPackages();
         }

         @Override
         public boolean isCanUsePermissionRecordAudio() {
            return super.isCanUsePermissionRecordAudio();
         }
      });

● Meishu

Copy
MeishuATInitManager.getInstance().setCustomController(new MeishuCustomController() {
            @Override
            public String getDevImei() {
                return super.getDevImei();
            }

            @Override
            public String getDevOaid() {
                return super.getDevOaid();
            }

            @Override
            public boolean isCanUsePhoneState() {
                return super.isCanUsePhoneState();
            }

            @Override
            public boolean isCanUseLocation() {
                return super.isCanUseLocation();
            }

            @Override
            public boolean isCanUseAndroidId() {
                return super.isCanUseAndroidId();
            }

            @Override
            public String getAndroidId() {
                return super.getAndroidId();
            }
        });

● Alibaba Tanx

Copy
TanxATInitManager.getInstance().setCustomController(new TanxATCustomController() {
            @Override
            public String getImei() {
                return super.getImei();
            }

            @Override
            public String getOaid() {
                return super.getOaid();
            }

            @Override
            public boolean oaidSwitch() {
                return super.oaidSwitch();
            }

            @Override
            public boolean imeiSwitch() {
                return super.imeiSwitch();
            }

            @Override
            public boolean idAllSwitch() {
                return super.idAllSwitch();
            }
        });

● Beizi

Copy
BzATInitManager.getInstance().setBeiZiCustomController(new BeiZiCustomController() {
           @Override
           public boolean isCanUseLocation() {
               return super.isCanUseLocation();
           }

           @Override
           public BeiZiLocation getLocation() {
               return super.getLocation();
           }

           @Override
           public boolean isCanUseWifiState() {
               return super.isCanUseWifiState();
           }

           @Override
           public boolean isCanUsePhoneState() {
               return super.isCanUsePhoneState();
           }

           @Override
           public boolean isCanUseOaid() {
               return super.isCanUseOaid();
           }

           @Override
           public boolean isCanUseGaid() {
               return super.isCanUseGaid();
           }

           @Override
           public String getDevOaid() {
               return super.getDevOaid();
           }

           @Override
           public String getOaidVersion() {
               return super.getOaidVersion();
           }

           @Override
           public boolean isCanUseAppList() {
               return super.isCanUseAppList();
           }

           @Override
           public boolean forbidSensor() {
               return super.forbidSensor();
           }

           @Override
           public boolean isCanUseAndroidId() {
               return super.isCanUseAndroidId();
           }

           @Override
           public String getAndroidId() {
               return super.getAndroidId();
           }
       });

In compliance scenarios, download-type ads need to prompt the user before downloading, and the user must confirm before the download can begin.

During ad playback, when a click triggers an ad download, the developer needs to obtain the app name, version, and related information to display a popup prompting the user whether to confirm the download.

Applicable ad types: All ad types

Applicable ad platforms: GDT, Pangle (China), Kuaishou (need to contact Kuaishou to enable the feature), Mintegral China (need to contact Mintegral to enable the feature), Sigmob (need to contact Sigmob to enable the feature), YouKeYing (download-type ads will automatically popup; if you want to disable the feature, contact the third-party).

3.1 GDT

You can contact GDT to apply (recommended), or set it yourself via code.

① If the developer's application for secondary popup permission is confirmed successful, no code setup is needed.

② Using code setup requires the developer to draw the popup themselves and prompt the user whether to confirm the download.

③ After enabling, the onDownloadConfirm logic in ATSplashExListener must be handled, otherwise clicks will have no response.

Taking Splash Ad as an example, sample code as follows:

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

                    if (networkConfirmInfo instanceof GDTDownloadFirmInfo) {
                     // Secondary popup handling. DownloadApkConfirmDialogWebView is the class for drawing the secondary confirmation popup. Specific rendering needs to be done by the developer.
                    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);

// Enable secondary popup confirmation download after clicking app-type ads (set to false to disable)
localMap.put(ATAdConst.KEY.AD_CLICK_CONFIRM_STATUS, true); 

splashAd.setLocalExtra(localMap);

GDTDownloadFirmInfo API Description:

Variable Description
scenes The scene where the download occurs. Scene constants defined by the ApkDownloadComplianceInterface: SCENES_AD_OR_NATIVE_LANDING_PAGE (indicates the download scene is clicking the ad itself or a native landing page), SCENES_WEB_LANDING_PAGE (indicates the download scene is clicking the landing page).
appInfoUrl The URL address of the application info to be downloaded.
confirmCallBack The developer uses this callBack to notify the SDK whether to continue the download or cancel it. onConfirm: Confirm download; onCancel: Cancel download.

4. Whether to Allow SDK to Enable (Shake, Twist, Slide) Ads

Copy
List<String> networkFirmIdList = new ArrayList<>();
// Supported platforms (Pangle China, Gromroe, GDT, Kuaishou, Tanx, Qumeng, Sigmob, Meishu, TapTap, ADX, Beizi, Octopus)
// Pass in the platform ID of the specified ad platform.
// networkFilmIdList.add("network_firm_id");
// Except when passing ALLOW_NETWORK which requires networkFirmIdList, the other three types do not need it.
// Control types: (FORBID_ALL: Forbid all, ALLOW_ALL: Allow all, ALLOW_NETWORK: Allow channels in the List to be enabled, other channels are forbidden, DEFAULT_NETWORK: All follow the channel's default value)
// v6.5.09+, recommended to call after Initialization and before loading.
// Note: Beizi and Octopus require v6.5.36+, Beizi version: 5.2.2.0, Octopus version: 2.5.10.5 for these two versions to take effect.
// Xiaomi Alliance supported since v6.6.30
ATSDKGlobalSetting.setShakeControl(ATSDKGlobalSetting.SHAKE_TYPE.ALLOW_NETWORK,networkFirmIdList);
Previous
Policy compliance
Next
Integration Checklist
Last modified: 2026-07-14Powered by