
draw视频广告的展示场景一般在应用的视频流中进行展示,广告内容与应用其他内容区分开,防止意外点击。
支持模板渲染和原生广告自渲染
初始化广告创建器
构建广告请求参数AdSlot
方法 | 是否必填 | 类型 | 说明 |
setCodeId(codeId:string) | 是 | string | 您在平台上申请的代码位Id,以9开头9位数字 |
setAdCount(adCount:number) | 否 | number | 加载广告数,最多不超过3个 |
setAcceptSize(350, 300) | 是 | number | 广告UI size,默认单位vp |
广告加载:在调用loadDrawAd加载广告后,可在drawLoadListener的回调中处理相关逻辑。
广告展示:在收到onDrawAdLoad回调后通过NodeContainer容器加载广告信息,如广告图片、视频view,标题,描述等需自定义渲染,详细代码见Demo的DrawNativeAdPage文件。
图片展示:展示图片广告时,可以通过getImageList(): ArrayList<CSJImage>|undefine获取图片,并自定义渲染。
注意:自定义图片类型需要通过图片对象本身CSJImage获取宽getWidth()高getHeight
方法 | 参数 | 说明 |
onDrawAdLoad(ads:ArrayList<CSJDrawAd> ) | ads:广告信息列表CSJDrawAd:信息流广告对 | 广告基础信息加载完成,此方法是回调后是广告可调用展示的最早时机 |
onError(code: number, message: string) | code:错误码message:错误信息 | 若加载中出错,会回调此方法 |
方法 | 说明 |
getTitle() | 广告标题 |
getDescription() | 广告描述 |
getButtonText() | 广告创意按钮文案 |
getAppScore() | 广告app评分 |
getSource() | 广告来源 |
getInteractionType() | 原生广告交互类型,返回值为number类型:3跳落地页;4调起或下载。 |
getImageMode() | 原生广告图片模式 |
getComplianceInfo() | 应用下载相关信息 |
getDislikeDialog(): | 得到Dislike dialog |
getAdComponent() | 获取广告UI组件 |
getMediaExtraInfo() | 返回广告额外信息 |
render(context: UIContext) | 渲染模板广告,渲染成功后通过getAdComponent()可获取到渲染成功的广告 |
destroy() | 资源释放 |
getVideoDuration() | 获取视频播放时长 |
getAdViewWidth() | View宽 |
getAdViewHeight() | View高 |
getIcon() | 广告图标Image |
getVideoCoverImage() | 当为视频广告时,返回视频封面图对象 |
getAdLogo() | 获取穿山甲logo |
getAppCommentNum() | 广告app评论数 |
getImageList(): ArrayList<CSJImage>|undefined; | 返回图片列表 |
getFilterWords() | 获得Dislike相关信息,即获得负反馈词组 |
isExpressAd() | 判断是否为模板广告 |
setAdInteractionListener(listener: CSJAdInteractionListener) | 设置广告交互监听,如广告展示,点击等行为 |
setDislikeCallback(callback: CSJDislikeInteractionCallback) | 设置dislike监听 |
setDrawVideoListener(videoAdListener: CSJDrawVideoListener) | 设置Video监听,如视频播放,暂停播放等行为 |
setPauseIcon(pauseIcon: PixelMap | ResourceStr, size: number) | 设置暂停图标和大小,单位vp, 大小范围20 到 200之间,默认为 50 |
onAdClick(clickType: number, eventClick: ClickEvent) | logo点击; |
setCanInterruptVideoPlay(canInterruptVideoPlay: boolean) | 设置是否允许视频区域响应点击,并且暂停/继续播放, true 可以影响点击, 默认为false |
registerViewForInteraction(rootAdComponentId: string, uiContext: UIContext, clickViewIds: CSJArrayList<string>, creativeViewIds: CSJArrayList<string>): void; | 注册点击计费事件和交互回调,详细说明请参考3.3 注册Draw自渲染广告计费事件模块说明 |
方法 | 说明 |
onShow() | dislike 弹窗show |
onSelected: (position: number, value: string, enforce: boolean) | Dislike 条目被选中 |
onCancel() | Dislike 弹窗取消; |
setCustomDislikeComponent(customDislikeBuilder: WrappedBuilder<[ fwList: Array<FilterWord>, onSelected: (filterPosition: number, filterName: string) => void, onOtherSuggestComment: (suggestionValue: string) => void, onUserSuggestDialogCancel: (commentValue: string) => void]>): void; | 自定义Dislike 设置 |
通过registerViewForInteraction方法注册原生自渲染广告计费事件和交互事件,方法说明如下,其中CSJArrayList类为CSJ提供的集合容器继承自ArrayList;该容器主要作用是收集注册点击事件的UI组件Id;具体用法详见Demo的DrawNativeAdPage文件中buildAdLayout方法。
注意:UI组件id在应用中必须保持唯一(华为鸿蒙官方要求)
registerViewForInteraction中不再提供CSJAdInteractionListener回调监听设置;请通过广告对象的setAdInteractionListener()方法设置。
注册案例:
在调用展示广告前,通过ad?.setAdInteractionListener()创建广告交互监听器,用于获取广告展示、点击等交互状态。
方法 | 参数 | 说明 |
onAdShow(ad: CSJNativeAd) | ad:广告对象 | 广告展示 |
onAdClicked(ad: CSJNativeAd) | ad:广告对象 | 广告被用户点击普通区域回调,如标题,描述等 |
onAdCreativeClick(ad: CSJNativeAd) | ad:广告对象 | 广告被用户点击创意区域回调,如下载button |
如果是视频类型广告,在调用展示广告前可以创建广告视频监听器CSJDrawVideoListener,用于实时获取广告视频的播放状态。
方法 | 参数 | 说明 |
onVideoLoad() | 视频加载完成 | |
onVideoAdStartPlay() | 视频开始播放第一帧 | |
onVideoAdPaused() | 视频暂停播放 | |
onVideoAdContinuePlay() | 视频继续播放 | |
onProgressUpdate(current: number, duration: number) | current:当前播放进度,duration:视频总时间长 | 视频播放进度 |
onVideoAdComplete() | 视频播放完成 | |
onVideoError(errorCode: number, errorMsg: string) | errorCode:错误码,msg:错误信息 | 视频加载失败 |
onClickReplay() | 点击视频重播按钮 |
穿山甲原生自渲染Draw广告请参考demo中的DrawNativeAdPage.ets类接入示例,聚合维度Draw广告请参考demo中的mediation_adtype/draw/DrawAdPage.ets类接入示例。
初始化广告创建器
构建广告请求参数AdSlot
方法 | 是否必填 | 类型 | 说明 |
setCodeId() | 是 | String | 您在平台上申请的代码位Id,以9开头9位数字 |
setAcceptSize(350, 300) | 是 | number | 广告UI size,默认单位vp |
调用loadExpressDrawAd加载广告后,可在NativeExpressAdListener的回调中继续处理相关逻辑。
展示广告时需要通过NodeContainer容器承载广告模板UI,详细代码见Demo的DrawExpressAdPage文件,广告加载成功之后并在展示之前,需要调用 ad.render(this.getUIContext())方法渲染广告,渲染成功后方可展示。
方法 | 参数 | 说明 |
onNativeExpressAdLoad: (ads: ArrayList<CSJNativeExpressAd>) | ads:广告信息列表 | 广告基础信息加载完成,此方法是回调后是广告可调用展示的最早时机 |
onError(code: number, message: string) | code:错误码 | 若加载中出错,会回调此方法 |
方法 | 说明 |
getInteractionType() | 原生广告交互类型,返回值为number类型:3跳落地页;4调起或下载。 |
getImageMode() | 原生广告样式模式:大图,组图,视频,三图,小图 |
getDislikeDialog() | 得到Dislike dialog |
getAdComponent() | 获取广告UI组件 |
getMediaExtraInfo() | 返回广告额外信息 |
setCanInterruptVideoPlay() | 展示广告之前设置setCanInterruptVideoPlay为true即可实现点击后暂停 |
render(context: UIContext) | 渲染模板广告,渲染成功后通过getAdComponent()可获取到渲染成功的广告 |
destroy() | 资源释放 |
getFilterWords() | 获得Dislike相关信息,即获得负反馈词组 |
setExpressInteractionListener(listener: ExpressAdInteractionListener) | 设置交互监听器 |
setDislikeCallback(callback: CSJDislikeInteractionCallback) | 设置dislike监听 |
setVideoAdListener(videoAdListener: ExpressVideoAdListener) | 设置Video监听 |
在调用展示广告前,创建广告交互监听器,用于实时获取广告展示、点击等行为。
方法 | 参数 | 说明 |
onAdShow(type: number) | type:广告交互类型 | 广告展示 |
onAdClicked(type: number) | type:广告交互类型 | 广告被用户点击回调 |
onRenderSuccess: (width: number, height: number) | width & height 广告宽高大小 | 在调用广告的render方法后,广告渲染成功,会回调该方法,此时表示广告已准备好,待展示 |
onRenderFail: (code: number, msg: string) | code:渲染错误码, | 模板渲染失败 |
在调用展示广告前,如果是视频类型广告,可以创建广告视频监听器,用于实时获取广告视频的播放状态。
方法 | 参数 | 说明 |
onVideoLoad() | 视频加载完成 | |
onVideoAdStartPlay() | 视频开始播放第一帧 | |
onVideoAdPaused() | 视频暂停播放 | |
onVideoAdContinuePlay() | 视频继续播放 | |
onProgressUpdate(current: number, duration: number) | current:当前播放进度 duration:视频总时间长 | 视频播放进度 |
onVideoAdComplete() | 视频播放完成 | |
onVideoError(errorCode: number, errorMsg: string) | errorCode:错误码 msg:错误信息 | 视频加载失败 |
穿山甲模版Draw广告请参考demo中的adtype/draw/DrawExpressAdPage.ets类接入示例。
聚合功能通过mAdCreator.loadDrawAd 加载信息流广告,暂不支持mAdCreator.loadExpressDrawAd在调用加载广告后,可在CSJDrawAdListener的回调中继续处理相关逻辑。
加载广告
展示广告 (原生自渲染广告需要注册计费事件):
在onDrawAdLoad后获取广告展示基本信息
方法 | 返回值 | 说明 |
getMediationAdInfo() | object | undefined | 返回聚合相关信息 |
方法 | 返回值 | 说明 |
getAdnName() | string | 返回展示广告的adn名称 |
getAdnRitId() | string | 返回展示广告的adn代码位 |
getEcpm() | number | 返回展示广告的价格 |
getBiddingType() | number | 返回展示广告的竞价类型0为普通广告位,1 client竞价广告 2 server竞价广告 100 P层数据 |
getRitType() | string | 返回展示广告的广告类型"Banner" "Splash" "RewardVideo" "FullVideo" "Native" "Draw" "Interstitial" "InterstitialFull" |
Online Customer Service24/7 Online Customer Service BotManual customer service, weekdays 10~ 12 o'clock/14~ 19 o'clock