Skip to content

隐私设置

参考Demo

ToBid 聚合SDK提供的广告服务均满足国家相关法律规定如《个人信息保护法》、《数据安全法》等要求的信息采集规范。开发者仅需依照文档调用 ToBid 提供的隐私接口即可将对应的隐私配置信息同步到应用内集成使用的全部广告SDK。

1. 未成年设置

objective-c
typedef enum : NSUInteger {
    WindMillAdult = 0,
    WindMillChildren = 1,
} WindMillAdultState;
/// WindAdult: 成年人, WindChildren: 未成年人 default=WindAdult
+ (void)setAdult:(WindMillAdultState)state;
+ (WindMillAdultState)getAdultState;
Swift
@objc public enum WindMillAdultState: UInt32 {
    case Adult = 0
    case Children
}
/// WindAdult: 成年人, WindChildren: 未成年人 default=WindAdult
@objc public static func setAdult(_ state: WindMillAdultState) 
@objc public static func getAdultState() -> WindMillAdultState

2. 个性化推荐设置

objective-c
typedef enum : NSUInteger {
    WindMillPersonalizedAdvertisingOn = 0,
    WindMillPersonalizedAdvertisingOff = 1,
} WindMillPersonalizedAdvertisingState;
/// WindPersonalizedAdvertisingOn: 开启个性化推荐, WindPersonalizedAdvertisingOff: 关闭个性化推荐, default=WindPersonalizedAdvertisingOn
+ (void)setPersonalizedAdvertising:(WindMillPersonalizedAdvertisingState)state;
Swift
@objc public enum WindMillPersonalizedAdvertisingState: UInt32 {
    case On = 0
    case Off
}
/// WindPersonalizedAdvertisingOn: 开启个性化推荐, WindPersonalizedAdvertisingOff: 关闭个性化推荐, default=WindPersonalizedAdvertisingOn
@objc public static func setPersonalizedAdvertising(_ state: WindMillPersonalizedAdvertisingState) 
+ (WindMillPersonalizedAdvertisingState)getPersonalizedAdvertisingState;

2. 程序化广告设置

objective-c
/// 是否允许推荐程序化广告; false-禁止;true-允许(默认)
@objc public static func setProgrammaticRecommend(_ value: Bool) 

/// 获取是否允许程序化广告的开关
@objc public static func getProgrammaticRecommend() -> Bool

3. 用户信息管理(查询和删除用户个人信息)

swift
/// 打开个人信息查询与删除页面
/// @warning 需在SDK初始化成功后调用
@objc public static func openPrivacyView

4. GDPR

objective-c
typedef NS_ENUM (NSInteger, WindMillConsentStatus) {
    WindMillConsentUnknown = 0,
    WindMillConsentAccepted,
    WindMillConsentDenied,
};
+ (void)setUserGDPRConsentStatus:(WindMillConsentStatus)status;
+ (WindMillConsentStatus)getUserGDPRConsentStatus;

5. CCPA

objective-c
typedef NS_ENUM (NSInteger, WindMillCCPAStatus) {
    WindMillCCPAUnknown = 0,
    WindMillCCPAAccepted,
    WindMillCCPADenied,
};
+ (void)setCCPAStatus:(WindMillCCPAStatus)status;
+ (WindMillCCPAStatus)getCCPAStatus;
Swift
@objc public enum WindMillCCPAStatus: UInt32 {
    case Unknown = 0
    case Accepted
    case Denied
}
/// WindMillCCPAUnknown: 未知状态, WindMillCCPAAccepted: 同意, WindMillCCPADenied: 拒绝, default=WindMillCCPAUnknown
@objc public static func setCCPAStatus(_ status: WindMillCCPAStatus) 
@objc public static func getCCPAStatus() -> WindMillCCPAStatus

6. COPPA

objective-c
typedef NS_ENUM (NSInteger, WindMillAgeRestrictedStatus) {
    WindMillAgeRestrictedStatusUnknow = 0,
    WindMillAgeRestrictedStatusYES, //年龄受限制
    WindMillAgeRestrictedStatusNO,  //成年人,年龄不受限制
};
+ (void)setIsAgeRestrictedUser:(WindMillAgeRestrictedStatus)status;
+ (WindMillAgeRestrictedStatus)getAgeRestrictedStatus;
Swift
@objc public enum WindMillAgeRestrictedStatus: UInt32 {
    case Unknow = 0
    case YES // 年龄受限制
    case NO  // 成年人,年龄不受限制
}
/// WindMillAgeRestrictedStatusUnknow: 未知状态, WindMillAgeRestrictedStatusYES: 年龄受限制, WindMillAgeRestrictedStatusNO: 成年人,年龄不受限制, default=WindMillAgeRestrictedStatusUnknow
@objc public static func setIsAgeRestrictedUser(_ status: WindMillAgeRestrictedStatus) 
@objc public static func getAgeRestrictedStatus() -> WindMillAgeRestrictedStatus

7. 开发者传入设备信息

针对部分媒体需要。如无必要,请勿设置。

objective-c
/// 设置自定义信息
/// @param delegate 自定义代理对象
/// @warning  初始化前调用,否则有可能不生效
+ (void)setCustomDeviceController:(id<AWMDeviceProtocol>)delegate;
Swift
@objc public static func setCustomDeviceController(_ delegate: AWMDeviceProtocol)

AWMDeviceProtocol协议介绍

objective-c
@protocol AWMDeviceProtocol <NSObject>

@optional
/**
 * 是否允许SDK主动使用地理位置信息
 *
 * @return YES可以获取,NO禁止获取。默认为YES
 */
- (BOOL)isCanUseLocation;

/**
 * 当isCanUseLocation=NO时,可传入地理位置信息,sdk使用您传入的地理位置信息
 *
 * @return 地理位置参数
 */

- (AWMLocation *)getAWMLocation;

/**
 * 是否允许SDK主动获取IDFA信息
 *
 * @return YES可以获取,NO禁止获取。默认为YES
 */
- (BOOL)isCanUseIdfa;

/**
 * 当isCanUseIdfa=YES时,可传入idfa信息。sdk使用您传入的idfa信息
 *
 * @return idfa设备信息
 */
- (NSString *)getDevIdfa;
    
/**
 是否允许SDK主动获取IDFV信息
 @return YES可以获取,NO禁止获取。默认为YES
 */
- (BOOL)isCanUseIdfv;

/**
 当isCanUseIdfv=NO时,可传入idfv信息
 @return idfv设备信息
 */
- (NSString * _Nullable)getDevIdfv;

/**
 是否允许SDK主动使用陀螺仪传感器信息(互动组件能力,包含了摇一摇、扭一扭等)
 @return YES可以使用,NO禁止使用。默认为YES
 */
- (BOOL)isCanUseSensor;

/**
 是否允许SDK获取磁盘空间大小
 @return YES可以使用,NO禁止使用。默认为YES
 */
- (BOOL)isCanUseSpaceSize;

@end
Swift
/// 设备信息协议,提供地理位置和IDFA相关配置
@objc public protocol AWMDeviceProtocol {
    /// 是否允许SDK主动使用地理位置信息
    /// - Returns: true可以获取,false禁止获取。默认为true
    @objc optional func isCanUseLocation() -> Bool

    /// 当isCanUseLocation=false时,可传入地理位置信息
    /// - Returns: 地理位置参数
    @objc optional func getAWMLocation() -> AWMLocation?

    /// 是否允许SDK主动获取IDFA信息
    /// - Returns: true可以获取,false禁止获取。默认为true
    @objc optional func isCanUseIdfa() -> Bool

    /// 当isCanUseIdfa=false时,可传入idfa信息
    /// - Returns: idfa设备信息
    @objc optional func getDevIdfa() -> String?
    
    
    /// 是否允许SDK主动获取IDFV信息
    /// - Returns: true可以获取,false禁止获取。默认为true
    @objc optional func isCanUseIdfv() -> Bool
    
    /// 当isCanUseIdfv=false时,可传入idfv信息
    /// - Returns: idfv设备信息
    @objc optional func getDevIdfv() -> String?
    
    /// 是否允许SDK主动使用陀螺仪传感器信息(互动组件能力,包含了摇一摇、扭一扭等)
    /// - @return YES可以使用,NO禁止使用。默认为YES
    @objc optional func isCanUseSensor() -> Bool
        
    /// 是否允许SDK获取磁盘空间大小
    /// - @return YES可以使用,NO禁止使用。默认为YES
    ///
    @objc optional func isCanUseSpaceSize() -> Bool

}