HarmonyOS 广告标识符(OAID)集成指南

1. 概述

广告标识符(OAID)是HarmonyOS提供的一种非永久性设备标识符,用于在保护用户个人数据隐私安全的前提下,向用户提供个性化广告。本教程将指导您如何在HarmonyOS应用中集成和使用OAID。

2. OAID的作用

OAID具有以下作用:

  • 提供非永久性设备标识符,用于广告跟踪和个性化广告推送
  • 保护用户隐私,用户可以重置OAID或限制广告跟踪
  • 帮助开发者提升广告转化效果和精准度
  • 用于广告效果的跟踪和分析

3. 前提条件

  • 已安装DevEco Studio
  • 已创建HarmonyOS项目
  • 已在鲸鸿动能媒体服务平台注册

4. 添加依赖

在项目的oh-package.json5文件中添加AdsKit依赖:

"dependencies": {
  "@kit.AdsKit": "*",
  "@kit.AbilityKit": "*"
}

5. 导入必要的模块

import { identifier } from '@kit.AdsKit';
import { common, abilityAccessCtrl } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

6. 添加权限声明

在应用的module.json5文件中添加广告跟踪权限:

"requestPermissions": [
  {
    "name": "ohos.permission.APP_TRACKING_CONSENT",
    "reason": "用于获取广告标识符,提供个性化广告服务",
    "usedScene": {
      "abilities": ["EntryAbility"],
      "when": "inuse"
    }
  }
]

7. 请求广告跟踪权限

在使用OAID前,需要请求用户授权广告跟踪权限:

private requestOAIDTrackingConsentPermissions(context: common.Context): void {
    const atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
    try {
        atManager.requestPermissionsFromUser(context, ['ohos.permission.APP_TRACKING_CONSENT']).then((data) => {
            if (data.authResults[0] == 0) {
                hilog.info(0x0000, 'OAIDDemo', '%{public}s', '成功请求权限');
                // 权限获取成功后,获取OAID
                this.getOAID();
            } else {
                hilog.info(0x0000, 'OAIDDemo', '%{public}s', '用户拒绝授权');
                // 用户拒绝授权,应当尊重用户选择,不再请求OAID
                // 可以展示非个性化广告
            }
        }).catch((err: BusinessError) => {
            hilog.error(0x0000, 'OAIDDemo', '%{public}s', `请求权限失败, error: ${err.code} ${err.message}`);
        })
    } catch (err) {
        hilog.error(0x0000, 'OAIDDemo', '%{public}s', `捕获错误, code:${err.code}, message: ${err.message}`);
    }
}

8. 获取OAID

获取权限后,可以调用getOAID()方法获取广告标识符:

private getOAID(): void {
    identifier.getOAID().then((oaid: string) => {
        // 获取OAID成功
        hilog.info(0x0000, 'OAIDDemo', '%{public}s', `成功获取广告标识符信息: ${oaid}`);
        
        // 将OAID添加到广告请求参数中
        this.adRequestParams.oaid = oaid;
        
        // 加载广告
        this.loadAd();
    }).catch((error: BusinessError) => {
        hilog.error(0x0000, 'OAIDDemo', '%{public}s', `获取广告标识符信息失败, message: ${error.message}`);
    })
}

9. 检查广告跟踪限制状态

您可以检查用户是否启用了"限制广告跟踪":

private checkLimitAdTracking(): void {
    identifier.isLimitAdTrackingEnabled().then((enabled: boolean) => {
        if (enabled) {
            hilog.info(0x0000, 'OAIDDemo', '%{public}s', '用户已启用限制广告跟踪');
            // 用户已启用限制广告跟踪,应当展示非个性化广告
            this.adOptions.nonPersonalizedAd = 1;
        } else {
            hilog.info(0x0000, 'OAIDDemo', '%{public}s', '用户未启用限制广告跟踪');
            // 用户未启用限制广告跟踪,可以展示个性化广告
            this.adOptions.nonPersonalizedAd = 0;
        }
    }).catch((error: BusinessError) => {
        hilog.error(0x0000, 'OAIDDemo', '%{public}s', `检查限制广告跟踪状态失败, message: ${error.message}`);
    })
}

10. 在广告请求中使用OAID

获取OAID后,可以将其添加到广告请求参数中:

// 广告请求参数
private adRequestParams: advertising.AdRequestParams = {
    adId: 'YOUR_AD_ID_HERE',
    adType: AdType.BANNER_AD,
    adCount: 1,
    adWidth: 360,
    adHeight: 57,
    // OAID将在获取后添加到这里
    // oaid: 'OAID_VALUE'
};

11. 在生命周期方法中初始化OAID

aboutToAppear() {
    try {
        // 请求用户授权
        this.requestOAIDTrackingConsentPermissions(this.context);
    } catch (err) {
        hilog.error(0x0000, 'OAIDDemo', '%{public}s', `catch err, code: ${err.code}, message: ${err.message}`);
    }
    hilog.info(0x0000, 'OAIDDemo', '%{public}s', 'aboutToAppear');
}

12. OAID的隐私保护

用户可以通过以下方式保护隐私:

  1. 在系统"设置 > 隐私 > 广告与隐私"或"设置 > 安全与隐私 > 更多安全设置 > 匿名设备标识"界面中重置"广告标识符"
  2. 启用"限制广告跟踪"选项

当用户重置OAID后,系统会生成一个新的OAID,应用只能获取到这个新的OAID。

当用户启用"限制广告跟踪"选项后,应用和广告商不能使用OAID来向用户推送个性化广告,但仍可以推送非个性化的广告。

13. 最佳实践

  • 在应用首次启动时请求广告跟踪权限
  • 尊重用户的隐私选择,如果用户拒绝授权或启用了限制广告跟踪,应当展示非个性化广告
  • 不要将OAID与用户的个人身份信息关联
  • 不要将OAID用于广告以外的目的
  • 在隐私政策中明确说明OAID的使用目的和方式

14. 注意事项

无法获取OAID

可能原因:

  • 未正确请求广告跟踪权限
  • 用户拒绝了授权请求
  • 设备不支持OAID

获取到的OAID与之前不同

可能原因:

  • 用户重置了广告标识符
  • 设备系统更新后重置了OAID

用户启用了"限制广告跟踪"选项

解决方案:

  • 尊重用户选择,展示非个性化广告
  • 在广告请求参数中设置nonPersonalizedAd = 1

15. 总结

OAID是一种平衡用户隐私和广告效果的解决方案,正确使用OAID可以帮助您提供更精准的广告服务,同时尊重用户的隐私选择。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值