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