1# @ohos.advertising.AdsServiceExtensionAbility (ExtensionAbility for Ads) (System API)
2
3
4The AdsServiceExtensionAbility module provides ExtensionAbilities for the ads service. Device vendors can implement the service logic of requesting one or multiple ads.
5
6
7> **NOTE**
8>
9> The initial APIs of this module are supported since API version 11. Newly added APIs will be marked with a superscript to indicate their earliest API version.
10> The APIs provided by this module are system APIs.
11
12
13## Modules to Import
14
15```ts
16import { AdsServiceExtensionAbility } from '@kit.AdsKit';
17```
18
19
20## AdsServiceExtensionAbility.onLoadAd
21
22onLoadAd(adParam: advertising.AdRequestParams, adOptions: advertising.AdOptions, respCallback: RespCallback);
23
24Called when the media application starts to load an ad. The device vendor needs to implement the ad request service logic in this API and send the result to the media application through a call back.
25
26**System API**: This is a system API.
27
28**System capability**: SystemCapability.Advertising.Ads
29
30**Since**: 11
31
32**Parameters**
33
34| Name| Type| Mandatory| Description|
35| -------- | -------- | -------- | -------- |
36| adParam | advertising.[AdRequestParams](js-apis-advertising.md#adrequestparams) | Yes| Ad request parameters.|
37| adOptions | advertising.[AdOptions](js-apis-advertising.md#adoptions) | Yes| Ad configuration.|
38| respCallback | [RespCallback](js-apis-adsserviceextensionability#adsserviceextensionabilityrespcallback) | Yes| Ad request callback.|
39
40**Example**
41```ts
42import { AdsServiceExtensionAbility, advertising, RespCallback } from '@kit.AdsKit';
43
44export default class AdsExtensionAbility extends AdsServiceExtensionAbility {
45  onLoadAd(adParam: advertising.AdRequestParams, adOptions: advertising.AdOptions, respCallback: RespCallback) {
46    const adType: number | undefined = adParam.adType;
47    const ads: Array<advertising.Advertisement> = [];
48    const rewardVerifyConfig: Map<string, string> = new Map();
49    ads.push({
50      adType: adType as number,
51      uniqueId: '111111',
52      rewardVerifyConfig: rewardVerifyConfig,
53      rewarded: false,
54      shown: false,
55      clicked: false
56    });
57    ads.push({
58      adType: adType as number,
59      uniqueId: '222222',
60      rewardVerifyConfig: rewardVerifyConfig,
61      rewarded: false,
62      shown: false,
63      clicked: false
64    });
65    const slot: string = 'test';
66    const resMap: Map<string, Array<advertising.Advertisement>> = new Map();
67    resMap.set(slot, ads);
68    respCallback(resMap);
69  }
70}
71```
72
73
74## AdsServiceExtensionAbility.onLoadAdWithMultiSlots
75
76onLoadAdWithMultiSlots(adParams: advertising.AdRequestParams[], adOptions: advertising.AdOptions, respCallback: RespCallback);
77
78Called when the media application starts to load multiple ads. The device vendor needs to implement the ad request service logic in this API and send the result to the media application through a call back.
79
80**System API**: This is a system API.
81
82**System capability**: SystemCapability.Advertising.Ads
83
84**Since**: 11
85
86**Parameters**
87
88| Name| Type| Mandatory| Description|
89| -------- | -------- | -------- | -------- |
90| adParams | advertising.[AdRequestParams](js-apis-advertising.md#adrequestparams)[] | Yes| Ad request parameters.|
91| adOptions | advertising.[AdOptions](js-apis-advertising.md#adoptions) | Yes| Ad configuration.|
92| respCallback | [RespCallback](js-apis-adsserviceextensionability#adsserviceextensionabilityrespcallback) | Yes| Ad request callback.|
93
94**Example**
95```ts
96import { AdsServiceExtensionAbility, advertising, RespCallback } from '@kit.AdsKit';
97
98export default class AdsExtensionAbility extends AdsServiceExtensionAbility {
99  onLoadAdWithMultiSlots(adParams: advertising.AdRequestParams[], adOptions: advertising.AdOptions,
100    respCallback: RespCallback) {
101    const adType1: number = adParams[0].adType as number;
102    const ads1: Array<advertising.Advertisement> = [];
103    const rewardVerifyConfig: Map<string, string> = new Map();
104    ads1.push({
105      adType: adType1,
106      uniqueId: '111111',
107      rewardVerifyConfig: rewardVerifyConfig,
108      rewarded: false,
109      shown: false,
110      clicked: false
111    });
112    ads1.push({
113      adType: adType1,
114      uniqueId: '222222',
115      rewardVerifyConfig: rewardVerifyConfig,
116      rewarded: false,
117      shown: false,
118      clicked: false
119    });
120    const slot1: string = 'test1';
121    const adType2: number = adParams[1].adType as number;
122    const ads2: Array<advertising.Advertisement> = [];
123    ads2.push({
124      adType: adType2,
125      uniqueId: '333333',
126      rewardVerifyConfig: rewardVerifyConfig,
127      rewarded: false,
128      shown: false,
129      clicked: false
130    });
131    ads2.push({
132      adType: adType2,
133      uniqueId: '444444',
134      rewardVerifyConfig: rewardVerifyConfig,
135      rewarded: false,
136      shown: false,
137      clicked: false
138    });
139    const slot2: string = 'test2';
140    const resMap: Map<string, Array<advertising.Advertisement>> = new Map();
141    resMap.set(slot1, ads1);
142    resMap.set(slot2, ads2);
143    respCallback(resMap);
144  }
145}
146```
147