• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.advertising.AdsServiceExtensionAbility (广告扩展服务)(系统接口)
2
3本模块为设备厂商提供广告扩展能力,设备厂商可自主实现单广告位请求和多广告位请求的业务逻辑。
4
5> **说明:**<br/>
6> 本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。<br/>
7> 本模块接口为系统接口。
8
9## 导入模块
10
11```ts
12import { AdsServiceExtensionAbility } from '@kit.AdsKit';
13```
14
15## AdsServiceExtensionAbility.onLoadAd
16
17onLoadAd(adParam: advertising.AdRequestParams, adOptions: advertising.AdOptions, respCallback: RespCallback)
18
19单广告位请求业务实现方法,设备厂商需在该方法中实现广告请求业务逻辑并将结果回调给媒体。
20
21**系统接口:** 此接口为系统接口。
22
23**系统能力:** SystemCapability.Advertising.Ads
24
25**参数:**
26
27| 参数名       | 类型                                                                  | 必填 | 说明          |
28|--------------|-----------------------------------------------------------------------|-----|-------------|
29| adParam      | advertising.[AdRequestParams](js-apis-advertising.md#adrequestparams) | 是   | 广告请求参数。 |
30| adOptions    | advertising.[AdOptions](js-apis-advertising.md#adoptions)             | 是   | 广告配置。     |
31| respCallback | [RespCallback](js-apis-adsserviceextensionability.md#respcallback)    | 是   | 广告请求回调。 |
32
33**示例:**
34
35```ts
36import { AdsServiceExtensionAbility, advertising, RespCallback } from '@kit.AdsKit';
37
38export default class AdsExtensionAbility extends AdsServiceExtensionAbility {
39  onLoadAd(adRequestParams: advertising.AdRequestParams, adOptions: advertising.AdOptions, respCallback: RespCallback) {
40    const adType: number | undefined = adRequestParams.adType;
41    const ads: Array<advertising.Advertisement> = [];
42    const rewardVerifyConfig: Map<string, string> = new Map();
43    ads.push({
44      adType: adType as number,
45      uniqueId: '111111',
46      rewardVerifyConfig: rewardVerifyConfig,
47      rewarded: false,
48      shown: false,
49      clicked: false
50    });
51    ads.push({
52      adType: adType as number,
53      uniqueId: '222222',
54      rewardVerifyConfig: rewardVerifyConfig,
55      rewarded: false,
56      shown: false,
57      clicked: false
58    });
59    const slot: string = 'test';
60    const respData: Map<string, Array<advertising.Advertisement>> = new Map();
61    respData.set(slot, ads);
62    respCallback(respData);
63  }
64}
65```
66
67## AdsServiceExtensionAbility.onLoadAdWithMultiSlots
68
69onLoadAdWithMultiSlots(adParams: advertising.AdRequestParams[], adOptions: advertising.AdOptions, respCallback: RespCallback)
70
71多广告位请求业务实现方法,设备厂商需在该方法中实现广告请求业务逻辑并将结果回调给媒体。
72
73**系统接口:** 此接口为系统接口。
74
75**系统能力:** SystemCapability.Advertising.Ads
76
77**参数:**
78
79| 参数名       | 类型                                                                    | 必填 | 说明          |
80|--------------|-------------------------------------------------------------------------|-----|-------------|
81| adParams     | advertising.[AdRequestParams](js-apis-advertising.md#adrequestparams)[] | 是   | 广告请求参数。 |
82| adOptions    | advertising.[AdOptions](js-apis-advertising.md#adoptions)               | 是   | 广告配置。     |
83| respCallback | [RespCallback](js-apis-adsserviceextensionability.md#respcallback)      | 是   | 广告请求回调。 |
84
85**示例:**
86
87```ts
88import { AdsServiceExtensionAbility, advertising, RespCallback } from '@kit.AdsKit';
89
90export default class AdsExtensionAbility extends AdsServiceExtensionAbility {
91  onLoadAdWithMultiSlots(adRequestParams: advertising.AdRequestParams[], adOptions: advertising.AdOptions,
92    respCallback: RespCallback) {
93    const adType1: number = adRequestParams[0].adType as number;
94    const ads1: Array<advertising.Advertisement> = [];
95    const rewardVerifyConfig: Map<string, string> = new Map();
96    ads1.push({
97      adType: adType1,
98      uniqueId: '111111',
99      rewardVerifyConfig: rewardVerifyConfig,
100      rewarded: false,
101      shown: false,
102      clicked: false
103    });
104    ads1.push({
105      adType: adType1,
106      uniqueId: '222222',
107      rewardVerifyConfig: rewardVerifyConfig,
108      rewarded: false,
109      shown: false,
110      clicked: false
111    });
112    const slot1: string = 'test1';
113    const adType2: number = adRequestParams[1].adType as number;
114    const ads2: Array<advertising.Advertisement> = [];
115    ads2.push({
116      adType: adType2,
117      uniqueId: '333333',
118      rewardVerifyConfig: rewardVerifyConfig,
119      rewarded: false,
120      shown: false,
121      clicked: false
122    });
123    ads2.push({
124      adType: adType2,
125      uniqueId: '444444',
126      rewardVerifyConfig: rewardVerifyConfig,
127      rewarded: false,
128      shown: false,
129      clicked: false
130    });
131    const slot2: string = 'test2';
132    const respData: Map<string, Array<advertising.Advertisement>> = new Map();
133    respData.set(slot1, ads1);
134    respData.set(slot2, ads2);
135    respCallback(respData);
136  }
137}
138```