• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 广告标识服务
2
3## 获取OAID信息
4
5
6### 场景介绍
7
8开放匿名设备标识符(Open Anonymous Device Identifier, OAID,以下简称OAID):是一种非永久性设备标识符,基于开放匿名设备标识符,可在保护用户个人数据隐私安全的前提下,向用户提供个性化广告,同时三方监测平台也可以向广告主提供转化归因分析。
9
10媒体App、广告平台、三方监测平台等开发者,可获取设备上的OAID,您可基于OAID进行个性化广告推荐或广告转化归因分析。
11
12
13### 接口说明
14
15| 接口名 | 描述 |
16| -------- | -------- |
17| [getOAID()](../../reference/apis/js-apis-oaid.md#identifiergetoaid):Promise<string> | 获取OAID,通过Promise异步返回结果。 |
18| [getOAID(callback: AsyncCallback<string>)](../../reference/apis/js-apis-oaid.md#identifiergetoaid-1): void | 获取OAID,通过Callback回调返回值。 |
19
20
21### 开发步骤
22
231. 在模块的module.json5文件中,申请广告跟踪权限[ohos.permission.APP_TRACKING_CONSENT](../../security/permission-list.md#ohospermissionapp_tracking_consent)。示例代码如下所示:
24   ```
25   {
26     "module": {
27       "requestPermissions": [
28         {
29         "name": "ohos.permission.APP_TRACKING_CONSENT"
30         }
31       ]
32     }
33    }
34   ```
35
36   在应用启动时触发动态授权弹框,向用户请求授权。其中context的获取方式参见[各类Context的获取方式](../../application-models/application-context-stage.md)。示例代码如下所示:
37   ```
38   import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
39   import { BusinessError } from '@ohos.base';
40   import hilog from '@ohos.hilog';
41   import common from '@ohos.app.ability.common';
42
43   function requestOAIDTrackingConsentPermissions(context: common.Context): void {
44     // 进入页面时触发动态授权弹框,向用户请求授权广告跟踪权限
45     const atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
46      try {
47        atManager.requestPermissionsFromUser(context, ["ohos.permission.APP_TRACKING_CONSENT"]).then((data) => {
48          if (data.authResults[0] == 0) {
49            hilog.info(0x0000, 'testTag', '%{public}s', 'request permission success');
50          } else {
51            hilog.info(0x0000, 'testTag', '%{public}s', 'user rejected');
52          }
53        }).catch((err: BusinessError) => {
54          hilog.error(0x0000, 'testTag', '%{public}s', `request permission failed, error: ${err.code} ${err.message}`);
55        })
56      } catch(err) {
57        hilog.error(0x0000, 'testTag', '%{public}s', `catch err->${err.code}, ${err.message}`);
58      }
59    }
60   ```
61
622. 调用getOAID方法获取OAID信息。示例代码如下所示:
63   ```
64   import identifier from '@ohos.identifier.oaid';
65   import hilog from '@ohos.hilog';
66   import { BusinessError } from '@ohos.base';
67
68   try {
69     identifier.getOAID((err: BusinessError, data: string) => {
70       if (err.code) {
71         hilog.error(0x0000, 'testTag', '%{public}s', `get oaid failed, error: ${err.code} ${err.message}`);
72       } else {
73         const oaid: string = data;
74         hilog.info(0x0000, 'testTag', '%{public}s', `get oaid by callback success, oaid: ${oaid}`);
75       }
76      });
77   } catch (err) {
78     hilog.error(0x0000, 'testTag', '%{public}s', `get oaid catch error: ${err.code} ${err.message}`);
79   }
80   ```
81