隐私设置
生效说明
个性化广告开关、程序化推荐开关的状态保存在内存中,在 App 一次运行生命周期内有效。App 进程结束后状态不会持久化,下次冷启动将恢复为默认值(默认均为开启)。
建议在 SDK 初始化前调用相关接口;若运行中修改开关,仅对当前进程内后续广告请求与渠道行为生效。
1、个性化广告开关
typescript
export function personalizedAdvertising(state: TBType.PersonalizedAdvertising): void;
export function getPersonalizedAdvertising(): TBType.PersonalizedAdvertising;typescript
/**
* 个性化状态
*/
export enum PersonalizedAdvertising {
on = 0, // 开启
off = 1, // 关闭
}说明:
- 关闭后,SDK 不再收集、使用位置信息:
- 聚合层:不主动获取系统定位,不使用开发者通过
TBCustomPrivacyController自定义传入的位置; - 渠道层:不向渠道透传位置相关自定义参数(如穿山甲 / GroMore 的
isCanUseLocation、getTTLocation)。
- 聚合层:不主动获取系统定位,不使用开发者通过
- 开关状态会参与聚合广告请求与相关打点上报。
示例:
typescript
import { ToBidAd, TBType } from '@tobid/adsdk';
// 关闭个性化广告(建议在 SDK 初始化前调用)
ToBidAd.personalizedAdvertising(TBType.PersonalizedAdvertising.off);2、未成年设置
typescript
export function ageState(state: TBType.Age): void;typescript
/**
* 年龄状态
*/
export enum Age {
adult = 0, // 成年人
child = 1, // 儿童
}3、用户年龄
typescript
export function userAge(age: number): void;4、设备隐私信息控制设置
typescript
export abstract class TBCustomPrivacyController {
/**
* app在项目中配置权限。并在合适时机动态申请权限,用户授权。
* 1:当isCanUseLocation()返回false。当sdk需要地理位置信息时,使用getLocation()返回的值。
* 2:当isCanUseLocation()返回true。当sdk需要地理位置信息时,先去检查是否已经得到用户授权,如果是则获取系统地理位置信息,如果否则使用getLocation()返回的值。
* @returns 是否允许SDK获取系统地理位置信息
*/
isCanUseLocation() {
return true;
}
/**
*
* @returns 媒体传入的地理位置信息
*/
getLocation(): TBType.Location {
let location: TBType.Location = {
longitude: Device.longitude,
latitude: Device.latitude
}
return location;
}
/**
* app在项目中配置权限。在适当时机申请权限,然后用户授权。
* 1:如果isCanUseAppTrackingConsent()返回false,当sdk需要oaid时,则使用getDevOaid()返回的值。
* 2:如果isCanUseAppTrackingConsent()返回true。当sdk需要oaid时,先去检查权限是否已经得到用户授权,如果用户已经授权则获取系统oaid。如果用户未授权,则使用getDevOaid()返回的值。
* @returns 是否允许SDK获取系统oaid
*/
isCanUseAppTrackingConsent(): boolean {
return true;
}
/**
* isCanUseOaid=false时,开发者可以传入oaid
*
* @return oaid
*/
async getDevOaid(): Promise<string> {
return Device.getOAID();
}
/**
* 是否允许SDK使用ohos.permission.GET_WIFI_INFO权限对应的信息。
* 返回true,如果应用申请了ohos.permission.GET_WIFI_INFO权限,sdk则可以使用
* 返回false,sdk则不可以使用。
* @returns
*/
isCanUseWifiState() {
return true
}
/**
* 媒体isCanUseWifiState()返回false时,SDK使用getMacAddress()的返回值作为mac地址
* @returns
*/
getMacAddress(): string | undefined {
return undefined
}
}5、程序化推荐开关
typescript
export function programmaticRecommend(state: TBType.ProgrammaticRecommend): void;
export function getProgrammaticRecommend(): TBType.ProgrammaticRecommend;typescript
export enum ProgrammaticRecommend {
on = 0, // 开启
off = 1, // 关闭
}说明:
- 关闭后,广告请求仍会正常发送,开关状态会同步到聚合服务端与已接入的三方渠道(如快手在初始化时通过
enableProgrammaticRecommend透传)。 - 聚合策略请求、初始化打点中会携带
programmatic_recommend字段:0表示关闭程序化广告,1表示开启程序化广告。 - 运行中修改开关后,会通过
adPrivacyUpdate通知已初始化的渠道适配器;部分渠道 SDK 仅支持初始化时配置,以各渠道实际能力为准。
示例:
typescript
import { ToBidAd, TBType } from '@tobid/adsdk';
// 关闭程序化推荐(建议在 SDK 初始化前调用)
ToBidAd.programmaticRecommend(TBType.ProgrammaticRecommend.off);6、个人信息查询与删除页面
SDK 提供内置 H5 页面,供用户查询与删除个人信息。
typescript
// 打开个人信息查询与删除页面
export function openPrivacyView(): void;说明:
- 页面以子窗口形式打开,默认加载地址:
https://www.tobidad.com/info-query。 - 页面会向 H5 注入
window.sigmob对象,提供设备标识等信息用于查询。 - 需在 SDK 初始化完成且具备可用
WindowStage后调用。
示例:
typescript
import { ToBidAd } from '@tobid/adsdk';
// 在用户点击「个人信息管理」等入口时调用
ToBidAd.openPrivacyView();