1# @ohos.advertising.AdsServiceExtensionAbility (ExtensionAbility for Ads) (System API) 2 3The AdsServiceExtensionAbility module provides ExtensionAbilities for the ads service. Device vendors can implement the service logic of requesting one or multiple ads. 4 5> **NOTE** 6> 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. 7> The APIs provided by this module are system APIs. 8 9## Modules to Import 10 11```ts 12import { AdsServiceExtensionAbility } from '@kit.AdsKit'; 13``` 14 15## AdsServiceExtensionAbility.onLoadAd 16 17onLoadAd(adParam: advertising.AdRequestParams, adOptions: advertising.AdOptions, respCallback: RespCallback) 18 19Called 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. 20 21**System API**: This is a system API. 22 23**System capability**: SystemCapability.Advertising.Ads 24 25**Parameters** 26 27| Name | Type | Mandatory| Description | 28|--------------|-----------------------------------------------------------------------|----|---------| 29| adParam | advertising.[AdRequestParams](js-apis-advertising.md#adrequestparams) | Yes | Ad request parameters.| 30| adOptions | advertising.[AdOptions](js-apis-advertising.md#adoptions) | Yes | Ad configuration. | 31| respCallback | [RespCallback](js-apis-adsserviceextensionability.md#respcallback) | Yes | Ad request callback.| 32 33**Example** 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 71Called 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. 72 73**System API**: This is a system API. 74 75**System capability**: SystemCapability.Advertising.Ads 76 77**Parameters** 78 79| Name | Type | Mandatory| Description | 80|--------------|-------------------------------------------------------------------------|----|---------| 81| adParams | advertising.[AdRequestParams](js-apis-advertising.md#adrequestparams)[] | Yes | Ad request parameters.| 82| adOptions | advertising.[AdOptions](js-apis-advertising.md#adoptions) | Yes | Ad configuration. | 83| respCallback | [RespCallback](js-apis-adsserviceextensionability.md#respcallback) | Yes | Ad request callback.| 84 85**Example** 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``` 139