Skip to content

隐私设置

生效说明

个性化广告开关、程序化推荐开关的状态保存在内存中,在 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 的 isCanUseLocationgetTTLocation)。
  • 开关状态会参与聚合广告请求与相关打点上报。

示例:

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();