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```