个性化推荐设置
发布日期:2025 年 10 月 24 日
为落实个人信息保护相关的规定,TapADN SDK 为开发者提供退出个性化广告能力的接口,开发者可以调用接口,向用户提供退出个性化广告的能力。退出后,看到的广告数量不变,相关度会降低。开发者需遵守相关法律法规的要求,在开发者应用内为用户提供退出个性化广告的功能,保证在用户点击退出功能后调用 TapADN SDK 的能力接口。
方法简介
开发者可以在 data 这个自定义字段中增加新的传入 key personal_ads_type,当用 户选择拒绝个性化广告时上报 0,当用户同意时上报 1;
| Parameter | Type | Description | Value |
|---|---|---|---|
| personal_ads_type | String | 是否屏蔽个性化广告 | 不传或传空没任何影响,默认不屏蔽 0,屏蔽个性化推荐广告; 1,不屏蔽个性化推荐广告; |
实现路径
根据用户在应用内的配置进行参数传递,用户默认不屏蔽则不需要任何配置。若用户选择屏蔽个性化推荐广告,则需要开发者通过 SDK 配置接口进行参数更新。
支持版本
- Android: 3.16.3.26 及以上
- iOS: 4.1.0.0 及以上
Android 实现
通过 TapADN SDK 提供的控制是否屏蔽个性化推荐广告接口进行设置。
TapAdSdk.updateAdConfig(tapAdConfig) //参数类型为 TapAdConfig
Demo 示例
/**
* @param personalTypeValue 个性化推荐广告开关
*/
private static void updateData(String personalTypeValue) {
TapAdConfig tapAdConfig = new TapAdConfig.Builder()
.withData(getData(personalTypeValue))
.build();
TapAdSdk.updateAdConfig(tapAdConfig);
}
private static String getData(String personalTypeValue) {
try {
JSONArray jsonArray = new JSONArray();
JSONObject personalObject = new JSONObject();
personalObject.put("name", "personal_ads_type");
personalObject.put("value", personalTypeValue);
jsonArray.put(personalObject);
return jsonArray.toString();
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
iOS 实现
在 SDK 初始化时通过配置对象设置个性化推荐。iOS SDK 会自动解析 data 字段中的 personal_ads_type 参数。
接口说明
// SDK 初始化方法
+ (void)startWithConfig:(DRASDKConfig *)config
completion:(void (^)(BOOL success, NSError *error))completion;
Objective-C 示例
/// 构建个性化推荐配置数据
/// @param personalTypeValue 个性化推荐广告开关:"0" 表示屏蔽,"1" 表示不屏蔽
/// @return JSON 格式的配置字符串
- (NSString *)buildPersonalizedAdsConfigData:(NSString *)personalTypeValue {
NSArray *configArray = @[
@{
@"name": @"personal_ads_type",
@"value": personalTypeValue
}
];
NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:configArray
options:0
error:&error];
if (error) {
NSLog(@"构建配置数据失败: %@", error.localizedDescription);
return @"";
}
return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}
/// SDK 初始化时设置个性化推荐
- (void)initializeSDKWithPersonalizedAdsEnabled {
// 构建配置数据("1" 表示启用个性化推荐,"0" 表示禁用个性化推荐)
NSString *dataJson = [self buildPersonalizedAdsConfigData:@"1"];
// 创建 SDK 配置
DRASDKConfig *config = [DRASDKConfig configWithMediaId:@"your_media_id"
mediaKey:@"your_media_key"];
config.data = dataJson;
// 初始化 SDK
[TapADN startWithConfig:config completion:^(BOOL success, NSError *error) {
if (success) {
NSLog(@"SDK 初始化成功,个性化推荐已启用");
} else {
NSLog(@"SDK 初始化失败: %@", error.localizedDescription);
}
}];
}
Swift 示例
如果您的项目使用 Swift,可以通过桥接使用:
/// 构建个性化推荐配置数据
/// - Parameter personalTypeValue: "0" 表示屏蔽,"1" 表示不屏蔽
/// - Returns: JSON 格式的配置字符串
func buildPersonalizedAdsConfigData(_ personalTypeValue: String) -> String? {
let configArray: [[String: String]] = [
[
"name": "personal_ads_type",
"value": personalTypeValue
]
]
guard let jsonData = try? JSONSerialization.data(withJSONObject: configArray),
let dataJson = String(data: jsonData, encoding: .utf8) else {
print("构建配置数据失败")
return nil
}
return dataJson
}
/// SDK 初始化(根据用户偏好设置个性化推荐)
func initializeSDK(personalizedAdsEnabled: Bool) {
// 构建配置数据
let personalTypeValue = personalizedAdsEnabled ? "1" : "0"
guard let dataJson = buildPersonalizedAdsConfigData(personalTypeValue) else {
print("配置数据构建失败")
return
}
// 创建 SDK 配置
let config = DRASDKConfig(mediaId: "your_media_id", mediaKey: "your_media_key")
config.data = dataJson
// 初始化 SDK
TapADN.start(with: config) { success, error in
if success {
print("SDK 初始化成功,个性化推荐已\(personalizedAdsEnabled ? "启用" : "禁用")")
} else {
print("SDK 初始化失败: \(error?.localizedDescription ?? "未知错误")")
}
}
}
注意事项
-
配置持久化:SDK 不会自动保存用户的个性化推荐偏好,开发者需要自行保存用户的选择(如使用 NSUserDefaults),并在每次 SDK 初始化时根据用户偏好设置配置。
-
配置时机:必须在 SDK 初始化时通过
DRASDKConfig的data属性设置,SDK 启动后无法修改个性化推荐设置。 -
数据格式:
data字段必须是符合 JSON Array 格式的字符串,每个元素包含name和value两个字段。 -
默认行为:如果不设置
personal_ads_type或设置为非 "0" 的值,SDK 默认启用个性化推荐。 -
重新初始化:如果用户修改了个性化推荐偏好,需要在下次应用启动时使用新的配置重新初始化 SDK。