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